FPGA一位全加器设计实验报告
- 格式:doc
- 大小:92.00 KB
- 文档页数:4
题目:1位全加器的设计
一.实验目的
1.熟悉QUARTUSII软件的使用;
2.熟悉实验硬件平台的使用;
3.掌握利用层次结构描述法设计电路。
二.实验原理
由于一位全加器可由两个一位半加器与一个或门构成,首先设计半加器电路,将其打包为半加器模块;然后在顶层调用半加器模块组成全加器电路;最后将全加器电路编译下载到实验箱,其中ain,bin,cin信号可采用实
验箱上SW0,SW1,SW2键作为输入,并将输
入的信号连接到红色LED管
LEDR0,LEDR1,LEDR2上便于观察,sum,cout
信号采用绿色发光二极管LEDG0,LEDG1来
显示。
三.实验步骤
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 & b;
assign s=a ^ b;
Endmodule
3.保存半加器程序为,进行功能仿真、时序仿真,验证设计的正确性。
其初始值、功能仿真波形和时序仿真波形分别如下所示
4.选择菜单File→Create/Update→Create Symbol Files for current file,创建半加器模块;
5.新建一原理图文件,在原理图中调用半加器、或门模块和输入,输出引脚,按照图1所示连接电路。并将输入ain,bin,cin连接到FPGA的输出端,便于观察。完成后另保存full_adder。
电路图如下
6.对设计进行全编译,锁定引脚,然后分别进行功能与时序仿真,验证全加器的逻辑功能。其初始值、功能仿真波形和时序仿真波形分别如下所示
7.下载
采用JATG方式进行下载,通过SW0,SW1,SW2输入,观察LEDR[0],LEDR[1],LEDR[2],LEDG[0],LEDG[1]亮灭验证全加器的逻辑功能。波动波动开关并观察红色、绿色LED的变化,验证设计的正确性。结果验证正确。
四.思考题
1.为什么在实验步骤3中,将半加器保存为half_adder,可否保存为full_adder
答:不能,因为在程序中,module half_adder(a,b,s,co)已经给程序定义了一个名字叫half_adder,VHDL语言中,要求程序名与实体名一致,因此保存的文件名必须和程序名一致,否则在编译程序的时候就会出现错误。
2.对电路进行功能仿真与时序仿真时,发现二者有什么样的区别
答:功能仿真就是将综合后的VHDL网表文件再送到VHDL仿真器中所进行仿真。这时的仿真仅对VHDL描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及具体器件特性,如延时特性。时序仿真就是将布线器/适配器所产生的VHDL 网表文件送到VHDL仿真器中所进行的仿真。该仿真已将器件特性考虑进去了,因此可以得到精确的时序仿真结果。
总而言之,功能仿真不需要综合,所以也不需要延时,时序仿真要走完整个电路要计算各个模块的时延,所以要延时。
3.什么要进行引脚锁定
答:每种芯片的不同引脚(pin)对应着不同的功能。比如,有的引脚对应着发光二极管,有的是数码管的控制端,有的是输入时钟;FPGA一般都有几百个管脚,我们的设计也会有很多管脚,进行引脚锁定,编引脚接到到了FPGA的哪一个管脚上,如果不进行引脚锁定,编译,下载后就无法知道你设计的模块中的哪一个信号练到了FPGA的哪一个管脚上。
如果只是进行编译,综合,并不下载,就不需要引脚锁定,如果想把程序编译综合后下载到FPGA去运行,就必须进行引脚锁定,锁定后重新编译综合,然后下载,验证。
4.采用层次结构法描述电路有什么样的优点
答:可以大大降低设计成本,缩短设计周期;极大地简化设计文档的管理;提高大规模系统电子设计的自动化程度;设计者拥有完全的自主权,再无受制于人之虞;良好的可移植与可测试性,为系统开发提供可靠的保证;能将所有设计环节纳入统一的自顶向下的设计方案中;在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试。