EDA技术与VHDL实验指导书
- 格式:doc
- 大小:1.49 MB
- 文档页数:38
EDA技术与HDL 实验指导书吉林大学珠海学院二零一一年制定目录实验一:实验环境和平台的建立 (1)实验二:组合逻辑电路设计 (12)实验三:多层次设计 (14)实验四:时序逻辑电路设计(一) (18)实验五:时序逻辑电路设计(二) (20)实验六:分频器的设计 (22)实验七:通用移位寄存器的设计 (23)实验八:数码管扫描显示的设计 (24)实验九:正弦信号发生器的设计 (26)实验十:序列检测器的设计 (36)实验一:实验环境和平台的建立一、实验目的:熟悉Quartus II的VHDL文本设计流程,学习8-3编码器的设计、仿真。
二、实验内容:用VHDL编写8-3编码器的VHDL代码并仿真。
三、实验环境PC 机(Pentium100 以上)、Altera Quartus II 6.0 CPLD/FPGA 集成开环境。
四、实验原理在数字系统中,常常需要将某一信息(输入)变换为某一特定的代码(输出)。
把二进制码按一定的规律排列,例如8421码、格雷码等,使每组代码具有一特定的含义(代表某个数字或是控制信号)称为编码。
具有编码功能的逻辑电路称为编码器。
编码器有若干个输入,在某一时刻只有一个输入被转换为二进制码。
例如8线-3线编码器和10线-4线编码器分别有8输入、3位输出和10位输入、4位输出。
8线-3线编码器的真值表见表1-1,管脚图如图1-1所示。
输入输出A7 A6 A5 A4 A3 A2 A1 A0 Y2 Y1 Y00 0 0 0 0 0 0 1 0 0 00 0 0 0 0 0 1 0 0 0 10 0 0 0 0 1 0 0 0 1 00 0 0 0 1 0 0 0 0 1 10 0 0 1 0 0 0 0 1 0 00 0 1 0 0 0 0 0 1 0 10 1 0 0 0 0 0 0 1 1 01 0 0 0 0 0 0 0 1 1 1表1-1 8-3编码器真值表图1-1 8-3编码器管脚图五、实验步骤1、打开Quartus II 6.0软件,选择File | New Project Wizard新建一个工程,在对话框中第一行选择工程路径,并为该工程新建一个文件夹,本例更改路径为D:\test\vhdl\exp1。
工程路径最后为D:\test\vhdl\exp1;第二行输入工程名bm8_3;第三行是工程顶层设计文件名,该顶层设计文件名一定要与设计文件中模块名一致,可以与工程名不同,但一般都和工程名一致,(注意:在Quartus II中区分大小写)这里输入bm8_3;如图1-2所示。
图1-2 在Quartus II里面新建工程(1)2、单击“Next”,此对话框是向工程中添加设计文件的。
现在还没有写设计文件,所以没有文件可以添加;直接单击“Next”,进入器件选择对话框。
在Family 下拉菜单中选择Cyclone II 系列。
然后在Filters下的Package下拉菜单中选择封装形式FBGA,Pin count下拉菜单中选择管脚数484,Speed grade下拉菜单中选择速度级别8;然后在Available devices中选择EP2C20F484C8器件。
如图1-3所示。
图1-3 在Quartus II里面新建工程(2)3、单击“Next”进入选择其他EDA工具对话框,这里都不选,直接单击“Next”进入工程信息对话框,列出了工程名,模块名和器件名等信息,如图1-4所示图1-4 在Quartus II里面新建工程(3)4、最后单击“Finish”完成工程建立。
5、新建设计文件,选择File | New ,在New对话框中选择Device Design Files下的VHDL File,单击OK,完成新建设计文件。
如图1-5所示。
图1-5 在Quattus II里面新建文件6、在新建设计文件中输入VHDL程序,如图1-6所示。
图1-6 在Quartus II里面输入代码本例只有一个设计文件,即为顶层设计文件,它的模块名一定要与顶层设计文件名bm8_3一致,然后保存到工程文件夹exp1下,命名为bm8_3,即为顶层设计文件。
如图1-7所示。
图1-7 保存文件7、保存后,利用QuartusII进行全程编译,选择工具栏里的Processing -> Start Compilation进行编译,如图1-8所示。
图1-8 全程编译后错的报告信息8、编译通过后进行时序仿真,选择工具栏里的File | New ,在New对话框中选择Other Files下的Vector Waveform File,单击OK,完成新建仿真波形文件。
如图1-9所示。
图1-9 新建仿真波形文件9、设置仿真时间区域。
图1-10 设置仿真时间长度10、将工程bm8_3的端口信号节点选入波形编辑器中。
图1-11 打开信号节点查询端口11、将工程bm8_3的端口信号节点选入波形编辑器中。
图1-12 向波形编辑器拖入信号节点12、编辑输入波形图1-13 最后设置好的vwf仿真激励波形文件图13、选择工具栏里的Processing | Start Simulation进行仿真,观察结果。
图1-14 进行仿真14、在仿真没有问题以后,先利用QuartusII编译一次,然后分配管脚。
分配管脚有两种方法。
一种是选择如图1-15所示的选项,出现如图1-16的对话框,在里面编辑定义管脚。
另外的一种方法是编译qsf文件,在Quartus文件下利用文本编辑器打开bm8_3.qsf文件,可以就直接添加管脚。
如图1-17所示。
图1-15 分配管脚选项(1)图1-16 分配管脚选项(2)图1-17 分配管脚选项(3)注意:在修改bm8_3.qsf文件来分配管脚的时候,使用VHDL编写的模块端口名必须与qsf文件中的管脚名一致,否则,主板上的按键和LED灯就不能连接在我们编写的模块端口上。
我们这里用到的是低8位的拨码开关Bit7-Bit0作为输入,LED2、LED1、LED0作为输出。
我们提供了SOPC1000的实验箱主板和核心板完整的qsf文件,用文本编辑器打开,把相应的管脚分配拷贝到bm8_3.qsf中,并且修改管脚名,与模块的端口名一致。
如图1-18和图1-19所示。
图1-18 修改qsf文件图1-19 修改后的qsf文件15、在Assignments|Device 里面打开Device& Pin Options选项,在Unused Pins页里面的选择第一项As input tri-stated。
每次新建的工程编译前必须设置这个选项。
如图1-20。
图1-20 未使用的管脚设置16、利用QuartusII编译布局,下载开发板进行验证。
17、将开关选择跳线选择至低8位拨动开关,利用低BIT7~BIT0位作为输入,LED2、LED1、LED0作为输出。
18、分析比较实测的结果和仿真时序波形。
实验二:组合逻辑电路设计一、实验目的:学习组合逻辑电路,学习译码器的功能与定义,学习VHDL。
二、实验内容:编写3-8译码器的VHDL 代码并仿真,编译下载验证。
三、实验环境PC 机(Pentium100 以上)、Altera Quartus II 6.0 CPLD/FPGA 集成开发环境、AR1000核心板、SOPC-MBoard板、ByteBlaster II 下载电缆。
四、实验原理译码是编码的逆过程,它的功能是将特定含义的二进制码进行辨别,并转换成控制信号,具有译码功能的逻辑电路成为译码器。
译码器可分为两种类型,一种是将一系列代码转换成与之一一对应得有效信号。
这种译码器可以称为唯一地址译码器,它常用于计算机中对存储器单元地址的译码,即将每一个地址代码换成一个有效信号,从而选中对应的单元。
另一种是将一种代码转换成另一种代码,所以也称为代码变换器。
3线-8线译码器的真值表见表2-1,管脚图如图2-1所示。
输入输出G1 G2 G3 A2 A1 A0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0x 1 x x x x 1 1 1 1 1 1 1 1x x 1 x x x 1 1 1 1 1 1 1 10 x x x x x 1 1 1 1 1 1 1 11 0 0 0 0 0 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 1 1 1 0 11 0 0 0 1 0 1 1 1 1 1 0 1 11 0 0 0 1 1 1 1 1 1 0 1 1 11 0 0 1 0 0 1 1 1 0 1 1 1 11 0 0 1 0 1 1 1 0 1 1 1 1 11 0 0 1 1 0 1 0 1 1 1 1 1 11 0 0 1 1 1 0 1 1 1 1 1 1 1表2-1 3-8译码器真值表图2-1 3-8译码器管脚图五、实验步骤1、按照真值表编写3-8译码器VHDL代码。
2、利用仿真软件进行编译仿真,给出电路的时序逻辑波形。
3、将开关选择跳线选择至低3位拨动开关,利用低3位BIT2 、BIT1、BIT0作为A输入,G1、G2、G3分别由BIT5、BIT6、BIT7作为输入。
LED7、LED6、…LED0作为输出。
利用QuartusII编译布局,下载开发板进行验证。
4、分析比较实测的结果和仿真时序波形。
实验三:多层次设计一、实验目的:学习加法器的功能与定义,学习VHDL,学习用图形方法设计多层次结构的VHDL设计。
二、实验内容:编写一个半减器和一个或门的VHDL代码,用图形的方法建立一个全加器并编译,仿真。
三、实验环境PC 机(Pentium100 以上)、Altera Quartus II 6.0 CPLD/FPGA 集成开发环境。
四、实验原理算术运算式数值系统的基本功能,更是计算机中不可缺少的组成单元。
1、半加器半加法和全加法是算术运算电路中的基本单元,它们是完成1位二进制相加的一种组合逻辑电路。
一位加法器的真值表见下表;由表3-1中可以看见,这种加法没有考虑低位来的进位,所以称为半加。
半加器就是实现下表中逻辑关系的电路。
被加数A 加数B 和数S 进位C0 0 0 00 1 1 01 0 1 01 1 0 1表3-1 一位半加器真值表2、全加器全加器能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号。
根据它的功能,全加器可由半加器和或门组成,其结构图如图3-1所示。
图3-1 全加器结构五、 实验步骤1、先建立一个工程,工程名为f_adder.vhd ,在工程中建立两个VHDL 文件,文 件名分别是h_adder.vhd 和or_2a.vhd 。
h_adder.vhd 按半加器真值表进行编写,or_2a.v 完成了或门的功能。
2、分别为h_adder.vhd 和or_2a.vhd 两个文件设置成可调用的元件,选择File | Creat/_update | Creat Symbol Files for Current File ,图3-2 将Verilog 文件设置成可调用的元件3、为工程建立顶层文件,选择File | New,新建文件,在对话框里选择Block Diagram/Schematic File ,建立图形文件。