Vivado 2021.1版本的IPIntegrator增加了一个新的功能:BDC(Block Design Container)。简单地说,BDC提供了一种基于Block的层次化设计方案。对于层次化设计,FPGA工程师都很熟悉。在RTL代码里,一个顶层设计可以分割为多个子层模块,交付给团队的不同成员设计,从而实现并行设计,提高开发效率,并有助于设计复用。BDC将这一概念从HDL代码层面移植到IPIntegrator中的Block层面。最直观的结果是在一个Block Design中可以包含另一个Block Design。
众所周知,在以前的Vivao版本中,IP Integrator中可支持的对象只能是IP或HDL代码生成的Reference Module。IP可以是Vivado IP Catalog自带的IP,也可以是通过IP Packager封装的IP。因此,如果要实现在一个Block Design中实例化另一个Block Design,可行的方案是将待实例化的BlockDesign通过IP Packager封装为IP并添加到Vivado IP Catalog中。在Vivado 2021.1版本中可直接通过BDC实现上述功能。BDC可给设计者带来下述好处:(1)借助BDC,将一个大的Block分割为多个小的Block,这样每个Block可独立开发;(2)借助BDC可以在IP Integrator中很容易复制Block;(3)借助BDC可以轻松实现Block复用。
BDC的创建也非常简单。如下图所示,在Block Design视图中选中要创建BDC的模块,点击右键,选择Create Hierarchy。这一步实际上是将这两个模块封装在一个层次内,形成一个新的模块。
紧接着,对设计进行验证,之后选中hier_0这个新模块,点击右键,选择Create Block Design Container,如下图所示。
这样,这个模块就被转换为BDC。BDC模块图标中间有个金字塔形状,如下图所示。
从Sources窗口看,BDC模块会以一个.bd的形式存在。同时原始设计中相应的模块被替换为BDC的实例化,如下图所示。
没有回复内容