实验一 原理图输入方式设计数字逻辑电路
- 格式:doc
- 大小:340.50 KB
- 文档页数:6
实验一原理图输入方式设计数字逻辑电路
一、实验目的:
1、了解基本组合逻辑电路的原理及利用Quartus II 软件进行设计的一般方法。
2、熟悉Quartus II 原理图输入法的设计流程,掌握编辑、编译和仿真的方法。
3、掌握原理图的层次化设计方法。
4、了解Quartus II 软件的编程下载及引脚锁定的方法。
5、了解Quartus II宏功能模块的使用方法。
二、实验的硬件要求:
1、EDA/SOPC实验箱。
2、计算机。
三、实验原理
见附件《Quartus设计的一般步骤》、《元件例化和调用的操作步骤》、《QuartusII基于宏功能模块的设计》
四、实验内容:
1、用原理图方式设计1位二进制半加器半加器。
新建一个工程“HalfAdder”,选择芯片“Cyclone III EP3C16Q240C8”,建立原理图如图1-1,保存为“HalfAdder.BDF”。
图1-1 半加器电路图
编译工程。
建立波形文件,对半加器电路分别进行时序仿真和功能仿真,其波形如下:
图1-2半加器时序仿真波形,注意观察输出延时,以及毛刺的产生原因
图1-3半加器功能仿真波形
2、原理图层次化设计。
新建一工程,取名“FullAdder”;将上面设计的半加器“HalfAdder.BDF”复制到当前工程目录,并生成“符号元件”HalfAdder.BSF。
建立一个原理图文件,取名“FullAdder.BDF”,利用“符号元件”HalfAdder.BSF及其它元件设计全加器电路如下图:
用功能仿真测试全加器的逻辑功能。
图1-5 全加器功能仿真波形
图1-6是输入输出信号与FPGA连接示意图,图中用到了“拨档开关”作为输入,“LED
显示模块”显示输出值。表1-1是本实验连接的FPGA管脚编号。
图1-6 输入输出信号与FPGA管脚连接示意图
将sof文件下载到FPGA中进行测试。
3、 QuartusII 宏功能模块实现ROM 存储器模块。 ② 建一个原理图文件。 ②使用“MegaWizard Plug-In Manager ”向导,按图1-7的步骤定制一个32×8bit 的ROM 模块。
③建立内存初始化文件
QuartusII 能接受的LPM_ROM 中的初始化数据文件的格式有 2 种:Memory Initialization File (.mif )格式和Hexadecimal (Intel-Format )File (.hex )格式。内存初始化文件可以手工编写,也可以用其它软件生成。本例数据量较小,可以在QuartusII 中直接file →new →……Memory File →Memory Initialization File ,然后填写每个存储单元的数据(如:0~31依次递增)即可。实验中要求初始化数据为学号开始连续递增的32个数字(如学号为15,则内存数据为15~44)
图1-7 使用“MegaWizard Plug-In Manager ”定制
ROM
选择ROM 模块
内存初始化文件
④生成图1-8所示的ROM模块添加管脚,编译并仿真测试。
图1-8 测试ROM模块
4、用ROM作为流水灯数据输入,并测试
用16个LED灯可以显示出各种奇妙的显示效果,实际上是在每个时钟节拍输出16位的数据显示在LED上。需要显示的数据预先写好存储在ROM中,设置ROM中的数据就可以显示任意的图案。
按图1-7设计一个ROM存储器和一个计数器。ROM存储器位宽:16bit,容量:256个字,用LED.MIF作为初始化文件。计数器(counter)也可以用宏功能模块(在“Arithmetic”中的“LPM_COUNTER”),采用“q”为8位输出的默认设置,即可得到一个0~255的加法计数器。计数器输出作为ROM地址输入,这样可以按时钟节拍依次输出0~255各个地址的数据。
将图1-9的原理图作为顶层文件编译,按照表1-2绑定管脚,重新编译后下载到实验箱。时钟频率使用10HZ,输出端连接16个LED灯。
图1-9 ROM作为流水灯的输入测试电路
五、实验步骤:
1.首先打开Quartus II软件,新建工程。
2.按照自己的想法,编写原理图或VHDL文件程序。
3.对自己的设计进行编译并仿真。
4.仿真无误后,根据附录一的引脚对照表,对实验中用到的拨挡开关及LED进行管脚绑定,然后再重新编译一次。
5.用下载电缆通过JTAG接口将对应的sof文件下载到FPGA中。
6.观察实验结果是否与自己的预期想法相吻合。
7.二进制半加器半加器要求分别用时序仿真“Timing”和功能仿真“Function”观察仿真波形,说明“毛刺”出现的原因。其它实验只需进行功能仿真。
六、实验报告要求
1.总结原理图输入法的设计流程。
2.分析“毛刺”产生的原因及如何消除其影响。
3.总结层次化设计的步骤和方法。
4.Altera提供的宏功能模块与LPM函数有哪些种类?