DFX模式下如何读入模块的网表文件

描述

  DFX模式下要求在设计的顶层文件,每个RP对应的RM只以一个空的接口形式存在,这样对顶层综合时,RM就是黑盒子。而对每个RM要采用OOC的综合方式。OOC综合本质上就是工具不会对设计的输入/输出端口插入IBUF/OBUF,同时生成该模块对应的网表文件。不论是第三方工具还是Vivado都是如此。对RM执行OOC综合,这在DFX过程中是必要的。在后续布局布线时,工具要依次读入静态区的网表文件(RM为黑盒子)、每个RP对应的RM的网表文件,这样才能形成完整的网表文件。这就要求同一个RP下的所有RM的输入/输出端口必须完全相同,包括端口的名字、方式、位宽。那么一旦静态区的网表文件和动态区的RM的网表文件准备好之后,如何读入以便Vivado后续执行布局布线?这里我们给出三种可行方法。

方法1:通过add_files命令添加dcp文件

首先,通过create_project命令创建工程:

create_project -part <具体型号> -in_memory

通过add_files添加顶层和各个RP对应的dcp

add_files top.dcp

add_files rp1_rm1.dcp

add_files rp2_rm1.dcp

接下来要通过属性SCOPED_TO_CELLS确保上一步读入的dcp文件与顶层dcp中的RM的对应关系是正确的。

set_property SCOPED_TO_CELLS [get_cells rp1_rm1] [get_filesrp1_rm1.dcp]

set_property SCOPED_TO_CELLS [get_cells rp2_rm1] [get_filesrp2_rm1.dcp]

之后通过link_design将这些dcp绑定在一起。

link_design -top top -part -reconfig_partitionsrp1_rm1 rp2_rm1

这里的rp1_rm1和rp2_rm1是这两个RM在顶层中的网表中的名字。

  方法2:直接读入网表文件

该方法适用于网表由第三方综合工具提供。需要用到命令read_edif。

read_edif top.edn/edf

read_edif rp1_rm1.edn/edf

read_edif rp2_rm1.edn/edf

link_design -top top -part

方法3:打开/读入checkpoint

open_checkpoint top.dcp

read_checkpoint -cell rp1_rm1 [get_files rp1_rm1.dcp]-strict

-strict用于确保读入的dcp对应模块的端口与顶层模块内已嵌入的黑盒子端口一致。但是要注意read_checkpoint不支持嵌套的网表。

方法4:打开checkpoint更新设计

当RM是以EDF或EDN形式存在时,如果已经获取了顶层布局布线后的网表文件,可以使用如下命令:

open_checkpoint top.dcp

lock_design -level routing

update_design -cells rp1_rm1 -from_file rp1_rm1.edf/edn

update_design -cells rp2_rm1 -from_file rp2_rm1.edf/edn

  审核编辑:汤梓红

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

全部0条评论

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

×
20
完善资料,
赚取积分