vivado 时序约束

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 用过,操作简单,需要知道信号最大最小延迟和板间最大最小延迟即可。

(芯片引脚上有信号的最大最小延迟,板子上的默认都是0,不知道这样操作可以不)

http://group.chinaaet.com/273/4100028543  timing constraints wizard 使用方法

 

时序例外约束

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

 

还有其他的技巧和说明,参考链接

http://xilinx.eepw.com.cn/news/article/a/1375

 

  • 10
    点赞
  • 154
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值