1、 可编程 FPGA 数字 系统设计 实验指导 西安电子科技大学 空间科学与技术学院编制 目录 第一部分 课程简介 . 3 一课程简介 . 3 二实验项目及学时安排 . 3 第二部分 实验基础知识 . 4 一 .实验的基本过程 . 4 二 .实验中操作规 范和常见故障检查方法 . 4 三、 DE2-115 型数字系统综合实验平台简介 . 5 四、 Quartus ii 10.0 在本实验中的使用 .11 第三部分 Verilog HDL 语言设计实验 . 17 实验一 简单的组合逻辑和时序逻辑的设计 . 17 实验二 复杂时序逻辑电路的设计 . 20 实验三 函数和任务的应用设计 . 24 实验
2、四 有限状态机( FSM)的设计 . 28 实验五 基于模块多层次引用的结构化电路设计 . 32 第四部分 综合实验: . 36 实验一: 8 位十进制频率计设计 . 36 实验二:出租车自动计费器 . 36 实验三:正弦波 信号发生器 . 37 3 第一部分 课程简介 一 课程简介 本课程是电子工程和 计算机科学等 的选修专业课。 Verilog HDL 程序设计是电子信息类专业学生在学习完数字电子技术后的选修专业课程,主要内容是学习利用 Verilog HDL 进行数字逻辑电路和系统的开发和设计。 通过对该课程的学习,学生应该掌握 Verilog HDL 的词法、语法、句法,可综合程序的编
3、写,仿真 及测试 程序的编写,一般数字逻辑的实现,复杂数字逻辑和算法的实现,并能够初步的利用Verilog HDL 进行 时序及逻辑 系统的设计,并对寄存器传输级( RTL)上的设计 方法 掌握和理解。 Verilog HDL 语言设计是一门理论与实践联系紧密的课程,所以本课程安排 5 个实验,以帮助学生掌握 Verilog HDL 程序设计技术,提高学生分析问题和解决问题的能力,并通过实验培养学生的创新意识。 本实验课的基本要求如下: 1学会用 Verilog HDL 语言编写数字电路和系统的程序,通过上机实习加深对课堂所学知识的理解; 2上机前应按照要求把实验内容准备好,即编好程序及需要改
4、变的参数,能预计出可能出现 的结果; 3观察实验结果,得出结论; 4实验结束时提交实验报告。 二 实验项目及学时安排 序号 项目 学时 实验性质 验证 综合 设计 1 简单的组合逻辑和时序逻辑的设计 4 2 复杂时序逻辑电路的设计 4 3 函数和任务的应用设计 4 4 有限状态机( FSM)的设计 4 5 基于模块多层次引用的结构化电路设计 4 4 第 二 部分 实验基础知识 一 .实验的基本过程 实验的基本过程,应包括: 1,熟悉 实验平台; 2, 确定实验内容 ; 3, 选定最佳的实验方法和实验线路 ; 4, 拟出较好的实验步骤、进行 仿真 和调试、最后写出完整的实验报告。 在 利用 Ve
5、rilog HDL 进行数字 系统设计 实验时,充分掌握和正确利用 Verilog 语言 独有的特点和规律,可以收到事半功倍的效果,对于完成每一个实验,应做好实验预习、实验记录和实验报告等环节。 (一) 实验预习 认真预习是做好实验的关键。预习好坏,不仅关系到实验能否顺利进行,而且直接影响实验效果。预习应按本教材的实验预习要求进行,在每次实验前首先要认真复习有关实验的基本原理,对如何着手实验 做到心中有数,通过预习还应做好实验前的准备 。 (二) 实验记录 实验记录是实验过程中获得的第一手资料。测试过程中所测试的数据和波形必须和理论基本一致,所以记录必须清楚、合理、正确,若不正确,则要现场及时
6、重复测试,找出原因。 (三) 实验报告 实验报告是培养学生科学实验的总结能力和分析思维能力的有效手段,也是一项重要的基本功训练,它能很好地巩固实验成果,加深对基本理论的认识和理解,从而进一步扩大知识面。 实验报告是一份技术总结,要求文字简洁,内容清楚,图表工整。报告内容应包括实验目的、实验内容和结果、实验使用仪器和元器件以及 分析讨论等,其中实验内容和结果是报告的主要部分,它应包括实际完成的全部实验,并且要按实验任务逐个书写,每个实验任务应有如下内容: 1.实验课题的方框图、逻辑图、状态图,真值表以及文字说明等,对于设计性课题,还应有整个设计过程和关键的设计技巧说明。 2.实验结果分析、讨论及
7、结论,对讨论的范围,没有严格要求,一般应对重要的实验现象、结论加以讨论,以便进一步加深理解,此外,对实验中的异常现象,可作一些简要说明,实验中有何收获,可谈一些心得体会。 二 .实验中操作规范和常见故障检查方法 实验中操作的正确与否对实验结果 影响甚大。因此,实验者需要注意按以下规程进行。 1.搭接实验电路前,应对仪器设备进行必要的检查校准,对所用集成电路进行功能测试。 5 2.搭接电路时,应遵循正确的布线原则和操作步骤(即要按照先接线后通电,做完后,先断电再拆线的步骤)。 3.掌握科学的调试方法,有效地分析并检查故障,以确保电路工作稳定可靠。 4.仔细观察实验现象,完整准确地记录实验数据并与
8、理论值进行比较分析。 5.实验完毕,经指导教师同意后,可关断电源拆除连线,整理好放在实验箱内,并将实验台清理干净、摆放整洁。 三、 DE2-115 型数字系统综合实 验平台简介 DE2-115 型数字系统综合实验平台是以 FPGA 芯片数数主的可进行数字逻辑、微机原理、接口技术等数字技术的课程实验。本实验通过所需完成数字逻辑的器件配置图来配置 FPGA 核心芯片完成相关的逻辑功能。 1、 DE2-115 型 FPGA 综合实验平台介绍 FPGA 核心芯片“ C7N”,配置方式有 TJAG 和 AS 模式两种,配置控制芯片为 EPCS64,使用 USB Blaster 进行在线配置。系统上电后不
9、断进行自检。 2、本实验中涉及主要引脚 ( 1)拨动开关( SW)与 FPGA 引脚对应关系 6 ( 2)按钮开 关( KEY)与 FPGA 引脚对应关系 ( 3) LED 指示灯与 FPGA 引脚对应关系 7 ( 4)数码管与 FPGA 引脚对应关系 8 3、 DE2-115 下载器连接与配置 9 ( 1)配置 Cyclone IV E FPGA 芯片 在 Quartus II 软件使用简介中,我们已经介绍了如何从 PC 下载一个硬件电路到 DE2-115 开发板。这份使用说明书可以在 DE2-115 系统光盘里面的 DE2_115_tutorials 目录下面找到。用户应该首先仔细阅读这份
10、说明书,而把以下的介绍作为简短的参考。 DE2-115 开发板包含一个存储有 Cyclone IV E FPGA 芯片配置数据的串行配置芯片。每次开发板上电的时候,芯片里面的配置数据会自动从配置芯片加载到 FPGA 芯片。使用 Quartus II 软件,用户可以随时重新配置 FPGA,并可以改变存储在非易失性串行存储器芯片( EPCS)里面的数据。下面分述两种不同的配置方式: 1) JTAG 编程:这种下载方式 -名字起源于 IEEE 标准,联合测试行动组 -会把配置数据直接加载到 Cyclone IV E FPGA 芯片。 FPGA 芯片会保持这些配置信息直到芯片掉 电。 2) AS 编程
11、:这种下载方式被叫称作串行主动编程,它会下载配置数据到 Altera EPCS64 芯片。它将配置数据保存在非易失性器件中,即使 DE2-115 开发板掉电,数据也不会丢失。在每次开发板上电的时候, EPCS64 芯片里面的数据会自动加载到 Cyclone IV E FPGA 芯片。 ( 2) DE2-115 开发板上的 JTAG 链 当使用 JTAG 接口配置 FPGA 芯片的时候, DE2-115 上的 JTAG 链必须形成一个回路,这样Quartus II 软件才可以正确检测到 JTAG 链上的 FPGA/CPLD 器件。给出了 DE2-115 开发板上的JTAG 链。短接 JP3 上的
12、第一、二引脚会旁路 HSMC 接头的 JTAG信号,直接在 DE2-115 上形成 JTAG 回路,这样只有 DE2-115 上的 FPGA 器件( Cyclone IV E)才可以被 Quartus II 软件检测到。如果用户想通过 HSMC 接头包含其它的 FPGA器件或者包含 FPGA器件的界面,短路 JP3 的第二、三脚,从而使能 HSMC 接头上的 JTAG 链。 以下是关于 JTAG 和 AS 编程的操作步骤。对于这两种方式, DE2-115 开发板均通过 USB 电缆连接到 PC 主机。通过这种连接,主机将开发板当做一个 Altera USB-Blaster 设备。在主机上安装
13、USB-Blaster 驱动的步骤在说明书 “Getting Started with Alteras DE2-115 Board”(tut_initialDE2-115.pdf)中有详细描述。这份说明书可以在 DE2-115 的系统光盘中找到。 ( 3) 使用 JTAG 模式配置 FPGA 给出了 JTAG 编程模式的设定信息。执行以下步骤,以将配置数据下载到 Cyclone IV E FPGA: 确保 DE2-115 已经正确连接好电源 将 RUN/PROG 拨动开关( SW19)放置在 RUN 位置 将附带的 USB 电缆连接到 DE2-115 开发板的 USB-Blaster 电路上。
14、 现在可以通过 Quartus II 编程器选择合适的以 .sof 为扩展名的配置数据来配置 DE2-115 的FPGA 芯片了 10 ( 4) 使用 AS 模式配置 EPCS64 芯片 图 4-5 给出了 AS 配置模式的设定。执行以下步骤,以将配置数据下载到 EPCS64 芯片: 确保 DE2-115 已经连接好电源 连接附带的 USB 电缆到 DE2-115 的 USB-Blaster 接口 将 RUN/PROG 拨动开关( SW19)放置在 PROG 位置 现在可以通过 Quartus II 编程器通过选择以 .pof 位扩展名的配置文件来编程 EPCS64 器件了 编程结束后,将 RUN/PROG 开关拨回 RUN 位置,关闭然后打开 DE2-115 的电源开关。 通过这次重启, FPGA 将从 EPCS64 器件读取新的配置数据 ( 5)拨动开关与按钮开关的使用 DE2-115 提供 了四个按钮开关,如图 4-6 所示。每个按钮开关都通过一个施密特触发器进行了去抖动处理,如图 4-7 所示。四个施密特触发器的输出信号,分别为 KEY0, KEY1, KEY2, KEY3,直接连接到了 Cyclone IV E FPGA。当按钮没有被按下的时候,它的输出是高电平,按下去则给出一个低电平。得益于去抖动电路,这些按钮开关适合用来给内部电路提供(模拟的)时钟或者复位信号。