对于异步时钟有四种方法进行约束。本文介绍了每种方法的优缺点:
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。
然而,根据个人的选择/需求/熟悉程度,不同的人可能有不同的选择。
关于作者:sanjay churiwala
赛灵思公司工具与方法学应用专家,1993年毕业于印度理工学院电子工程专业,一直从事 vlsi 和 eda 相关领域的工作。2011年加入赛灵思公司,专攻库特性描述与建模,hdl,仿真与综合,静态时序分析以及跨时钟域(cdc)与同步相关内容。
特斯拉Model Y有望拉动新一轮的动力电池配套
数智赋能 格创东智为中小企业提供“链式”数字化解决方案
迎接世界杯 “万能的小米”推出智能足球
分布式Wi-Fi——并非听起来那么简单
通过NSight Compute 2021.3优化GPU利用率
约束异步时钟的方法
理想汽车将申请配售4700万美国存托股票用于纯电动车技术研发
智慧中台AAAS
高度关注!2022开放原子开源峰会最新议程一览
如何实现向高级电机控制的转变
基于可穿戴声学设备的高度跟踪系统,助力精确监测有创动脉血压
半桥谐振LLC+CoolMOS开关管工作原理和作用
功率放大器市场开启乱战模式 前景依然乐观
中兴通讯:重装归来,开启折叠智能手机全新品类
苏黎世大学的新算法使得无人机可在城市街道自由穿梭
电气二次常见问题有哪些_40个电气二次常见问题盘点
土壤团聚体分析仪是什么,它的作用是什么
荣耀Magic2和小米MIX3哪个最好
大多数灾难恢复(DR)系统不如人意?
电机控制器功率级P-HIL测试解决方案的介绍