在常规非dfx(dynamicfunction exchange)的vivado设计中,我们可能会碰到给某一个指定的模块添加特定的约束。这时一个简单的方法就是将这些约束单独写在一个.xdc或.tcl文件中,然后将其添加到vivado工程中,并将该约束文件的属性scope_to_cells设定为目标模块。
如果该模块在设计中被多次实例化,不管这些实例化模块在设计中的层次如何,此时可设置该约束文件的属性scope_to_ref,如下图所示。这里我们就能理解对于一个cell其属性name和ref_name的区别:前者是实例化后的名字,后者为引用名(可以理解为verilog的module name或vhdl的entityname)。
另外,需要特别注意的是使用上述方法时,在.xdc或.tcl文件中的约束其施加的对象是以该指定模块作为顶层的而不是以实际工程的顶层作为顶层。如果采用non-project模式,那么可以通过read_xdc读入约束文件,然后通过set_property命令指定约束文件的属性scope_to_cells或者scope_to_ref。
在dfx设计中,我们也会碰到类似的情形,即给同一个rp(reconfigurable partition)下的不同rm(reconfigurable module)添加不同的约束。这时要考虑几个因素:同一个rp下不管有几个rm,在设计中均对应同一个实例化的名字。这意味着不能仅仅通过scope_to_cells将这些约束对应到不同的rm上。
另外,每个rm只有在自身对应的configuration上才有效,所以要保证在这个configuration上对应的rm的约束也要有效。从下图可以看到,当前这个dfx设计中有一个rp,名字为图中红色方框所示,该rp下有两个rm,分别为rp1rm1和rp1rm2。
基于上图所示dfx设计,现在我们要分别对rp1rm1和rp1rm2添加不同的约束。这里我们先介绍一下dfx设计的约束管理模式。在dfx设计中,约束是按configuration分组的。这是因为不同的configuration对应不同的rm。但不管有几个configuration,都会有主约束,也就是parentrun对应的约束,默认在constrs_1下。
主约束包括:顶层io约束(管脚分配/电平设置/input delay/output delay)、全局时钟周期约束和每个rp的pblock信息。主约束在运行parent run时生效,并在运行结束之后锁定静态区时一同被锁定,因此,后续的childrun会直接获得这些约束信息不需要重写一遍。默认情况下,child run并没有单独的constraintset,也就没有单独的约束文件。如果要针对rm施加约束,而rm又出现在child run,就要建立新的constraint set,这需要如下几个步骤完成。
第一步:创建与指定rm相关的约束,这些约束应放在单独的.xdc文件中。
第二步:创建新的constraint set,并将第一步创建的约束文件添加到该constraint set下。
除了parent run之外,有几个childrun,如果这些child run里的rm又需要单独约束,那么就要创建几个constraint set。创建constraintset的方法如下图所示。
第三步:运行dfx wizard到editconfiguration runs界面,如下图所示。在对应的constraints列选择相应的constraint set,如图中红色方框所示。
在design run窗口中就能看到相应的childrun对应的constraint set,如下图中的红色方框所示。如果没生效,要确保childrun的property apply_constrset被勾选。
上述过程针对的是vivado project模式。在non-project模式下,当运行rp1rm2对应的configuration时,要先打开锁定静态区布线信息的dcp(在这个dcp中,rp均为黑盒子),然后加载对rp1rm2ooc综合生成的dcp,这个过程结束之后即可通过read_xdc读入针对rp1rm2的约束文件。
针对rm的约束文件,通常要设定以下几个属性:processing_order,scoped_to_cells和used_in,如图中红色方框所示。
FPCB 制造产线中应用非接触除尘设备介绍
关于英特尔发力FPGA的相关事件分析
爱特梅尔推出超低功率AVR MCU产品ATA5790N
影响激光粒度分析仪器测试效果的因素
纯电动汽车会是未来汽车市场的发展方向吗
如何给每个RM添加约束?对RM添加约束的步骤有哪些呢?
高速数字电路设计:接口信号匹配与对接
虹科新品|HK-Edgility敏捷边缘计算套件
华为Mate10什么时候上市?最新消息:华为Mate10真机渲染图曝光,全面屏+麒麟970+第三代徕卡,干掉iPhone8妥妥的
数字电位器AD8402与8031的接口电路及程序设计
众筹价格9999元却卖疯!小米激光电视仅用20分钟完成众筹目标!
干货:如何选择固态硬盘SSD的接口
大屏时代投屏需求彰显,中兴携手乐播深度定制投屏功能打造新机
全自动生化分析仪有什么作用,可以检测什么指标
利用三维嵌入式电极提升压电陶瓷能量收集器输出电流密度
关于无线通信系统的仿真、分析和测试的结果分享
MS5541/MS5542 高精度数模转换器特点及应用
简单聊一下多点触控协议
两千元左右的投影仪推荐 5款全网最公认的投影仪推荐
戴耳机耳朵不舒服?骨传导耳机才是最佳选择