问题描述
我已经将一个项目从EDK 7.1升级到EDK 8.2,其中我使用BRAM块的端口B连接到我自己的用户逻辑核心。
我可以通过在MPD文件中使用BUS_INTERFACE命令将BRAM PortB连接到逻辑,方法是将bram_block和逻辑中的公用名分配给总线接口。
例如:
我的BRAM块在MHS文件中指定了以下连接:
BUS_INTERFACE PORTB = conn_1
此外,我的用户逻辑核心在MHS中指定了以下连接:
BUS_INTERFACE PORTB = conn_1
但是,一旦我将我的设计升级到8.1i或8.2i,我的逻辑内核无法正确连接到BRAM块,这就不再有用了。
在加速我的系统时,我也会收到以下类型的警告:
实例bram_block总线接口PORTB连接conn_1仅引用一次 – 选择另一个总线连接或“无连接”。
解决/修复方法
这是由于BRAM总线接口的MPD文件语法的变化造成的。
在EDK 7.1中,BRAM块接口在MPD中定义如下:
##总线接口
BUS_INTERFACE BUS = PORTA,BUS_STD = TRANSPARENT,BUS_TYPE = UNDEF
BUS_INTERFACE BUS = PORTB,BUS_STD = TRANSPARENT,BUS_TYPE = UNDEF
但是,在EDK 8.1和EDK 8.2中,定义如下:
##总线接口
BUS_INTERFACE BUS = PORTA,BUS_STD = XIL_BRAM,BUS_TYPE = TARGET(或INITIATOR)
BUS_INTERFACE BUS = PORTB,BUS_STD = XIL_BRAM,BUS_TYPE = TARGET(或INITIATOR)
如果rev up工具没有对PORTB BRAM到自定义逻辑的接口进行这些更改,则会导致接口无法按预期运行。
因此,您必须分别将BUS_STD和BUS_TYPE更改为XIL_BRAM和TARGET(或INITIATOR)。
没有回复内容