时间:2025-09-21 来源:FPGA_UCY 关于我们 0
FPGA应用技术基础教程
刘岚黄秋元陈适编著
电子工业出版社
本课件在office2003下制作
第1章
FPGA概述
�重点
FPGA的基本工作原理
FPGA的芯片结构
IP核简介
FPGA常见技术
�FPGA——FieldProgrammableGateArray
现场可编程门阵列
(1)侧重于低成本应用、容量中等、性能可以满足一般逻辑设
计要求的Spartan系列
Xilinx的FPGA产品主要分为两大类:
FPGA市场占有率最高的两大公司Xilinx和Altera
�FPGA——属于专用集成电路芯片ASIC
(2)侧重于高性能应用、容量大、性能可满足各类高端应用的
Virtex系列
�查找表(Look-Up-Table)结构
查找表(Look-Up-Table)简称为LUT,LUT本
质上就是一个RAM。
目前FPGA中多使用4输入的LUT,所以每一
个LUT可以看成是一个有4位地址线的RAM。当用
户通过原理图或HDL语言描述一个逻辑电路以后,
PLD/FPGA开发软件会自动计算逻辑电路的所有可
能结果,并把真值表(即结果)写入RAM,这样,每
输入一个信号进行逻辑运算就等于输入一个地址去
进行查表,找出地址对应的内容,然后输出即可。
1.1FPGA的基本工作原理
芯片组成
1.2FPGA的芯片结构
主要有可编程输入/输出单元、基本可编程逻辑单
元、内嵌SRAM、布线资源、底层嵌入功能单元和
内嵌专用单元等。
1.可编程输入输出单元(IOB)
IOB单元是芯片与外界电路的接口部分,可
完成不同电气特性下对输入/输出信号的驱动
与匹配要求.
FPGA的IOB被划分为若干个组(Bank),每个Bank的接口
标准由其接口电压VCCO决定,一个Bank只能有一种
VCCO,但不同Bank的VCCO可以不同。只有相同电气标
准的端口才能连接在一起,要求VCCO电压相同是接口标
准的基本条件。
典型的IOB内部结构示意图
2.可配置逻辑块(CLB)
CLB是FPGA内的基本逻辑单元.
CLB的实际数量和特性会依据器件的不同而不同,但是每
个CLB都包含一个可配置开关矩阵,此矩阵由选型电路(多
路复用器等)、触发器和4或6个输入组成。
典型的CLB结
构示意图
3.数字时钟管理模块(DCM)
Xilinx推出的FPGA可提供数字时钟管理和
相位环路锁定。
DCM的主要优点在于:
①可实现零时钟偏移(Skew),消除时钟分配延
迟,并实现时钟闭环控制。
②时钟可以映射到PCB上用于同步外部芯片,这
样就减少了对外部芯片的要求,而将芯片内外的
时钟控制一体化,以利于系统设计。
DCM模块的关键参数:输入时钟频率范围、输出
时钟频率范围和输入/输出时钟允许抖动范围等。
4.嵌入式块RAM(BRAM)
大多数FPGA都具有内嵌的块RAM,这大大
拓展了FPGA的应用范围和灵活性。
块RAM可被配置为单端口RAM、双端口
RAM、内容地址存储器(CAM)以及FIFO等常用
的存储块。在实际应用中,芯片内部块RAM的数
量也是选择芯片的一个重要因素。
单片块RAM的容量为18kb,可以将多片块RAM
级联起来形成更大的RAM。
5.丰富的布线资源
布线资源连通FPGA内部的所有单元,而连
线的长度和工艺决定着信号在连线上的驱动
能力和传输速度。
根据工艺、长度、宽度和分布位置的不同,可将
FPGA芯片的内部布线资源划分为四个不同的类
别:第一类是全局布线资源;
第二类是长线资源;
第三类是短线资源;
第四类是分布式的布线资源。
6.底层内嵌功能单元
内嵌专用硬核是相对于底层嵌入的软核而言
的,硬核(HardCore)使FPGA具有强大
的处理能力,等效于ASIC电路。
IP(IntelligentProperty)核
1.3IP核简介
是具有知识产权的集成电路芯核总称,是
经过反复验证过的、具有特定功能的宏模
块,与芯片制造工艺无关,可以移植到不
同的半导体工艺中。
IP核的提供方式上看,通常将其分为软核、硬核和
固核这三类。从完成IP核所花费的成本来讲,硬核
代价最大;从使用灵活性来讲,软核的可复用性
最高。
其优点是灵活性高,可移植性强,允许用户自
配置。其缺点是对模块的预测性较低,在后续
设计中存在发生错误的可能性,有一定的设计
风险。软核是IP核应用最广泛的形式。
1.软核
在FPGA设计中,指的是对电路
的硬件语言描述,包括逻辑描
述、网表和帮助文档等。
与软核相比,固核的设计灵活性稍差,但在可
靠性上有较大提高。目前,固核也是IP核的主
流形式之一。
2.固核
在FPGA设计中,可以看成是带
有布局规划的软核,通常以RTL
代码和对应具体工艺网表的混合
形式提供。
IP硬核的不允许修改特点使其复用有一定的困
难,因此只能用于某些特定应用,使用范围较
窄。
3.硬核
在FPGA设计中,指布局和工艺
固定、经过前端和后端验证的设
计,设计人员不能对其修改。
1.数字时钟管理DCM
1.4FPGA常见技术
数字时钟管理模块(DCM,DigitalClock
Manager)是基于Xilinx的其他系列器件
所采用的数字延迟锁相环(DLL,Delay
LockedLoop)模块。
DCM由四部分组成:
1.DLL模块;
2.数字频率合成器DFS
3.数字移相器DPS
4.数字频谱扩展器DSS
DCM功能块和
相应的信号
DLL主要由一个延时线和控制逻辑组成。
延时线对时钟输入端CLKIN产生一个延时
,时钟分布网线将该时钟分配到器件内的
各个寄存器和时钟反馈端CLKFB;
控制逻辑在反馈时钟到达时,采样输入时
钟以调整二者之间的偏差,实现输入和输
出的零延时。
(1)DLL模块
DLL简单模
型示意图
在FPGA设计中,消除时钟的传输延迟,实现高扇出
最简单的方法就是用DLL,把CLK0与CLKFB相连即
可。
XilinxDLL的典
型模型示意图
利用一个DLL可以
实现2倍频输出
利用两个DLL就可
以实现4倍频输出
DFS可以为系统产生丰富的频率合成时钟
信号,输出信号为CLKFB和CLKFX180,
可提供输入时钟频率分数倍或整数倍的时
钟输出频率方案,输出频率范围为1.5~
320MHz(不同芯片的输出频率范围是不
同的)。
(2)数字频率合成器DFS
输入频率和输出频率之间的关系为
DCM具有移动时钟信号相位的能力,因此
能够调整I/O信号的建立时间和保持时间,
能支持对其输出时钟进行0°,90°,180°,
270°的相移粗调和相移细调。
(3)数字移相器DCM
DSS技术通过展宽输出时钟的频谱,来减少
EMI和达到FCC要求。这一特点使设计者能
够极大地降低系统成本,使电路板重新设计
的可能性降到最小,并不再需要昂贵的屏蔽
,从而缩短了设计周期。
(4)数字频谱合成器 DSS
2.串化与解串技术
串化与解串即Serdes,它能将低速的并行
信号转换成高速的串行数据,也可以将高
速的串行数据转换成低速的并行数据。
Serdes的基
本构成模块
3.字对齐技术
字对齐又称为Comma对齐,用于在将串行
数据转换成并行数据时,确定有效数据的
边界,以便使转换后的并行数据正确。
Comma对齐的原理是:接收器在输入数据流中扫描
搜寻特定的比特序列,如果找到序列,解串器调整
字符边界以匹配检测到的Comma字符序列,扫描是
连续进行的。一旦对齐确定,所有后续的Comma字
符均会发现对齐已经确定。当然,在任意的序列组
合里Comma字符序列必须是唯一的。
Comma对齐
过程
4.通道绑定技术
通道绑定是指将多个串行通道组合在一起
构成一个并行通道,以此来提高收发的数
据吞吐率。
由于每个通道在收发器互连、时钟再生和数据接收
延迟上各不相同,会使接收到的数据产生“错位”的
情况,因此要在发送端数据流中加入一个特殊的序
列——通道绑定序列,如图1.14中的“P”字符。每个
绑定通道都设定“P”字符为通道绑定序列,在接收端
指定一个通道为主通道,其余通道都依据主通道的
CHBONDO有效指示进入绑定状态,进而锁定本通
道在Elastic Buffer中接收到通道绑定序列的位置。
通道绑定原
理示意图
5.预加重技术
在印制的电路板上,线路是呈现低通滤波
器的频率特性的,为解决高频部分的损
失,就要采取预加重技术。
预加重技术的思想是:在传输信号时,抬高
信号的高频信号,以补偿线路上高频分量的
损失。
没有预加重
的发送波形
预加重后的
发送波形
没有预加重
的接收波形
有预加重的
接收波形
思考题
1.1 简述FPGA的一般工作原理和结构,查阅资料看看有哪
些公司生产FPGA产品,各公司的FPGA产品的工作原
理、结构与特性有何不同?
1.2 通过查阅资料比较Xilinx的FPGA芯片中几大系列的发
展过程,以及该公司的不同FPGA芯片的性能与技术特
点。
1.3 FPGA的芯片组成部分主要有哪些?各个单元的基本构
造是什么?
1.4 什么是固核、软核、硬核?三者的区别是什么?
1.5 FPGA涉及的主要技术有哪些?
1.6 DCM模块的优点有哪些?
第2章
FPGA设计基础
�重点
Verilog HDL基础知识
嵌入式处理器介绍
FPGA设计流程
�概 述
HDL(Hardware Description Language)是
一种用形式化方法来描述数字电路和数字逻辑系统
的硬件描述语言。
有两种类型:VHDL 和
Verilog HDL。
2.1 Verilog HDL基础知识
Verilog HDL语言具有这样的描述能力:设计的行
为特性、设计的数据流特性、设计的结构组成,
以及包含响应监控与设计验证方面的时延和波形
产生机制。
�Verilog与C语言的比较
(1)Verilog是一种硬件语言,最终是为了产生实际的硬件
电路或对硬件电路进行仿真;而C语言是一种软件语言,是
控制硬件来实现某些功能的语言。
(2)C语言只要是语法正确,都可以编译执行;而Verilog
语言有可综合的限制,即在所有的Verilog语句中,只有一部
分可以被综合,而另外的部分则不能被综合,只能用来仿
真。
(3)C语言是一种软件编程语言,其基本思想是语句的循序
执行;而Verilog语言的基本思想是模块的并行执行。
(4)利用Verilog编程时,要时刻记得Verilog是硬件语言,
要时刻将Verilog与硬件电路对应起来。
C语言
Verilog语言
sub-function
module, function, task
if-then-else
if-then-else
Case
Case
{,}
上一篇:fpga是什么