实验一 层次法设计组合电路(2学时)
(一)实验目的
(1)掌握基本组合逻辑电路的 FPGA实现;
(2)学习 Verilog HDL 的多层次设计方法;
(3)熟练应用 Quartus II 进行 FPGA开发。
(二)实验要求
以4位二进制全加器为例:
(1)先用Verilog HDL文本实现一位全加器,再在原理图环境中调用一位全加器完成4位全加器的设计,熟悉层次设计概念;
(2)给出此项设计的仿真波形;
(3)下载到DE1开发板上,用LED发光管指示显示结果。
(三)考核要求
先在网络平台上传实验预习(代码,原理图,仿真波形),再在实验室用DE1开发板下载测试。
波形仿真无误,下载测试现象正确。
8个开关分别对应2个四位二进制加数,5个LED指示4位二进制和与进位,上下拨动开关,LED显示随之变化。
实验二 时序电路的设计(3学时)
(一)实验目的
(1)进一步熟悉EDA开发板和QuartusⅡ软件的使用方法。
(2)学习静态数码管的使用和7段数码显示译码器设计;
(3)掌握时钟在时序电路中的作用;
(4)掌握分频电路的实现方法。
(二)实验要求
设计模可变计数器,可任选模的大小(例模15、模115),实验要求:
(1)设置一位控制位M,要求M=0:模X计数;M=1:模Y计数;
(2)计数结果用3位数码管显示,显示BCD码;
(3)给出此项设计的仿真波形;
(4)选择实验电路验证此计数器的功能。
设置涉及2个开关和一个按键,一个开关控制改变模值,另一开关作为使能控制,按键作为异步清0。
(三)考核要求
先在网络平台上传实验预习(代码,仿真波形),再在实验室用DE1开发板下载测试。
波形仿真应能观察到复位、使能、2种模值计数溢出,下载测试现象与仿真相吻合。
按键能复位,使能无效时计数暂停,能切换模值。
为缩短仿真时间,仿真和下载测试时对50MHz系统时钟的分频系数可不同。
实验三 状态机的设计(3学时)
(一)实验目的
掌握序列发生和检测的工作原理;
掌握时序电路中状态机的应用;
掌握用Verilog语言实现复杂时序电路的设计过程。
(二)实验要求
设计序列发生和检测器:
(1)先实现串行序列发生器的设计,产生序列0111010011011010;再设计检测器,若检测到串行序列11010则输出为“1”,否则输出为“0”,并对其进行仿真和硬件测试,选择实验电路验证功能;
(2)下载程序后,可通过一个led灯串行输出序列信号,另用五个led灯来观测待检测序列,当11010五个全部出现在led上时,标识位灯M亮起,说明检测到“11010” 的信号,即符合设计要求。
产生的序列和检测的序列值可任选。
发生器和检测器最好异步,以确保能检测到,可以将时钟经非门后再接入检测器。
(三)考核要求
先在网络平台上传实验预习(代码,仿真波形),再在实验室用DE1开发板下载测试。
要画出序列检测的状态转移图。
波形仿真应能观察到复位产生序列、复位检测、加载使能后序列才产生、检测到完整序列,下载测试现象与仿真相吻合。
为增强视觉效果,50MHz系统时钟应分频为秒信号作为序列的同步时钟。
实验四 交通灯控制(3学时)
(一)实验目的
(1)熟悉交通灯控制器的工作原理;
(2)了解设计中的优化方案;
(3)进一步掌握状态机的设计;
(4)学习较复杂数字系统设计。
(二)设计要求
实现一个由一条主干道和一条乡间公路形成的十字路口的交通灯控制器功能:
(1)有MR(主红)、MY(主黄)、MG(主绿)、CR(乡红)、CY(乡黄)、CG(乡绿)六盏交通灯需要控制;
(2)交通灯由绿转红前有4秒亮黄灯的间隔时间,由红转绿没有间隔时间;
(3)乡间公路右侧各埋有一个串连传感器,当有车辆准备通过乡间公路时,发出请求信号S=1,其余时间S=0;
(4)平时系统停留在主干道通行(MGCR)状态,一旦S信号有效,经主道黄灯4秒(MYCR)状态后转入乡间公路通行(MRCG)状态,但要保证主干60s后才能转换;
(5)一旦S信号消失,系统脱离MRCG状态,即经乡道黄灯4秒(MRCY)状态进入MGCR状态,即使S信号一直有效,MRCG状态也不得长于20秒钟;
(三)考核要求
先在网络平台上传实验预习(代码,仿真波形),再在实验室用DE1开发板下载测试。
复位时,起始状态是主绿乡红,数码管从60开始倒计时。
当60s减1计数完成后,如果s信号为1(代表乡干道有车要求通过)时,变为主黄乡绿状态,数码管4s倒计时;如果s信号为0(代表乡干道没有车要求通过)时, 则回到起始状态,主绿乡红重新60s倒计时。
4s倒计时后,进入主红乡绿状态,如果此时s信号为0,则立即转入主红乡黄状态;如果s信号一直为1,则数码管开始20s倒计时,计数期间一旦出现s信号为0,则立即转入主红乡黄状态,即使s信号一直为1,当20s倒计时完成后也会入主红乡黄状态。
主红乡黄,数码管开始4s倒计时,计数完成后进入主绿乡红状态,数码管60s倒计时,重复上述状态。
实验五 多功能数字钟设计(6学时)
(一)实验目的
(1)了解数字钟的工作原理;
(2)掌握综合且较复杂数字系统设计方法;
(3)掌握多层次、多模块数字系统设计方法。
(二)设计要求
设计一个多功能数字钟:
(1)数码管显示时、分、秒;
(2)具有正常计时和调时、调分等校时功能;
(3) 经设置应具有整点报时功能(在59分56秒后开始报时,并用一串LED管显示);
(4)经设置应具有闹钟功能(用LED管点亮表示,时间为一分钟)。
其他扩展功能自行设置。
分析:
-
-
-
- 系统需要两个六十进制计数器用于分钟和秒的计时,为方便译码采用10进制计数加6进制计数的方式;
- 系统需要一个24/12模可变的计数器用于小时的计时,为方便译码采用10进制计数加2/4进制计数的方式,一个模式控制输入端,一个进位输出端,用于扩展为日计时,一个模式输出用于指示当前模;设置为一个模10/4/2可变的计数器,其进位给一个模3的计数器,模3计数器的状态与模式输入一起决定模10/4/2可变的计数器的模式。
- 时分秒的计数器的时钟信号要前置一个选择模块,用于选择时种来源,即正常的计数时钟及调节时钟,以及一个允许/禁止输入用于控制是否输出时钟信号。
- 为提高计时准确度,秒的计数脉冲由外电路分频为0.1秒后由调节模块处理;
- 调节模块处理包含一个前置的模10计数器,用于将生成0.1秒的调节脉冲和1秒的计时脉冲。工作与否由调节模块的调节输入决定;
- 调节模块处理还包含一个模5计数器,用于当数字钟处于调节状态下,监测调节键按下的时间。调节键按下时允许0.1秒计数脉冲作用,否则以键按下产生的脉冲作为计数脉冲。调节按键没有被按下时,停止;
- 驱动数码管显示需要的bcd-7段显示码译码器;
- 功能键每按下恢复时,产生秒-分钟-小时-计时的切换,同一时间只允许其中之一的计数器使能计数,并且通过对调节模块的控制,改变时钟信号。
-
-
(三)考核要求
先在网络平台上传实验预习(代码,仿真波形),再在实验室用DE1开发板下载测试。
波形仿真应能观察到走时、校时、校分、整点及闹时LED亮或输出音频等,下载测试现象与仿真相吻合。
功能的控制操作尽量简化,程序采用模块化设计。
实验六 综合性设计实验(15学时)
(一)实验目的
(1)学习复杂数字系统设计;
(2)学习用LPM(Library of Parameterized Modules 参数可设置模块库)进行设计;
(3)了解Verilog产生VGA显示时序的方法;
(4)了解UART串行通信原理;
(5)学习用在线逻辑分析仪SignalTap观察FPGA产生的信号;
(6)培养工程思维及创新思维。
(二)设计要求
自选一个具有创意的数字系统综合应用题目,划分功能模块,设计调试完成。
以信号发生器设计为例------
基本设计要求(每个同学必须完成,独立验收考核)----LPM定制信号发生器:
(1)数字化波形数据存在ROM中,ROM用LPM进行设计;
(2)正弦波或方波、锯齿波波形可选并数码管显示所选波形种类;
(3)信号频率、幅度可调并用数码管显示频率和幅值;
(4)用SignalTap逻辑仪器观察信号波形。
扩展功能(小组合作完成,以下任选其一)----VGA显示信号波形:
(1)开发板通过VGA接口,将波形数据发送至显示器进行显示。显示界面设计精美。
(2)开发板通过串口,经USB转串口后,发送波形数据笔记本电脑上位机软件显示。同时上位机软件可发送指令至开发板,实现波形、频率和幅度的选择。上位机软件可用VC++,labview等进行设计。界面设计精美。
(三)考核要求
分步骤验收,先验收基本要求的仿真波形、SignalTap输出波形,再验收VGA显示固定条纹或图案,最后验收完整扩展功能,现场回答提问,之后提交设计报告。
波形仿真功能完整,可用SignalTap逻辑仪输出模拟信号,在VGA显示器显示波形,下载测试现象与仿真相吻合。
功能的控制操作尽量简化,程序采用模块化设计。