logo资料库

移位相加8位硬件乘法器电路设计.pdf

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
南昌航空大学实验报告 年 月 日 EDA 技术实验 课程名称: 课程名称: 班级:_09083114___姓名: 康惠洋 同组人:___________________________ 指导老师评定:___________________________签名:________________________ 移位相加 8 位硬件乘法器电路设计 一、 实验目的 1、学习移位相加 8 位硬件乘法器电路设计; 2、进一步提高学生应用 EDA 技术进行项目设计的能力。 二、 实验原理 纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以 实现宽位乘法器;基于 PLD 器件外接 ROM 九九表的乘法器则无法构成单片系 统,也不实用。本实验由 8 位加法器构成的以时序逻辑方式设计的 8 位乘法器, 具有一定的实用价值。其乘法原理是:乘法通过逐项移位相加原理来实现,从被 乘数的最低位开始,若为 1,则乘数左移后与上一次的和相加;若为 0,左移后 以全零相加,直至被乘数的最高位。原理框图如图 5-1 所示 三、 实验内容 图 5-1 原理框图 移位相加 8 位硬件乘法器电路原理图如图 5-2 所示;系统由 8 位右移寄存器 (SREG8B)、8 位加法器(ADDER8)、选通与门模块(ANDARITH)和 16 位锁存器 (REG16)组成。 START 信号的上跳沿及其高电平有两个功能,即 16 位寄存器清零和被乘数 A[7..0]向移位寄存器 SREG8B 加载;它的低电平则作为乘法使能信号。CLK 为乘 法时钟信号。当被乘数被加载于 8 位右移寄存器 SREG8B 后,随着每一时钟节拍, 最低位在前,由低位至高位逐位移出。当为 1 时,与门 ANDARITH 打开,8 位乘 数 B[7..0]在同一节拍进入 8 位加法器,与上一次锁存在 16 位锁存器 REG16B 中 的高 8 位进行相加,其和在下一时钟节拍的上升沿被锁进此锁存器。而当被乘数 的移出位为 0 时,与门全零输出。如此往复,直至 8 个时钟脉冲后,乘法运算过
程中止。此时 REG16B 的输出值即为最后的乘积。此乘法器的优点是节省芯片资 源,它的核心元件只是一个 8 位加法器,其运算速度取决于输入的时钟频率。 图 5-2 移位相加 8 位硬件乘法器电路原理图 1、8 位右移寄存器模块的设计:输入为 CLK,LOAD 和 DIN,输出为 QB; 其流程图如图 5-3 所示 图 5-3 8 位右移寄存器流程图 VUDL 语言描述为; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SREG8B IS PORT( CLK:IN STD_LOGIC; LOAD:IN STD_LOGIC;
DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB:OUT STD_LOGIC); END SREG8B; ARCHITECTURE behav OF SREG8B IS SIGNAL REG8:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS (CLK,LOAD) BEGIN IF LOAD='1' THEN REG8<=DIN; ELSIF CLK'EVENT AND CLK='1' THEN REG8(6 DOWNTO 0)<=REG8(7 DOWNTO 1); END IF; END PROCESS; QB<=REG8(0); END behav; 8 位右移寄存器波形仿真图如图 5-4 所示; 图 5-4 8 位右移寄存器波形仿真图 2、8 位加法寄存器模块的设计 :输入为 B,A,输出为 S,模块的主要功能是实现 两个 8 位数的加法运算;其流程图如图 5-5 所示 图 5-5 8 位加法寄存器流程图 VHDL 语言描述为: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER8 IS PORT(B,A:IN STD_LOGIC_VECTOR(7 DOWNTO 0); S :OUT STD_LOGIC_VECTOR(8 DOWNTO 0)); END ADDER8; ARCHITECTURE behav OF ADDER8 IS
BEGIN S<='0'& A+B; END behav; 8 位加法器波形仿真图如图 5-6 所示; 图 5-6 8 位加法器波形仿真图 3、选通与门模块设计:输入为 ABIN 和 DIN,输出为 DOUT 流程图如图 5-7 所示: 图 5-7 选通与门流程图 VHDL 语言描述为: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ANDARITH IS PORT(ABIN:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ANDARITH; ARCHITECTURE behav OF ANDARITH IS BEGIN PROCESS(ABIN,DIN) BEGIN
FOR I IN 0 TO 7 LOOP DOUT(I)<=DIN(I) AND ABIN; END LOOP; END PROCESS; END behav; 波形仿真图为如图 5-8 所示: 4、16 位锁存器设计,输入为 CLK,CLR 和 D,输出为 Q 图 5-8 选通与门波形仿真图 流程图如图 5-9 所示: 图 5-9 16 位锁存器流程图 VHDL 语言描述为: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG16B IS PORT(CLK,CLR:IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(8 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END REG16B; ARCHITECTURE behav OF REG16B IS SIGNAL R16S:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN PROCESS(CLK,CLR) BEGIN IF CLR='1' THEN R16S<=(OTHERS=>'0'); ELSIF CLK'EVENT AND CLK='1' THEN
R16S(6 DOWNTO 0)<=R16S(7 DOWNTO 1); R16S(15 DOWNTO 7)<=D; END IF; END PROCESS; Q<=R16S; END behav; 波形仿真图如图 5-10 所示: 图 5-10 16 位锁存器波形仿真图 5、移位相加 8 位硬件乘法器仿真波形如图 5-11 所示 图 5-11 8 位硬件乘法器时序仿真图 四、实验小结 通过本次实验,学会了移位相加 8 位硬件乘法器电路的设计,同时学会了器 内部模块的设计,进一步提高了自己的设计能力。
分享到:
收藏