图第6章仍D4设计应用实例 4)乘法运算控制器的源程序 ARICTLⅤHD LIBRARY IEEE USE IEEE STD LOGIC 1164ALL USE IEEE STD LOGIC UNSIGNEDALL ENTITY ARICTL IS-乘法运算控制器 PORT(CLK: IN STD LOGIC: START: IN STD LOGIC; CLKOUT: OUT STD LOGIC: RSTALL: OUT STD LOGIC ARIEND: OUT STD LOGIC END ARICTL ARCHITECTURE ART OF ARICTL IS SIGNAL CNT4B: STD LOGIC VECTOR(3 DOWNTO O) BEGIN
第6章 VHDL设计应用实例 4) 乘法运算控制器的源程序ARICTL.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ARICTL IS --乘法运算控制器 PORT ( CLK:IN STD_LOGIC; START:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC; RSTALL:OUT STD_LOGIC; ARIEND:OUT STD_LOGIC ); END ARICTL; ARCHITECTURE ART OF ARICTL IS SIGNAL CNT4B:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
图第6章仍D4设计应用实例 RSTALL<ESTART PROCESS (CLK, START) BEGIN IF START= THEN CNT4B<="0000";-高电平清零计数器 ELSIF CLKEVENT AND CLK='1 THEN F CNT4B<8THN-小于则计数,等于8表明乘法运算已经结束 CNT4B=CNT4B+ END IF END IF END PROCESS PROCESS (CLK, CNT4B, START BEGIN
第6章 VHDL设计应用实例 RSTALL<=START; PROCESS (CLK,START) BEGIN IF START = '1' THEN CNT4B<= "0000"; --高电平清零计数器 ELSIF CLK'EVENT AND CLK = '1' THEN IF CNT4B<8 THEN--小于则计数,等于8表明乘法运算已经结束 CNT4B=CNT4B+1; END IF; END IF; END PROCESS; PROCESS (CLK,CNT4B,START) BEGIN
图第6章仍D4设计应用实例 F START=O' THEN IF cNTB<8 THEN 乘法运算正在进行 CLKOUT <=CLK: ARIEND<='0 ELSE CLKOUT <=0: ARIEND<=1 -运算已经结束 END F ELSE CLKOUT <=CLK: ARIEND<=0 END IF END PROCESS END ART
第6章 VHDL设计应用实例 IF START = '0' THEN IF CNT4B<8 THEN --乘法运算正在进行 CLKOUT <=CLK; ARIEND<= '0'; ELSE CLKOUT <= '0'; ARIEND<= '1'; --运算已经结束 END IF; ELSE CLKOUT <=CLK; ARIEND<= '0'; END IF; END PROCESS; END ART;
图第6章仍D4设计应用实例 5)8位乘法器的源程序 MULTI8X8HD LIBRARY IEEE USE IEEE STD LOGIC 1164ALI 8位乘法器顶层设计 ENTITY MultI8X8 IS PORT(CLK: IN STD LOGIC; START: IN STD LOGIC -乘法启动信号,高电平复位与加载,低电平运算 A: IN STD LOGIC VECTOR(7 DOWNTO0);-8位被乘数 B: IN STD LOGIC VECTOR(7 DOWNTO0);-8位乘数 FRIEND: OUT STD LOGIC;-乘法运算结束标志位 DOUT: OUT STD LOGIC VECTOR(15 DOWNTO0);-16位乘积输出 END MULTI8X8
第6章 VHDL设计应用实例 5) 8位乘法器的源程序MULTI8X8.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; --8位乘法器顶层设计 ENTITY MULTI8X8 IS PORT(CLK:IN STD_LOGIC; START:IN STD_LOGIC; --乘法启动信号,高电平复位与加载,低电平运算 A:IN STD_LOGIC_VECTOR(7 DOWNTO 0); --8位被乘数 B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); --8位乘数 ARIEND:OUT STD_LOGIC; --乘法运算结束标志位 DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));--16位乘积输出 END MULTI8X8;
图第6章仍D4设计应用实例 ARCHITECTURE ART OF MULTI8X8 IS COMPONENT ARICTL-待调用的乘法控制器端口定义 PORT(CLK IN STD LOGIC; START: IN STD LOGIC CLKOUT: OUT STD LOGIC: RSTALL: OUT STD LOGIC ARIEND: OUT STD LOGIC) END COMPONENT COMPONENT ANDARITE-待调用的控制与门端口定义 PORT(ABIN: IN STD LOGIC DIN: IN STD LOGIC VECTOR(7 DOWNTO O); DOUT: OUT STD LOGIC VECTOR( 7 DOWNTO O)) END COMPONENT: COMPONENT ADDER8B待调用的8位加法器端口定义
第6章 VHDL设计应用实例 ARCHITECTURE ART OF MULTI8X8 IS COMPONENT ARICTL --待调用的乘法控制器端口定义 PORT(CLK:IN STD_LOGIC;START:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC;RSTALL:OUT STD_LOGIC; ARIEND:OUT STD_LOGIC); END COMPONENT; COMPONENT ANDARITH --待调用的控制与门端口定义 PORT(ABIN:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT:OUT_STD_LOGIC_VECTOR( 7 DOWNTO 0) ); END COMPONENT; COMPONENT ADDER8B --待调用的8位加法器端口定义 ...