《FPGA设计与应用》实验指导书全Verilog版.docx
《《FPGA设计与应用》实验指导书全Verilog版.docx》由会员分享,可在线阅读,更多相关《《FPGA设计与应用》实验指导书全Verilog版.docx(12页珍藏版)》请在冰豆网上搜索。
《FPGA设计与应用》实验指导书全Verilog版
《FPGA设计与应用》
实验指导书
某某编
武汉理工大学华夏学院
2011年9月
前言
一、实验课目的
数字电路与系统设计实验课是电子工程类专业教学中重要的实践环节,包括了ISE开发环境基本操作及FPGA的基本原理、基带传输系统的设计、Uart串口控制器电路的设计、PS/2接口的设计、VGA显示接口设计。
要求学生通过实验学会正确使用EDA技术,掌握FPGA器件的开发,熟练使用ISE开发环境,掌握Verilog语言的编程,掌握数字电路和系统的设计。
通过实验,使学生加深对课堂专业教学内容的理解,培养学生理论联系实际的能力,实事求是,严谨的科学作风,使学生通过实验结果,利用所学的理论去分析研究EDA技术。
培养学生使用Basys2开发板的能力以及运用实验方法解决实际问题的能力。
二、实验要求:
1.课前预习
①认真阅读实验指导书,了解实验内容;
②认真阅读有关实验的理论知识;
③读懂程序代码。
2.实验过程
1按时到达实验室;
2认真听取老师对实验内容及实验要求的讲解;
3认真进行实验的每一步,观察程序代码与仿真结果是否相符;
4将实验过程中程序代码和仿真结果提交给老师审查;
5做完实验后,整理实验设备,关闭实验开发板电源、电脑电源后方可离开。
3.实验报告
①按要求认真填写实验报告书;
②认真分析实验结果;
③按时将实验报告交给老师批阅。
三、实验学生守则
1.保持室内整洁,不准随地吐痰、不准乱丢杂物、不准大声喧哗、不准吸烟、不准吃东西;
2.爱护公务,不得在实验桌及墙壁上书写刻画,不得擅自删除电脑里面的文件;
3.安全用电,严禁触及任何带电体的裸露部分,严禁带电接线和拆线;
4.任何规章或不按老师要求操作造成仪器设备损坏须论价赔偿。
实验一Uart通用串口接口的设计……………………………………………………4
实验二PS/2接口的设计……………………………………………………………28
实验三VGA显示接口设计…………………………………………………………30
附录一basys2开发板资料………………………………………………………36
实验一Uart串口控制接口电路的设计
一、实验目的
1.掌握分频模块的设计方法。
2.掌握并/串模块的设计方法。
3.掌握串/并模块的设计方法。
4.掌握发送模块的设计方法。
5.掌握接收模块的设计方法。
二、实验内容及基本原理
通用异步收发器是一种通用串行数据总线,用于异步通信。
该总线双向通信,可以实现全双工传输和接收。
它是一种应用非常广泛的短距离串行传输接口,主要应用于短距离、低速低成本的微机与下位机的实时通信中,然而这类芯片本身已经相当复杂,有的甚至含有许多辅助的功能模块(如FIFO),但是实际应用中常常不需要使用如此完整的UART的功能以及这些辅助功能。
本设计要求以Verilog语言进行基于FPGA的硬件逻辑设计,利用ISE进行控制器的设计,用C#实现上位机串口通信软件的设计。
说明:
一帧数据分为4个部分
S:
起始位(一般为0)d[7:
0]:
数据位(长度6~8bit)
PB:
校验位(可选)P:
停止位1(1、1.5或2bit)
本设计要求学生设计一个串行通信控制器,要求满足的功能要求如下:
(1)利用FPGA设计串行通信发射模块。
(2)利用FPGA设计串行通信接收模块。
(3)利用C#设计上位机软件,显示接收的数据。
三、实验步骤
1.新建一个工程,命名为uart.xise。
2.新建一个Verilog源文件,命名为uart.v,编写源文件,实现加法器功能。
3.综合
4.新建一个测试文件,命名为test.v,编写测试文件进行波形仿真。
5.新建一个约束文件,命名为uart.ucf。
6.实现
7.生成编程文件
8.下载
9.功能测试
四、主要仪器和设备
主要仪器和设备:
计算机,Basys2开发板。
五、实验报告要求
1.写出设计思想及框图
2.简述设计步骤和调试过程。
包括总体电路设计、相应模块设计,以及在ISE上完成的设计和仿真。
相关文档包括:
Verilog语言的源代码(程序要有详细的注释和功能说明)、引脚分配的约束文件、验证设计功能等设计的所有文档与调试的结果。
3.写出结论及心得体会。
4.按照实验报告模板,撰写实验报告。
实验报告各项内容都要填好,不能空缺。
源代码和图可以打印,其它内容手写。
实验二ps2键盘接口电路的设计
一、实验目的
1.掌握分频模块的设计方法。
2.掌握发送模块的设计方法。
二、实验内容及基本原理
ps2是常见的AT键盘或鼠标的接口,本设计不适用于USB键盘或者已淘汰的XT键盘。
键盘上带有自己的微处理器,它不断地扫描按键输入,并把结果发送给接口。
对于一个ps2键盘来说,可以通过扫描码来识别按键输入。
扫描码与物理按键相关联。
所以,键盘中左shift键和右shift键拥有不同的扫描码。
当你按下键盘上一个按键时,Make扫描码被发送到ps2接口;当释放按键时候,Break扫描编码被发送到ps2接口。
下表给出了键盘上所有按键的Make和Break扫描编码。
对所有的字母和数字来说,Make扫描编码是一个单字节,而其Break扫描编码则是在相同的单字节前面加上F0。
有些按键拥有两字节的Make扫描编码,它们以E0位引导。
注意:
按键PrnScrn和Pause非常特殊,它们分别有4个和8个字节的扫描编码。
键盘中的扫描编码和键值的ASCII码没有任何联系。
我们知道一个字母的大小写形式对应不同的ASICC码。
而键盘上为区分大小写输入,必须使用shift键,按后按下A键,然后依次松开A键和shift键。
从上表我们知道,在这一过程中,我们向ps2接口发送了以下字节:
121CF01CF012
当我们按住一个按键不放时,键盘的重复按键机制将启动。
在等待了大约0.25~1.00的重复按键延时后,键盘将持续发送按键的Make扫描编码,以每秒2~30个字符的速率输出字符。
本实验只从设备读取数据而不发送任何命令给设备。
因此,不需要使用三态门。
但是,我们需要对键盘输入的数据和时钟进行过滤。
过滤后的数据信号将被送到两个11位的移位寄存器中。
注意:
当两帧都被移位寄存器寄存后,第一个字节在shift2[8:
1]中,第二个字节在shift[8:
1]中。
1
P
D7
D6
D5
D4
D3
D2
D1
D0
0
shift1[10:
0]
1
P
D7
D6
D5
D4
D3
D2
D1
D0
0
shift2[10:
0]
要求:
将键盘接到Basys2开发板的ps2接口,在键盘上按键,并将码值在数码管上显示出来。
输入部分:
clr按键:
总复位,clk:
为50MHZ。
Ps2clk:
键盘时钟,Ps2data:
键盘数据。
输出部分:
a_to_g:
数码管七段sel:
数码管位选dp:
小数点
当按下一键时,在键盘发送时钟ps2clk的作用下,将该键所对应的键值数据ps2data发送出去,其中第一位为起始位(低电平);8位数据位(D0~D7,低位在前);一个奇偶校验位;一个停止位(高电平)。
三、实验步骤
1.新建一个工程,命名为ps2_key.xise。
2.新建一个Verilog源文件,命名为ps2_key.v,编写源文件,实现加法器功能。
3.综合
4.新建一个测试文件,命名为test.v,编写测试文件进行波形仿真。
5.新建一个约束文件,命名为ps2_key.ucf。
6.实现
7.生成编程文件
8.下载
9.功能测试
四、主要仪器和设备
主要仪器和设备:
计算机,Basys2开发板。
五、实验报告要求
1.写出设计思想及框图
2.简述设计步骤和调试过程。
包括总体电路设计、相应模块设计,以及在ISE上完成的设计和仿真。
相关文档包括:
Verilog语言的源代码(程序要有详细的注释和功能说明)、引脚分配的约束文件、验证设计功能等设计的所有文档与调试的结果。
3.写出结论及心得体会。
4.按照实验报告模板,撰写实验报告。
实验报告各项内容都要填好,不能空缺。
源代码和图可以打印,其它内容手写。
实验三VGA显示接口设计
一、实验目的
1.掌握标准图像的模式和时序关系。
2.掌握VGA驱动电路的设计方法。
二、实验原理
VGA控制器是一个控制视频显示的5个信号的模块。
这些信号为行同步信号HS、场同步信号VS,以及基色信号R、G、B。
其中,三基色信号输出分别为红、绿、蓝三色发光极上来产生色彩的。
屏幕上的每一个颜色点称为一个像素。
显示器的颜色显示的工作原理取决于阴极射线管和液晶显示技术。
在两种情况下,屏幕总是控制像素点从左上角开始,并从左到右、从上到下依次逐行扫描显示,最终抵达屏幕的右下角。
每一行扫描结束时,用行同步信号进行同步;扫描完成所有的行后用场同步信号进行同步。
输入到一个显示器的R、G和B信号是模拟信号。
然而,FPGA的输出信号却是数字信号,所以需要某种D/A转换器把它转变为模拟信号。
BASYS2开发板使用一个简单的3电阻电路把一个3位的R信号R(2:
0)转换为8电平的模拟信号VR。
采用类似的电路可以把一个3位的G信号G(2:
0)和一个2位的B信号R(1:
0)转换为相应的模拟信号。
BASYS2开发板支持8位的VGA彩色显示------3位红基色、3位绿基色和2位蓝基色。
这将产生256种不同的颜色。
通过对VGA显示基本工作原理的分析可知,要实现VGA显示就要解决数据来源、数据存储、时序实现等问题,其中关键还是如何实现VGA时序。
基于像素时钟,VGA时序控制器必须产生HS和VS时序信号。
像素时钟定义了用于显示一个像素信息的时间,VS信号定义了显示的刷新频率,通常刷新频率在50Hz到120Hz之间。
给给定刷新频率后即定义了水平扫描频率即HS。
VGA的标准参考显示时序如下图所示。
行时序和帧时序都需要产生同步脉冲(Sync)、显示后沿(Backporch)、显示时序段(Displayinterval)和显示前沿(Frontporch)四个部分。
其中场频定义了显示的刷新频率,指定场频后所要扫描的行数指定了水平回扫频率即行频。
几种常用模式的时序参数如下表所示
VGA时序参考图
图像模式
行时序(μs)
场频(lines)
Tpw
Tbp
Tdisp
Tfp
Tpw
Tbp
Tdisp
Tfp
1024*768XGA(75Hz)
1.2
2.2
13
0.2
3
28
768
1
1024*768XGA(60Hz)
2.1
2.5
15.8
0.4
6
29
768
3
800*600SVGA(60Hz)
3.2
2.2
20
1.0
4
23
600
1
640*480VGA(75Hz)
2.0
3.8
20.3
0.5
3
16
480
1
本设计通过外部拨动开关SW0控制,产生三种模式的显示变化。
在ISE环境下用VHDL语言写出VGA显示器彩条信号发生器三种模式的产生过程,横彩条、竖彩条、行同步、场同步所对应的过程设计。
下图所示为VGA控制电路时序产生原理框图。
clkdivid模块为分频电路,对50MHz系统时钟进行分频产生50M/7Hz的像素时钟。
VGAcontrol模块为VGA显示控制电路模块,在像素时钟的驱动下首先产生行频信号,而后对行频信号进行分频产生58Hz场频信号。
由于VS与HS信号具有严格的时序匹配,即VS信号必须为HS信号的整数倍,以保证在场频信号有效期间,能够完整数行的扫描,本设计利用对行频信号进行计数分频来产生场频信号。
在模式控制开关的控制下,三基色信号分别在不同的模式下输出不同的信号。
下表为模式控制说明。
模式开关:
SW0上下拨动一次,产生高电平,改变显示模式,依次拨动SW0,显示模式在竖彩条模式、横彩条模式和棋盘模式之间循环切换。
竖彩条的产生:
利用行频产生计数器,分别在计数的不同时段赋予三基色信号不同的色彩信号。
例如程序当中行频计数器0~29计数,当计数器值0~3时,三基色信号赋予“111”;当4~6计数时,三基色信号赋予“110”,如此类推,直到计数器值21~23期间赋予三基色信号“000”,23以后进行消隐以完成回扫过程。
横彩条的产生:
例如场频计数器0~481计数,当0~60计数时,三基色信号赋予“111”;当61~120计数时,三基色信号赋予“110”,如此类推,直到421~479期间,三基色信号赋予“000”,479以后场频信号变低,以进行消隐,完成回扫。
棋盘格式显示的产生:
将以上两种情况进行异或,即相当于将横彩条和竖彩条进行叠加即可产生棋盘格式显示模式。
VGA显示控制器模式控制
模式1
SW0拨动第一次
竖彩条:
青红紫绿蓝黄白
模式2
SW0拨动第二次
横彩条:
白黄青绿紫红蓝黑
模式3
SW0拨动第三次
棋盘格显示模式
“一次”:
若拨码开关原始处于高电平,则拨动一次拨码开关指拨码开关拨至下方后快速回拨至上方,从新至于高电平位置。
若拨码开关原始处于低电平,拨动一次拨动开关指将拨码开关拨至上方后快速回至下方。
三、实验步骤
1.新建一个工程,命名为vga.xise。
2.新建一个Verilog源文件,命名为vga.v,编写源文件,实现计数功能。
3.综合
4.新建一个测试文件,命名为test.v,编写测试文件进行波形仿真。
5.新建一个约束文件,命名为vga.ucf。
6.实现
7.生成编程文件
8.下载
9.功能测试
四、主要仪器和设备
主要仪器和设备:
计算机,Basys2开发板。
五、实验报告要求
1.写出设计思想及框图
2.简述设计步骤和调试过程。
包括总体电路设计、相应模块设计,以及在ISE上完成的设计和仿真。
相关文档包括:
VHDL语言的源代码(程序要有详细的注释和功能说明)、引脚分配的约束文件、验证设计功能等设计的所有文档与调试的结果。
3.写出结论及心得体会。
4.按照实验报告模板,撰写实验报告。
实验报告各项内容都要填好,不能空缺。
源代码和图可以打印,其它内容手写。
附录一basys2开发板资料
Basys2电路连接图
Basys2引脚定义表
Basys2引脚定义表