前言
- 之前做过的笔试题,涉及到了时序分析,那就看看小梅哥的教程:
小梅哥FPGA时序分析和约束实例演练 - 建议直接从后面从文章下面的这张图开始看!
1. FPGA的基本原理
1.1 FPGA基本结构
Field-Programmable Gate Array
现场-可编程 门 阵列
- 现场可编程
通过JTAG、AS、PS等方式,可以现场对器件进行编程以实现各种不同的定制功能。 - 门
只能实现基本逻辑关系的电路称为门。最基本的逻辑关系是与、或、非,最基本的逻辑门是与门、或门和非门 - 门阵列
将实现基本逻辑关系的电路按照阵列的形式排布,就形成了门阵列
1.2 FPGA组成三要素
- 可编程逻辑功能块
- 片内互联线(Programmable Interconnect)
- 输入输出块(I/O)
可编程逻辑功能块
- 可编程逻辑功能块是实现用户功能的基本单元,多个逻辑功能块通常规则地排成一个阵列结构,分布于整个芯片。
- 一个可编程逻辑功能块基本组成包括
查找表
D触发器:时序逻辑必须有这个
进位链
······
可编程输入输出块
- 可编程输入输出块完成片内部逻辑与外部管脚之间的接口,围绕在逻辑单元阵列四周,可编程输入输出块的功能和性能从一定程度上也决定了该器件的市场定位。
- 一个可编程输入输出基本单元包括
输出寄存器
输入寄存器
输出使能寄存器
输出延迟链
输入延迟链
上拉电阻
······
可编程内部互联资源
- 可编程内部互联资源包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或输入/输出块连接起来,构成特定功能的电路。用户可以通过编程决定个单元的功能以及它们的互连关系,从而实现所需的逻辑功能。
1.3 FPGA可编原理
- 与PD的主要区别:编程原理
PLD:修改具有固定内联电路的逻辑功能来进行编程
FPGA:修改一或多根内连线的布线,更适合实现多级的逻辑功能 - 按编程的方式和逻辑功能的类型主要有三种:
SRAM-查找表类型( Intel Xilinx)
反熔丝的多路开关类型FPGA器件( Actel)
基于 Flash的FPGA( Lattice)
可编程IO功能
1、I/O模块配有缓冲器和寄存器,可实现电平匹配、提高驱动能力,延时等功能。
2、可实现单端I/O和差分I/O,差分I/O有LVDS和 LVPECL两种协议,他们的电平和外部终端电路不一样
3、I/O电平驱动防过冲解决该方案:分压电阻和齐纳 二极管
- 能兼容TTL和CMOS多种接口和电压标准
- 可配置为输入、输出、双、三态、双速率等形式
- 能提供适当的驱动电流
- 降低功耗,防止过冲和减少电源噪声
- 支持多种接口电压(降低功耗)
FPGA可选扩展资源
除了上述构成FPGA基本结构的三种资源以外,随着工艺的进步和应用系统需求的发展,一般在FPGA中还可能包含以下可选资源:
- 存储器资源(块RAM、分布式RAM);
- 数字时钟管理单元(分频/倍频、数字延退、时钟锁定)
- 算数运算单元(高速硬件乘法器、乘加器)
- 高速串行I/O接口
- 特殊功能模块(PCIE、DDR等硬IP核)
- 微处理器( Cortex-M3、 Cortex-A9、 Cortex-A53、 PowerPC)。
1.4 典型FPGA结构
- 数字锁相环和模拟锁相环,精度不一样
本节回顾
基本FPGA结构包括
可编程逻辑功能块的结构:
LUT实现各种组合逻辑的原理
可编程IO块的结构:
内部连线的意义
2. FPGA时序分析和时序约束
时序分析
时序约束
时序分析:
-
时序分析:时序分析的目的就是通过分析FPGA设计中各个寄存器之间的数据和时钟传输路径,来分析数据延迟和时钟延迟之间的关系。一个设计OK的系统,必然能够保证整个系统中所有的寄存器都能够正确的寄存数据。
-
数据和时钟传输路径是由EDA软件,通过针对特定器件布局布线得到的。
-
时序约束:两个作用
1、告知EDA软件,该设计需要达到怎样的时序指标,然后EDA软件会根据时序约東的各个参数,尽力优化布局布线,以达到该约束的指标。
2、协助EDA软件分析设计的时序路倥,以产生相应的时序报告。
时序分析基本模型
- Tsu:建立时间,目的寄存器自身的特性決定,在时钟信号上升沿到达其时钟接口时,其数据输入端(D)的数据必须提前Nns稳定下来,否则就无法确保数据正确存储
- D触发器D端口的数据必须比时钟上升沿提前Nns到达D触发器的端口
- Tco:时钟上升沿到达D触发器到数据输出到Q端的延迟
3. FPGA时序传输模型分析
- 请大家把本节课程讲的内容自己在图上绘制一遍,理解各种物理意义,推导出 Slack(建立时间余量)的计算公式
4. FPGA时序分析工具上手
5.TimeQuest时序路径详解01
暂无!