[FPGA] vivado 时序约束

[复制链接]
3202|1
 楼主| gaochy1126 发表于 2022-1-30 16:19 | 显示全部楼层 |阅读模式
XDC的基本语法可以分为时钟约束、IO约束以及时序例外约束,对一个设计进行约束的先后顺序也可以按照这三类约束依次进行。

时钟约束
时钟约束必须最早创建,端口进来的主时钟以及GT的输出RXCLK/TXCLK都必须由用户使用create_clock自主创建。如果是差分输入的时钟,可以仅在差分对的P侧用get_ports获取端口,并使用create_clock创建。
create_clock-name clk_200 - period 5 [get_ports clk200_p]
针对vivado自动推导的衍生时钟,比如MMCM/PLL/BUFR的输出时钟,可以由vivado自动推导,用户无需创建。
但是,工具不能自动推导出使用寄存器和组合逻辑搭建的分频器等衍生的时钟,必须有用户使用create_generated_clock来创建。举例如下

Clk1 是原本就有的主时钟,clk2 是衍生出来的时钟。注意创建时钟,语法不一样。
为什么时钟要进行时钟约束,不约束有什么后果?这里还是不知道。
I/O约束
在设计的初级阶段,可以不加IO约束,让工具专注于满足FPGA内部的时序要求。当时序要求基本满足后,再加上IO约束跑实现。
1  不加任何IO约束的端口,时序要求被视为无穷大。
2  XDC中的set_input_delay/set_output_delay 是从系统 角度来约束。
3  典型的IO时序,包括系统同步,源同步,SDR和DDR等。在vivado图形界面的XDC templates中有示例。2014.1版后,还有一个timing constraints wizard可供使用。timing constraints wizard 用过,操作简单,需要知道信号最大最小延迟和板间最大最小延迟即可。

 楼主| gaochy1126 发表于 2022-1-30 16:19 | 显示全部楼层
时序例外约束

时序例外约束包括set_max_delay/set_min_delay,set_multicycle_path,set_false_path等,这类约束除了要满足XCD的先后顺序优先级外,还要遵循自身的优先级限制。总的准则是,针对同一条路径,对约束目标描述越具体的优先级越高。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:这个社会混好的两种人:一是有权有势,二是没脸没皮的。

1205

主题

11937

帖子

26

粉丝
快速回复 在线客服 返回列表 返回顶部