fpga设计心得体会Word文档下载推荐.docx
《fpga设计心得体会Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《fpga设计心得体会Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
要求:
比较两个字节的大小,如a[7:
0]大于b[7:
0]输出高电平,否则输出低电平,改写测试模型,使其能进行比较全面的测试。
练习二.简单时序逻辑电路的设计
目的:
掌握基本时序逻辑电路的实现。
在VerilogHDL中,相对于组合逻辑电路,时序逻辑电路也有规定的表述方式。
在可综合的VerilogHDL模型,我们通常使用always块和@或@的结构来表述时序逻辑。
下面是一个1/2分频器的可综合模型。
lk_in,.clk_out);
仿真波形:
依然作clk_in的二分频clk_out,要求输出与上例的输出正好反相。
编写测试模块,给出仿真波形
篇二:
fpga设计流程
1.FPGA开发流程:
电路设计与设计输入仿真验证:
利用Xilinx集成的仿真工具足矣逻辑综合:
利用XST工具布局布线:
利用Xilinx的ImplementationTool工具FPGA配置下载:
利用iMPACT工具
2.时序标注文件是指SDF(StandardDelayFormatTimingAnnotation)文件,在Xilinx公司的FPGA/CPLD设计中使用“.sdf”作为时序标注文件的扩展名,而在Altera公司的FPGA设计中使用“.sdo”作为时序标注文件的扩展名。
它在仿真过程的主要作用就是在SDF标注文件中对每一个底层逻辑门提供了3种不同的延时值,分别是典型延时值、最小延时值和最大延时值,用于进行静态时序分析(STA)仿真验证。
3.综合在FPGA/CPLD设计中的作用是是将寄存器传输层的的结构描述转化为逻辑层的结构描述,以及将逻辑层的结构描述转化为电路的结构描述。
综合步骤的输入是HDL源代码,输出是逻辑网表。
4.ModelSim仿真器是基于事件驱动的,它可以用来仿真Verilog语言,也可以用来仿真VHDL语言,同时也支持两种语言的混合仿真。
5.根据设计阶段不同,仿真可以分为RTL行为级仿真、综合后门级功能仿真和时序仿真等三大类型。
6.ModelSim提供的调试手段与工具有以下几种:
在源文件窗口中设置断点或者单步执行。
观察波形测量时间。
在数据流窗口中浏览设计的物理连接。
查看或者初始化存储器。
分析仿真效率。
测试代码覆盖率。
波形比较。
7.HDLBencher的Xilinx版本可以支持VHDL语言输入、VerilogHDL语言输入和Xilinx原理图输入等3种输入方法。
8.实现是将设计的逻辑网表信息转换成所选器件的底层模块与硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的。
9.实现主要分为3个步骤:
转换逻辑网表:
将多个设计文件合并为一个网表映射到器件单元:
将网表中的逻辑符号(门)组装到物理元件(CLB和IOB)中布局布线:
将元件放置到器件中,并将其连接起来,同时提取出时序数据,并生成各种报告
10.实现前应该设计实现约束条件:
约束条件一般包括管脚锁定、时钟约束、全局时钟、第二全局时钟、分组约束和物理特性约束等信息。
ISE中可以使用约束xx器生成约束文件。
11.FPGA的设计指导原则:
面积和速度的平衡与互换原则、硬件原则、系统原则、同步设计原则
12.ISE中的HDLEditor工具包括的Verilog和VHDL三大语言模板大致可以分为下列4个项目:
器件实例化、语法模板、综合模板、用户自定模板
13.XST(XilinxSynthesisTechnology)是XilinxISE内嵌的综合工具。
XST的输入文件一般是HDL源文件,并且XST已经支持Verilog和VHDL混合语言源代码输入;
XST的
输出文件是NGC网表,XST的报告文件是Log文件。
14.XST的综合约束文件是XCF(XSTConstraintFile),而布局布线阶段最重要约束文件是用户约束文件UCF(UserConstraintFile)。
15.XST综合主要分为以下3个步骤:
HDL源代码分析、HDL代码综合、底层优化
16.Xilinx全局时钟资源必须满足的重要原则是:
“使用IBUFG或IBUFGDS的充分
必要条件是信号从专用全局时钟管脚输入”。
即,当某个信号从全局时钟管脚输入,不论它是否为时钟信号,都必须使用IBUFG或IBUFGDS;
如果对某个信号使用了IBUFG或IBUFGDS硬件原语,则这个信号必定是从全局时钟管脚输入的。
17.BUFGP相当于IBUFG和BUFG的组合,所以BUFGP的使用也必须遵循上述的原则。
18.全局时钟资源的例化方法大概可分为两种:
在程序中直接例化全局时钟资源、通过综合阶段约束或者实现阶段约束完成对全局时钟资源的使用
19.简述全局时钟资源与第二全局时钟资源的概念与基本使用方法。
同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时、抖动提出了更高的要求。
为了满足同步时序设计的要求,一般在FPGA/CPLD设计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟。
第二全局时钟资源,也叫长线资源。
它是分布在芯片的行、列的栅栏(Bank)上,一般采用铜、铝工艺,其长度和驱动能力仅次于全局时钟资源。
与全局时钟相似,第二全局时钟资源直接同IOB、CLB、BlockSelectRAM等逻辑单元连接,第二全局时钟信号的驱动能力和时钟抖动延迟等指标仅次于全局时钟信号。
Xilinx全局时钟资源的使用方法有以下5种:
IBUFG+BUFG的使用方法、IBUFGDS+BUFG的使用方法、.BUFG+DCM+BUFG的使用方法、Logic+BUFG的使用方法、Logic+DCM+BUFG的使用方法第二全局时钟资源的使用方法一般是在Xilinx的约束xx器(ConstraintsEditor)的专用约束(Misc)选项卡中指定所选信号使用低抖动延迟资源“LowSkew”。
也可以直接在指导Xilinx实现步骤的用户约束文件(UCF)中添加“USELOWSKEWLINES”约束命令。
篇三:
基于FPGA的设计题目
1.花样彩灯控制器的设计
设计要求:
假设输入脉冲为3MHz,控制16只LED发光二极管每隔1s或2s显示一种花样。
要求显示的花样如下:
闪烁2次从LED(0)移位点亮到LED(15)一次全部点亮一次从LED(15)开始逐个熄灭至LED(0)1次闪烁2次。
。
如果按下清零键时,16只LED均熄灭一次,然后再重新按规律显示。
如果没有按下快/慢选择控制键时,16只LED发光二极管是以每隔1s进行花样显示,否则按下快/慢键选择控制键时,16只LED发光二极管是以每隔2s进行花样显示。
2.利用FPGA实现一个简单的DDS正弦波发生器
(DDS:
数字显示示波器)
可分解为三个部分来设计:
时钟产生模块;
地址产生模块;
ROM查找表模块。
实现思路:
①首先,由外部晶振引入40MHz的时钟到FPGA内部,进入时钟产生模块,对时钟进行处理并3倍频程后,得到一个稳定精确的120MHz的系统时钟;
②然后,地址产生模块在系统时钟的激励下,将频率控制字与累加寄存器输出的数据进行累加,然后把累加的结果作为地址输出给ROM查找表地址;
③最后,ROM查找表模块在每个系统时钟的上升沿,按照地址来读取ROM查找表中的相应的波形采样点数据并输出,该数就是最终的DDS信号。
3.多功能信号发生器的设计
设计要求:
设计一个多功能信号发生器,能够以稳定的频率产生锯齿波、增减锯齿波、三角波、阶梯波、正弦波和方波等六种信号。
系统有3个波形选择开关和一个复位开关,通过波形选择开关可以选择以上各种不同种类的输出波形;
按下复位开关时,系统将复位。
设计实现:
由于FPGA只能直接输出数字信号,而多功能信号发生器输出的各种波形
均为模拟信号,因此设计信号发生器时,需将FPGA输出的信号通过D/A转换电路将数字信号转换成模拟信号。
多功能信号发生器可由信号产生电路、波形选择电路和D/A转换电路构成。
如下图所示:
波形输出
4.数字跑表的设计
设计一个数字跑表,该跑表具有复位、暂停、秒表计时等功能。
该跑表有三个输入端,分别为时钟输入(CLK)、复位(CLR)和启动/暂停(PAUSE)
复位信号高电平有效,可对整个系统异步清0,当启动/暂停(PAUSE)键为低电平时跑表开始计时,为高电平时暂停,变低后在原来的基础上再计数。
为了便于显示,可分秒、秒和分钟信号皆采用BCD码计数方式,并直接输出到6个数码管显示。
5.8位数字频率计的设计
设计一个8位频率计,可以测量从1Hz到99999999Hz的信号频率,并将被测信号的频率在8个数码管上显示出来。
采用一个标准的基准时钟,在单位时间(如1s)里对被测信号的脉冲数进行计数,即为信号的频率。
整个系统分为三个模块:
控制模块,计数测量模块和锁存器模块。
6.基于FPGA的简单运算器的设计
①设计要求:
该运算器能完成-7到+7的简单的加、减、与、异或四种运算功能,并且
可以对溢出的结果进行修正。
硬件实验板由一个八按键电路和一个32位LCD显示器组成,通过相应的按键输入把运算结果显示在LCD显示器上。
②设计原理:
该运算电路由按键输入、控制、修正、显示和运算五大模块组成,来实现加、减、与、异或四种运算功能,首先按键模块用于输入两个数的运算符,通过控制模块传送到运算器模块进行运算,再连接到修正模块,通过修正模块对“溢出”的数值进行修正,最后显示模块功能实现把运算过程反应到LCD显示器上。
7.基于FPGA的脉冲信号型乐曲播放器的设计
利用FPGA设计一个控制器,让不同频率的脉冲信号有序的输出并驱动扬声器发声,最终完成一首乐曲的演奏。
设计步骤:
①预置乐曲,作预置时,需将乐曲音符转换成相应代码,通过计算逐一将音符换成代码,通过相应软件平台进行乐曲定制;
②为提供乐曲发音所需的发音频率,编写数控分频器程序,对单一输入高频,进行预置数分频,生成每个音符的相应频率;
③为了给分频提供预置数,需计算分频预置数;
④对每部分结构单元逐一进行编译,生成相应的元器件符号,并对独立结构单元功能进行仿真。
8.闹钟系统的设计
设计一个带闹钟功能的24小时计时器,包括以下几个组成部分:
①显示屏,由四个七段数码管组成;
②数字键‘0’到‘9’,输入时间;
③TIME(时间)键,用于确定新的时间设置;
④ALARM(闹钟)键,用于确定新的闹钟时间设置;
⑤扬声器
该设计要求完成如下功能:
计时功能;
闹钟功能;
设置新的计时器时间;
设置新的闹钟时间;
显示所设置的闹钟时间;
根据以上的设计要求,整个系统大致包括如下几个组成部分:
用于键盘输入的缓冲器;
用于时钟计数的计数器;
用于保存闹钟时间的寄存器;
用于显示七段数码显示电路以及控制以上各部分协同工作的控制器。
9.数字钟的设计
假设外部输入脉冲为1Hz,要求使用该频率设计一个时间可调,并通过LED七段共阴极数码管显示时、分、秒的数字钟。
②设计原理:
进行设计数字钟的设计时,首先对1s的时钟进行计数,当计数达到60次时,输出1个分钟(min)脉冲;
当1min的时钟计数到达60次时,输出1个小时(h)脉冲;
若1h的时钟计数达到23次时,并且1min的计数到59次、1s的计数也达到59次,再来1个1s的脉冲,数字钟就自己复位,重新从零开始计时。
由此,可知数字钟由三个计数模块(二十四进制计数器、十进制计数器和六进制计数器)、7段LED驱动显示模块和顶层模块组成。
10.四组抢答器的设计
设计一个四组竞争抢答器系统,每组有1个对应的按钮,编号分别为A、B、
C、D在主持人的主持下,参赛者通过抢先按下抢答按钮获得答题资格。
当某一组按下按钮并获得答题资格后,LED显示出该组编号,并有抢答成功显示同时锁定其他组的抢答器,使其他组抢答无效。
如果主持人在为按下开始按钮前,已有人按下抢答按钮,属于违规,并显示违规组的编号,同时蜂鸣器发音提示,其他组无效。
获得回答资格后,若该组回答的问题正确,则加1分,否则减1分。
抢答器设有复位开关,由主持人主持。
根据设计要求,可以使用多个不同的单元模块,并通过有机的组合来得到抢答器系统。
这些单元模块主要包括抢答判断模块、计分模块和7段LED显示驱动模块。
信号发生器结构图:
11.数字电压表的设计
使用FPGA控制ADC0809,设计一个量程为5V的数字电压表。
要求采用3位数码管显示电压值,可以显示小数点的后两位。
设计实现;
使用FPGA控制ADC0809设计一个量程为5V的数字电压表时,首先通过FPGA的相关端口控制ADC09809将外部输入转换成8位数字表,再将8为数字表返回到FPGA中进行相关处理,最后将处理好的数据通过LED数码管显示相应的电压值即可。
由于在此系统中只需要对一路模拟电压进行测量,因此可将ADDC、ADD
B、ADDA这3根地址选择线进行接地。
12.基于FPGA的可逆加减计数器的实现
可预置16位可逆加减计数器。
要求计数器有16位计数输出同时有进位和借位输出,预置输入采用同步方式。
用FPGA开发板上的按键作为加减计数控制输入,数码管(或LED)作为计数值输出。
13.
用一个10×
8的双口RAM完成10个8位计数器,计数器的初值分别为1~10,时钟频率为1MHz,计数器技术频率为1Hz.