⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8位加法器树乘法器的vhdl程序.txt

📁 一种基于加法器树方法的8为乘法器的VHDL源码
💻 TXT
字号:
------------------------------------------------------------
----------       8位加法器树乘法器       ----------
------------------------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;

ENTITY mult_8 IS
PORT (product : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
          a,b : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
    reset,clk : IN STD_LOGIC
      );
END mult_8;

ARCHITECTURE bhv OF mult_8 IS
    SIGNAL d,d1,d2,d3,d4,d5,d6,d7 : STD_LOGIC_VECTOR(15 DOWNTO 0);  
    SIGNAL e,e1,e2,e3,e4,e5,e6,e7 : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
    PROCESS(a,b,clk,reset)
    BEGIN
        IF reset='1' then  --异步复位
           product<=(others=>'0');  --输出清零
        ELSIF (clk'EVENT AND clk = '1')THEN
            FOR i IN 0 TO 7 LOOP  --8b*1b
                e(i)<=a(0) AND b(i);
                e1(i)<=a(1) AND b(i);
                e2(i)<=a(2) AND b(i);
                e3(i)<=a(3) AND b(i);
                e4(i)<=a(4) AND b(i);
                e5(i)<=a(5) AND b(i);
                e6(i)<=a(6) AND b(i);
                e7(i)<=a(7) AND b(i);
           END LOOP;

               d<="00000000"&e;  --移位
               d1<="0000000"&e1&'0';
               d2<="000000"&e2&"00";
               d3<="00000"&e3&"000";
               d4<="0000"&e4&"0000";
               d5<="000"&e5&"00000";
               d6<="00"&e6&"000000";
               d7<='0'&e7&"0000000";
               product<=d+d1+d2+d3+d4+d5+d6+d7;  --相加
        END IF;
    END PROCESS;
END bhv;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -