异步时钟约束的四种方法

关注、星标公众号,精彩内容每日送达
来源:网络素材

对于异步时钟有四种方法进行约束。本文介绍了每种方法的优缺点:
1、set_false_path

这是最原始的方法,在时序分析设计早期比较流行。

这种方法有两个缺点:

a. 两个方向都需要约束:clock1->clock2 以及 clock2->clock1

b. 该路径没有时序要求,因此理论上路径延迟完全依赖于所使用的工具。而且这两种路径可能导向不同的节点,因为我们没有办法规范它们来满足任何具体的要求。

2、set_clock_groups

该方法已被引入 SDC 中,与方法 1 相比有以下三个主要优点:

a. 只需要指定源时钟与目的时钟,尽量减少 XDC/SDC 文件的长度

b. 与 set_false_path 方法相同,这里的路径也没有时序要求。但是它考虑到了信号完整性方面的问题,而 set_false_path 方法并没有

c. 在基于 FPGA 设计领域,可以说这是不重要的,因为在设计 FPGA 器件时信号完整性方面已经被考虑到了

d. 这种方法带点哲学思辩的方法论

e. 当我们使用 set_false_path 方法时,只是指定了这条路径是错误的,但是并没有明确的解释路径错误的原因

f. 拿异步时钟来举例,在实际情况下,路径并不是错误,所以时钟信号会通过这条路径,set_false_path 则可作为一种机制来告知工具,时钟信号不约束走这条路径。

在 set_clock_groups 这种方法中,我们指定了准确的原因,即为什么每个时钟信号组是不同的。实际上它们不能进行时序约束的原因完全是由你的意图决定的。因此这也可以作为一个注意事项,可以更加容易理解具体约束设计的原因。

通常情况下方法 2 要优于方法 1,主要是因为以上的 b 和 c 因素,其次 a 因素也是比较重要的。

3、set_multicycle_path

大约在21世纪中期的时候,设计者开始从 set_false_path 方法转向 set_multicycle_path 方法。方法 1 和方法 2 并没有约束一个路径 —— 每条路径的延迟是任意的。这种方法提供了跨越某个节点的路径的延迟上限规定。

4、set_max_delay

这种方法的效果与方法 3 相同。Vivado工具里面有‘-datapath_only’选项,这让设计者操作起来更简单,不用担心时钟偏移情况的发生。同时与 set_multicycle_path 方法相比,set_max_delay 方法更能表现出设计者的意图。

如果你想选一种方法,我建议的顺序是:4>2>3>1,有时我更倾向于选择方法 2。

举个例子,如果我正在进行一个局部的模块设计,这个模块还可以用于其他不同的应用,而且我不清楚这个部分会在什么外部设备或者器件上实现。这种情况下我也不确定 max_delay 值具体是多少合适,那么处于安全起见我会选择方法2而不是方法4。

如果使用 Xilinx 提供的工具,我们可以借助 Vivado 来设置时钟周期,在这个例子中我会根据时钟周期来设置具体的延迟,因此我可能更希望采用方法 4。

然而,根据个人的选择/需求/熟悉程度,不同的人可能有不同的选择。

0ce684b6f501aede0aff9aa2fe38d316.jpeg

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA异步时钟约束方法有几种常见的做法: 1. 异步复位:在异步时钟域中添加一个异步复位信号,用于保证系统在上电或者复位时的正确初始化。复位信号需要经过适当的同步处理,以确保在时钟稳定后再生效。 2. 时序同步器(Synchronizer):在异步时钟域和同步时钟域之间插入一个时序同步器,用于将异步信号转换为同步信号。时序同步器包括两个触发器(Flip-Flop),一个触发器位于异步时钟域,另一个触发器位于同步时钟域。通过两个触发器的级联,可以确保异步信号在同步时钟域中得到稳定的采样。 3. 时序约束:使用时序约束(Timing Constraint)来限制异步时钟域中的逻辑路径。时序约束定义了信号在电路中传输的最大延迟和最小延迟,以及时钟与数据的关系等。通过正确设置时序约束,可以确保异步时钟域中的逻辑在同步时钟域的正确操作。 4. FIFO缓冲:在异步时钟域和同步时钟域之间添加一个FIFO缓冲区,用于缓解两个时钟之间的不匹配。FIFO缓冲区可以通过流水线技术实现,将异步时钟域中的数据按照同步时钟域的速率进行处理。 这些方法可以根据具体的设计需求选择使用,通常需要结合具体的FPGA开发工具和芯片手册来实施。同时,对于复杂的异步时钟域设计,还需要进行静态时序分析和时钟域交叉验证等工作,以确保设计的正确性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值