FPGA时序违例

本文介绍了在使用Vivado进行FPGA设计时,面对高工作时钟和资源使用率导致的时序违例问题,包括intre-clock、inter-clock和asynchronousclock违例类型。并详细讲解了通过XDC约束来解决时序问题的方法,如设置时钟周期、延迟等,以及推荐参考的官方文档UG903和UG906。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文基于vivado进行说明。

1、在进行FPGA设计过程中,一旦工作时钟较高,FPGA资源使用率较高的情况下,时序违例就不可避免。例如工作时钟200MHz,假设FPGA资源使用率不到一半,那么可以使用资源换速度,但是占用再多的资源后,资源换速度就行不通了。

2、时序违例大概有三种,见下图

(1)intre-clock是同一个时钟下的违例

(2)inter-clock是跨时钟违例

(3)async clock是异步时钟违例

3、时序违例解决办法

时序违例一般是通过约束解决,即XDC。

时钟信号一般都要进行约束。约束方法如下:

create_clock -period 10 [get_ports sysclk]---约束主时钟

create_generated_clock -name  -source [get_pins CLKIN] - multiply_by 4 \
-divide_by 3 [get_pins CLKOUT]---约束主时钟生成的时钟
set_input_delay -clock sysClk 2 [get_ports DIN]
set_output_delay -clock sysClk 1 [get_ports DOUT]
set_multicycle_path <path_multiplier> [-setup|-hold] [-start|-end]
[-from <startpoints>] [-to <endpoints>] [-through <pins|cells|nets>]
set_false_path -from [get_port xx] -to [all_registers]
set_clock_groups -group CLKA -group CLKB
set_max_delay <delay> [-datapath_only] [-from <node_list>]
[-to <node_list>] [-through <node_list>]
set_min_delay <delay> [-from <node_list>]
[-to <node_list>] [-through <node_list>]
通过以上约束时序问题都能得到解决。具体可以参考官方UG903、906。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cckkppll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值