深度解读Abstract Shell流程

描述

为便于说明,这里我们给出一个应用案例。DFX设计中有两个RP:count和shift。每个RP下分别有两个RM,即count下有count_down和count_up两个RM,shift下有shift_left和shift_right两个RM,如下图所示。

DFx

标准的DFX流程会形成两个configuration,如下图所示。config_1为static + count_up +shift_right,config_2为static +count_down + shift_left。在此基础上形成两个Design Runs,其中parent run为impl_1,child run为child_0_impl_1,如下图所示。

DFx

DFx

执行impl_1,直至生成布线后的.dcp文件,共4个。top_routed.dcp:整个设计布线后的.dcp文件(static + count_up + shift_right)top_routed_bb.dcp:静态区布线后的.dcp文件(static + count_blacbox + shift_blackbox)此时,静态区布局布线信息被锁定,每个RP被当作黑盒子。u_count_count_up_routed.dcp:RM count_up布线后的.dcpu_shift_shift_right_routed.dcp:RM shift_right布线后的.dcp

Abstract Shell流程和标准的DFX流程至此操作是相同的。接下来Abstract Shell流程就需要对每个RP生成相应的Abstract Shell。此时需要用到的文件是top_routed.dcp。打开该文件执行命令write_abstract_shell,如下图所示。

以图中第19行代码为例,write_abstract_shell会首先通过命令update_design -blackbox将RP count的RM换为黑盒子,之后锁定相关静态区与之的接口信息以及RP count的位置信息,并生成相应的.dcp文件即ab_sh_count.dcp。这个过程中还会执行pr_verify命令(这些命令都被包含在wrtie_abstract_shell中,不需要单独执行)。

DFx

打开ab_sh_count.dcp,可以看到Netlist窗口下显示的信息除了静态区部分cell之外就是RP count对应的黑盒子u_count,同时左侧Physical Constraints窗口表明RP count的位置信息已经被锁定。

同样地,也要生成另外一个RP即RP shift对应的Abstract Shell文件:ab_sh_shift.dcp。接下来分别用这两个AbstractShell文件生成各自RP下新的RM对应的.dcp文件。例如,对于RP count,添加ab_sh_count.dcp,添加count_down综合后的.dcp文件count.dcp,执行布局布线,生成相应的.dcp,相关命令如下图所示。

同样地,需要生成RP shift下新的RM对应的.dcp。由于这两个操作只需要各自对应的Abstract Shell,故相互独立互不干扰,从而可并行执行,缩短编译时间。

DFx

DFx

最后,生成相应的Partial Bitstream文件。比较简单的方法是直接利用Abstract Shell方式生成的.dcp文件生成对应的Bitstream。例如:利用abstract_shell_count_down_routed.dcp可生成count_down对应的Bitstream文件。

DFx

对比标准DFX设计流程和AbstractShell流程如下图所示。

DFx

编辑:jq

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

全部0条评论

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

×
20
完善资料,
赚取积分