西南科技大学西南科技大学 实实 验验 报报 告告FPGAFPGA现代数字系统设计现代数字系统设计实验题目:含异步清零和同步使能的4位加法计数器 专业班级: 学生姓名: 学生学号: 实验时间: 指导教师: 实验一实验一 1 位全加器的设计位全加器的设计一、 实验目的1.熟悉 QUARTUSII 软件的使用;2.熟悉实验箱的使用;3.掌握利用层次结构描述法设计电路二、 实验原理及说明由数字电路知识可知,一位全加器可由两个一位半加器与一个或门构成,其原理图如图 1 所示该设计利用层次结构描述法,首先设计半加器电路,将其打包为半加器模块;然后在顶层调用半加器模块组成全加器电路;最后将全加器电路编译下载到实验箱,其中ain,bin,cin 信号可采用实验箱上 SW0,SW1,SW2 键作为输入,并将输入的信号连接到红色LED 管 LEDR0,LEDR1,LEDR2 上便于观察,sum,cout 信号采用绿色发光二极管LEDG0,LEDG1 来显示。
图 1.1 全加器原理图三、 实验步骤1.在 QUARTUSII 软件下创建一工程,工程名为 full_adder,芯片名为EP2C35F672C6 注意工程路径放到指定的数据文件夹,不可放到软件安装目录中;2.新建 Verilog 语言文件,输入如下半加器 Verilog 语言源程序;module half_adder(a,b,s,co);input a,b;output s,co;wire s,co;assign co=a assign s=a ^ b;endmodule3.保存半加器程序为 half_adder.v,进行功能仿真、时序仿真,验证设计的正确性4.选择菜单 File→Create/Update→Create Symbol Files for current file,创建半加器模块5.新建一原理图文件,在原理图中调用半加器、或门模块和输入,输出引脚,按照图 1 所示连接电路并将输入 ain,bin,cin 连接到 FPGA 的输出端,便于观察完成后另保存 full_adder6.对设计进行全编译,如出现错误请按照错误提示进行修改7.分别进行功能与时序仿真,验证全加器的逻辑功能。
8.锁定引脚 采用 JATG 方式进行下载,通过 SW0,SW1,SW2 输入,观察的 LEDR[0],LEDR[1], LEDR[2],LEDG[0],LEDG[1]亮灭验证全加器的逻辑功能 4、实验结果与分析1、半加器仿真结果半加器所加波形:时间仿真波形:功能仿真波形:2、全加器仿真结果全加器所加波形:时间仿真波形:功能仿真波形:五、思考题1、为什么在实验步骤 3 中,将半加器保存为 half_adder,可否保存为 full_adder?答:不能保存为 full_adder,因为 VHDL 语言中,要求程序名与实体名一致,否则会出现错误;而且这个程序是生成半加器模块的程序,统一命名对模块理解也容易得多2、对电路进行功能仿真与时序仿真时,发现二者有什么样的区别?答:功能仿真就是将综合后的 VHDL 网表文件再送到 VHDL 仿真器中所进行仿真这时的 仿真仅对 VHDL 描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及具体器件特性,如延时特性时序仿真就是将布线器/适配器所产生的 VHDL 网表文件送到 VHDL 仿真器中所进行的仿真该仿真已将器件特性考虑进去了,因此可以得到精确的时序仿真结果。
3、为什么要进行引脚锁定?答:进行引脚锁定,是为了对硬件进行检测,就是 FPGA/CPLD 直接应用与系统设计中,将下载文件下载到芯片后,对系统的设计进行的功能检测的过程4、采用层次结构法描述电路有什么样的优点?答:可以大大降低设计成本,缩短设计周期;极大地简化设计文档的管理;提高大规模系统电子设计的自动化程度;设计者拥有完全的自主权,再无受制于人之虞;良好的可移植与可测试性,为系统开发提供可靠的保证;能将所有设计环节纳入统一的自顶向下的设计方案中;在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试6、总结FPGA这门课对我们来说是全新的,QUARTUSII软件也是新的,不过好在这次实验与详细的PPT给我们作参考,而李老师也详细讲述了每个步骤执行的意义,同时又示范给我们看,不会的问题,在她的帮助下,也得到了解决,真的很感谢李老师的帮助,让我们学习软件有了很大的动力希望我们在李老师的帮助下,有更快地成长。