《EDA大作业Quartus II简易计算器实验报告.pdf》由会员分享,可在线阅读,更多相关《EDA大作业Quartus II简易计算器实验报告.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验报告实验报告简易计算器简易计算器目录:目录:一、实验目的.1二、实验任务.1三、电路设计及仿真.21.结构设计图示如下:.22.设计描述.23.一位全加器:.24.四位全加器:.25.补码器.36.四位加减器.47.八位全加器.58.乘法器.59.整体电路:.6四、实验总结.71.实验收获:.82.实验中出现的问题及解决:.8一、实验目的一、实验目的1.学习面向可编程器件(FPGA)的简单数字系统的设计流程。2.熟练掌握 EDA 设计软件 Quartus II 的原理图输入方式和层次化设计模式。3.熟悉实验装置实验箱。二、实验任务二、实验任务1.设计 1 位全加器,并将其封装成1 位全加器
2、模块,仿真验证运算结果;2.设计 4 位加/减运算器。用封装好的 1 位全加器模块组成成4 位加/减运算器。仿真验证运算结果;3.以全加器为基础设计一个 4 位乘法器并封装成乘法器模块,输出显示乘积和正负数标志。仿真验证运算结果;4.使用已生成的器件模块为基础设计一个简易计算器,根据控制端的状态,完成加、减、乘法运算,用十进制显示运算结果;用发光二极管显示负数标志。仿真验证运算结果;即实现如下设计:三、电路设计及仿真三、电路设计及仿真1.结构设计图示如下:2.设计描述利用门电路组合成 1 位全加器,封装;调用 1 位全加器组合 4 位全加器和 4 位补码全加器(实现补码和相加),分别封装;利用
3、门电路实现补码器,封装;(可改进使用 4 位全加器实现,见下);调用 4 位补码全加器和补码器实现4 位加减器;调用 4 位全加器实现 8 位全加器,封装;调用 8 位全加器实现乘法器;译码(二进制码BCD 码);组合 4 位加减器和乘法器成简易计算器;3.一位全加器:利用门电路组合而成 4 位全加器;电路图如下:将其封装成 1 位全加器模块。4.四位全加器:利用 1 位全加器模块搭建4 位补码全加器(实现补码后相加),电路如下:将其封装成 4 位补码全加器模块。仿真波形:5.补码器根据真值表可得如下表达式:F=K COH=KCOR3=(KCO)S3+(S3(S2S1S0)(KCO)R2=(K
4、CO)S2+(S2(S1S0)(KCO)R1=(KCO)S1+(S1S0)(KCO)R0=(K CO)S0+(K CO)=S0;其中 K,CO,S3,S2,S1,S0 的含义由四位补码全加器表明;F 表示结果的符号;H,R3,R2,R1,R0 依次表示运算结果的从高到低位;R3,R2,R1,R0 具有高度对称性;利用门电路组合而成 4 位补码器,电路图如下:将其封装成 4 位补码器模块。改进说明:改进说明:直接根据由F=K CO得到的符号位,用类似运算前求补码的方式求结果的补码;即令原先 A3,A2,A1,A0 输入端都等于 0,将S3,S2,S1,S0 接入原先 B3,B2,B1,B0 输入
5、端;F(由F=K CO得到)接入原先K 输入端;便可通过4 位全加器实现求补码运算。即得到如下电路(求补码时取CO 输出端接运算结果的最高位H):6.四位加减器调用 4 位补码全加器和 4 位补码器实现 4 位加减器,电路如下:7.八位全加器用 4 位全加器实现 8 位全加器,电路如下:将其封装成 8 位全加器模块,供乘法器使用。8.乘法器根据错位相加法原理利用8 位全加器模块组合而成乘法器,电路如下:将其封装成乘法器模块,供简易计算器调用。仿真波形:9.整体电路:将 4 位加减器和乘法器组合起来,根据控制端的状态,完成加、减、乘法运算;将模块电路输出的二进制码转换为BCD 码输出;整体电路如
6、下:功能仿真波形:时序仿真波形:四、实验总结四、实验总结1.1.实验收获:实验收获:通过在 Quartus II 上用门电路搭建和组合原理图并实现封装调用,掌握了层次化的设计模式和由小到大、由简单到复杂的设计流程;掌握了引脚锁定,功能下载的方法,熟悉了实验装置实验箱的操作方法,并能通过开关、按键输入,数码管、二极管输出来验证简易计算器的运算结果是否正确。2.2.实验中出现的问题及解决:实验中出现的问题及解决:首先遇到的问题是封装后调用出错的问题,即在新建的工程文件中新建原理图,调用之前封装的模块,但编译不能通过。但将工程放在同一文件夹下即可避免此问题。出错原因是封装后的模块的原理图不再当前文件
7、夹下。最后采用将封装模块和原理图文件都拷贝到需要此模块的文件夹下,在新建工程时添加.bdf 文件即可。实现 4 位加减运算器时借鉴组合电路设计实验中2 位加减运算器的设计方法。但需要考虑到最后将补码转换为原码的方法。方法a 采用门单路实现,较复杂;方法b仿照运算前取补码的方式,将补码相加后的结果和符号类比输入的加数和符号,同时被加数位全部置 0,即可实现求补码运算。由于忽视实验指导中的要求,最后将二进制码转化为BCD 码。故开始没有转化,在实验中只能得到 10 以下的正确结果。最后利用 74185 及其组合电路将运算器输出的结果转化为 BCD 码,再接到数码管上,便能得到正确结果。时序仿真时,
8、由于设置的波形不合理,造成输出波形不断跳变而无法判断输出结果的问题原因是由于传输延时时间和周期同等数量级大小,致使输出尚未稳定时输入即发生变化,故输出不断跳变。最后将周期扩大为传输延迟时间的20 倍左右,输出就能够保持一定的稳定时间,便可清晰地观察到出输出结果,用于验证时序仿真下运算结果的正确性。乘法运算时由于没考虑到0 参与运算时符号的特殊处理,造成出现 0 x 0 或 0 x某数或某数 x 0=-0 的错误结果。最后通过检查乘法电路,将两数输入出现至少有一个为 0 时的情况的输出符号位直接置0 即可。总之,此次 EDA 实验通过利用组合电路知识实现门电路、时序和功能仿真、在实验箱上验证功能的过程,并发现和解决其中出现的问题,初步掌握了面向可编程器件(FPGA)的简单数字系统的设计方法。