前言
- 之前做过笔试题,涉及到了时序分析,那就看看小梅哥的教程:
小梅哥FPGA时序分析和约束实例演练 - 市面上很多课程都是给你结论,不会给你深入分析,如果你想专研,建议您直接观看视频,相信您有不菲的收获!
- 本文的记录只是为了扫盲,记录的很潦草,希望您能联系各种基础知识来理解!
- 如果后期需要深入挖掘,小编可能就会更新此笔记。
- 建议直接从后面从文章下面的这张图开始看!
01. FPGA的基本原理
1.1 FPGA基本结构
Field-Programmable Gate Array
现场-可编程 门 阵列
- 现场可编程
通过JTAG、AS、PS等方式,可以现场对器件进行编程以实现各种不同的定制功能。 - 门
只能实现基本逻辑关系的电路称为门。最基本的逻辑关系是与、或、非,最基本的逻辑门是与门、或门和非门 - 门阵列
将实现基本逻辑关系的电路按照阵列的形式排布,就形成了门阵列
1.2 FPGA组成三要素
- 可编程逻辑功能块
- 片内互联线(Programmable Interconnect)
- 输入输出块(I/O)
可编程逻辑功能块
- 可编程逻辑功能块是实现用户功能的基本单元,多个逻辑功能块通常规则地排成一个阵列结构,分布于整个芯片。
- 一个可编程逻辑功能块基本组成包括
查找表
D触发器:时序逻辑必须有这个
进位链
······
下面的5代,配置已经开始升级、、、、、、
可编程输入输出块
- 可编程输入输出块完成片内部逻辑与外部管脚之间的接口,围绕在逻辑单元阵列四周,可编程输入输出块的功能和性能从一定程度上也决定了该器件的市场定位。
- 一个可编程输入输出基本单元包括
输出寄存器
输入寄存器
输出使能寄存器
输出延迟链
输入延迟链
上拉电阻
······
可编程内部互联资源
- 可编程内部互联资源包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或输入/输出块连接起来,构成特定功能的电路。用户可以通过编程决定个单元的功能以及它们的互连关系,从而实现所需的逻辑功能。
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块的结构:
内部连线的意义
02. FPGA时序分析和时序约束
时序分析
时序约束
时序分析:
-
时序分析:时序分析的目的就是通过分析FPGA设计中各个寄存器之间的数据和时钟传输路径,来分析数据延迟和时钟延迟之间的关系。一个设计OK的系统,必然能够保证整个系统中所有的寄存器都能够正确的寄存数据。
-
数据和时钟传输路径是由EDA软件,通过针对特定器件布局布线得到的。
-
时序约束:两个作用
1、告知EDA软件,该设计需要达到怎样的时序指标,然后EDA软件会根据时序约東的各个参数,尽力优化布局布线,以达到该约束的指标。
2、协助EDA软件分析设计的时序路倥,以产生相应的时序报告。
时序分析基本模型
- 此处假设前提:Clk到达所有寄存器的时间是完全一致。
- Tsu:建立时间,目的寄存器自身的特性決定,在时钟信号上升沿到达其时钟接口时,其数据输入端(D)的数据必须提前Nns稳定下来,否则就无法确保数据正确存储
- D触发器D端口的数据必须比时钟上升沿提前Nns到达D触发器的端口
- Tco:时钟上升沿到达D触发器
到
数据输出到Q端的延迟
03. FPGA时序传输模型分析
总结:为方便记忆的话,可以在直接理解为下面形式
-
建立时间余量Tslack
>= 0 -
数据需求时间
>=数据到达时间
- 请大家把本节课程讲的内容自己在图上绘制一遍,理解各种物理意义,推导出 Slack(建立时间余量)的计算公式
4. FPGA时序分析工具上手
温度越高,芯片内信号传输速度越慢,说是温度会改变硅片材料,泄露电流和电子移动能力等特性,导致较高温度下芯片内信号传输速度变慢。信号在相同路径中的传输时间变长,也就是延时会增加,这也就是做产品需要关心的问题。在实验室环境下运行良好的系统,能否在环境温度达到 85度的情况下依旧运行良好?如果到了 85 度环境下运行不好了,可能就是高温导致的信号传输速度下降,从而导致时序不满足了。
EDA软件仅会根据约束需求去布局布线以达到约束要求,但是,不会每次编译就按照最优的情况去编译。所以说,设计中一定要最起码加入合理的时钟约束。
05. TimeQuest时序路径详解01
暂无!
- 时钟悲观,等价于建立时间余量最小,这时就要求假定Tclk2最小、Tclk1最大
06.TimeQuest时序路径详解02
07. 基于timequest时序优化原理和方法
插入寄存器为什么能提高时序?
时序分析是分析寄存器到寄存器
08. 基于chipplanner的时序路径分析
09. nodenamefinder功能使用
10. 保持时间概念分析
11. 源同步io传输模型
12. outputdelay值推导
数据经过最短的外部传延迟时间到达目的寄存器时还能不破坏目的寄存器接收前一个 launch edge发射的数据的保持时间。
13. 使用timequset分析和约束outputdelay
14. inputdelay时序分析
15. 图像采集显示系统时序分析与约束
【设计实例】小梅哥CMOS摄像头(7670/7725/5640)应用工程资料-网页截图如下
16. 通用io时序模型与参数总结
自己推导下面这个!
17. sdram接口时序约束实操
略
后记
- 本文到此结束,如果您看到下面的链接感兴趣,可以点击跳转查看!
- CDC:跨时钟域处理