Vivado以IP为核心的设计理念的一个重要支撑就是IP Integrator(简称IPI,IP集成器)。用户可以很便捷地把VivadoIP Catalog中的IP拖到IPI中形成Block Design(.bd文件)。
同时,对于用户自己的RTL代码,可以借助IP Packager先封装成IP,再导入到IP Catalog中,然后在IPI中使用。
此外,Vitis HLS、Vitis Model Composer都可以将用户设计以IP形式输出供用户导入到IP Catalog中调用。
尽管如此,不得不说借助IP Packager封装IP的过程还是有些繁琐的。当然,我们也要看到封装IP带来的好处就是便于不同设计团队开发使用。IPI的功能仍在不断增强。
一个显著的功能是用户可以直接将RTL代码拖到IPI中构成BD,如下图所示。要求RTL设计的顶层如这里的uart_tx必须是Verilog或VHDL描述。SystemVerilog/VHDL-2008不支持此功能。
此功能被称为模块引用(Module Reference)。
关于模块引用,我们可能会碰到以下问题。
问题1:待引用的顶层采用的是SystemVerilog或VHDL-2008描述的。
因为模块引用不支持SystemVerilog也不支持VHDL-2008,在这种情况下,可以用Verilog或VHDL先对该模块封装以下,这样就可以将封装后的.v或.vhd模块添加到IPI中。
问题2:若待引用的顶层其子模块包含IP Catalog中的IP(以.xci形式存在),那么是否支持此功能?
模块引用功能允许待引用的顶层其子模块包含.xci IP,但并不是所有的IP都支持。可通过如下命令获取不支持此功能的IP。可以看到NoC、CIPS和PS是不支持的。换言之,目前的Vivado版本(2023.1)只能在IPI中直接使用这些IP。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !