赞
踩
目录
(本文资料来源于网络以及自己的总结,学到哪更到哪,无商业用途,侵删)
主要是画个BD,里面加个axi_bram_controller(完成AXI接口至BRAM接口的转换)和双端口的block_Memorry_Gen模块,PS那边通过AXI接口使用controller来控制bram的读写,PL这边就用bram的另一个端口(一般是PORTB)来读写bram。因为bram_control那边会进行地址分配,所以SDK里面的代码对相应地址进行读或者写,也就和PL里面的那些input output差不多了我感觉。
这里bram_controller的AXI-full协议位宽设置的是32位,因为AXI协议规定一个地址存储8位数据,那么 位宽×深度/8=地址数,也就是说地址分配8k的话可以存储2048个32位的数据。
最后BD的图大概就是红色框框里这样,黑色框框的rd模块可以不要,也可以直接在pl代码里例化了system之后自己写bram的读写时序。
关于bram的读写时序,分写优先、读优先和不变模式,看到一篇写的很好的csdn,先码在这:
XILINX BMG (Block Memory Generator)-CSDN博客
总结来说就是三个工作模式
具体单双真的模型就不列出了,大概的读写流程是:
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zhoutaopower/article/details/105257499
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。