首页资源分类PCB layout > Verilog_电子表

Verilog_电子表

已有 453124个资源

下载专区

上传者其他资源

文档信息举报收藏

标    签: Verilog电子表

分    享:

文档简介

Verilog 电子表

文档预览

可编程逻辑器件及应用实践教程 温州大学物理与电子信息工程学院 陈博 2015 年 3 月 第一部分 QuartusⅡ软件环境的使用 一、 软件的安装和启动 1、下载最新版本的 QuartusⅡ软件环境和软件使用的授权文件。 2、默认选项安装软件包,完成 QuartusⅡ软件的安装;完成软件安装之后,将开发板的 USB 接口接入电脑,软件将自动完成连接线驱动的安装。 3、双击桌面快捷方式“QuartusⅡ…Edition”,如图 1.1 所示,进入 QuartusⅡ软件环境。 图 1.1 二、 软件的使用流程 1、启动软件后,进入软件界面,如图 1.2 所示。软件界面包括菜单栏、工具栏、项目导航 窗口(Project Navigator)、任务进程窗口(Tasks)、信息窗口(Messages)和主窗口。 图 1.2 2、新建项目工程(New Project Wizard),如图 1.3 所示。 温州大学物理与电子信息工程学院 陈博 1 图 1.3 3、点击“Next”之后,需要填写项目存储路径和项目名称,如图 1.4 所示。 图 1.4 4、连续点击两次“Next”后,需要选定器件型号和属性(实验室所用开发板芯片型号为 MAX Ⅱ EPM240T100C5),如图 1.5 所示,然后点击完成。 温州大学物理与电子信息工程学院 陈博 2 图 1.5 5、新建源文件,选择“Verilog HDL File”,如图 1.6 和图 1.7 所示。 图 1.6 温州大学物理与电子信息工程学院 陈博 3 图 1.7 6、输入源程序后保存,点击工具栏的三角形按钮(编译,Start Compilation),进行语法检 测和编译等功能,如图 1.8 所示。 图 1.8 7、编译完成之后,会提示是否存在语法错误等,如果编译通过,则跳出如图 1.9 所示窗口, 此时点击“确定”完成编译。 温州大学物理与电子信息工程学院 陈博 4 图 1.9 8、新建源文件,选择“Vector Waveform File”,建立波形文件进行仿真,如图 1.10 所示。 图 1.10 9、为了对所编写的 Verilog HDL 源程序进行仿真,需要给定模块的输入波形,观察输出波形。 操作过程如下:右键点击,选择“Insert”,然后选择“Insert Node or Bus…”,如图 1.11 所示。 图 1.11 温州大学物理与电子信息工程学院 陈博 5 然后选择“Node Finder…”,如图 1.12 所示。 图 1.12 按照以下步骤选定仿真需要用到的端口(一般包括所有的输入和输出),如图 1.13 所示,最 后点击 OK。 图 1.13 10、画出输入信号的波形并进行仿真。具体的操作步骤如下: Ⅰ、可以放大缩小波形图(选择放大器工具,左键放大,右键缩小); Ⅱ、需要哪一段为高电平,选择该段,点击工具栏的 1 按钮(Forcing High),如图 1.14 所示; Ⅲ、设定仿真结束时间:选择“Edit”菜单中的“End Time…”;仿真结束时间可以根据所画 的输入波形的结束时间确定,如图 1.15 所示; Ⅳ、将软件的仿真模式修改为“功能仿真(Functional)”模式,操作方法如图 1.16 所示; 温州大学物理与电子信息工程学院 陈博 6 Ⅴ、还需要生成一个“功能仿真网表文件(Generate Functional Simulation Netlist)”:选择 “Processing”菜单中的“Generate Functional Simulation Netlist”,如图 1.17 所示; Ⅵ、点击仿真按钮(Start Simulation),如图 1.18 所示,观察输出波形。 图 1.14 图 1.15 图 1.16 温州大学物理与电子信息工程学院 陈博 7 图 1.17 图 1.18 11、端口约束:选择工具栏端口设置按钮(Pin Planner),在“location”栏中设置端口编号; 具体端口对应见附录 1:EPM240 引脚分配。如图 1.19 所示。 图 1.19 温州大学物理与电子信息工程学院 陈博 8 12、设置完引脚之后,关闭“Pin Planner”,重新编译。最后进行电路下载的工作,步骤如 下图 1.20 所示。然后可以再实验开发板上观察现象。 图 1.20 温州大学物理与电子信息工程学院 陈博 9 第二部分 仿真软件 ModelSim 的简单使用 一、 软件的安装和启动 1、下载 ModelSim 仿真软件和软件使用的授权文件。 2、安装软件包,完成 ModelSim 软件的安装。 3、双击桌面快捷方式“ModelSim”,如图 2.1 所示,进入 ModelSim 软件环境。 图 2.1 二、 软件的使用流程 1、以一个十进制计数器电路的仿真为例。首先需要在 QuartusⅡ软件环境中编写一个十进制 计数器电路,电路程序如图 2.2 所示。 图 2.2 2、然后再次新建一个 Verilog HDL File 源文件作为测试程序。测试程序的编写步骤如下: Ⅰ、首先利用“`timescale”语句定义仿真时间单位和时间精度; Ⅱ、仿真程序一般可以不设端口,只需要定义内部变量的名字和类型,注意仿真程序里变量 的类型与被仿真程序里变量的类型一般是不一样的; Ⅲ、调用被仿真的模块; Ⅳ、利用一个或者多个 initial 语句和 always 语句给输入变量赋值,如图 2.3 所示。 温州大学物理与电子信息工程学院 陈博 10 图 2.3 3、启动软件后,进入软件界面,如图 2.4 所示。软件界面包括菜单栏、工具栏、工作窗口 (Workspace)、信息窗口(Transcript)和主窗口。 图 2.4 4、载入并编译十进制计数器程序和测试程序,步骤如下: Ⅰ、点击“Compile”菜单的“Compile”选项; Ⅱ、然后选定上面编写的十进制计数器程序和测试程序,点击“Complile”; Ⅲ、最后点击“Done”,如图 2.5 所示。 温州大学物理与电子信息工程学院 陈博 11 图 2.5 5、执行仿真,步骤如下: Ⅰ、点击“Simulate”菜单的“Start Simulation”选项; Ⅱ、在“work”中找到仿真程序中所写的模块(如上面的例子中时“count10_test”); Ⅲ、注意:去掉“Optimization”下面的勾,并点击“OK”按钮,如图 2.6 所示。 图 2.6 温州大学物理与电子信息工程学院 陈博 12 6、观察输出波形,步骤如下: Ⅰ、在跳出的窗口中,选中“count10_test”,右键点击,选择“Add to Wave”,如图 2.7 所 示; Ⅱ、点击工具栏中的“Run”按钮; Ⅲ、通过放大缩小按钮可以放大或者缩小波形,使波形看的更清楚。如图 2.8 所示。 图 2.7 图 2.8 温州大学物理与电子信息工程学院 陈博 13 第三部分 OOIC-EPM240 实验开发板简介 一、 OOIC-EPM240 实验开发板整体外观 OOIC-EPM240 实验开发板整体外观如图 3.1 所示: 图 3.1 实验板可以采用 USB 接口供电,同时利用另一根 USB 接口连接电脑和实验开发板,打 开电源,开发板左上角的红色电源指示灯点亮;系统将自动为实验开发板安装驱动程序,驱 动程序正确安装后,实验开发板准备就绪。若驱动程序不能自动安装,需要手动安装驱动程 序(在设备管理器中查找新硬件,重新安装驱动程序,驱动程序的位置在 C :\altera\90sp2\quartus\drivers\usb-blaster)。 二、 OOIC-EPM240 实验开发板功能简介 OOIC - EPM240 实 验 开 发 板 功 能 较 为 丰 富 , 它 包 含 了 Altera MAX Ⅱ 系 列 器 件 (EPM240T100C5,CPLD 器件,240 个宏单元);板载 50MHz 的晶振;包括外接电源口、USB 电源口、PS2、VGA、JTAG 下载接口和 LCD 接口等;包括系列拨码开关、LED 灯、LED 点阵、 扬声器、交通灯模块、矩阵键盘、七段显示灯管等。该开发板不仅具备了 CPLD 突出的优点, 也为嵌入式处理的发展和应用提供了极大的方便。 更多内容请参考相应配套光盘内容。 温州大学物理与电子信息工程学院 陈博 14 第四部分 可编程逻辑器件及应用实践基础设计 一、 设计要求 1、实现 50MHz 时钟信号的输入和分频,能根据开关改变分频的结果,以实现跑马灯电路移 位速度的变化; 2、系统自动实现分频结果的变化,自动改变跑马灯电路的移位速度; 3、完成跑马灯移位电路的设计,实现 LED 灯的自动左移和右移。 二、 设计原理 1、一个简单的跑马灯的显示情况如下图 4.1 所示。 图中的每个小方格代表一盏 LED 灯,黑色代表相应位置的灯点亮,白色代表相应位置的 灯未点亮。每过一个时间段,LED 灯向左移动一个位置,从而产生跑马灯的效果。 图 4.1 2、跑马灯移动的时间段需要时钟信号通过定时功能去控制。时间段的选择以 0.5s、0.6s、 0.7s、0.8s、0.9s 和 1.0s 等较为适宜。通过编写定时模块实现不同移动时间段的控制。 三、 设计实现 1、移位模块:要实现 LED 灯左移和右移并自动变换的功能。 左移的 Verilog HDL 程序代码如下页图 4.2 所示。 要实现 LED 灯的左移和右移,并能够自动循环变换,需要添加一个内部控制信号。根据 温州大学物理与电子信息工程学院 陈博 15 该内部控制信号的值为低电平或者高电平,从而左移或者右移;自动循环变换左移和右移, 则该内部控制信号的值需要能自动地在低电平和高电平之间转化。 图 4.2 2、分频模块:控制跑马灯移动的时间间隔,并实现频率的自动变化。 以 50MHz 的基准时钟为例,为了得到 1s 的时间间隔,需要对基准时钟进行 50000000 分频,其 Verilog HDL 程序代码如图 4.3 所示: 图 4.3 为了控制跑马灯移动的时间间隔发生变化,需要在分频模块内部添加控制信号;根据需 要的不同时间间隔的数量决定该控制信号的位宽;自动变换移位的时间间隔,则该内部控制 信号的值需要能自动地在模块内部变化。 3、顶层模块:通过调用移位模块和分频模块形成顶层模块。 模块的调用可以参照 Verilog HDL 的结构化描述的语法格式: 模块名称 调用实例名称(端口列表); 其中端口列表可以采取通过位置相关联的方式,也可以采取通过名称相关联的方式,具 温州大学物理与电子信息工程学院 陈博 16 体的描述可以参考教材。 简单只有一种移动时间间隔和移位方式的跑马灯顶层模块如图 4.4 所示。 图 4.4 四、 结果调试 请记录设计过程中的程序源代码(程序源代码必须包含注释,注释部分包括编写者的姓 名、学号和班级等信息)、电路结构、仿真结果、解决的问题等必要的信息。 温州大学物理与电子信息工程学院 陈博 17 第五部分 可编程逻辑器件及应用实践进阶设计 一、 设计要求 1、利用 Verilog HDL 编写一个电子表程序; 2、完成电子表系统各个模块的程序设计,并通过调用形成顶层模块; 3、电子表系统具备的基本功能:时间显示,并能够手动调整时间; 4、电子表系统具备的简单扩展功能:跑表定时功能,精度 0.01 秒; 5、电子表系统具备的其他扩展功能 1:整点报时; 6、电子表系统具备的其他扩展功能 2:闹钟的设定和闹钟的发声。 二、 设计原理 1、板载 50MHz 时钟的分频 电子表系统具有的基本功能是时间显示的功能,从该功能的角度看,需要的最小时间间 隔为 1 秒;由于电子表系统的简单扩展功能中的跑表定时功能,要求精度为 0.01 秒,即需 要的最小时间间隔为 0.01 秒;又由于七段显示灯管的扫描时间间隔为 1 毫秒,即需要的最 小时间间隔为 0.001 秒。因此,首先将 50MHz 的时钟分频为 1000Hz,其它的时间都由 1000Hz 的时钟定时产生,可以最大地简化系统。 2、七段显示灯管的扫描显示 实验开发板包含一个 4 位联体的共阴极 7 段数码管,其接口电路是把所有数码管的 8 个笔划段 a~h 同名端连在一起,而每个数码管由一个独立的公共极 COM 端控制(低电平有 效)。 当向数码管发送字形码时,所有数码管都接收到相同的字形码,但是究竟是哪个数码管 亮,取决于 COM 端。动态扫描即采用分时方法,轮流控制各个数码管轮流点亮。 在轮流点亮数码管的过程中,每一个数码管的点亮时间是极为短暂的(通常为 1ms 左 右),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上每个数码管并非同时 点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。 3、功能模式的选择 整个电子表系统具有的功能大致包括: ①时间显示;②手动调整时间的分钟;③手动调整时间的小时;④跑表定时功能;⑤整 点报时开关;⑥闹钟功能开关;⑦手动调整闹钟的分钟;⑧手动调整闹钟的小时;…… 温州大学物理与电子信息工程学院 陈博 18 为了在各种功能模式之间进行选择,电子表系统应当具备一个 mode 按钮和 add 按钮。 每按一次 mode 按钮,可以进行功能模式之间的切换;每按一次 add 按钮,则可进行修改。 举例如下: 在按动 mode 按钮一次之后,电子表系统进入手动调整时间的分钟功能模式,然后每按 一次 add 按钮,则分钟自动增加 1;若长时间(比如 20 秒)没有其他动作,则电子表系统 自动返回时间显示功能模式。 在按动 mode 按钮四次之后,电子表系统进入整点报时开关功能模式,然后按动 add 按 钮一次,则打开整点报时功能,再按动 add 按钮一次,则关闭整点报时功能;若长时间(比 如 20 秒)没有其他动作,则电子表系统自动返回时间显示功能模式。 其余功能的设定依此类推。 4、时间显示功能 电子表系统采用 24 小时制显示时间,显示的范围从 00:00 一直到 23:59。该部分的关键 是设定时间的进位功能。 当时间为 23:59,则下一个数字显示将变为 00:00; 当时间为 x9:59,则下一个数字显示将变为(x+1)0:00; 当时间为 xy:59,则下一个数字显示将变为 x(y+1):00; 当时间为 xy:z9,则下一个数字显示将变为 xy:(z+1)0。 同时,为了能够完成手动修改时间的分钟和小时功能,在该功能模块中必须配合 mode 按钮和 add 按钮。 5、跑表定时功能 当按动 mode 按钮三次之后,电子表系统进入跑表定时功能模式,此时显示为 00:00; 然后按动 add 按钮一次,则开始进行定时,定时的最小时间间隔为 0.01 秒;再按动 add 按 钮一次,则该次定时时间暂停;再次按动 add 按钮,则在原来定时时间的基础上继续定时。 若长时间(比如 20 秒)没有其他动作,则电子表系统自动返回时间显示功能模式。 6、整点报时功能 整点报时功能可以选择打开或者关闭。 当整点报时功能打开时,如果当前的时间为 xx:00,则进行整点报时,输出声音到扬 声器。整点报时的时间长度可以设置为 1 秒,即整点的时候,扬声器发出的声音只持续 1 秒的时间。 温州大学物理与电子信息工程学院 陈博 19 三、 设计实现 1、板载 50MHz 时钟的分频 根据上面设计原理的说明,需要将 50MHz 分频为 1000Hz,程序如图 5.1 所示。 图 5.1 另外,在时钟的记时、按钮的扫描等功能模块中经常需要用到 1Hz 的时钟信号,所以可 以提前编写另一个分频的模块,得到 1Hz 的时钟,该分频模块的程序略。 2、七段显示灯管的扫描显示 根据七段扫描显示的原理,编写扫描程序如图 5.2 所示。 图 5.2 其中,共阴极的七段显示译码器程序略。 3、功能模式的选择 整个电子表系统具有的功能大致包括: ①时间显示;②手动调整时间的分钟;③手动调整时间的小时;④跑表定时功能;⑤整 温州大学物理与电子信息工程学院 陈博 20 点报时开关;⑥闹钟功能开关;⑦手动调整闹钟的分钟;⑧手动调整闹钟的小时;…… 而为了在各种功能模式之间进行选择,电子表系统应当具备一个 mode 按钮和 add 按钮。每 按一次 mode 按钮,可以进行功能模式之间的切换;每按一次 add 按钮,则可进行修改。 因此设定一个计数器用于表征当前所处的功能模式。扫描 mode 按钮和 add 按钮的时间 间隔为 1 秒,即需要一个 1Hz 的信号作为时钟;每按动 mode 按钮一次,则计数器增加 1, 进入下一个功能模式;若长时间没有按动 mode 按钮或者 add 按钮(如设定为 20 秒),则自 动回到模式零,即正常显示时间模式。 编写程序如图 5.3 所示。 图 5.3 4、时间显示功能 电子表系统采用 24 小时制显示时间,显示的范围从 00:00 一直到 23:59。该部分的关键 是设定时间的进位功能。 而当电子表系统处于功能模式选择中的手动调整时间的分钟或小时的时候,可以通过 add 按钮增加分钟或者小时的数值;另外,为了区分电子表系统是处于正常的时间显示还是 手动调整时间功能模式,在调整时间的模式中可以让显示的数值处于闪烁状态。 具体程序编写如图 5.4 所示。 温州大学物理与电子信息工程学院 陈博 21 图 5.4 5、跑表定时功能 当按动 mode 按钮三次之后(modecount==3),电子表系统进入跑表定时功能模式;然 后按动 add 按钮一次,则开始进行定时;再按动 add 按钮一次,则该次定时时间暂停;再次 按动 add 按钮,则在原来定时时间的基础上继续定时。 为了简化电路,该设定不包含在跑表定时功能模式下清零的操作,为了让跑表清零,必 须先退出跑表定时功能。具体程序编写略。 6、整点报时功能 整点报时功能可以选择打开或者关闭,通过一个标志位 flag1 来表示。 默认情况下,整点报时功能打开(flag1=1);当按动 mode 按钮四次之后(modecount==4), 电子表系统进入整点报时开关功能模式,此时让七段数码灯管显示为 A 1。 如果需要关闭整点报时功能,则按动 add 按钮一次,修改 flag1 的值为 0。具体程序如 图 5.5 所示。 温州大学物理与电子信息工程学院 陈博 22 图 5.5 如果打开整点报时功能(flag1==1),则需要扬声器配合发声。设定整点报时的时间为 1 秒。则在这 1 秒时间内,需要给扬声器一个方波信号以驱动扬声器。具体程序略。 7、闹钟功能 参照上面程序编写的原理和方式,可以自己编写闹钟功能的模块。 由于实验开发板采用的芯片为 EPM240 系列,如果加上闹钟功能,可能导致电路规模溢 出。因此,暂时省略电子表系统的闹钟功能。 8、顶层模块 调用上面所写的各个模块,构成电子表系统的最终顶层模块,如图 5.6 所示。 9、端口定义可参考图 5.7。 图 5.6 温州大学物理与电子信息工程学院 陈博 23 图 5.7 四、 结果调试 请记录设计过程中的程序源代码(程序源代码必须包含注释,注释部分包括编写者的姓 名、学号和班级等信息)、电路结构、仿真结果、解决的问题等必要的信息。 温州大学物理与电子信息工程学院 陈博 24 附录:EPM240 引脚分配 温州大学物理与电子信息工程学院 陈博 25

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。