FPGA一位全加器设计实验报告

  • 格式:doc
  • 大小:92.00 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目: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.采用层次结构法描述电路有什么样的优点

答:可以大大降低设计成本,缩短设计周期;极大地简化设计文档的管理;提高大规模系统电子设计的自动化程度;设计者拥有完全的自主权,再无受制于人之虞;良好的可移植与可测试性,为系统开发提供可靠的保证;能将所有设计环节纳入统一的自顶向下的设计方案中;在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试。