最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

四位二进制除法器

来源:动视网 责编:小OO 时间:2025-10-01 12:42:59
文档

四位二进制除法器

四位二进制除法器设计李振礼11110820081、设计方法采用移位相减法设计二进制除法器:被除数和除数都是二进制数,采用将除数移位的方法。1)判断除数和被除数是否为零:如果除数为零,返回等待;如果被除数为零,则商和余数都为零。2)被除数和除数都不为零时,判断被除数和除数的大小:如果除数大于被除数,则商为零,余数等于被除数;如果除数小于等于被除数,则对除数进行移位,第一次移位使被除数的最高位和除数的最低位对齐。然后对移位后的除数和被除数进行判断:如果被除数大于等于除数,则用被除数减去除数,并将所
推荐度:
导读四位二进制除法器设计李振礼11110820081、设计方法采用移位相减法设计二进制除法器:被除数和除数都是二进制数,采用将除数移位的方法。1)判断除数和被除数是否为零:如果除数为零,返回等待;如果被除数为零,则商和余数都为零。2)被除数和除数都不为零时,判断被除数和除数的大小:如果除数大于被除数,则商为零,余数等于被除数;如果除数小于等于被除数,则对除数进行移位,第一次移位使被除数的最高位和除数的最低位对齐。然后对移位后的除数和被除数进行判断:如果被除数大于等于除数,则用被除数减去除数,并将所
四位二进制除法器设计

李振礼 1111082008

1、设计方法

采用移位相减法设计二进制除法器:被除数和除数都是二进制数,采用将除数移位的方法。1)判断除数和被除数是否为零:如果除数为零,返回等待;如果被除数为零,则商和余数都为零。2)被除数和除数都不为零时,判断被除数和除数的大小:如果除数大于被除数,则商为零,余数等于被除数;如果除数小于等于被除数,则对除数进行移位,第一次移位使被除数的最高位和除数的最低位对齐。然后对移位后的除数和被除数进行判断:如果被除数大于等于除数,则用被除数减去除数,并将所得结果做为新的被除数;如果被除数小于除数,则将除数在第一次移位的基础上右移一位,在对被除数和除数进行判断,根据被除数和除数的大小关系进行类似的操作。

2、算法流程图

图中:被除数和除数分别放在A、B中,商和余数分别放在S、和Y中,C作为移位计数器

3、VHDL程序代码:

library ieee;

use ieee.std_logic_11.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;   ---打开可能用到的库

entity dedect1 is 

   port(A,B:in std_logic_vector(3 downto 0);

        S,Y:out std_logic_vector(3 downto 0));

end entity dedect1;                  ----四位二进制除法器实体定义

architecture behv of dedect1 is

   begin

s1:process(A,B)                    ---进程开始敏感信号A、B

   variable tmpa,tmpb:std_logic_vector(7 downto 0);--中间变量定义

   variable tmpc:std_logic_vector(3 downto 0);

   begin

   tmpa:="00000000";

   tmpb:="00000000";

   tmpc:="0000";               ---中间变量初始化

if(B>"0000")then         ---B不为零(除数不为零)

if(A>"0000")then       ----A不为零(被除数不为零)

if(A>B)then        ----被除数大于除数时

              tmpa(3 downto 0):=A;     -----以下四条If语句完成求满足以上

              tmpb(6 downto 3):=B; ---三个条件时被除数除以除数的商和余数

if(tmpa>=tmpb)then

                   tmpa:=tmpa-tmpb;

                   tmpc(3):='1';

                else 

                   tmpc(3):='0';

                end if;

              tmpb(5 downto 2):=B;

              tmpb(6):='0';

if(tmpa>=tmpb)then

                   tmpa:=tmpa-tmpb;

                   tmpc(2):='1';

               else

                   tmpc(2):='0';

               end if;

               tmpb(4 downto 1):=B;

               tmpb(5):='0';

if(tmpa>=tmpb)then

                   tmpa:=tmpa-tmpb;

                   tmpc(1):='1';

              else

                   tmpc(1):='0';

              end if;

               tmpb(3 downto 0):=B;

               tmpb(4):='0';

if(tmpa>=tmpb)then

                   tmpa:=tmpa-tmpb;

                   tmpc(0):='1';

              else

                   tmpc(0):='0';

              end if;                             

Y<=tmpa(3 downto 0);

S<=tmpc;

            elsif(A=B)then         ---------被除数等于除数

S<="0001";

Y<="0000";

          else 

S<="0000";             ---------被除数小于除数

Y<=A;

          end if;

       else                           ----被除数为零时

S<="0000";

Y<="0000";

       end if;

     else                               ---------除数为零时

S<="ZZZZ";

Y<="ZZZZ";

    end if;

  end process;                           ---进程结束

end architecture behv;       

4、仿真结果:

图中:A、B、S、Y分别是被除数、除数、商和余数。

被除数为零时,除数为零和不为零时的商和余数;

被除数不为零时,除数为零和不为零时的商和余数;

被除数等于除数,大于除数及小于除数时的商和余数;

文档

四位二进制除法器

四位二进制除法器设计李振礼11110820081、设计方法采用移位相减法设计二进制除法器:被除数和除数都是二进制数,采用将除数移位的方法。1)判断除数和被除数是否为零:如果除数为零,返回等待;如果被除数为零,则商和余数都为零。2)被除数和除数都不为零时,判断被除数和除数的大小:如果除数大于被除数,则商为零,余数等于被除数;如果除数小于等于被除数,则对除数进行移位,第一次移位使被除数的最高位和除数的最低位对齐。然后对移位后的除数和被除数进行判断:如果被除数大于等于除数,则用被除数减去除数,并将所
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top