- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
简单计算器
一、设计分析
1、功能描述
设计一个简单0-9数之间的加、减、乘法运算的计算器,,输入和输出均可以显示在数码管上。
2、实现工具
1、用VHDL语言文本形式输入;
2、maxplusII行语言编写时序仿真和综合。
二、设计思想
采用自顶向下的设计方式,分层进行设计。设计分为五个模块进行;
计算器模块、八位二进制数转化成8421BCD码模块,四选一数据选择器模块,七段显示译码器模块、
模4计数器模块、模8计数器块、3—8译码器块。顶层设计可以完全独立于目标器件芯片物理结构
的硬件描述语言。使用VHDL模型在所综合级别上对硬件设计进行说明、建模和仿真。
1、顶层原原理框图
2、具体实现
1、计算器模块、
2、八位二进制数转化成8421BCD码模块
3、四选一数据选择器模块
4、七段显示译码器模块
5、模4计数器模块
6、模8计数器块
7、3—8译码器块
三、设计过程
1、建立工程
建立一个Project,命名为jiandanjisuanqi。将各个模块生成的文件放在同一个文件夹下。
2、文本输入
将各个模块的VHDL代码输入,保存并综合。
3、仿真
建立各个模块的gdf图,设置输入波形并仿真。
4、顶层原理图输入
利用各个模块生成的sym文件建立顶层原理图,编译并仿真。
5、硬件实现
实验室提供的器件为FLEX10K,型号为EPF10K10LC84-4,将文件下载到器件当中,在实验箱中进
行模拟。
四、整体框图
五、VHDL部分代码及说明
1、计算器模块、
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entityjisuanqiis
Port(a,b:inSTD_LOGIC_VECTOR(3downto0);
sel:inSTD_LOGIC_VECTOR(1downto0);加减乘控制端
s:outSTD_LOGIC_VECTOR(7downto0));
endjisuanqi;
architectureBehavioralofjisuanqiis
signalq1,q2:STD_LOGIC_VECTOR(3downto0);
signalq3:STD_LOGIC_VECTOR(7downto0);
signalq4:STD_LOGIC_VECTOR(1downto0);
begin
q1=a;
q2=b;
q4=sel;
process(q4,q3)
begin
caseq4iscaseq4is
加减乘算法
q3=q1+q2;
s=q3;s=q3;
if(q1q2)then
q3=q1-q2;
s=q3;
else
q3=q2-q1;
s=q3;
endif;
q3=q1*q2;
s=q3;s=q3;
q3=q1*q2;
s=q3;
whenothers=whenothers=
s=q3;
endcase;
endprocess;
endBehavioral;
2、八位二进制数转化成8421BCD码模块
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitybcdis
Port(s:inSTD_LOGIC_VECTOR(7downto0);
a:outSTD_LOGIC_VECTOR(3downto0);
b:outSTD_LOGIC_VECTOR(3downto0));
endbcd;
architectureBehavioralofbcdis
文档评论(0)