THGSC-3型 大规模EDA/SOPC综合实验开发系统
目 录
实验一 基于QUARTUSII 图形输入电路的设计 ............................................................... 1 实验二 基于VHDL 格雷码编码器的设计 ....................................................................... 18 实验三 含异步清零和同步使能的加法计数器 ................................................................. 20 实验四 八位七段数码管动态显示电路的设计 ................................................................. 22 实验五 数控分频器的设计 ................................................................................................. 24 实验六 图形和VHDL 混合输入的电路设计 ................................................................... 26 实验七 四位并行乘法器的设计 ......................................................................................... 29 实验八 基本触发器的设计 ................................................................................................. 31 实验九 四位全加器设计 ..................................................................................................... 33 实验十 矩阵键盘显示电路的设计 ..................................................................................... 35 实验十一 用VHDL 设计七人表决器 ............................................................................... 38 实验十二 用VHDL 设计四人抢答器 ............................................................................... 40 实验十三 可控脉冲发生器的设计 ..................................................................................... 42 实验十四 正负脉宽调制信号发生器设计 ......................................................................... 44 实验十五 直流电机的测速 ................................................................................................. 46 实验十六 数字频率计的设计 ............................................................................................. 49 实验十七 数字钟的设计 ..................................................................................................... 52 实验十八 序列检测器的设计 ............................................................................................. 54 实验十九 数字秒表的设计 ................................................................................................. 56 实验二十 出租车计费器的设计 ......................................................................................... 58 实验二十一 VGA 彩条信号发生器的设计 ...................................................................... 60 实验二十二 步进电机的驱动 ............................................................................................. 64 实验二十三 1602字符型液晶显示 .................................................................................... 66 实验二十四 240128点阵型液晶显示与8051 IP核 ........................................................... 71 实验二十五 AD/DA实验 ................................................................................................... 74 实验二十六 DDS信号源设计 ............................................................................................ 76
1 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验一 基于QUARTUSII 图形输入电路的设计
一、实验目的
1.通过一个简单的3—8译码器的设计,掌握组合逻辑电路的设计方法。 2.初步了解QUARTUSII 原理图输入设计的全过程。 3.掌握组合逻辑电路的静态测试方法。 二、实验设备
1. PC机 1台; 2. Altera Blaster下载器 1根; 3. THGSC-3型实验箱 1台。 三、实验原理
3-8译码器三输入,八输出。当输入信号按二进制方式的表示值为N时,输出端标号为N 的输出端输出高电平表示有信号产生,而其它则为低电平表示无信号产生。因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为高电平的情况下,能表示所有的输入组合。
译码器不需要像编码器那样用一个输出端指示输出是否有效。但可以在输入中加入一个输出使能端,用来指示是否将当前的输入进行有效的译码,当使能端指示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表示无任何信号。本例设计中没有考虑使能输入端,自己设计时可以考虑加入使能输入端时,程序如何设计。 四、实验内容
在本实验中,用三个拨动开关(SW1~SW3)来表示三八译码器的三个输入(A、B、C);用八个LED 来表示三八译码器的八个输出(D1~D8)。通过输入不同的值来观察输入的结果与三八译码器的真值表是否一致。实验箱中的拨动开关,当开关闭合(拨动开关的档位在下方)时其输出为低电平,反之输出高电平。实验箱中的拨动开关与FPGA 的接口电路,LED 灯与FPGA 的接口电路以及拨动开关、LED 与FPGA 的管脚连接在用户手册中都做了详细说明,这里不再赘述。
五、实验步骤
下面将通过这个实验,向读者介绍QUARTUSII 的项目文件的生成、编译、管脚分配以及时序仿真等的操作过程。
1. 建立工程文件
1)选择“开始>程序>Altera>QuartusII 9.0”,运行QUARTUSII 软件。或者双击桌面上的QUARTUSII 的图标运行QUARTUSII 软件,出现如图1-1 所示,如果是第一次打开QUARTUSII 软件可能会有其它的提示信息,使用者可以根据实际情况进行设定后进入图1-1 所示界面。
2)选择软件中的
,新建一个工程。如图1-2所示。
3)点击图1-2 中的Next 进入工作目录,工程名的设定对话框如图1-3 所示。第一个输入框为工程目录输入框,用户可以输入如e:/eda 等工作路径来设定工程的目录,设定好后,所有
1 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
的生成文件将放入这个工作目录。第二个输入框为工程名称输入框,第三个输入框为顶层实体名称输入框。用户可以设定如exp1,一般情况下工程名称与实体名称相同。使用者也可以根据自已的实际情况来设定。
图1-1 QUARTUSII 软件运行界面
图1-2 新建工程对话框
2 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
工程目录 工程名称 顶层实体名称
图1-3 指定工程名称及工作目录 4)点击Next,进入下一个设定对话框,按默认选项直接点击Next 进行器件选择对话框。如图1-4 所示。这里选用CycloneII 系列芯片EP2C35F672C8为例进行介绍。用户可以根据使用的不同芯片来进行设定。
图1-4 器件选择界面
首先在对话框的左上方的Family 下拉菜单中选取CycloneII,在右边的Speed grade 下拉菜单中选取8,在左下方的Available devices 框中选取EP2C35F672C8,点击Next完成器件的选取,进入EDA TOOL 设定界面如图1-5所示。
3 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-5 EDA TOOL 对话框
5)点击Next出现新建工程以前所有的设定信息,如图1-6所示,点击Finish完成新建工程的建立。
图1-6 新建工程信息
2. 建立图形设计文件
1)创建好设计工程后,选择File>New…菜单,出现图1-7所示的新建设计文件类型选择窗口。这里以建立图形设计文件为例进行说明,其它设计输入方法与之基本相同。
4 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-7 新建设计文件选择窗口 2)在New 对话框(图1-7)中选择Design Files 页下的Block Diagram/Schematic File,点击OK 按钮,打开图形编辑器对话框,如图1-8 所示。图中标明了常用的每个按钮的功能。 选择工具符号工具正交节点工具正交管道工具部分线选择工具全屏水平翻转逆时针90度翻转矩形工具直线工具文本工具块工具正交总线工具橡皮筋工具放大、缩小工具搜索、查找垂直翻转椭圆工具弧线工具
图1-8 QUARTUSII 图形编辑器对话框
QUARTUSII 图形编辑器也称块编辑器(Block Editor),用于以原理图(Schematics)和结构图(Block Diagrams)的形式输入和编辑图形设计信息。QUARTUSII 图形编辑器可以读取并编译结构图设计文件(Block Design File)和MAXPLUSII 图形设计文件(Graphic Design Files),可以在QUARTUSII 软件中打开图形设计文件并将其另存为结构图设计文件。在QUARTUSII 图形编辑器窗口(图1-8)中,根据个人爱好,可以随时改变Block Editor 的显示选项,如导向线和网格间距、橡皮筋功能、颜色以及基本单元和块的属性等。
3)以原理图输入设计一个三八译码器为例,介绍基本单元符号输入方法的步骤。在图1-8 所
5 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
示的图形编辑器窗口的工件区双击鼠标的左键,或点击图中的符号工具按钮,或选择菜单Edit>Insert Symbol…,则弹出如图1-9所示的Symbol 对话框。
兆功能函数其它基本单元 符号库显示符号符号名称重复输入以块形式插入兆功能函数 实例化图1-9 Symbol 对话框
4)用鼠标点击单元库前面的“+”号,展开单元库,用户可以选择所需要的图元或符号,该符号则显示在右边的显示符号窗口,用户也可以在符号名称里输入所需要的符号名称,点击OK 按钮,所选择的符号将显示在图形编辑器的工件工域。
5)参考图1-10 所示,将要选择的器件符号放置在图形编辑器的工件区域,用正交节点工具将原件边接起来,然后定义端口的名称。在这个例子里,定义三个输入为A、B、C,定义八个输出为D0、D1、D2、D3、D4、D5、D6、D7。用户也可以根据自己的习惯来定义这些端口名称。
6)完成图形编辑的输入之后,需要保存设计文件或重新命名设计文件。选择File>Save As…项,出现如图1-11 所示对话框,选择好文件保存目录,并在文件名栏输入设计文件名。如需要将设计文件添加到当前工程中,则选择对话框下面的Add file to current project 复选框,单击保存按钮即可保存文件。需要注意的是,在整个设计文件保存的过程当中,都需要遵循设计输入法的一般规则。 6 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
AINPUTVCCNOTAND3OUTPUTD017AND3OUTPUTD1BINPUTVCCNOT8AND3OUTPUT2D29AND3CINPUTVCCNOTOUTPUTD3310AND3OUTPUTD411AND3OUTPUTD512AND3OUTPUTD613AND3OUTPUTD714
图1-10 设计文件的输入
图1-11 保存设计文件对话框
3. 对设计文件进行编译
QUARTUSII 编译器窗口包含了对设计文件处理的全过程。在QUARTUSII软件中选择Processing>Compiler Tool 菜单项,则出现QUARTUSII 的编译器窗口,如图1-12 所示,图中标明了全编译过程各个模块的功能。需要说明的是在进行设计文件的综合和分析时,也可以单独打开某个分析综合过程不必进行全编译界面。当完成上述窗口的设定后,点击Start 按钮进行设计文件的全编译。如果文件有错,在软件的下方则会提示错误的原因和位置,以便于使用者进行修改直到设计文件无错。整个编译完成,软件会提示编译成功,如图1-13 所示。
7 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-12 QUARTUSII 编译器窗口
图1-13 全编译成功界面
4. 管脚分配 在前面选择好一个合适的目标器件(在这个实验中选择为EP3C16F484C8),完成设计的分析综合过程,得到工程的数据文件以后,需要对设计中的输入、输出引脚指定到具体的器件管脚号码,指定管脚号码称为管脚分配或管脚锁定。
1)点击Assignments 菜单下面的Assignment Editor,进入到引脚分配窗口。如图1-14 所示。
8 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-14 进入引脚分配界面
将要分配管脚的信号放置在To 下方。双击To 下方的《New》,单击示界面。
则会出现如图1-15 所
图1-15 信号选择对话框
选择Node Finder…进入如图1-16 所示的Node Finder 对话框界面。按图1-16中样例设置参数。在Filter 窗口选择Pins:all,在Named 窗口中输入“*”,点击List 在Nodes Found 窗口出现所有信号的名称,点击中间的按钮则Selected Nodes 窗口下方出现被选择的端口名称。单击OK 按钮,完成设置。进入管脚分配窗口,如图1-17 所示。
图1-16 Node Finder 对话框
9 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-17 管脚分配
在图1-17 中以锁定端口A 的管脚为例,其它端口的管脚锁定与其基本一致。选择端口A 的对应Assignment Name 待其变为蓝色后双击,出现下拉菜单选取如图1-17 所示的Location(Accepts wildcards/groups)选项。选择端口A的对应Value栏,待其变为蓝色,依照硬件与FPGA 的管脚连接(管脚分配说明请参考《用户手册》),输入对应的管脚名AD13,按回车键,软件将自动将其改为PIN_ AD13,同时蓝色选择条会自动跳转到Value 栏的下一行,这表明软件已经将输入端口A 分配到FPGA 的AD13引脚上,用同样的方法,依照硬件与FPGA 的管脚连接(管脚分配说明请参考《用户手册》),对其它端口进行管脚分配,如图1-18 所示。
图1-18 给A 端口进行管脚分配
5. 对设计文件进行仿真
1)创建一个仿真波形文件,选择QUARTUSII 软件File>New,进入新建文件对话框。如图1-19所示。选取对话框的Verification/Debugging Files标签页,从中选取VectorWaveform File,点击OK 按钮,则打开了一个空的波形编辑器窗口,如图1-20所示。
10 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-19 新建文件对话框
图1-20 波形编辑器
2)设置仿真结束时间,波形编辑器默认的仿真结束时间为1us,根据仿真需要,可以自由设置仿真的结束时间。选择QUARTUSII 软件的Edit>End Time命令,弹出仿真结束时间对话框,在Time 框输入仿真结束时间,点击OK 按钮完成设置。
3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表区点击鼠标右键,在弹出的右键菜单中选择Insert?Insert Node or Bus…命令,在弹出的InsertNode or Bus 对话框如图1-21所示界面中点击Node Finder…按钮。
11 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-21Insert Node or Bus 对话框
在出现的Node Finder 界面中,如图1-22 所示,在Filter 列表中选择Pins:all,在Named 窗口中输入“*”,点击List 在Nodes Found 窗口出现所有信号的名称,点击中间的按钮则Selected Nodes 窗口下方出现被选择的端口名称。单击OK 按钮,完成设置,回到图1-21所示的Insert Node or Bus 对话框,单击OK 按钮,所有的输入、输出端口将会在端口名列表区内显示出来,如图1-23所示。
图1-22 Node Finder 对话框
12 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-23 在波形编辑器中加入端口
4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在如图1-23所示的波形编辑窗口中,选择要输入波形的输入端口如A 端口,在端口名显示区左边的波形编辑器工具栏中有要输入的各种波形,其按钮说明如图1-24所示。根据仿真的需要输入波形。完成后如图1-25所示。最后选择软件的File>Save进行保存。
图1-24 波形编辑器工具栏
13 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-25 编辑输入端口波形
5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这里介绍功能仿真。在QUARTUSII 软件中选择Processing>Simulator Tool 命令,打开仿真器工具窗口,如图1-26 所示。
按图1-26上的提示,首先产生功能仿真网表文件,点击产生功能仿真网表的按钮Generate Functional Simulation Netlist,产生功能仿真网表,然后点击开始仿真的Start 按钮开始进行仿真,直到仿真进度条为100%完成仿真。点击仿真报告窗口按钮Report,观察仿真波形。如图1-27 所示。
图1-26 仿真器工具窗口
14 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-27 仿真波形
6. 从设计文件到目标器件的加载
完成对器件的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器件的配置芯片进行加载。这里介绍对目标器件EP2C35F672C8 进行加载的方法。 1)使用下载电缆将PC 机与实验系统连接起来。
2)选择QUARTUSII 软件的Tool>Programmer 命令,进入编程器窗口,如图1-28 所示,如果没有设置编程硬件,则编程硬件类型为No Hardware,需要对编程硬件进行设置。点击Hardware Setup…编程硬件设置按钮,进入如图1-29所示的编程硬件设置对话框。
编程硬件设置编程硬件类型编程模式加载进度加载文件添加文件加载目标器件加载过程添加器件图1-28 编程器窗口
15 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图1-29 编程器硬件设置对话框
3)点击Add Hardware按钮,出现Add Hardware对话框,如图1-30 所示。
图1-30 编程硬件选择对话框
4)在Add Hardware对话框中,从Hardware type列表中选择所需要的硬件类型,如果是USB接口的请参照《用户手册》中的USB电缆的安装与使用,如果使用的是并口下载线则选取如图1-30所示的硬件类型,点击OK按钮,完成对硬件类型的设置。回到编程器硬件设置窗口, 点击Close按钮退出设置。
5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个工程文件要加载到目标器件的文件,如果要加载其它文件可以单击“Add File…”从其它地方进行添加更改。选好加载文件后,再单击选择Progam/Configure,编程模式选取JTAG模式,点击Start进行文件加载,直到加载进度变为100%,文件成功加载完成。
六、实验结果
文件加载到目标器件后,拨动拨码开关,LED 灯会按三八译码器真值表对应地点亮。 七、实验报告
1.描述QUARTUSII 软件进行电路图形输入开发的过程;
2.实验过程中,除了在实验指导书中所述方法外,还有哪类方法;
3.简述FPGA的结构,实验电路中所用到的非门和与门在FPGA内部的具体实现原理; 4.若用文本方式进行输入,应该怎样操作;
16 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
5.实验心得与意见。
17 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验二 基于VHDL 格雷码编码器的设计
一、实验目的
1. 了解格雷码变换的原理。
2. 进一步熟悉QUARTUSII软件的使用方法和VHDL输入的全过程。 3. 进一步掌握实验系统的使用。 二、实验设备
1. PC机 1台; 2. Altera Blaster下载器 1根; 3. THGSC-3型实验箱 1台。 三、实验原理
格雷(Gray)码是一种可靠性编码,在数字系统中有着广泛的应用。其特点是任意两个相邻的代码中仅有一位二进制数不同,因而在数码的递增和递减运算过程中不易出现差错。但是格雷码是一种无权码,要想正确而简单的和二进制码进行转换,必须找出其规律。根据组合逻辑电路的分析方法,先列出其真值表再通过卡诺图化简,可以很快地找出格雷码与二进制码之间的逻辑关系。其转换规律为:高位同,从高到低看异同,异出‘1’,同出‘0’。也就是将二进制码转换成格雷码时,高位是完全相同的,下一位格雷码是‘1’还是‘0’,完全是相邻两位二进制码的“异”还是“同”来决定。下面举一个简单的例子加以说明。假如要把二进制码10110110转换成格雷码,则可以通过下面的方法来完成,方法如图2-1。
图2-1 格雷码变换示意图
四、实验内容
本实验要求完成的任务是变换8位的二进制码到8位的格雷码。实验中用SW1~SW8表示8位二进制输入,用LED模块的D1~D8来表示转换的实验结果八位格雷码。实验LED亮表示对应的位为‘1’,LED 灭表示对应的位为‘0’。通过输入不同的值来观察输出的结果与实验原理中的转换规则是否一致。开发系统中的拨码开关、与FPGA 的接口电路,LED 灯与FPGA 的接口电路以及拨码开关、LED 与FPGA 的管脚连接在《用户手册》都做了详细说明。
五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。 2. 建完工程之后,再新建一个VHDL File。新建一个VHDL 文件的过程如下:选择QUARTUSII 软件中的File>New 命令,出现New 对话框,中选择Design Files 页下的VHDL File,点击OK 按钮,打开VHDL 编辑器对话框。
3. 在空白编辑区,按照实验原理和实验内容所述功能,在VHDL 编辑窗口编写VHDL 程序。
4. 编写完VHDL 程序后,保存起来。
18 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
5. 对编写的VHDL程序进行编译并仿真,对程序的错误进行修改。 6. 编译仿真无误后,依照拨码开关、LED 与FPGA 的管脚连接进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7. 连接Altera Blaster 下载器到开发系统的JTAG接口,系统上电,电源指示灯正常。 8. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。观察实验结果是否与实验内容要求一致。
六、实验结果
当设计文件加载到目标器件后,拨动拨码开关,LED会按照实验原理中的格雷码输入一一对应的亮或者灭。
七、实验报告
1. 给出设计文件的HDL代码; 2. 绘出仿真波形,并作说明; 3. 将实验现象记录下来; 4. 实验心得与意见。
19 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验三 含异步清零和同步使能的加法计数器
一、实验目的
1. 了解二进制计数器的工作原理。
2. 进一步熟悉QUARTUSII软件的使用方法和VHDL输入。 3. 时钟在编程过程中的作用。 二、实验设备
1. PC机 1台; 2. Altera Blaster下载器 1根; 3. THGSC-3型实验箱 1台。 三、实验原理
二进制计数器是应用中最多、功能最全的计数器之一,含异步清零和同步使能的加法计数器的具体工作过程如下:在时钟上升沿时,检测使能端是否允许计数,如果允许计数(定义使能端高电平有效)则开始计数,否则一直检测使能端信号。在计数过程中再检测复位信号是否有效(低电平有效),当复位信号起作用时,使计数值清零,继续进行检测和计数。其工作时序如图3-1 所示:
图3-1 计数器的工作时序
四、实验内容
本实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。实验中选择时钟信号区1Hz时钟,SW1表示使能端信号,用复位开关S1表示复位信号,用LED模块的D1~D4来表示计数的二进制结果。实验LED 亮表示对应的位为‘1’,LED灭表示对应的位为‘0’。通过输入不同的值模拟计数器的工作时序,观察计数的结果。开发系统中的拨码开关与FPGA 的接口电路,LED 灯与FPGA 的接口电路以及按键开关模块与FPGA 的管脚连接在《用户手册》都做了详细说明。
五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。 2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和实验内容所述功能,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。 5. 对编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。 6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
20 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
7. 连接Altera Blaster 下载器到开发系统的JTAG接口,系统上电,电源指示灯正常。 8. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。观察实验结果是否与实验内容要求一致。
六、实验结果
当设计文件加载到目标器件后,使拨码开关SW1置为高电平,四位LED会按照实验原理中依次被点亮,当加法器加到10时,D5(进位信号)被点亮。当复位键(S1 键)按下后,计数被清零。如果拨码开关1置为低电平(拨码开关向下)则加法器不工作。 七、实验报告
1. 给出设计的HDL代码,并注释; 2. 绘出仿真波形,并作说明; 3. 写出在VHDL 编程过程中需要说明的规则; 4. 将实验结果与现象记录下来; 5. 改变时钟频率,看实验现象会有什么改变,解释这一现象; 6. 实验心得和意见。
21 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验四 八位七段数码管动态显示电路的设计
一、实验目的
1. 了解数码管的工作原理。
2. 学习七段数码管显示译码器的设计。
3. 学习VHDL 的CASE 语句及多层次设计方法。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台。 三、实验原理
七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-1 所示。
图4-1 静态七段数码管
由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp 都连在了一起,8 个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。 四、实验内容 本实验要求完成的任务是在时钟信号的作用下,通过四个拨动开关SW1~SW4输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1kHz作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。实验箱中的拨动开关与FPGA 的接口电路,以及数码管显示模块与FPGA 的管脚连接在《用户手册》做了详细说明。 五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。方法同实验一。
22 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
5. 对编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。
6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。
8. 将数字信号源F的时钟选择为1kHz,拨动SW1~SW4四位拨动开关,使其为一个数值,观察八个数码管显示的数值并记录。观察实验结果是否与自己的编程思想一致。
9. 实验完毕,关闭电源,整理实验器材。
六、实验结果
当设计文件加载到目标器件后,拨动四位拨码开关,使其为一个二进制数值,则四个数码管均显示拨码开关所表示的十六进制的值。
七、实验报告
1. 给出设计文件,并作说明; 2. 绘出仿真波形,并作说明;
3. 说明扫描时钟是如何工作的,改变扫描时钟会有什么变化; 4. 把实验硬件测试结果记录下来;
5. 若实验过程中使用的为共阳数码管,则程序应该做怎样变动; 6. 实验心得与意见。
23 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验五 数控分频器的设计
一、实验目的
1. 学习数控分频器的设计、分析和测试方法。 2. 了解和掌握分频电路实现的方法。 3. 掌握EDA 技术的层次化设计方法。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台。 三、实验原理
数控分频器的功能就是当输入端给定不同的输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器来设计完成的。 四、实验内容
本实验要求完成的任务是在时钟信号的作用下,通过输入八位的拨动开关输入不同的数据,改变分频比,使输出端口输出不同频率的时钟信号,达到数控分频的效果。在实验中时,数字时钟选择1kHz作为输入的时钟信号(频率过高观察不到LED 的闪烁快慢),用八个拨动开关做为数据的输入,当八个拨动开关置为一个二进制数时,在输出端口输出对应频率的时钟信号,用户可以用示波器接信号输出模块观察频率的变化,也可以使输出端口接LED 灯来观察频率的变化。在此实验中我们把输入接入LED 灯模块。实验箱中的拨动开关、LED 与FPGA 的接口电路,以及拨动开关、LED 与FPGA 的管脚连接在《用户手册》做了详细说明。 五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。方法同实验一。
5. 对编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。
6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。
8. 将数字信号源F的时钟选择为1kHz,拨动八位拨动开关SW1~SW8,使其为一个数值,观察输入的时钟信号使LED灯D1的状态,改变拨动开关,观察D1的变化。观察实验结果是否与自己的编程思想一致。
9. 实验完毕,关闭电源,整理实验器材。
注:八位拨动开关不可全部置高,即分频比不可设置为“11111111”。
24 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
六、实验结果
当设计文件加载到目标器件后,拨动SW1~SW8拨码开关,使其为一个二进制数值,则输入的时钟信号使LED灯D1开始闪烁,改变拨码开关,LED 的闪烁快慢会按一定的规则发生改变。 七、实验报告
1. 输入不同的DATA 值绘出仿真波形,并作说明;
2. 在这个程序的基础上扩展成16 位的分频器,写出VHDL 代码;
3. 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来; 4. 实验心得和意见。
25 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验六 图形和VHDL 混合输入的电路设计
一、实验目的
1. 学习在QUARTUSII 软件中模块符号文件的生成与调用。 2. 掌握模块符号与模块符号之间的连线规则与方法。 3. 掌握从设计文件到模块符号的创建过程。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台。 三、实验原理
在层次化的设计文件中,经常需要将已经设计好的工程文件生成一个模块符号文件作为自己的功能模块符号在顶层调用,该符号就像图形设计文件中的任何其它宏功能符号一样可被高层设计重复调用。本实验的实验原理就是将前面设计的实验三、四、五通过QUARTUSII 软件合并成一个设计文件,实现实验三、四、五中的所有功能。 四、实验内容
本实验要求完成的任务与实验三、四、五的实验内容基本一致。在实验中,时钟信号选取1kHz做为数码管的扫描时钟,拨动开关输入一个预置的八位数据,经过数控分频电路(实验五)分频后得到一个较低的频率做为加法计数器(实验三)的时钟频率进行计数器的加法运算。得到的值给数码显示译码电路(实验四)在数码管上显示出来。实验箱中的数字时钟模块、拨动开关、按键开关、数码管、LED 与FPGA 的接口电路,以及拨动开关、按键开关、数码管、LED 与FPGA 的管脚连接在实验三、四、五中都做了详细说明。 五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
2. 将以前编写的实验三、四、五的源程序代码复制到当前工作目录下保存起来。 3. 选择File>Open 命令,如图6-1 所示,在当前工作目录下打开其中一个源程序代码,如EXP3.VHD 程序。
图6-1 打开一个设计文件
26 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
4. 在File 菜单中选择Create/Update 项,进而选择Create Symbol File for Current File,点击确定按钮,即可创建一个代表刚才打开的设计文件功能的符号(.bsf),如图6-2 所示。如果该文件对应的符号文件已经创建过,则执行该操作时会弹出提示信息,询问是否要覆盖现存的符号文件。用户可以根据自己的意愿进行选择。
图6-2 从现行文件创建模块符号文件
5. 用同样的方法对其它设计文件(EXP4.VHD、EXP5.VHD)进行模块符号文件的创建。 6. 模块符号文件创建完成后,再新建一个图形编辑文件,打开图形编辑器对话框。在图形编辑器窗口的工件区双击鼠标的左键,或点击图中的符号工具按钮,或选择菜单Edit>Insert Symbol…,则弹出如图6-3 所示的Symbol 对话框。
图6-3 Symbol 对话框
27 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
7. 在Symbol 对话框(图6-3)中的Project 项下会出现前面创建的模块符号文件(EXP3、EXP4、EXP5),我们现在就可以任意调用这些功能模块符号文件。
8. 选取这些模块符号文件放置到工作区,调入需要的模块符号以后,进行符号之间的连线,以及放置输入、输出或双向引脚。需要说明的是,在这个实验中,因为输入的数据占用了八位的拨动开关,所以做为同步使能端的信号EN 我们加入了一个VCC 信号,使使能端信号EN 有效。所有设计完成后的电路如图6-4所示。
图6-4 设计图形符号文件
9. 对编写的图形符号输入文件程序进行保存,然后编译并仿真,对程序的错误进行修改。 10.编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
11.用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA中。
12.将数字信号源F的时钟选择为1kHz,拨动八位拨动开关SW1~SW8,使其为一个数值,观察八位数码管的显示数值和速率,当数码管显示何值时LED 灯D1开始被点亮,显示何数值时熄灭。按S1键再次观察实验现象,拨动八位拨动开关,置于其它数据,观察数码管的显示速率会的变化。观察实验结果是否与自己的编程思想一致。
13.实验完毕,关闭电源,整理实验器材。
六、实验结果
当设计文件加载到目标器件后,使其为一个数值,则八段数码管按一定的速率开始循环显示“0-F”,当数码管显示A-F 时LED 灯D1开始被点亮,显示其它数值时熄灭。按S1 键显示的数值又从0 开始,拨动八位拨码开关,置于其它数据,数码管的显示速率会发生改变。 七、实验报告 1. 画出仿真波形,并作说明;
2. 写出在软件中通过其它方法从设计文件到模块符号文件的转换过程;
3. 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来;
4. 实验心得和意见。
28 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验七 四位并行乘法器的设计
一、实验目的
1. 了解四位并行乘法器的原理。 2. 了解四位并行乘法器的设计思想。
3. 掌握用VHDL 语言实现基本二进制运算的方法。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台。 三、实验原理
实现并行乘法器的方法又很多种,但是归结起来基本上分为两类,一类是靠组合逻辑电路实现,另一类流水线实现。流水线结构的并行乘法器的最大点就是速度快,尤其是在连续输入的乘法器中,可以达到近乎单周期的运算速度,但是实现起来比组合逻辑电路要稍微复杂一些。下面就组合逻辑电路实现无符号数乘法的方法作详细介绍。假如有被乘数A 和乘数B,首先用A 与B 的最低位相乘得到S1,然后再把A 左移1 位与B 的第2 位相乘得到S2,再将A 左移3 位与B 的第三位相乘得到S3,依此类推,直到把B 的所有位都乘完为止,然后再把乘得的结果S1、S2、S3??相加即得到相乘的结果。需要注意的是,具体实现乘法器并不是真正的去乘,而是利用简单的判断去实现,举个简单的例子。假如A 左移n 位后与B 的第n 位相乘,如果B 的这位为‘1’,那么相乘的中间结果就是A 左移n 位后的结果,否则如果B 的这位为‘0’,那么就直接让相乘的中间结果为0 即可。B 的所有位相乘结束后,把所有的中间结果相加即得到A 与B 相乘的结果。 四、实验内容
本实验的任务是实现一个简单的四位并行乘法器,被乘数A 用拨挡开关模块的 SW1~SW4 来表示,乘数B 用SW5~SW8 来表示,相乘的结果用LED 模块的D1~D8 来表示,LED 亮表示对应的位为‘1’。时钟信号选取1kHz做为扫描时钟,拨动开关输入一个四位的被乘数和一个四位的乘数,经过设计电路相乘后得到的数据在LED 灯上显示出来。实验箱中的数字时钟模块、拨动开关、LED 与FPGA的接口电路,以及数字时钟源、拨动开关、LED 与FPGA 的管脚连接在《用户手册》中都做了详细说明。 五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。方法同实验一。
5. 对编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。
6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,
29 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
以使管脚分配生效。
7. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。
8. 将数字信号源模块F的时钟选择为1kHz,拨动相应的拨动开关,输入一个四位的乘数(SW5-SW8)和被乘数(SW1-SW4),观察在发光管D1-D8上显示的结果(灯亮表示对应的位为1)并记录。观察实验结果是否与自己的编程思想一致。
9. 实验完毕,关闭电源,整理实验器材。
六、实验结果
当设计文件加载到目标器件后,拨动相应的拨码开关,输入一个四位的乘数和被乘数,则在LED灯上显示这两个数值相乘的结果的二进制数。 七、实验报告
1. 给出不同的乘数和被乘数,绘仿真波形,并作说明。 2. 在这个程序的基础上设计一个八位的并行乘法器。
3. 在这个程序的基础上,用数码管来显示相乘结果的十进制值。
4. 把实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。
30 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验八 基本触发器的设计
一、实验目的
1. 了解基本触发器的工作原理。
2. 进一步熟悉在Quartus II 中基于原理图设计的流程。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台。 三、实验原理
基本触发器的电路如下图8-1 所示。它可以由两个与非门交叉耦合组成,也可
图8-1 基本触发器电路
以由两个或非门交叉耦合组成。现在以两个与非门组成的基本触发器为例,来分析其工作原理。根据与非逻辑关系,可以得到基本触发器的状态转移真值表及简化的真值表,如下表8-1 所示: 不允许 置位 复位 保持 保持 复位 置位 不允许 S 0 0 1 1
R 0 1 0 1 Qnext Qnext 1 1 0 Q 1 0 1 Q’ S 0 0 1 1 R 0 1 0 1 Qnext Qnext Q 0 1 0 Q’ 1 0 0 表8-1 基本触发器状态转移真值表
根据真值表,不难写出其特征方程:
31 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
其中式(2)为约束条件。
四、实验内容
本实验的任务就是利用Quartus II 软件的原理图输入,产生一个基本触发器,触发器的形式可以是与非门结构的,也是可以或非门结构的。实验中用按键模块的用SW1 和SW2 来分别表示S和R,用LED 模块的D1 和D2 分别表示Q和Q。在/R 和/S 满足式(2)的情况下,观察Q 和Q的变化。实验箱中的拨动开关、LED 与FPGA 的接口电路,以及拨动开关、LED 与FPGA的管脚连接在以前的实验中都做了详细说明。 五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
2. 建完工程后再新建一个图形符号输入文件,打开图形符号编辑器对话框。 3. 按照实验原理和自己的想法,在图形符号编辑窗口编写设计程序。 4. 设计好设计电路程序后,保存起来。方法同实验一。 5. 对自己编写的设计电路程序进行编译并仿真,对程序的错误进行修改。 6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。 7. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中,观察实验结果是否与自己的编程思想一致。 8. 拨动相应的拨动开关SW1(R)、SW2(S),则通过发光管D1(Q)、D2(Q)的亮和灭来显示这个触发器工作状态。将输入与输出和基本触发器状态转移真值表进行比较,看是否一致。
9. 实验完毕,关闭电源,整理实验器材。 六、实验结果 当设计文件加载到目标器件后,拨动相应的拨码开关(即R、S),则通过LED灯上的亮和灭来显示这个触发器的输入结果。将输入与输出和表7-1基本触发器状态转移真值表进行比较,看是否一致。 七、实验报告
1. 绘出不同R、S值的仿真波形,并作说明;
2. 设计一个其它的功能触发器如D触发器、JK触发器等;
3. 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来; 4. 实验心得和意见。
32 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验九 四位全加器设计
一、实验目的
1. 了解四位全加器的工作原理。
2. 掌握基本组合逻辑电路的FPGA 实现。 3. 熟练应用Quartus II 进行FPGA 开发。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台。 三、实验原理
全加器是由两个加数Xi 和Yi 以及低位来的进位Ci-1 作为输入,产生本位和Si 以及向高位的进位Ci 的逻辑电路。它不但要完成本位二进制码Xi 和Yi 相加,而且还要考虑到低一位进位Ci-1 的逻辑。对于输入为Xi、Yi 和Ci-1,输出为Si 和Ci 的情况,根据二进制加法法则可以得到全加器的真值表如下表9-1 所示:
表9-1 全加器真值表
由真值表得到Si 和Ci 的逻辑表达式经化简后为:
这仅仅是一位的二进制全加器,要完成一个四位的二进制全加器,只需要把四个级联起来即可。 四、实验内容
本实验要完成的任务是设计一个四位二进制全加器。具体的实验过程就是利用实验系统上
33 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
的拨动开关模块的SW1~SW4作为一个加数X输入,SW5~SW8作为另一个加数Y输入,用LED模块的D1~D5来作为结果S输出,LED亮表示输出‘1’,LED灭表示输出‘0’。实验箱中的拨动开关、LED与FPGA的接口电路,以及拨动开关、LED与FPGA的管脚连接在以前的实验中都做了详细说明。 五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。方法同实验一。
5. 对编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。 6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA中。 8. 拨动相应的拨动开关SW1~SW4 作为一个加数X 输入,SW5~SW8 作为另一个加数Y 输入,用发光管模块的D1~D5作为结果S 输出,发光管亮表示输出‘1’, 发光管灭表示输出‘0’。任意输入两个四位的加数,观察发光管上的显示结果并记录。观察实验结果是否与自己的编程思想一致。
9. 实验完毕,关闭电源,整理实验器材。
六、实验结果
当设计文件加载到目标器件后,拨动相应的拨码开关,输入两个四位的加数,则在LED灯上显示这两个数值相加结果的二进制数。 七、实验报告
1. 给出不同的加数,绘仿真波形,并作说明; 2. 在这个程序的基础上设计一个八位的全加器;
3. 在这个程序的基础上,用数码管来显示相乘结果的十进制值;
4. 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来; 5. 绘出加法器的硬件实现原理图; 6. 实验心得和意见。
34 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验十 矩阵键盘显示电路的设计
一、实验目的
1. 了解普通4×4 键盘扫描的原理。 2. 进一步加深七段码管显示过程的理解。 3. 了解对输入/输出端口的定义方法。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台。 三、实验原理
实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。作为一个嵌入系统设计人员,总是会关心产品成本。目前有很多芯片可以用来实现键盘扫描,但是键盘扫描的软件实现方法有助于缩减一个系统的重复开发成本,且只需要很少的CPU 开销。嵌入式控制器的功能能强,可能充分利用这一资源,这里就介绍一下软键盘的实现方案。
图10-1 简单键盘电路
通常在一个键盘中使用了一个瞬时接触开关,并且用如图10-1 所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO 口的输入将被拉低得到逻辑0。可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图10-2 所示的好几个脉冲。弹起的持续时间通常将维持在5ms~30ms 之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。键盘上阵列这些开关最有效的方法(当需要5 个以上的键时)就形成了一个如图10-3 所示的二维矩阵。当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。一个瞬时接触开关(按钮)放置在每一行与每一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。
35 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
图10-2 按键抖动
图10-3 矩阵键盘
键盘扫描的实现过程如下:对于4×4 键盘,通常连接为4 行、4 列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4 行为高电平,然后输出4 列为低电平,再读入输出的4 行的值,通常高电平会被低电平拉低,如果读入的4 行均为高电平,那么肯定没有按键按下,否则,如果读入的4 行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4 列为高电平,然后再输出4 行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。获取到行值和列值以后,组合成一个8 位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7 段码管显示。 四、实验内容
本实验要求完成的任务是通过编程实现对4X4 矩阵键盘按下键的键值的读取,并在数码管上完成一定功能(如移动等)的显示。实验中数码管与FPGA 的连接电路和管脚连接在《用户手册》做了详细说明。 五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
36 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。方法同实验一。
5. 对编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。
6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。
8. 将数字信号源模块的时钟选择为1kHz,按下矩阵键盘的某一个键,观察数码管上显示的数值,再按下第二个键观察数码管的变化。观察实验结果是否与自己的编程思想一致。
9. 实验完毕,关闭电源,整理实验器材。
六、实验结果
矩阵键盘有按键按下时,数码管第8位显示相应键值,并且数码管上显示的数值依次左移。 七、实验报告
1. 绘出不同的键值时的数码管的仿真波形,并作说明。 2. 根据自己的思路,找一找还有没有其它方法进行键盘的扫描显示,并画出流程图。 3. 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。
37 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验十一 用VHDL 设计七人表决器
一、实验目的
1. 熟悉VHDL 的编程。 2. 熟悉七人表决器的工作原理。 3. 进一步了解实验系统的硬件结构。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台。 三、实验原理
所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4 时,则认为同意;反之,当否决的票数大于或者等于4 时,则认为不同意。实验中用7个拨动开关来表示七个人,当对应的拨动开关输入为‘1’时,表示此人同意;否则若拨动开关输入为‘0’,则表示此人反对。表决的结果用一个LED 表示,若表决的结果为同意,则LED 被点亮;否则,如果表决的结果为反对,则LED 不会被点亮。同时,数码管上显示通过的票数。 四、实验内容
本实验就是利用实验系统中的拨动开关模块和LED 模块以及数码管模块来实现一个简单的七人表决器的功能。拨动开关模块中的SW1~SW7 表示七个人,当拨动开关输入为‘1’时,表示对应的人投同意票,否则当拨动开关输入为‘0’时,表示对应的人投反对票;LED 模块中D1 表示七人表决的结果,当D1点亮时,表示此行为通过表决;否则当D1 熄灭时,表示此行为未通过表决。同时通过的票数在数码管上显示出来。在此实验中数码管、LED、拨动开关与FPGA 的连接电路和管脚连接在《用户手册》中都做了详细说明。 五、实验步骤 1. 打开QUARTUSII 软件,新建一个工程。
2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。方法同实验一。
5. 对自己编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。
6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。
8. 拨动实验系统中拨动开关模块的SW1-SW7七位拨动开关,观察发光管模块的D1的亮灭规律并记录。同时观察数码管的显示并记录。观察实验结果是否与自己的编程思想一致。
38 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
9. 实验完毕,关闭电源,整理实验器材。
六、实验结果
当设计文件加载到目标器件后,拨动实验系统中SW1~SW7,七位拨码开关,如果拨码开关的值为“1”(即拨码开关的开关置于上端,表示此人通过表决)的个数大于或等于4时LED 模块的D1被点亮,否则D1不被点亮。同时数码管上显示通过表决的人数。
七、实验报告
1. 绘出仿真波形,并作说明;
2. 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来; 3. 在此实验的基础上增加一个表决的时间,只有在这一时间内的表决结果才有效; 4. 实验心得和意见。
39 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验十二 用VHDL 设计四人抢答器
一、实验目的
1. 熟悉四人抢答器的工作原理。 2. 加深对VHDL语言的理解。 3. 掌握EDA开发的基本流程。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台。 三、实验原理
抢答器在各类竞赛性质的场合得到了广泛的应用,它的出现,消除了原来由于人眼的误差而未能正确判断最先抢答的人的情况。抢答器的原理比较简单,首先必须设置一个抢答允许标志位,目的就是为了允许或者禁止抢答者按按钮;如果抢答允许位有效,那么第一个抢答者按下的按钮就将其清楚,同时记录按钮的序号,也就是对应的按按钮的人,这样做的目的是为了禁止后面再有人按下按钮的情况。总的说来,抢答器的实现就是在抢答允许位有效后,第一个按下按钮的人将其清除以禁止再有按钮按下,同时记录清楚抢答允许位的按钮的序号并显示出来,这就是抢答器的实现原理。 四、实验内容
本实验的任务是设计一个四人抢答器,用按键模块的S5来作抢答允许按钮,用S1~S4来表示1~4号抢答者,同时用LED 模块的D1~D4分别表示于抢答者对应的位子。具体要求为:按下S5一次,允许一次抢答,这时S1~S4中第一个按下的按键将抢答允许位清除,同时将对应的LED点亮,用来表示对应的按键抢答成功。数码管显示对应抢答成功者的号码。此实验中数码管、LED、按键开关与FPGA 的连接电路和管脚连接在《用户手册》中都做了详细说明。 五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。方法同实验一。
5. 对自己编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。
6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。
8. 按下按键开关的S5按键,表示开始抢答。然后,同时按下S1-S4,首先按下的键的键值被数码管显示出来,对应的发光管被点亮。与此同时,其它按键失去抢答作用。观察实验结果是否与自己的编程思想一致。
40 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
9. 实验完毕,关闭电源,整理实验器材。
六、实验结果
当设计文件加载到目标器件后,S5微动按键按下,设置抢答标志位有效,允许一次抢答,这时S1~S4中第一个按下的按键将抢答允许位清除,同时将对应的LED点亮,用来表示对应的按键抢答成功。数码管显示对应抢答成功者的号码。与此同时,其它按键失去抢答作用。 七、实验报告
1. 绘出仿真波形,并作说明;
2. 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来; 3. 实验心得和意见。
41 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验十三 可控脉冲发生器的设计
一、实验目的
1. 了解可控脉冲发生器的实现机理。 2. 学会用示波器观察FPGA产生的信号。 3. 学习用VHDL 编写复杂功能的代码。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台; 4. 示波器 一台。 三、实验原理
脉冲发生器就是要产生一个脉冲波形,而可控脉冲发生器则是要产生一个周期和占空比可变的脉冲波形。可控脉冲发生器的实现原理比较简单,可以简单的理解为一个计数器对输入的时钟信号进行分频的过程。通过改变计数器的上限值来达到改变周期的目的,通过改变电平翻转的阈值来达到改变占空比的目的。下面举个简单的例子来说明其工作原理。假如有一个计数器T 对时钟分频,其计数的范围是从0~N,另取一个M(0≤M≤N),若输出为Q,那么Q 只要满足条件时,
通过改变N 值,即可改变输出的脉冲波的周期;改变M 值,即可改变脉冲波的占空比。这样输出的脉冲波的周期和占空比分别为:
四、实验内容
本实验的任务就是要设计一个可控的脉冲发生器,要求输出的脉冲波的周期和占空比都可变。具体的实验过程中,时钟信号选用时钟模块中的1MHz 时钟,然后再用按键模块的S3和S4 来控制脉冲波的周期,每按下S3,N会在慢速时钟作用下不断地递增1,按下S4,N会在慢速时钟作用下不断地递减1;用S1和S2来控制脉冲波的占空比,每按下S1,M会在慢速时钟作用下不断地递增1,每按下S2,M会在慢速时钟作用下不断地递减1,S8用作复位信号,当按下S8时,复位FPGA内部的脉冲发生器模块。脉冲波的输出直接输出到实验箱 J7探针右1脚,以便用示波器观察输出波形的改变。 五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
42 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。方法同实验一。
5. 对编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。
6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。
8. 将数字信号源模块的时钟选择为1MHZ,按下按键开关模块的S8按键,用示波器观察J7的右脚的输出波形。按下S3 键或者S4 键,观察此波形的变化。按下S1 键或者S2 键,观察此波形的变化,记录实验现象(为体现实验编程基本思想,在程序中没有对功能进行优化,所以在调整脉冲占空比或频率到达极值时会出现一条直线)。观察实验结果是否与自己的编程思想一致。
9. 实验完毕,关闭电源,整理实验器材。
六、实验结果
以设计的参考示例为例,当设计文件加载到目标器件后,S8为复位键,按下复位FPGA内部计数器,用示波器观察实验箱 J7探针右1脚输出波形,按下S2键或者S4键,这个矩形波的频率会发生相应的增加或者减少。按下S1键或者S3键,这个矩形波的占空比会相应的增加或减少。 七、实验报告
1. 绘出仿真波形,并作说明;
2. 在这个实验的基础上重新设计,使程序改变频率的时候不会影响占空比的改变; 3. 偶数分频、奇数分频电路设计;
4. 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来; 5. 实验心得和意见。
43 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验十四 正负脉宽调制信号发生器设计
一、实验目的
1. 在掌握可控脉冲发生器的基础上了解正负脉宽数控调制信号发生的原理。 2. 熟练的运用示波器观察实验箱上的探测点波形。 3. 掌握时序电路设计的基本思想。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台; 4. 示波器 一台。 三、实验原理
首先详细说明一下正负脉宽数控的原理。正负脉宽数控就是直接控制输入脉冲信号的正脉宽数和负脉宽数,当然,正负脉宽数一旦定下来,脉冲波的周期也就确定下来了。其次是调制信号,调制信号有很多种,有频率调制、相位调制、幅度调制等等,本实验中仅对输出的波形进行最简单的数字调制,另外为了EDA 设计的灵活性,实验中要求可以输出非调制波形、正脉冲调制和负脉冲调制。非调制波形就是原始的脉冲波形;正脉冲调制就是在脉冲波输出‘1’的期间用输出另一个频率的方波,而在脉冲波为‘0’器件还是原始波形;负脉冲调制正好与正脉冲调制相反,要求在脉冲波输出为‘0’期间输出另外一个频率的方波,而在‘1’期间则输出原始波形。为了简化实验,此处的调制波形(另外一个频率的方波)就用原始的时钟信号。其具体的波形如下图14-1 所示:
图14-1 调制波形
四、实验内容 本实验的任务是设计一个正负脉宽数控调制信发生器。要求能够输出正负脉宽数控的脉冲波、正脉冲调制的脉冲波和负脉冲调制的脉冲波形。实验中的时钟信号选择时钟模块的1MHz 信号,用拨挡开关模块的SW1~SW4 作为正脉冲脉宽的输入,用SW5~SW8 作为负脉冲脉宽的输入,用按键开关模块中的S1所谓模式选择键,每按下一次,输出的脉冲波形改变一次,依次为原始脉冲波、正脉冲调制波和负脉冲调制波形。波形输出至实验箱观测模块的探针,以便示波器观察。 五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
44 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。方法同实验一。
5. 对编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。
6. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
7. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。
8. 将数字信号源模块F的时钟选择为1MHZ,拨动八位拨动开关,使SW1-SW4 中至少有一个为高电平,SW5-SW8至少有一个为高电平,此时用示波器观测J7探针右1脚的波形。每按下一次S1按键后,观察波形的变化。记录实验现象。观察实验结果是否与自己的编程思想一致。
9. 实验完毕,关闭电源,整理实验器材。
六、实验结果
以设计的参考示例为例,当设计文件加载到目标器件后,拨码开关SW1~SW4位,使其中至少有一个为高电平,拨码开关SW 5~SW8位至少有一个为高电平,此时实验箱J7探针右1脚用示波器可以观测到一个矩形波。按下S1按键后,矩形波发生改变,依次为非调制波、正脉冲调制波和负脉冲调制波形,输出如图14-1所示的调制波形 七、实验报告
1. 绘出仿真波形,并作说明;
2. 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来; 3. 设计一FSK信号发生电路; 4. 实验心得和意见。
45 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验十五 直流电机的测速
一、实验目的
1. 掌握直流电机的工作原理。
2. 了解开关型霍尔传感器的工作原理和使用方法。 3. 掌握电机测速的原理。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台; 4. 一字螺丝刀 一把。 三、实验原理
直流电机是我们生活当中常用的一种电子设备。其内部结构如下图15-1所示:
图15-1 直流电机结构图 图15-2 直流电机、霍尔器件电路图
下面就上图来说明直流电机的工作原理。将直流电源通过电刷接通电枢绕组,使电枢导体有电流流过,由于电磁作用,这样电枢导体将会产生磁场。同时产生的磁场与主磁极的的磁场产生电磁力,这个电磁力作用于转子,使转子以一定的速度开始旋转。这样电机就开始工作。为了能够测定出电机在单位时间内转子旋转了多少个周期,我们在电机的外部电路中加入了一个开关型的霍尔原件(44E),同时在电机转子上的转盘上加入了一个能够使霍尔原件产生输出的带有磁场的磁钢片。当电机旋转时,带动转盘的磁钢片一起旋转,当磁钢片旋转到霍尔器件的上方时,可以导致霍尔器件的输出端高电平变为低电平。当磁钢片转过霍尔器件上方后,霍尔器件的输出端又恢复高电平输出。这样电机每旋转一周,则会使霍尔器件的输出端产生一个低脉冲,我们就可以通过检测单位时间内霍尔器件输出端低脉冲的个数来推算出直流电机在单位时间内的转速。直流电机和开关型霍尔器件的电路原理图如下图15-2 所示:
电机的转速通常是指每分钟电机的转速,也就是单位为rpm,实际测量过程中,为了减少转速刷新的时间,通常都是5~10 秒刷新一次。如果每6 秒钟刷新一次,那么相当于只记录了6
46 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
秒钟内的电机转数,把记录的数据乘10 即得到一分钟的转速。最后将这个数据在数码管上显示出来。最后显示的数据因为是将数据乘以10,也就是将个位数据的后面加上一位来做个位即可,这一位将一直为0。如:45*10 变为450,即为在“45”个位后加了一位“0”。为了使显示的数据能够在数码管是显示稳定,在这个数据的输出时加入了一个16 位的锁存器,把锁存的数据送给数码管显示,这样就来会因为在计数过程中,数据的变化而使数码管显示不断变化。 四、实验内容
本实验要求完成的任务是通过编程实现电机转数读取,并在数码管上显示。其读取数据和显示数据的时序关系如下图15-3 所示:
图15-3 实验控制信号时序图
五、实验步骤
1. 打开QUARTUSII 软件,新建一个工程。
2. 建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3. 按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。 4. 编写完VHDL 程序后,保存起来。方法同实验一。
5. 将编写的VHDL 程序进行编译并生成模块符号文件,并对程序的错误进行修改,最终所有程序通过编译并生成模块符号文件。其具体方法请参照实验六。
6. 新建一个图形编辑文件,将已生成的模块符号文件放入其中,并根据要求连接起来。 7. 将自己编辑好的的程序进行编译仿真,并对程序的错误进行修改,最终通过编译。 8. 编译仿真无误后,依照《用户手册》进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。 9. 用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。
10.将数字信号源模块F的时钟选择为1MHZ,将直流电机模块的J9模式选择到ON 模式,旋转改变转速的电位器RW3,使直流电机开始旋转,观察数码管上将显示此时直流电机的每分钟转速。通过电位器慢慢增加或者减少直流电机的转动速率,再次观察此时数码管上的数值。观察实验结果是否与自己的编程思想一致。
11.实验完毕,将直流电机模块的J9模式选择到OFF模式,关闭电源,整理实验器材。 六、实验结果
在七段数码管显示了电机当前的转速。
47 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
七、实验报告
1. 绘出仿真波形,并作说明。
2. 试编写程序将实验的结果精确到个位。
3. 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。
48 天煌科技 天煌教仪
THGSC-3型 大规模EDA/SOPC综合实验开发系统
实验十六 数字频率计的设计
一、实验目的
1. 了解等精度测频的方法和原理。
2. 掌握如何在FPGA 内部设计多种功能模块。 3. 掌握VHDL 在测量模块设计方面的技巧。 二、实验设备
1. PC机 一台; 2. Altera Blaster下载器 一根; 3. THGSC-3型实验箱 一台; 4. 数字信号源 一台。 三、实验原理
所谓频率就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔T(也称闸门时间)内测得这个周期性信号的重复变化次数为N,则其频率可表示为 f=N/T
由上面的表示式可以看到,若时间间隔T 取1s,则f=N。由于闸门的起始和结束的时刻对于信号来说是随机的,将会有一个脉冲周期的量化误差。进一步分析测量准确度:设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s 时,测量准确度为δ=Tx/T=1/Fx。由此可知这种直接测频法的测量准确度与被测信号的频率有关,当待测信号频率较高时,测量准确度也较高,反之测量准确度较低。因此,这种直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度保持不变的要求。若要得到在整个测量频段内的测量精度保持不变的要求,应该考虑其它频率测量方法。等精度频率测频的实现方法,可以用图16-1 所示的框图来实现。
图16-1 等精度测频实现框图
所谓等精度是指该频率计在所测量的整个频段内部,均可实现相同精度的测量,即测量精度与频率无关。图中预置门信号通常为1s。其内部包括一个同步门电路,用来实现被测频标与被测频率的同步,提高测量精度,减少基本误差。该部分与清零脉冲协调工作用来控制两个计数器的启动脉冲。计数器1 和计数器2分别用来给频标和被测数字脉冲计数,设在同步门控制结
49 天煌科技 天煌教仪