您所在位置: 网站首页 / FPGA入门教程.pdf / 文档详情
FPGA入门教程.pdf 立即下载
2024-06-19
约2.3万字
约37页
0
672KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

FPGA入门教程.pdf

FPGA入门教程.pdf

预览

免费试读已结束,剩余 32 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开


FPGA入门教程






1.数字电路设计入门

2.FPGA简介

3.FPGA开发流程

4.RTL设计

5.QuartusⅡ设计实例

6.ModelSim和Testbench









1.数字电路设计入门

1.1数字电路设计

数字电路设计的核心是逻辑设计。通常,数字电路的逻辑值只有‘1’和‘0’,表征的是模拟

电压或电流的离散值,一般‘1’代表高电平,‘0’代表低电平。

高低电平的含义可以理解为,存在一个判决电平,当信号的电压值高于判决电平时,我

们就认为该信号表征高电平,即为‘1’。反之亦然。

当前的数字电路中存在许多种电平标准,比较常见的有TTL、CMOS、LVTTL、LVCMOS、

ECL、PECL、LVDS、HSTL、SSTL等。这些电平的详细指标请见《补充教程1:电平标准》。

数字电路设计大致可分为组合逻辑电路和时序逻辑电路。

一般的数字设计的教材中对组合逻辑电路和时序逻辑电路的定义分别为:组合逻辑电

路的输出仅与当前的输入有关,而时序逻辑电路的输出不但与输入有关,还和系统上一个

状态有关。

但是在设计中,我们一般以时钟的存在与否来区分该电路的性质。由时钟沿驱动工作

的电路为时序逻辑电路。大家注意,这两种电路并不是独立存在的,他们相互交错存在于整

个电路系统的设计中。

1.1.1组合逻辑电路

组合逻辑电路由任意数目的逻辑门电路组成,一般包括与门、或门、非门、

异或门、与非门、或非门等。一般的组合逻辑电路如下图:






其中A,B,C,D,E,F为输入,G为输出。


1.1.2时序逻辑电路

时序逻辑电路由时钟的上升沿或下降沿驱动工作,其实真正被时钟沿驱动的是电路中的

触发器(Register),也称为寄存器。触发器的工作原理和参数如下图:

Register的原理和参数
T
DQClk

Clkt
Dhold
tsu

Q
tc-q
tsu:建立时间,在时钟有效沿到来之前触发器数据输入应保持稳定的时间,如果建立时
间不够,数据将不能在这个时钟沿被打入触发器。它间接约束了组合逻辑的最大延时。

thold:保持时间,在触发器数据输入引脚的数据在系统有效时钟沿到来后,需要保持稳
定的时间,如果保持时间不够,数据同样不能被打入触发器。它间接约束了组合逻辑的最
小延时.
tc-q:触发器从有效时钟沿到来到输出有效的最大时间。

下面是两个简单的时序逻辑电路例子:
(1)、时钟分频电路



该时序电路的功能为实现对时钟’clk’的4分频,其中’clk_2’为2分频时钟,’clk_4’为4

分频时钟,’enable’为该电路的使能信号。其功能仿真波形如下图所示:
(2)、序列检测器


该时序电路实现了一个序列检测器,当输入序列‘datain’中出现‘101’时,标志位F将输

出‘1’,其他时刻输出‘0’。电路中‘clk’为时钟信号,‘D1’,‘D2’,‘D3’为移位寄存器的输出,’enable’

为该电路的使能信号。其功能仿真波形如下图所示:


可见,时序电路设计的核心是时钟和触发器,这两者也是我们设计电路时需重点关注的。

1.2毛刺的产生与消除
1.2.1竞争与冒险

当一个逻辑门的输入有两个或两个以上的变量发生改变时,由于这些变量是经过不同路

径产生的,使得它们状态改变的时刻有先有后,这种时差引起的现象称为竞争(Race)。竞

争的结果将很可能导致冒险(Hazard)发生(例如产生毛刺),造成错误的后果,并影响系

统的工作。

组合逻辑电路的冒险仅在信号状态改变的时刻出现毛刺,这种冒险是过渡性的,它不会

使稳态值偏离正常值,但在时序电路中,冒险是本质的,可导致电路的输出值永远偏离正常

值或者发生振荡。

避免冒险的最简单的方法是同一时刻只允许单个输入变量发生变化,或者使用寄存器采

样的办法。
1.2.2毛刺的产生与危害

信号在FPGA器件中通过逻辑单元连线时,一定存在延时。延时的大小不仅和连线的长

短和逻辑单元的数目有关,而且也和器件的制造工艺、工作环境等有关。因此,信号在器件

中传输的时候,所需要的时间是不能精确估计的,当多路信号同时发生跳变的瞬间,就产生

了“竞争冒险”。这时,往往会出现一些不正确的尖峰信号,这些尖峰信号就是“毛刺”。

让我们来具体看一下毛刺是如何产生的。下图是一个与门电路,


我们期望的设计是,a和b信号同时变化,这样输出OUT将一直为0,但是实际中OUT

产生了毛刺,它的仿真波形如下所示:




可见,即使是在最简单的逻辑运算中,如果出现多路信号同时跳变的情况,在通过内部

走线之后,就一定会产生毛刺。而现在数字电路设计中的信号往往是由时钟控制的,如果将

带有毛刺的输出信号直接连
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

FPGA入门教程

文档大小:672KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用