如何管理约束文件?

描述

约束文件是FPGA设计中不可或缺的源文件。那么如何管理好约束文件呢? 到底设置几个约束文件? 通常情况下,设计中的约束包括时序约束和物理约束。前者包括时钟周期约束、输入/输出延迟约束、多周期路径约束和伪路径约束。后者包括管脚分配、管脚电平等。除此之外,有些情况下还包括用于设计调试的约束(设置ILA属性)或位置约束或通过Pblock执行的面积约束。Xilinx建议将约束分类写入不同的文件中,典型的场景是:时序约束放在一个文件里,物理约束放在一个文件里。如下图所示。图中wave_gen_timing.xdc中写的是时序约束,wave_gen_pins.xdc中写的是管脚分配。如果有ILA,可将ILA相关信息写入单独的文件中,这样的好处是当后期不再需要调试时,直接将该文件移除或点右键选择DisableFile,而不用一行行注释。

约束

用于OOC综合的约束 Vivado支持对IP、BlockDesign进行OOC(Out-of-Context)综合。同时,Vivado还可对指定的用户模块进行OOC综合,这时可对该模块指定OOC综合时用到的约束文件。这可通过xdc文件属性USED_IN设定,将其值设置为{synthesis,out_of_context},如下图所示。

约束

设置约束的生效阶段

默认情况下,添加到Vivado工程中的xdc文件既用于综合阶段也用于布局布线阶段。但事实上,有些约束仅在布局布线阶段有效,例如管脚分配,这时可通过.xdc文件属性设定其使用阶段,如下图所示。

约束

即使对于时序约束,也只有如下几条命令且与建立时间相关时综合阶段才起作用,这也是为什么我们在分析综合后的设计时只关注建立时间违例而忽略保持时间违例。

约束

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分