最近在调试ZYNQ-7010系列的版块时,PL与Linux系统通过AXI-BRAM进行32bit数据交互,发现经常出现bram内存未更新,

一直困扰了两天,一度找不到背锅侠,哈哈,最终原因还是在PL侧,解决思路如下:

1、降低AXI-BRAM 系统clk频率(暂认定为主要原因,具体仍需研究datasheet

--->> CLK_100MHz降为CLK_50MHz

因为手册中提到,fmax=150MHz,不排除该芯片达不到其一般的水准(待确认)

2、尽量避免addr/data输入的右侧存在多级运算(代码风格问题,非主要因素,但仍需注意)

3、优化状态机逻辑,一个always中尽量至多3个寄存器并存(代码风格问题,非主要因素,但仍需注意)



4、补充说明:一定要注意PL和PS是否会同时对bram进行读写,如果不排除同时的可能性,强烈建议使用乒乓读写的设置!

Logo

更多推荐