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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南昌航空大学实验报告

年月日

一、实验目的

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-38位右移寄存器流程图

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(7DOWNTO0);

QB:OUT STD_LOGIC);

END SREG8B;

ARCHITECTURE behav OF SREG8B IS

SIGNAL REG8:STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

PROCESS(CLK,LOAD)

BEGIN

IF LOAD='1'THEN REG8<=DIN;

ELSIF CLK'EVENT AND CLK='1'THEN

REG8(6DOWNTO0)<=REG8(7DOWNTO1);

END IF;

END PROCESS;

QB<=REG8(0);

END behav;

8位右移寄存器波形仿真图如图5-4所示;

图5-48位右移寄存器波形仿真图

2、8位加法寄存器模块的设计:输入为B,A,输出为S,模块的主要功能是实现两个8位数的加法运算;其流程图如图5-5所示

图5-58位加法寄存器流程图

VHDL语言描述为:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ADDER8IS

PORT(B,A:IN STD_LOGIC_VECTOR(7DOWNTO0);

S:OUT STD_LOGIC_VECTOR(8DOWNTO0));

END ADDER8;

ARCHITECTURE behav OF ADDER8IS

BEGIN

S<='0'&A+B;

END behav;

8位加法器波形仿真图如图5-6所示;

图5-68位加法器波形仿真图

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(7DOWNTO0);

DOUT:OUT STD_LOGIC_VECTOR(7DOWNTO0)); END ANDARITH;

ARCHITECTURE behav OF ANDARITH IS

BEGIN

PROCESS(ABIN,DIN)

BEGIN

FOR I IN0TO7LOOP

DOUT(I)<=DIN(I)AND ABIN;

END LOOP;

END PROCESS;

END behav;

波形仿真图为如图5-8所示:

图5-8选通与门波形仿真图

4、16位锁存器设计,输入为CLK,CLR和D,输出为Q

流程图如图5-9所示:

图5-916位锁存器流程图

VHDL语言描述为:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY REG16B IS

PORT(CLK,CLR:IN STD_LOGIC;

D:IN STD_LOGIC_VECTOR(8DOWNTO0);

Q:OUT STD_LOGIC_VECTOR(15DOWNTO0)); END REG16B;

ARCHITECTURE behav OF REG16B IS

SIGNAL R16S:STD_LOGIC_VECTOR(15DOWNTO0); BEGIN

PROCESS(CLK,CLR)

BEGIN

IF CLR='1'THEN R16S<=(OTHERS=>'0');

ELSIF CLK'EVENT AND CLK='1'THEN

相关文档
最新文档