版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字逻辑与数字系统课程设计简单计算器简单计算器一、设计分析1、功能描述设计一个简单0-9数之间的加、减、乘法运算的计算器,,输入和输出均可以显示在数码管上。2、实现工具1、用VHDL语言文本形式输入;2、maxplusII行语言编写时序仿真和综合。二、设计思想采用自顶向下的设计方式,分层进行设计。设计分为五个模块进行;计算器模块、八位二进制数转化成8421BCD码模块,四选一数据选择器模块,七段显示译码器模块、模4计数器模块、模8计数器块、3—8译码器块。顶层设计可以完全独立于目标器件芯片物理结构的硬件描述语言。使用VHDL模型在所综合级别上对硬件设计进行说明、建模和仿真。1、顶层原原理框图2、具体实现1、计算器模块、2、八位二进制数转化成8421BCD码模块数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第1页。数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第1页。3、四选一数据选择器模块4、七段显示译码器模块5、模4计数器模块6、模8计数器块7、3—8译码器块三、设计过程1、建立工程建立一个Project,命名为jiandanjisuanqi。将各个模块生成的文件放在同一个文件夹下。2、文本输入将各个模块的VHDL代码输入,保存并综合。3、仿真建立各个模块的gdf图,设置输入波形并仿真。4、顶层原理图输入利用各个模块生成的sym文件建立顶层原理图,编译并仿真。数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第2页。5、硬件实现数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第2页。实验室提供的器件为FLEX10K,型号为EPF10K10LC84-4,将文件下载到器件当中,在实验箱中进行模拟。四、整体框图五、VHDL部分代码及说明1、计算器模块、libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entityjisuanqiisPort(a,b:inSTD_LOGIC_VECTOR(3downto0);sel:inSTD_LOGIC_VECTOR(1downto0);-----加减乘控制端s:outSTD_LOGIC_VECTOR(7downto0));endjisuanqi;architectureBehavioralofjisuanqiissignalq1,q2:STD_LOGIC_VECTOR(3downto0);signalq3:STD_LOGIC_VECTOR(7downto0);signalq4:STD_LOGIC_VECTOR(1downto0);beginq1<=a;q2<=b;q4<=sel;process(q4,q3)begincaseq4iswhen"00"=>----加减乘算法q3<=q1+q2;s<=q3;when"01"=>数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第3页。if(q1>q2)then数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第3页。q3<=q1-q2;s<=q3;elseq3<=q2-q1;s<=q3;endif;when"10"=>q3<=q1*q2;s<=q3;when"11"=>q3<=q1*q2;s<=q3;whenothers=>q3<="00000000";s<=q3;endcase;endprocess;endBehavioral;2、八位二进制数转化成8421BCD码模块libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitybcdisPort(s:inSTD_LOGIC_VECTOR(7downto0);a:outSTD_LOGIC_VECTOR(3downto0);b:outSTD_LOGIC_VECTOR(3downto0));endbcd;architectureBehavioralofbcdissignalq0:STD_LOGIC_VECTOR(7downto0);signalq1:STD_LOGIC_VECTOR(3downto0);signalq2:STD_LOGIC_VECTOR(3downto0);beginprocess(s)beginq0<=s;caseq0is----把八位二进制数转化为8421BCD码when"00000000"=>q1<="0000";q2<="0000";when"00000001"=>q1<="0000";q2<="0001";数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第4页。when"00000010"=>数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第4页。q1<="0000";q2<="0010";when"00000011"=>…………….3、四选一数据选择器模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;entitymux4_1is port( d0,d1,d2,d3:instd_logic_vector(3downto0); q:outstd_logic_vector(3downto0); sel:instd_logic_vector(1downto0));endmux4_1;architecturertlofmux4_1isbeginprocess(sel) begin------实现从四个数据中选择一个出来 if(sel="00")then q<=d0; elsif(sel="01")then q<=d1; elsif(sel="10")then q<=d2; elsif(sel="11")then q<=d3; endif; endprocess;endrtl;4、七段显示译码器模块libraryieee;useieee.std_logic_1164.all;entitybcd_7disisport(bcdm:instd_logic_vector(3downto0);a,b,c,d,e,f,g:outstd_logic);endbcd_7dis;architectureartofbcd_7disissignalw:std_logic_vector(6downto0);beginprocess(bcdm)begina<=w(6);b<=w(5);c<=w(4);d<=w(3);e<=w(2);f<=w(1);g<=w(0);casebcdmis-----实现8421码转化为2进制码的转换数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第5页。when"0000"=>w<="1111110";数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第5页。when"0001"=>w<="0110000";when"0010"=>w<="1101101";when"0011"=>w<="1111001";when"0100"=>w<="0110011";when"0101"=>w<="1011011";when"0110"=>w<="1011111";when"0111"=>w<="1110000";when"1000"=>w<="1111111";when"1001"=>w<="1111011";when"1100"=>w<="0000001";whenothers=>w<="0000000";endcase;endprocess;endart;5、模4计数器模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;entitymo4is port( q:outstd_logic_vector(1downto0); clk:instd_logic);endmo4;architecturertlofmo4issignalqcl:std_logic_vector(1downto0);begin process(clk) begin----实现模为4的计数 if(clk'eventandclk='1')then if(qcl="11")then qcl<="00"; else qcl<=qcl+'1'; endif; endif; q<=qcl; endprocess;endrtl;6、模8计数器块libraryieee;useieee.std_logic_1164.all;数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第6页。useieee.std_logic_unsigned.all;数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第6页。entitycount_8isport(clk:instd_logic;ql:outstd_logic_vector(2downto0));endcount_8;architecturert1ofcount_8issignalqcl:std_logic_vector(2downto0);beginprocess(clk)begin----实现模8的计数if(clk'eventandclk='1')thenif(qcl="111")thenqcl<="000";elseqcl<=qcl+'1';endif;endif;ql<=qcl;endprocess;endrt1;7、3—8译码器块libraryieee;useieee.std_logic_1164.all;entitydecode3_8isport(d:instd_logic_vector(2downto0);y:outstd_logic_vector(7downto0));enddecode3_8;architecturert1ofdecode3_8isbeginprocess(d)begincasedis------实现3对8的译码when"000"=>y<="10000000";when"001"=>y<="01000000";when"010"=>y<="00100000";when"011"=>y<="00010000";whenothers=>y<="00000000";endcase;endprocess;endrt1;六、各模块仿真结果数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第7页。1、计算器模块数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第7页。2、八位二进制数转化成8421BCD码模块3.、四选一数据选择器模块数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第8页。4、七段显示译码器模块数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第8页。5、模4计数器模块6、模8计数器块7、3—8译码器块数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第9页。8、整体仿真数字逻辑与数字系统课程设计简单计算器全文共12页,当前为第9页。七、管脚锁定及硬件实现1、管脚锁定2、文件下载将文件下载完后在硬件实验箱中进行仿真检查。八、总结1问题及改正经过几天的学习和上,,完成了文本的输入形式简单计算器的电路,在设计过程中出现了诸多问题。首先是对VHDL语言接触的时间,小学期时间短,做课程设计感受很仓促,没有过多的时间去系统的学习这门课程。不像C++这门语言课程设计是先经过了一个学期的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营业员练习试题(一)
- 县区搬家服务合同范例
- 供暖费合同范例
- 变压器置换合同范例
- 仓库货物抵押合同范例
- 加工保密合同范例
- 公司租个人商铺合同范例
- 厨具配件订单合同范例
- 卖货物合同范例
- 代理经营授权合同范例
- 2024年辽宁医药职业学院单招职业适应性测试题库必考题
- 2024中国邮政集团限公司云南省分公司招聘158人公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- SYT 0452-2021 石油天然气金属管道焊接工艺评定-PDF解密
- (2024年)消防安全主题班会
- 做情绪的主人拒绝精神内耗
- 药学大学生职业规划
- 心理放松训练
- 客户需求及层次
- 海绵城市完整
- 力敏传感器教学课件
- 强奸罪起诉状
评论
0/150
提交评论