时序分析需了解:
了解FPGA的基本组成结构,因为要分析数据和时钟的路径,就要清楚其在FPGA内部是怎么样传输的。从FPGA的I/O端口输入,经过多个内部可编程逻辑单元,其中包括组合逻辑和时序逻辑,不同单元之间的连线,最后又输出到FPGA的I/O端口。整条路径的延迟是多少,各个模块/单元的延迟是多少。
时序分析目的:
通过分析FPGA设计中各个寄存器之间的数据和时钟的传输路径,来分析数据延迟和时钟延迟的关系,保证整个系统的所有寄存器都能正确的寄存数据。
其中,数据和时钟的传输路径由EDA软件,通过针对特定的器件布局布线得到的。
时序约束作用:
1. 告知EDA软件本设计需要达到的时序指标,然后EDA软件会根据时序约束的各个参数来优化布局布线,以达到约束的要求。
2. 协助EDA软件分析时序路径,以产生相应的时序报告。在IC的设计中,时序分析可能由设计师自己分析,但是在FPGA的设计中,时序分析是由EDA软件分析的。
时序约束工具-Timequest:
Timequest是基于某个逻辑设计在特定器件上经过布局布线之后的网表,该网表包含了设计中每一个逻辑在该器件的什么资源上实现,以及资源在该器件的具体位置,以及信号从一个节点到另一个节点的具体延迟时间。
若用户未进行时序约束,软件会自动对分析出的是时钟加入约束,这个约束会按照最大的可能约束。软件会计算最高频率的时候,是根据最坏路径的建立时间余量来计算。
时序分析基本模型
整条路径可以完全映射搭配到FPGA的基本单元。需要经过内部互联线延迟、组合逻辑延迟、时序逻辑延迟等。
当中间的门有多级时,例如多个if, else if,.... else等。会导致c_reg_D的数据很晚到达,不满足时钟上升沿的建立时间。同时还需要考虑时钟的延迟,pad的延迟等。
以上内容,主要思想来源于小梅哥的视频,讲的很通俗易懂。
时序波形图及概念截图如下:
通过软件进行时序分析,让其分析的是基于某个逻辑设计,在特定的器件上经过布局布线之后的网表。该器件需要具体到特定型号的特定速度等级。该网表包含了每一个逻辑具体在器件上的什么资源实现,在器件内的具体位置,以及信号从一个节点传输到下一个节点的具体延迟时间。
在quartus的TimeQuest工具下还情况了不同温度环境下的分析,包括在内核供电电压1.2V,高温80,低温0°慢速和快速3中环境分析。温度越高,芯片内部的信号传输速度越慢,因为温度会影响改变硅片的材料、泄露电流和电子移动能力等特性。工作在温度0slow环境下,是因为晶体管阈值电压会随温度降低为降低,出现逆温现象。实际上时序最差的情况往往是低温还不是高温状态下。但是在低温情况下,并不是所有的特性都会变慢,还是会有一些地方信号传输会变快,一旦传输速度变快,这个时候就要考虑从--保持时间余量。
为什么时序约束以及分析可以参考:
小梅哥FPGA时序分析笔记(三)时钟约束真重要——事实说话-面包板社区 (eet-china.com)
具体TimeQuest操作及GUI上的概念参考: