8位移位课程设计.docx
- 文档编号:27148027
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:18
- 大小:253.96KB
8位移位课程设计.docx
《8位移位课程设计.docx》由会员分享,可在线阅读,更多相关《8位移位课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
8位移位课程设计
目录
一、概述······························································3
二、设计任务与要求
1、设计任务····················································3
2、设计要求····················································3
三、总体框图·························································3
1、模块功能····················································4
2、设计方案····················································4
3、设计思路····················································4
四、选择器件·························································5
五、功能模块·························································5
六、总体设计电路图
1、顶层电路原理图·········································16
2、工作原理··················································16
3、仿真结果及分析·········································17
4、管脚分配图···············································17
5、硬件验证··················································18
七、设计心得························································19
8位移位相加硬件乘法器设计
一、概述
移位相加硬件乘法器是由8位加法器构成的以时序方式设计的8位乘法器,通过逐项移位相加原理实现。
二、设计任务与要求
1.根据给出的乘法器逻辑原理图及其各模块的VHDL描述,在QUARTUS2上完成全部设计,包括编辑、编译、综合和仿真操作等。
以9FH乘以FDH为例,进行仿真,对仿真波形做出详细解释,包括对8个工作时钟节拍中,每一节拍乘法操作的方式和结果,对波形图给以详细解释说明,根据顶层设计,结合图,画出乘法器的详细的电路原理框图。
2.编程下载,进行实验验证。
详细观察每一节拍的运算结果,并与方针结果进行比较。
3.乘法时钟连接试验系统上的连续脉冲,如CLOCK0,设计一个此乘法器的控制的模块,接受试验系统上的连续脉冲,如CLOCK0,当给定启动或清零信号后,能自动发出CLK信号驱动乘法运算,当8个连续脉冲自动停止。
4.设计一个纯组合电路的8*8等于16位的乘法器。
三、总体框图
图
(1)
1、模块功能:
A、运算控制模块:
控制电路的起始和终止。
B、8位右移寄存器:
在时钟脉冲的作用下,高位寄存器的数码送给低位寄存器,作为低位寄存器的次态输出;每输入一个时钟脉冲,寄存器的数就顺序向右移动一位。
C、1位乘法器。
D、8位加法器。
E、16位锁存器/右移寄存器。
2、设计方案:
此设计是由八位加法器构成的以时序逻辑方式设计的八位乘法器,它的核心器件是八位加法器,所以关键是设计好八位加法器。
方案一:
八位直接宽位加法器,它的速度较快,但十分耗费硬件资源,对于工业化设计是不合理的。
方案二:
由两个四位加法器组合八位加法器,其中四位加法器是四位二进制并行加法器,它的原理简单,资源利用率和进位速度方面都比较好。
综合各方面的考虑,决定采用方案二。
3、设计思路:
纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由FPGA构成实验系统后,可以很容易的用ASIC大型集成芯片来完成,性价比高,可操作性强。
其乘法原理是:
乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。
四、选择器件
1、SREG8B(8位右移寄存器);
2、ADDER8B(8位加法器);
3、ANDARITH(一位乘法器);
4、REG16B(16位锁存器);
5、ARICTL(运算控制器);
6、LED灯(显示结果);
五、功能模块
1、乘法器顶层设计模块
(1)模块图形符号及逻辑功能描述
图
(2)乘法器顶层设计模块
模块功能:
有一时钟脉冲信号CLK、START信号、两个输入端口A[7..0]、B[7..0]、一个输出端口DOUT[15..0].在START信号为低电平时,同时CLK信号在第一上升沿开始进行A[7..0]与B[7..0]进行相乘,然后输出结果。
(2)VHDL程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYMULTI8X8IS
PORT(CLK,START:
INSTD_LOGIC;
A,B:
INSTD_LOGIC_VECTOR(7DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(15DOWNTO0));
ENDMULTI8X8;
ARCHITECTURESTRUCOFMULTI8X8IS
COMPONENTARICTL
PORT(CLK,START:
INSTD_LOGIC;
CLKOUT,RSTALL:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTANDARITH
PORT(ABIN:
INSTD_LOGIC;
DIN:
INSTD_LOGIC_VECTOR(7DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDCOMPONENT;
COMPONENTADDER8B
PORT(CIN:
INSTD_LOGIC;
A,B:
INSTD_LOGIC_VECTOR(7DOWNTO0);
S:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTSREG8B
PORT(CLK,LOAD:
INSTD_LOGIC;
DIN:
INSTD_LOGIC_VECTOR(7DOWNTO0);
QB:
OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTREG16B
PORT(CLK,CLR:
INSTD_LOGIC;
D:
INSTD_LOGIC_VECTOR(8DOWNTO0);
Q:
OUTSTD_LOGIC_VECTOR(15DOWNTO0));
ENDCOMPONENT;
SIGNALGNDINT,INTCLK,RSTALL,NEWSTART,QB:
STD_LOGIC;
SIGNALANDSD:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALDTBIN:
STD_LOGIC_VECTOR(8DOWNTO0);
SIGNALDTBOUT:
STD_LOGIC_VECTOR(15DOWNTO0);
BEGIN
DOUT<=DTBOUT;GNDINT<='0';
PROCESS(CLK,START)
BEGIN
IFSTART='1'THENNEWSTART<='1';
ELSIFCLK='0'THENNEWSTART<='0';ENDIF;
ENDPROCESS;
ENDSTRUC;
(3)仿真结果及其分析
图(3)
仿真分析:
当开始START信号发出后,Mmax在hkey的每个上升沿处移位,输出0~F,仿真正确!
2、8位右移寄存器
(1)模块图形符号及其逻辑功能描述
图(4)8位右移寄存器
该模块的功能:
右移寄存器,随着每一时钟节拍,最低位在前,由低到高位依次移出。
(2)VHDL程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYSREG8BIS
PORT(CLK,LOAD:
INSTD_LOGIC;
DINA:
INSTD_LOGIC_VECTOR(7DOWNTO0);
QB:
OUTSTD_LOGIC);
ENDSREG8B;
ARCHITECTUREbehavOFSREG8BIS
SIGNALREG8:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
PROCESS(CLK,LOAD)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFLOAD='1'THENREG8<=DINA;
ELSEREG8(6DOWNTO0)<=REG8(7DOWNTO1);
ENDIF;
ENDIF;
ENDPROCESS;
QB<=REG8(0);
ENDbehav;
(3)仿真结果及其分析
图(5)
仿真分析:
在时钟脉冲的作用下,高位寄存器的数码送给低位寄存器,作为低位寄存器的次态输出;每输入一个时钟脉冲,寄存器的数据就顺序向右移动一位。
3、8位加法器
(1)模块图形符号及其逻辑功能描述
图(6)8位加法器
ADDER8B的功能:
它是一个8位加法器,有三个输入端口(CIN、A[7..0]、B[7..0],其中A[7..0]是被乘数,B[7..0]是乘数,此模块起到使两数相加的作用;即在加法的基础才能相乘,因此此加法器是不可缺少的)
(2)VHDL程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYADDER8BIS
PORT(CIN:
INSTD_LOGIC;
A,B:
INSTD_LOGIC_VECTOR(7DOWNTO0);
S:
OUTSTD_LOGIC_VECTOR(8DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDADDER8B;
ARCHITECTUREBEHAVOFADDER8BIS
SIGNALSINT,AA,BB:
STD_LOGIC_VECTOR(8DOWNTO0);
BEGIN
AA<='0'&A;BB<='0'&B;SINT<=AA+BB+CIN;S<=SINT(8DOWNTO0);
COUT<=SINT(8);
ENDBEHAV;
(3)仿真结果及其分析
图(7)
仿真分析:
8位乘数在同一节拍进入加法器与上一次锁存在锁存器中的高八位进行相加。
4、1位乘法器
(1)模块图形符号及其逻辑功能描述
图(8)一位乘法器
逻辑功能:
使输入的数相乘的乘法器。
(2)VHDL程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYANDARITHIS
PORT(ABIN:
INSTD_LOGIC;
DIN:
INSTD_LOGIC_VECTOR(7DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
END;
ARCHITECTUREBEHAVOFANDARITHIS
BEGIN
PROCESS(ABIN,DIN)
BEGIN
FORIIN0TO7LOOP
DOUT(I)<=DIN(I)ANDABIN;
ENDLOOP;
ENDPROCESS;
ENDBEHAV;
(3)仿真结果及其分析
图(9)
仿真分析:
当ABIN为高电平时输出计算结果,当它为低电平时清零。
仿真分析正确。
5、16位锁存器/右移寄存器
(1)模块图形符号及其逻辑功能描述
图(10)16位锁存器
逻辑功能:
锁存输进的数字,等上一时钟节拍的数与之相加。
(2)VHDL程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYREG16BIS
PORT(CLK,CLR:
INSTD_LOGIC;
D:
INSTD_LOGIC_VECTOR(8DOWNTO0);
Q:
OUTSTD_LOGIC_VECTOR(15DOWNTO0));
ENDREG16B;
ARCHITECTUREBEHAVOFREG16BIS
SIGNALR16S:
STD_LOGIC_VECTOR(15DOWNTO0);
BEGIN
PROCESS(CLK,CLR)
BEGIN
IFCLR='1'THENR16S<="0000000000000000";
ELSIFCLK'EVENTANDCLK='1'THEN
R16S(6DOWNTO0)<=R16S(7DOWNTO1);
R16S(15DOWNTO7)<=D;
ENDIF;
ENDPROCESS;
Q<=R16S;
ENDBEHAV;
(3)仿真结果及其分析
图(11)
仿真分析:
经加法器后的数和下一个时钟节拍的上升沿锁进16位锁存器。
6、运算控制模块
(1)模块图形符号及其逻辑描述
图(12)运算控制器
逻辑功能:
控制输入和输出运算。
(2)VHDL程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYARICTLIS
PORT(CLK,START:
INSTD_LOGIC;
CLKOUT,RSTALL:
OUTSTD_LOGIC);
ENDARICTL;
ARCHITECTUREBEHAVOFARICTLIS
SIGNALCNT4B:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK,START)
BEGIN
RSTALL<=START;
IFSTART='1'THENCNT4B<="0000";
ELSIFCLK'EVENTANDCLK='1'THEN
IFCNT4B<8THENCNT4B<=CNT4B+1;ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK,CNT4B,START)
BEGIN
IFSTART='0'THEN
IFCNT4B<8THENCLKOUT<=CLK;
ELSECLKOUT<='0';ENDIF;
ELSECLKOUT<=CLK;ENDIF;
ENDPROCESS;
ENDBEHAV;
(3)仿真结果及其分析
图(13)
仿真分析:
当开始START信号发出后,RSTALL重置,CLKOUT才原样输出CLK信号,起到控制器件工作的作用!
仿真正确!
六、总体设计电路图
1、顶层电路原理图
图(14)
2、工作原理:
本乘法器由五个模块组成,其中ARICTL是乘法运算控制电路,它的START信号上的上跳沿与高电平有2个功能,即16位寄存器清零和被乘数A[7...0]向移位寄存器SREG8B加载;它的低电平则作为乘法使能信号,乘法时钟信号从ARICTL的CLK输入。
当被乘数被加载于8位右移寄存器SREG8B后,随着每一时钟节拍,最低位在前,由低位至高位逐位移出。
当为1时,一位乘法器ANDARITH打开,8位乘数B[7..0]在同一节拍进入8位加法器,与上一次锁存在16位锁存器REG16B中的高8位进行相加,其和在下一时钟节拍的上升沿被锁进此锁存器。
而当被乘数的移出位为0时,一位乘法器全零输出。
如此往复,直至8个时钟脉冲后,由ARICTL的控制,乘法运算过程自动中止,ARIEND输出高电平,乘法结束。
此时REG16B的输出即为最后的乘积。
3、仿真结果及其分析
图(15)
仿真分析:
两个十六进制数FD和9F相乘,当开始脉冲加进时,乘法器开始工作,经过八个时钟信号的上升沿,计算出结果!
理论上应等于9D23,实验结果也等于9D23,与理论吻合,仿真正确!
4、管脚分配图
图(16)
5、硬件验证:
该实验是用LED灯显示实验结果,其中输入端A[7..0]、B[7..0]是用数据线作为管脚分配,用16个拨码键作为输入端输入10011111和11111101两数,显示灯用十二个逐一显示结果,依次显示为11111000000/011111000000/001101100000/00010011000/000000011000/011110001100/101101000110/101100100011、到第八个脉冲得到最后结果转换成十六进制为9D23即为最后结果。
验证结果与理论值相同,及结果正确。
及结果正确
七、心得体会
在这两周里我们再次熟悉和增强了对VHDL语言的基本知识,熟悉利用VHDL语言对常用的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来。
VHDL硬件描述语言打破了硬件和软件设计人员之间互不干涉的界限,可以使用语言的形式来进行数字系统的硬件结构、行为的描述、直接设计数字电路硬件系统。
通过编程,下载后,该芯片已经具备了原来需要使用复杂的数字电路实现的功能。
更加了解和加深了对编程和调试程序的技巧,进一步提高了上机动手能力,培养了使用设计综合电路的能力,养成了提供文档资料的习惯和规范编程的思想。
在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路,在设计课程过程中遇到问题是很正常的,但应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
VHDL语言既具有高级编程语言的优点,又有并行执行的特性,使设计者脱离了底层电路,而在更高的层次上考虑电路的各种时序和逻辑关系。
这样设计者可以采用自顶向下的设计方法和并行工作的设计原则。
在实验中我慢慢将这一学期的实验内容联系在一起,并通过自己的努力和同学的帮助成功完成了字符发生器的设计。
为此我感到很高兴,而且,同学们各式各样的设计也让我对自己的专业有了更深刻的理解。
比如:
电梯控制、篮球计时、音乐盒等等,这些设计让我们明白,只要我们努力学习,就可以把我们的知识运用到实际中。
这次的课程设计也让我学到了不少东西,同学们的设计思路也让我大开眼界,希望在明年仍然可以进行这样的设计实验。
在此也谢谢老师对我们的指导。
通过电子设计的数字部分EDA设计,在设计过程中,我们遇到了各种问题,在老师的指导下和我们自己的努力,克服了各种问题,最后得到了成功。
但是我也发现了一些问题,我们无法解决。
如:
在ARICTL控制器模块中有一个警告,还有在适配后得到频率高的执行速度还要慢一些等等。
总之,这次设计使我掌握了很多有用的经验,也学到了很多在书本上学不到知识,为以后的学习和工作打下坚实的基础。
最后,我衷心地感谢课程设计期间指导我的老师。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 位移 课程设计