如何在Vivado中用工程模式使用DFX流程

作者:Hong Han,AMD工程师;来源:AMD开发者社区

这里介绍一下在Vivado中用工程模式使用DFX流程以及需要注意的地方。同阅读"DFX Flow II"类似,如果在下文中看到不熟悉的术语,可以参考"DFX flow I - DFX flow Introduction". 在使用DFX工程模式的过程中脑海中尽量要把具体步骤映射到相应的DFX非工程模式的步骤,这样才能更好地理解整个流程的运行逻辑。

1.创建初始普通工程

DFX工程模式会将DFX的要求自动嵌入到Vivdao流程中,后续用户可以在Vivado IDE中访问该工程。
所有静态逻辑和各个RM(Reconfigurable Module)的源文件,各个Configuration的输出文件都会都被自动管理,而在DFX非工程模式中这个文件都需要用户自行管理。

DFX模式中创建工程的流程和普通设计没有区别,用户需要把静态部分的源文件和约束文件加入到新建的工程中。

Intitial Configuration的RM所包含的源文件和约束文件可以在此时加入工程,也可以在后续步骤中加入到当前的工程中. 如果此时不加入Intitial Configuration的RM的相关文件,可以暂时将此RM作为黑盒处理. 在这里我们一般选择同时把Intitial Configuration的RM所包含的源文件和约束文件到加入工程中

2.将初始普通工程设置成DFX工程

建成初始普通工程后,建议把工程通过以下任一的方法做好备份
<1> File -> Project -> Archive
<2> 在TCL CONSOLE执行 "write_project_tcl XX.tcl" 获得重建工程所需的TCL脚本.
  通过主菜单Tools -> Enable Dynamic Function eXchange将初始普通工程设置成DFX工程
  注意:这个操作一旦执行不可逆转, 不可撤销

01.jpg

3.创建分区定义(Create Partition Definition)

这步操作对应非工程模式中创建RP(Reconfigurable partitions)的步骤, 对应的模块的HD.REGUFIGURABLE属性被自动被设置成True.

当把普通工程转成DFX工程之后,可以从RTL Source/Hierarchy窗口中选择一个文件(对应的Instance)作为RP

注意:动态顶层文件不能是IP,DCP或者EDIF. 如果暂时没有动态部分的逻辑,这里允许选择黑盒文件.(在后续的opt_design步骤之前,需要用网表或者灰盒填充这个黑盒)

02.jpg

在这里的例子中,同一个module被例化了两次,不管是哪一个instance被定义成Partition, 这两个instance都会变成RP. 如果实际只需要一个module作RP,那么需要手动修改其中一个module的名字,使他们相互不同。
在弹窗"Create Partition Name"中分别给Partition Definition和Reconfiguratble Module命名后,Source窗口会相应改变: 黄色菱形代表的模块即是Partition Definition。

03.jpg

04.jpg

在非工程模式中静态部分和动态部分是分开综合再link到一起. 在非工程模式中,工具会自动对RP模块进行OOC综合后合并到顶层,和在非工程模式的原理是一致的。在这里要注意动态区逻辑和静态区逻辑的综合依然是保持相互独立的。
4.接下来的步骤就是按照DFX Wizard的引导完成DFX工程的设置。
<1>在工具菜单或者Flow Navigator中启动DFX Wizard

05.jpg

<2>点击Next进入Edit Reconfigurable Modules页面
 这里可以看到之前加的RM shift_right已经存在了。蓝色的+、-和铅笔按钮分别对应增加、删除和修改RM源文件的操作.
<3>点击+号可以创建一个新的RM,点击“Add Files"或者"Add Directories”

06.jpg

07.jpg

<4>点击Next,进入"Edit Configurations"页面
点击+号添加Configuration,也可以直接点击"automatically create configurations"让工具自动生成configuration. 这里我们直接让工具自动产生configuration,然后我们可以按照我们自己的需求在这基础上进行修改.

08.jpg

<5>点击Next,进入"Edit Configuration Runs" 页面,把这些configuration和直接的Run挂钩
和上一个页面相似,点击+号可以添加Runs,这里我们直接点击"Standard DFX", 工具会自动产生configuration Runs

09.jpg

然后我们可以在这基础上进行修改, 按需增减Configuration runs;同时通过下拉菜单设置每个Run的Run strategy和Report Strategy.

10.jpg

在此页面上点击黄色钻石符号,可以显示每个Configuration Run中的RP所包含RM的名字

11.jpg

<6>点击Next进入Summary页面
可以看到当次创建的RM,Configuration以及Configuration Runs的数目
点击“Finish”退出DFX Wizard

12.jpg

5.查看各个RM所包含的源文件
在Source窗口,Partition Definitions中依次展开RP,RM可以看到每个RM中包含的源文件

13.jpg

6.在Deisgn Runs或者Flow Naviagator中启动runs的运行,直至生成比特流文件

14.png

Child Impl run会使用和其Parent Impl run相同的静态逻辑
 完成implementation后,工具会自动执行Pr_verify 命令验证这些Run之间边界逻辑的一致性。
7.在各个Run的目录下,可以找到各自的Full bit和Partial bit

15.jpg

最新文章

最新文章