Altera中的约束究竟对于fitting有没有作用?
时间:10-02
整理:3721RD
点击:
正在做关于TDC方面的设计,想很好地控制FPGA内部的走线延迟,用的cycloneIII的片子。
尝试了使用set_max_delay / set_min_delay / set_max_skew 等等约束设计中一段纯组合逻辑的电路,但是好像没有效果(虽然看report中的延时改变了,但怀疑是每次编译的随机性造成的)
遍搜论坛,发现有两种不同意见,一种说这些约束只是为了TQ分析使用,有些说fitter会根据这些约束“朝着”required timing编译,但结果不保证(但是也没有report任何的violation消息)
查了相关的手册和白皮书以及AN,都没有明确说用法什么的不对,不知道大神们是怎么用约束的?
谢谢指导!
尝试了使用set_max_delay / set_min_delay / set_max_skew 等等约束设计中一段纯组合逻辑的电路,但是好像没有效果(虽然看report中的延时改变了,但怀疑是每次编译的随机性造成的)
遍搜论坛,发现有两种不同意见,一种说这些约束只是为了TQ分析使用,有些说fitter会根据这些约束“朝着”required timing编译,但结果不保证(但是也没有report任何的violation消息)
查了相关的手册和白皮书以及AN,都没有明确说用法什么的不对,不知道大神们是怎么用约束的?
谢谢指导!
肯定是有作用啊,布局布线会尽量满足你添加的约束,找个小工程做个小实验就清清楚楚了
第二种说法比较靠谱
做了实验,但是看不出来有任何的明显变化。比如set_max_delay,如果只用这个约束一段纯组合逻辑的话,在report里面看最后的输出结果还是不满足条件,甚至更加糟糕。
语句是这样的 set_max_delay 500ps -from [get_cells{……}] -to [get_cells{……}],在sdc文件内,也加入了物理综合选项。
不知可有什么解决之道?
感觉也是第二种靠谱一些,不然“约束”就不知从何而来了。但是不论如何添加约束都没有任何的violation的报告出来,比如不满足时序给个warning什么的。
第二种说法靠谱,但是会report violation。
你想,你定个约束500ps,我器件最快路径也没这么快,怎么去route?只能告诉你violation,达不到。如果定5ns-10ns,我就会照你的意思去route,尽量达到你的要求。
所以要针对器件去做约束,乱写你要的理想约束,器件达不到等于没有,白写了。
现在应该清楚了吧?
没错,确实如此。刚才尝试了用set_net_delay -min命令,参数2ns,效果明显,直接给我布成了3.5ns的距离(在FPGA里面那个绕啊);应该算是确认了set_max/min_delay只是一个exception命令,是针对TQ分析时序时候的rules例外用的,只具有分析意义。
多谢指导!
