【原创】在Vivado IPI中用接口推断法自动连接IP
0赞前一篇博文里我们已经讲了如何在System Generator生成并打包自定义IP(http://blog.chinaaet.com/detail/35983),其中我们通过自定义Gateway In和Gateway out模块的名字,指定了生成的IP的端口名称,它与其它IP的连接需要我们自己手动配置。此外,我们也可以使用System Generator对接口名称的自动推断,使得系统根据内置的命名规则,自动匹配一些IP的名字,从而可以减少我们在Vivado IPI中的连线工作。为了使用这样的自动化,我们需要在System Generator中把Gateway In和Gateway Out接口模块的名字配置为相关的前缀,才能被Vivado IPI自动识别配置为连接相关的IP接口,这一规则如表1所示。
表1 System Generator打包IP时的命名规则
接口名称 |
Gateway in (严格) |
Gateway out (严格) |
AXI4-Lite Slave |
awaddr |
awready (1bit宽) |
awvalid (1bit宽) |
||
wdata |
wready (1 Bit宽) |
|
wvalid(1 Bit) |
||
bready (1bit宽) |
bresp (2 Bits宽) |
|
bvalid |
||
AXI4-Stream Slave |
tdata |
tready |
tvalid(1 Bit) |
||
AXI4-Stream Master |
tready (1bit宽) |
tdata |
tvalid(1 Bit宽) |
||
Reset (full name) |
aresetn |
|
Clock |
clk |
点击System Generator IP输出界面的settings,可以配置为自动接口推断,即“Auto Infer Interface”,如图1所示。
图1配置自动端口推断
接下来我们以一个AXI接口的例子来说明自动端口推断功能是如何实现的。创建一个增益控制的工程,如图2所示。
(a)创建的示例工程
(b)AXILiteInterface模块
图2创建的示例工程
这个模型的功能是:通过AXILite接口为乘法器模型选择不同的输入。注意在图2(b)中也包含了多个Gateway In和Gateway out模块,它们的名字都含有表1中对应的前缀。然后我们编译这个模型,其中选择输出模式为IP Catalog,并勾选图1中的“Auto Infer Interface”。然后我们在输出文件夹中的ip_catalog路径下打开生成的.xpr文件,然后双击Design Source下面的bd文件,此时我们看到因为我们在System Generator里已经给Gateway In和Gateway Out接口模块加了对应的前缀,所以Vivado IPI对端口名进行自动推断,并自动给我们把相关的接口模块IP给连接好了,如图3所示。
图3 Vivado IPI自动推断的端口连接
从图3中可以看出,因为我们在这里使用的是ZYNQ-7000 AP SOC,所以PS也已经被自动连接进来了,非常的智能。然后点击的IPI管理器里的验证工具(红圈已圈出),对连接的正确性进行验证,如图4所示。
图4验证设计