FPGA实验指导书课案.docx
- 文档编号:8443543
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:26
- 大小:2.04MB
FPGA实验指导书课案.docx
《FPGA实验指导书课案.docx》由会员分享,可在线阅读,更多相关《FPGA实验指导书课案.docx(26页珍藏版)》请在冰豆网上搜索。
FPGA实验指导书课案
FPGA实验指导书
贺付亮樊利刘东卓编写
电子信息工程学院电子信息工程实验教学中心
目录
实验一熟悉实验环境:
ISE工具入门1
实验二选择器3
实验三计数器4
实验四触发器5
实验五编码器8
实验六译码器10
实验七分频器12
实验八加法器13
实验九流水灯设计15
实验十键盘控制实验16
实验十一表决器18
实验十二数据比较器19
实验十三数码管实验21
实验十四综合设计23
实验一熟悉实验环境:
ISE工具入门
实验目的:
1、学会ISE工具的使用流程,从最开始的源文件输入到最后的二进制文件的生成。
2、学会7段数码管显示原理
3、学会拨码开关控制LED按钮控制7段数码管的数字电路的实现
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
本实验旨在使读者学会Xilinx的ISE工具的使用,同时完成一个关于拨码开关控制LED,按钮控制7段数码管的简单设计。
实验原理
Anvyl板有6个(位)7段显示数码管。
每一位都是由7个LED数码管构成的。
1位数码管中的7个LED管是共阳极的,但它们的阴极是分离的。
7SD-C1到7SD-C5为6位数码管各自的共阳极信号,7SD-AA,7SD-AB,7SD-AC,7SD-AD,7SD-AE,7SD-AF,7SD-AG,7SD-DP即6位数码管各自的8个共阴极信号(7SD-DP用于显示小数点)。
实验内容
本实验旨在指导读者使用Xilinx的ISE工具完成一个关于4x4键盘控制7段数码管显示的数字系统的设计,然后在Anvyl平台上进行测试验证。
(详细步骤参看《AnvylTM开发板相关资料》Lab1:
ISE工具入门)
实验由以下步骤组成:
1、通过ProjectNavigator建立工程
2、添加源文件
3、输入拨码开关控制LED按钮控制7段数码管的数字电路的VHDL代码
4、添加用户约束文件
5、编译工程
6、在Anvyl上进行测试验证
问答与习题:
1、按照实验步骤,总结实验流程,写不少于200字总结。
2、简述实验体会。
3、怎样对整个项目进行功能仿真与时序仿真?
两个仿真的区别?
实验二选择器
实验目的
1、设计并实现多路选择器
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
1、预习多路选择器的原理与结构。
2、书写预习报告,必须有完整的VHDL设计程序及实验步骤。
实验原理
2选1数据选择器的思想:
两个输入信号a,b,根据控制信号s的取值0或1的不同,从输出端y选择输出。
编写VHDL代码,综合后对齐仿真。
实验内容
1、启动XilinxISE建立一个空白工程,然后命名。
2、新建VHDL源程序文件并命名,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
打印源程序。
3、利用RTLViewer工具,生成查看RTL图。
打印RTL图。
4、新建仿真波形文件,选择FPGA器件型号,分配FPGA引脚。
对各模块设计进行功能仿真与时序仿真,验证设计结果。
打印波形文件。
打印功能仿真与时序仿真结果。
5、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6、利用DigilentAdept编程调试工具,下载至AnvylTM系统,调试成功。
照片记录调试结果。
问题与习题
对于8位数据宽度的4选1数据选择器,8位数据宽度的8选1数据选择器如何设计实现?
实验三计数器
实验目的
设计并实现计数器
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
1、预习多路选择器与计数器的原理与结构。
2、书写预习报告,必须有完整的VHDL设计程序及实验步骤。
实验原理
1设计一个电路,实现“1”的计数器,它可以计算输入矢量中’1’的个数,见下表3.1。
编写VHDL代码,综合后对齐仿真。
表3.1计数器功能描述表
实验内容
1、启动XilinxISE建立一个空白工程,然后命名。
2、新建VHDL源程序文件并命名,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
打印源程序。
3、利用RTLViewer工具,生成查看RTL图。
打印RTL图。
4、新建仿真波形文件,选择FPGA器件型号,分配FPGA引脚。
对各模块设计进行功能仿真与时序仿真,验证设计结果。
打印波形文件。
打印功能仿真与时序仿真结果。
5、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6、利用DigilentAdept编程调试工具,下载至AnvylTM系统,调试成功。
照片记录调试结果。
问题与习题
实现“1”的计数器的其他设计方案?
实验四触发器
实验目的
学习触发器的设计、分析和测试方法。
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
1、了解触发器电路设计的原理与方法。
2、提前预习,编写好主模块的VHDL程序。
实验原理
1、维持—阻塞型J-K触发器(上升沿触发)
特征方程:
表4.1J-K触发器真值表
1、边沿D触发器
特征方程:
表4.2D触发器功能表
实验内容
1、启动XilinxISE建立一个空白工程,然后命名。
2、新建VHDL源程序文件并命名,输入程序代码并添加约束文件,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
打印源程序。
2、利用RTLViewer工具,生成查看RTL图。
打印RTL图。
4、新建仿真波形文件,选择FPGA器件型号,分配FPGA引脚。
对各模块设计进行功能仿真与时序仿真,验证设计结果。
打印波形文件。
打印功能仿真与时序仿真结果。
5、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6、利用DigilentAdept编程调试工具,下载至AnvylTM系统,调试成功。
照片记录调试结果。
习题与问答
带异步复位端的D触发器。
当输入时钟信号发生变化时(上升沿或下降沿)时,输出信号q值将与当前的输入信号值相同。
下面给出多个实现方案,试确定它们是否可以按要求实现电路,并作出简要解释。
实验五编码器
实验目的
设计并实现一个8线-3线优先编码器
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
1、预习优先编码器的原理与结构。
2、书写预习报告,必须有完整的VHDL设计程序及实验步骤。
实验原理
常用的编码器分为普通编码器和优先编码器,常用的编码器包括4-2编码器、8-3编码器、16-4编码器。
实验要求利用VHDL程序实现8-3优先编码器的功能,其真值表如下表5.1所示。
图5.18-3优先编码器
表5.18-3优先编码器真值表
输入
输出
EIN
0N
1N
2N
3N
4N
5N
6N
7N
A2N
A1N
A0N
GSN
EON
1
X
X
X
X
X
X
X
X
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
X
X
X
X
X
X
X
0
0
0
0
0
1
0
X
X
X
X
X
X
0
1
0
0
1
0
1
0
X
X
X
X
X
0
1
1
0
1
0
0
1
0
X
X
X
X
0
1
1
1
0
1
1
0
1
0
X
X
X
0
1
1
1
1
1
0
0
0
1
0
X
X
0
1
1
1
1
1
1
0
1
0
1
0
X
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
实现“优先编码器”的逻辑优先性只能用“if/else”(顺序描述)和“when/else”(并行描述)的结构。
实验内容
1、启动XilinxISE建立一个空白工程,然后命名。
2、新建VHDL源程序文件并命名,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
打印源程序。
3、利用RTLViewer工具,生成查看RTL图。
打印RTL图。
4、新建仿真波形文件,选择FPGA器件型号,分配FPGA引脚。
对各模块设计进行功能仿真与时序仿真,验证设计结果。
打印波形文件。
打印功能仿真与时序仿真结果。
5、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6、利用DigilentAdept编程调试工具,下载至AnvylTM系统,调试成功。
照片记录调试结果。
问题与习题
对于优先级编码器的设计,是如何控制其优先顺序的?
实验六译码器
实验目的
设计并实现一个输入为m位,输出为n位的通用译码器电路
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
1、预习译码器的原理与结构。
2、书写预习报告,必须有完整的VHDL设计程序及实验步骤。
实验原理
输入为m位,输出为n位的通用译码器电路。
电路有两个输入端口(分别为sel数据输入和ena使能信号)和一个输出端口(x),其电路原理如下图6.2。
图6.2m-n位的通用译码器电路原理图
实验内容
1、启动XilinxISE建立一个空白工程,然后命名。
2、新建VHDL源程序文件并命名,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
打印源程序。
3、利用RTLViewer工具,生成查看RTL图。
打印RTL图。
4、新建仿真波形文件,选择FPGA器件型号,分配FPGA引脚。
对各模块设计进行功能仿真与时序仿真,验证设计结果。
打印波形文件。
打印功能仿真与时序仿真结果。
5、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6、利用DigilentAdept编程调试工具,下载至AnvylTM系统,调试成功。
照片记录调试结果。
问题与习题
实现3-8译码器和2-4译码器的其他设计方案?
实验七分频器
实验目的
学习数控分频器的设计、分析和测试方法。
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
1、了解数控分频器原理与方法。
2、提前预习,编写好主模块的VHDL程序。
3、阅读“VHDL数字电路设计教程(巴西)VolnerA.Pedroni”材料P111-112,例7.5分频器。
思考基于信号计数和基于变量计数的设置方法,实现同样功能的分频器有什么差异。
实验原理
数控分频器的功能就是当输入端输入不同的数据时,产生不同的分频比,从而产生不同的频率值,用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可。
请设计一个对时钟进行6分频的VHDL电路。
原理图如图7.1。
图7.1分频器原理图
实验内容
1、启动XilinxISE建立一个空白工程,然后命名。
2、新建VHDL源程序文件并命名,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
打印源程序。
3、利用RTLViewer工具,生成查看RTL图。
打印RTL图。
4、新建仿真波形文件,选择FPGA器件型号,分配FPGA引脚。
对各模块设计进行功能仿真与时序仿真,验证设计结果。
打印波形文件。
打印功能仿真与时序仿真结果。
5、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6、利用DigilentAdept编程调试工具,下载至AnvylTM系统,调试成功。
照片记录调试结果。
习题与问答
1、分析输入频率、输入端数据、计数器进制、输出频率之间的关系。
2、如何实现不同占空比的频率输出。
3、编一个16分频的程序,并实验仿真。
实验八加法器
实验目的
1、熟悉和掌握XilinxISE的元件(component)的设计、声明和调用方法。
2、理解实例化元件中声明的两种方法。
3、学习1位二进制全加器的设计、分析和测试方法。
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
1、了解1位二进制全加器原理与方法。
2、掌握元件实例化的方法。
3、提前预习,编写实现全加器调用的半加器和或元件的程序。
实验原理
1、要实现全加器,需要调用半加器和或元件,应先分别写出半加器和或元件的VHDL程序。
图8.11位二进制全加器的原理图(RTL图)
(1)或门逻辑描述
(2)半加器设计描述
半加器:
即只有两个加数相加,而无进位标志一起相加的加法运算。
表8.1半加器真值表
2、在主代码中将这几个基本组成模块声明为元件。
3、在主代码中实例化这些元件:
元件的实例化(componentinstantiation):
把低层元件安装(调用)到当前层次设计实体内部的过程。
通过实例化函数,进行端口列表将元件预定义的端口和实例化时的实际端口关联起来,表明顶层主代码中元件的电气连接关系。
注意:
(1)实现元件实例化,要求主代码和半加器、或元件的VHDL文件在一个工程内。
(2)在对每一个VHDL文件进行综合、编译、仿真的时候,需要把当前需调试文件设置为顶层文件,才会实现操作。
实验内容
1、启动XilinxISE建立一个空白工程,然后命名。
2、新建两个被调用元件以及主代码的VHDL源程序文件并命名,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,找出并更正错误,直至编译成功为止。
打印源程序。
3、利用RTLViewer工具,生成查看RTL图。
打印RTL图。
4、新建仿真波形文件,选择FPGA器件型号,分配FPGA引脚。
对各模块设计进行功能仿真与时序仿真,验证设计结果。
打印波形文件。
打印功能仿真与时序仿真结果。
5、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6、利用DigilentAdept编程调试工具,下载至AnvylTM系统,调试成功。
照片记录调试结果。
习题与问答
1、总结元件实例化的设计步骤和使用方法。
2、利用1位二进制全加器真值表与逻辑表达式,直接用VHDL语言描述设计1位二进制全加器的程序。
3、采用在包集中声明元件的元件实例化的方法设计1位二进制全加器的程序。
4、编一个2位二进制全加器的程序,并实验仿真。
实验九流水灯设计
实验目的
学习流水灯的设计、分析和测试方法。
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
1、了解流水灯电路设计的原理与方法。
2、提前预习,编写好主模块的VHDL程序。
实验原理
所谓流水灯,就是让LED灯的亮灭模拟流水,按照顺序使LED灯依次点亮。
编写一个让8个灯依次点亮的流水灯实验。
实验内容
1、启动XilinxISE建立一个空白工程,然后命名。
2、新建VHDL源程序文件并命名,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
打印源程序。
3、利用RTLViewer工具,生成查看RTL图。
打印RTL图。
4、新建仿真波形文件,选择FPGA器件型号,分配FPGA引脚。
对各模块设计进行功能仿真与时序仿真,验证设计结果。
打印波形文件。
打印功能仿真与时序仿真结果。
5、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6、利用DigilentAdept编程调试工具,下载至AnvylTM系统,调试成功。
照片记录调试结果。
(详细步骤参看《AnvylTM开发板相关资料》Lab2:
流水灯设计)
习题与问答
编写一个16个灯依次点亮的流水灯实验,并仿真。
实验十键盘控制实验
实验目的
1、学会往工程中添加已有的源文件
2、学会通过corgen来生成一个bramIPcore,以及如何对该bram进行读写
3、学会实例化模块(调用模块)
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
本实验旨在指导读者使用Xilinx的ISE工具完成一个关于4x4键盘控制7段数码管显示的数字系统的设计。
实验原理
Anvyl平台上有一个4x4键盘,其原理图如下图。
该键盘一共有8个输入输出引脚,分别为行4路,列4路,以扫描的方式完成16个键的信号的采集。
对应FPGA芯片来说,4x4键盘的行4路引脚ROW1-ROW4为输入引脚,列4路COL1-COL4为输出引脚。
4路COL信号相当于该列4个键的扫描使能信号,低电平有效,该列电平为0时,按下该列的键,对应的ROW信号中的引脚可以检测到低电平信号。
例如,COL1列信号为低时,将会使能1,4,7,*这4个键,此时,按下4键,ROW2信号为低电平,其余ROW信号还是高电平;按下7键,则ROW3为低电平。
于是扫描以如下方式进行:
COL1-COL4循环输出“1110”,“1101”,“1011”,“0111”,循环使能4列的按键。
然后检测ROW4路信号中是否有低电平信号,有的话说明键盘上有相应的键按下。
实验内容
本实验旨在指导读者使用Xilinx的ISE工具完成一个关于4x4键盘控制7段数码管显示的数字系统的设计,然后在Anvyl平台上进行测试验证。
实验由以下步骤组成:
1.通过ProjectNavigator建立工程
2.添加源文件
3.通过corgen来生成一个bramIPcore
4.实例化模块
5.编译工程
6.在Anvyl上进行测试验证
(详细步骤参看《AnvylTM开发板相关资料》lab3:
4x4键盘控制7段数码管显示)
问答与思考
与STM32单片机的键盘控制有什么异同
实验十一表决器
实验目的
三人投票表决器的实现
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
1、投票表决器的原理与结构。
2、书写预习报告,必须有完整的VHDL设计程序及实验步骤。
实验原理
设开关状态0,1代表三人投票情况s1,s2,s3,二极管的亮灭代表投
票结果win,lose。
画卡诺图(表11.1):
化简卡诺图得:
win=s1s2+s2s3+s1s3则:
lose=~win
实验内容
1) 创建工程;
2) 新建VHDL文件,输入编写的VHDL程序;
3)编译工程,查看RTL;
4)创建波形仿真文件,设置s1,s2,s3的波形,进行仿真;
5)投票表决器除了可以用VHDL语言实现外还可以用原理图进行实现;用原理图法的实现接下来步骤同3)、4)
问答与习题
设计具有一个优先级的多人表决器。
实验十二数据比较器
实验目的
设计并实现一个4位二进制数据比较器
实验器材
DigilentAnvylFPGA平台、XilinxISEDesignSuite13.4(FPGA开发工具)、DigilentAdept编程调试工具
实验预习
1、预习数据比较器的结构和原理。
2、书写预习报告,必须有完整的VHDL设计程序及实验步骤。
实验原理
二进制比较器是提供关于两个二进制操作数间关系信息的逻辑电路。
两个操作数的比较结果有三种情况:
A等于B,A大于B,A小于B。
考虑当操作数A和B都是一位二进制数时,构造比较器的真值表见下表11.1。
输出表达式如下:
AEQB=A’B’+AB=(AB)’
A>B=AB’
A
表12.1一位比较器的真值表
输入
输出
A
B
A=B
A>B
A
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
在一位比较器的基础上,我们可以继续得到两位比较器,然后通过“迭代设计”得到4位的数据比较器。
对于4位比较器的设计,我们还可以通过原理图输入法或VHDL描述来完成,其中VHDL语言描述是一种最为简单的方法。
实验内容
1、启动XilinxISE建立一个空白工程,然后命名。
2、新建VHDL源程序文件并命名,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
打印源程序。
3、利用RTLViewer工具,生成查看RTL图。
打印RTL图。
4、新建仿真波形文件,选择FPGA器件型号,分配FPGA引脚。
对各模块设计进行功能仿真与时序仿真,验证设计结果。
打印波形文件。
打印功能仿真与时序仿真结果。
5、对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
6、利用DigilentAdept编程调试工具,下载至AnvylTM系统,调试成功。
照片记录调试结果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)