EDA课设八位硬件乘法器.docx
- 文档编号:10696305
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:8
- 大小:16.22KB
EDA课设八位硬件乘法器.docx
《EDA课设八位硬件乘法器.docx》由会员分享,可在线阅读,更多相关《EDA课设八位硬件乘法器.docx(8页珍藏版)》请在冰豆网上搜索。
EDA课设八位硬件乘法器
8位硬件乘法器
一、设计目的
①学习移位相加时序式乘法器的设计方法
②学习层次化设计方法
③学习原理图调用VHDL模块方法
④熟悉EDA仿真分析方法
二、设计原理
(1)设计原理
由加法器构成的时序逻辑方式的乘法器的原理是,通过逐项移位相加原理来
实现,从被乘数的最低位开始,若为,若为1,则乘数左移与上一次和相加;若
为0,左移后以全零相加,直至被乘数的最高位。
在下图中。
ARICTL是乘法运算控制电路,它的START信号的上升沿与高电平
有两个功能,即16位寄存器清0和被乘数A向移位寄存器SREG8B加载;它的低
电平则作为乘法使能信号。
CLK为乘法时钟信号,当被乘数加载于8位右移寄存器SEG8B后,在时钟同步
下由低位至高位逐位移出,当其为1时,与门ANDARITH打开,8位乘数B在同
一节拍进入8位加法器,与上一节拍锁存在16位锁存器REG26B中的高8位进行
相加,其和在下一时钟节拍的上升沿被锁存进此锁存器;而当被乘数的移出位为
0时,与门全0输出。
如此往复,直至8个时钟脉冲后,乘法运算过程中止,此
时REG16B的输出值即为最后乘积。
原理图如下:
(2)乘法器中各模块
(电路的总体框图)
说明:
此电路由五部分组成它们,分别是控制器,锁存器,寄存器,乘法器,加法器。
1控制器是一个乘法器的控制模块,用来接受实验系统上的连续脉冲。
2锁存器起锁存的作用,它可以锁存8位乘数。
3移位寄存器起移位的作用,便于被乘数可以逐位移出。
4乘法器功能类似一个特殊的与非门。
5加法器用于8位乘数和高8位相加。
三、选择器件与功能模块
选择器件:
SREG8B(移位寄存器)
REG16B(16位琐存器)
ARICTL(运算控制器)
ANDARITH(1位乘法器)
ADDER8B(8位加法器)
数码管(显示结果)
功能模块:
1.8位右移寄存器SREG8B
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYSREG8IS
PORT(CLK:
INSTD_LOGIC;LOAD:
INSTD_LOGIC;
DIN:
INSTD_LOGIC_VECTOR(7DOWNTO0);
EN:
INSTD_LOGIC;
QB:
OUTSTD_LOGIC);
ENDSREG8;
ARCHITECTUREbehaveOFSREG8IS
SIGNALREG8:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
PROCESS(CLK,LOAD,EN)
BEGIN
IFEN='1'THEN
IFLOAD='1'THENREG8<=DIN;
ELSIFCLK'EVENTANDCLK='1'THEN
REG8(6DOWNTO0)<=REG8(7DOWNTO1);
ENDIF;
ENDIF;
ENDPROCESS;
QB<=REG8(0);
ENDbehave;
时序仿真图:
2.8为加法器ADDER8BLIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYadder8IS
PORT(B,A:
INSTD_LOGIC_VECTOR(7DOWNTO0);S:
OUTSTD_LOGIC_VECTOR(8DOWNTO0)
);
ENDadder8;
ARCHITECTUREbehaveOFadder8IS
BEGIN
S<='0'&A+B;
ENDbehave;
时序仿真图:
3.选通与门模块:
ANDARITHLIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;ENTITYandarithIS
PORT(ABIN:
INSTD_LOGIC;
DIN:
INSTD_LOGIC_VECTOR(7DOWNTO0);DOUT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDandarith;
ARCHITECTUREbehaveOFandarithIS
BEGIN
PROCESS(ABIN,DIN)
BEGIN
FORIIN0TO7LOOP
DOUT(I)<=DIN(I)ANDABIN;
ENDLOOP;
ENDPROCESS;
ENDbehave;
时序仿真图:
4.16为锁存寄存器REG16
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYREG16IS
PORT(CLK,CLR,EN:
INSTD_LOGIC;
D:
INSTD_LOGIC_VECTOR(8DOWNTO0);
Q:
OUTSTD_LOGIC_VECTOR(15DOWNTO0)
);
ENDREG16;
ARCHITECTUREbehaveOFREG16IS
SIGNALR16S:
STD_LOGIC_VECTOR(15DOWNTO0);
BEGIN
PROCESS(CLK,CLR,EN)
BEGIN
IFEN='1'THEN
IFCLR='1'THENR16S<=(OTHERS=>'0');
ELSIFCLK'EVENTANDCLK='1'THEN
R16S(6DOWNTO0)<=R16S(7DOWNTO1);
R16S(15DOWNTO7)<=D;
ENDIF;
ENDIF;
ENDPROCESS;
Q<=R16S;
ENDbehave;
时序仿真图:
5.运算控制器ARICTL
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYarictlIS
PORT(CLK:
INSTD_LOGIC;START:
INSTD_LOGIC;CLKOUT:
OUTSTD_LOGIC;RSTALL:
OUTSTD_LOGIC;ARIEND:
OUTSTD_LOGIC);
ENDENTITYarictl;
ARCHITECTUREART5OFarictlIS
SIGNALCNT4B:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
RSTALL<=START;
PROCESS(CLK,START)
BEGIN
IFSTART='1'THENCNT4B<="0000";
ELSIFCLK'EVENTANDCLK='1'THEN
IFCNT4B<8THEN
CNT4B<=CNT4B+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK,CNT4B,START)
BEGIN
IFSTART='0'THEN
IFCNT4B<8THEN
CLKOUT<=CLK;ARIEND<='0';
ELSECLKOUT<='0';
ARIEND<='1';
ENDIF;
ELSECLKOUT<=CLK;ARIEND<='0';
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART5;
时序仿真图:
四、实验数据记录及结果
实验电路图:
引脚分布图:
仿真结果:
进行仿真时,先分别将A,B置数,之后将置入的数据锁存,摁下控制CLK的按
钮进行计算,当最左边灯亮起时则为运算结束,左边灯为结果。
上图为2*2结果,结果为0100
五、心得体会
通过这次课程设计,使我们可以更熟练地使用QuartusⅡ绘制原理图,通
过利用自己所学的知识,设计出具有一定功能的器件,例如本次的8位乘法器,
加深了我们对于知识的理解,为以后的学习和实践打下了良好的基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 八位 硬件 乘法器