- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
有符号5位整数除法器的设计与制作
有符号5位整数除法器设计与制作
1.课程设计的性质、目的和任务
创新精神和实践能力二者之中,实践能力是基础和根本。这是由于创新基于实践、源于实践,实践出真知,实践检验真理。实践活动是创新的源泉,也是人才成长的必由之路。
通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。
2. 课程设计基本要求
掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。
3. 设计课题要求
设计一个两个五位数相除的整数除法器。用发光二极管显示输入数值,用7段显示器显示结果十进制结果。除数和被除数分两次输入,在输入除数和被除数时,要求显示十进制输入数据。采用分时显示方式进行,可参见计算器的显示功能。
4. 设计内容:
有符号5位整数除法器设计与制作
根据系统设计要求,系统设计采用自顶向下的设计方法。顶层设计采用原理图设计方式,系统的整体组装设计原理图如下图所示,它由除法器输入模块、除法实现模块和显示译码模块三部分组成。
4.1除法器输入模块
本除法器的被除数和除数(有符号5位整数)分两次输入,设置两个标志位A和B,A和B的初值均为0。当A=1,B=0时,输入为被除数;当A=1,B=1时,输入为除数。将被除数和除数分别送至显示电路,以十进制形式显示,同时送入除法实现电路进行除法运算。
输入模块的源程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SHURU1 IS
PORT(LOADA,LOADB,CLK:IN STD_LOGIC;
DIN:IN STD_LOGIC_VECTOR(4 DOWNTO 0);
A,B:OUT STD_LOGIC_VECTOR(4 DOWNTO 0));
END SHURU1;
ARCHITECTURE BEHAVE OF SHURU1 IS
BEGIN
PROCESS(LOADA,LOADB,DIN,CLK)
BEGIN
IF( CLKEVENT AND CLK=1) THEN
IF (LOADA=1AND LOADB=0)THEN
A=DIN;
END IF;
IF (LOADA=1 AND LOADB=1)THEN
B=DIN;
END IF;
END IF;
END PROCESS;
END BEHAVE;
生成模块如图(1-1)所示:
如图(1-1)
本模块的仿真波形如图(1-2)所示:
如图(1-2)
4.2 除法实现模块
本模块作用是将输入的被除数和除数进行除法运算,输出商和余数。
计算前在A和B端口输入被除数和除数,然后在Load线上送高电平,把数据存到除法计算电路内部,然后经过若干个时钟周期,计算出商和余数,并在SH和YU端输出。
其实现方法是,将除法器分为两个状态:等待状态与运算状态。开始时除法器处于等待状态,在该状态,在每一时钟上升沿,采样Load信号线,若是低电平,则仍处于等待状态,如果采样到高电平,除法器读取A,B数据线上的输入数据,保存到内部寄存器a_r,b_r,置sh_r为0,yu_r为a_r,判断除数是否为零,若不为零则进入运算状态。
在运算状态,设置符号位寄存器fu_r,将a_r和b_r的最高位(即符号位)异或后赋给fu_r。在每一时钟上升沿,除法器先比较yu_r,b_r低四位的大小,若yu_r大于等于b_r,则sh_r增加一,yu_r = yu_r – b_r(均为低四位),仍处于运算状态。若yu_r小于b_r的低四位,则说明运算已经完成,再将sh_r、yu_r填上符号位作为结果输出到SH,YU数据线,再次回到等待状态,等待下一次的除法运算。
除法实现模块的源程序所下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CHUFA IS
PORT(CLK,L
文档评论(0)