前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DFX模式下如何读入模块的网表文件

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

作者头像
Lauren的FPGA
发布2023-09-27 16:15:55
2250
发布2023-09-27 16:15:55
举报
文章被收录于专栏:Lauren的FPGA

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命令创建工程:

代码语言:javascript
复制
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_files rp1_rm1.dcp]
set_property SCOPED_TO_CELLS \
[get_cells rp2_rm1] [get_files rp2_rm1.dcp]

之后通过link_design将这些dcp绑定在一起。
link_design -top top -part <part> \
-reconfig_partitions rp1_rm1 rp2_rm1
这里的rp1_rm1和rp2_rm1是这两个RM在顶层中的网表中的名字。

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

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

代码语言:javascript
复制
read_edif top.edn/edf
read_edif rp1_rm1.edn/edf
read_edif rp2_rm1.edn/edf
link_design -top top -part <part>

方法3:打开/读入checkpoint

代码语言:javascript
复制
open_checkpoint top.dcp
read_checkpoint -cell rp1_rm1 [get_files rp1_rm1.dcp] -strict
-strict用于确保读入的dcp对应模块的端口与顶层模块内已嵌入的黑盒子端口一致。但是要注意read_checkpoint不支持嵌套的网表。

方法4:打开checkpoint更新设计

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

代码语言:javascript
复制
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

Copyright @ FPGA技术驿站

转载事宜请私信 | 获得授权后方可转载

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-27 09:01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术驿站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档