Astro需要导入的sdc与dc导出的sdc一样吗?
请高手给与解答。多谢!
理论上来说,dc导出的sdc可以在astro中直接使用,但是dc中一般都是将clock的频率提高一些,因此应该将astro使用的clock频率调整之后再使用
多谢!
但是我设计的verilog源代码里有分频时钟,在dc综合时我用的是top_down模式,没有加create_generate_clock的指令,那么在Astro导入的sdc中,我还需要手动加入吗?
多谢解答!
是需要加入的。事实上,无论综合的时候你使用的是什么模式,你都应该把相关的时序约束信息添加完整。
如果在astro导入的sdc里面没有子时钟的信息(generated)的话,CTS的时候对这些路径是不会考虑的。timing_data_check也会有问题。就算你最后STA时序过了,也是基于一个不完整的SDC来满足时序的(也就是说,如果有完整的约束的话,你的时序很可能不满足)。
最好的办法是,DC综合时把时钟尽可能的添加完整,相关的时序关系也尽可能地添加。astro沿用DC到处的sdc,当然,有的情况需要手动修改sdc,但是一般改动幅度不大。
太谢谢了
我的问题是 在dc导出的sdc文件里没有分频时钟,只有顶层模块source时钟的时钟约束,没有分频时钟。那在Astro导入的sdc中,我除了加入了create_generated_clock这个命令指明之外,对分频时钟还需要加别的约束吗?
如果只加这个指令,分频时钟的setup_time好像一直是0.0000。您遇到过吗?这个有问题吗?
多谢了!
dc导出的sdc里面没有分频时钟的原因应该是你在compile之前,create_clock的时候就没有添加分频时钟的相关信息,最好在这个时候就添加进去,导出来的sdc就会包含这些信息。
有一点很重要,你应该记住,sdc只是一个约束文件而已,你想怎么改都行。但是工具是死的,在流程中的某一阶段,工具只会认识当前你指定给他的sdc以及其他的约束信息,并以此来进行相关操作。
还有一些,你应该参考一下伪路径(false_path)以及多周期(multicycle_path)等的相关信息,添加更具体的时序约束,当你的设计中存在时钟的选择时,你还应当使用set_case_analyze来进行分析。
不好意思,没有遇到过。
mark
真是好贴!
大侠啊,受教了
标记了,方便以后学习!