大数跨境

关于异步时钟的约束

关于异步时钟的约束 依元素科技
2017-12-15
4
导读:对于异步时钟有四种方法进行约束。本文介绍了每种方法的优缺点

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


01


set_false_path


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


这种方法有两个缺点:

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

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


02


set_clock_groups


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


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因素也是比较重要的。


03


set_multicycle_path


大约在21世纪中期的时候,设计者开始从set_false_path方法转向set_multicycle_path方法。


方法1和方法2并没有约束一个路径——每条路径的延迟是任意的。这种方法提供了跨越某个节点的路径的延迟上限规定。


04


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。


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


阅读英文原文请点击: https://forums.xilinx.com/t5/Technical-Blog/Constraining-Asynchronous-Cl...


我们欢迎有意向合作新工科课程改革项目的老师加入Xilinx大学计划,关于联合实验室建设、Vivado软件捐赠、校企共建课程、FPGA师资培训、学生竞赛、学生讲座等联系我们。


联系方式:edu@e-elements.com


E-Elements

FPGA我们是认真的!



【声明】内容源于网络
0
0
依元素科技
FPGA 我们是认真的
内容 510
粉丝 0
依元素科技 FPGA 我们是认真的
总阅读673
粉丝0
内容510