FPGA时序约束与分析
出版时间 2022-01-01T00:00
计算机理论
47141
作者简介
内容简介
第3章
主时钟与虚拟时钟约束
3.1主时钟约束
3.1.1主时钟约束语法
主时钟通常是FPGA器件外部的板级时钟(如晶振、
数据传输的同步时钟等)或FPGA的高速收发器输出数据
的同步恢复时钟信号等。
通过create_clock命令可对主时钟进行约束定义
,其基本语法结构如下。
create_clock -name -period
-waveform { }
[get_ports < port_name >]
name后的是设计者自定义的主
时钟名称,用于标示定义的主时钟,后续的约束若引用
已经定义的主时钟,就是唯一的引用标识
。如果约束时不指定,则会默认使用
所指定的时钟物理节点作为名称。虚拟时
钟定义时,由于不指定,所以必须指定
。
period后的是定义的主时钟周期,
单位是ns,取值必须大于0。
get_ports表示定义的主时钟的物理节点是
FPGA的引脚。除此以外,FPGA内部网络也能作为主时钟
的物理节点,也可以使用get_nets进行定义。
是定义的主时钟的物理节点名称,如时钟
引脚名称或高速收发器恢复的时钟信号名称等。
waveform后的{ }
用于定义时钟的上升沿和下降沿时刻。表
示上升沿时刻,默认值为0; 表示下降沿
时刻,默认值是时钟周期的一半。它们的单位也都是ns
。
约束定义一个主时钟时,必须关联FPGA设计网表中
已有的某个时钟节点或引脚。换言之,主时钟其实是帮
助时序分析工具定义了时序路径分析的一个时间零点,
而时钟传输过程中的延时和不确定性也都会基于这个时
间零点进行计算和分析。由于大多数时序路径约束通常
需要以主时钟做基准,所以约束流程中通常建议优先进
行主时钟的约束定义。
3.1.2识别设计时钟
在Vivado工具中,设计中未约束的时钟可以通过时
钟网络报告(Clock Networks Report)和时序确认报
告(Check Timing Report)进行查看。
1) 时钟网络报告
在Vivado中打开设计工程,如图3.1所示,运行综
合(Run Syntheis)或实现(Run Implementation)
编译,然后单击Open Synthesized Design或Open
Implemented Design选项。
接着,如图3.2所示,在Tcl Console中,输入
report_clock_networks命令。
图3.1综合编译与实现编译菜单
"(1)本书汇聚作者近十五年FPGA开发经验, 形象地呈现复杂抽象的时序约束问题。
(2)深入浅出的时序理论知识讲解,丰富实用的时序约束案例分析
(3)Xilinx大中华区教育与创新生态高级经理陆佳华作序推荐
至芯开源雷斌|威三学院姚远| FPGA工程师姚利华 联袂推荐"