完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
新年快乐人!!!
我一直致力于通过LogiCORE™IP AXI Block RAM(BRAM)控制器向BRAM写入和读取的项目,该接口处于AXI_Lite模式。 我的大部分工作都是由LogiCORE IP AXI BRAM控制器v4.0,PG078 2014年4月2日手册指导。 带有AXI Lite接口的Block RAM有一个VHDL包装器,带有以下总线信号; COMPONENT BRAM_w_AXI4_wrapper端口(MCLK:STD_LOGIC; MReset:STD_LOGIC; --AXI4 Lite READ ADDRESS CHANNEL s_axi_araddr:STD_LOGIC_VECTOR(14 downto 0); s_axi_arready:out STD_LOGIC; s_axi_arvalid:STD_LOGIC; - AXI4 Lite WRITE ADDRESS CHANNEL s_axi_awaddr: 在STD_LOGIC_VECTOR(14 downto 0); s_axi_awready:out STD_LOGIC; s_axi_awvalid:在STD_LOGIC中; - AXI4 Lite WRITE RESPONSE CHANNEL s_axi_bready:在STD_LOGIC中; s_axi_bresp:out STD_LOGIC_VECTOR(1 downto 0); s_axi_bvalid:out STD_LOGIC; - AXI4 Lite READ DATA CHANNEL s_axi_rdata&冒号;输出STD_LOGIC_VECTOR(31 downto 0); s_axi_rready:输入STD_LOGIC; s_axi_rresp:输出STD_LOGIC_VECTOR(1 downto 0); s_axi_rvalid:输出STD_LOGIC; - AXI4 Lite写数据通道s_axi_wdata&冒号;输入STD_LOGIC_VECTOR( 31 downto 0); s_axi_wready:out STD_LOGIC; s_axi_wstrb:在STD_LOGIC_VECTOR(3 downto 0); s_axi_wvalid:在STD_LOGIC中); COMPONENT BRAM_w_AXI4_wrapper; 我写了一个“CONTROLLER”文件,它在AXI Lite总线上执行SINGLE WRITE或SINGLE READ操作。 然后,我有一个“DRIVER”文件,它可以告诉CONTROLLER写入或读取ARRAY大小从一个32位字到最大记忆字的数据。 最大内存大小目前是2048,32位字。 不幸的是,IP生成的Wrapper接口似乎与PG078 IP Manual的AXI_Lite信号图不匹配。 所以我不得不做相当多的猜测。 看起来好像我有2048个单数据写入工作。 请参阅随附的pdf文件。 这是写2048操作的结束和2048读操作的开始。 写数据是地址的二进制等值。 因此,地址INTEGER 0是00000000000000000000000000000000,地址INTEGER 3是0000000000000000000000000000000011。 一个观察结果(参见图表REF B); 看来,在WRITE操作期间,写入的数据在RDATA总线上输出。 对于地址2047,写入数据为0000000000000000000000011111111111,这也是在WRITE操作期间从RDATA总线输出的数据。 在WRITE和READ操作之间,我进行主复位。 您可以看到在开始READ操作之前切换了MRESET。 即使为地址INTEGER 0(参考图REF C)读取了00000000000000000000000000000011数据,读操作似乎也开始正常。 但是,在第二次单次读操作(参考图REF A)开始时,您可以看到ds_axi_arready不是必需的高电平。 在PG078手册的第44页上,您可以看到; AXI读地址通道接口上注册的ARREADY信号输出默认为高置位。 AXI BRAM控制器可以在ARVALID信号首次有效的同一时钟周期内接受读取地址。 AXI BRAM控制器在读取中注册 当ARVALID和ARREADY信号都被断言时的地址。 当AXI BRAM控制器读地址流水线已满(双深),它清除ARREADY信号,直到流水线处于非满状态。 我相信这是我的问题。 然而, 1.)手册不说明如何清除“读取地址管道”。 请告诉我要清除它的目的。!!! 2.)我刚刚在AXI-Lite总线上做了一个MRESET,只给它一个地址。 为什么不清除管道? 最后一个谜团是为什么BRAM地址0出现00000000000000000000000000000011。 我非常感谢你能给我的任何帮助。 最好的祝福, gmstomm Visio-AXI_LITE_INTF_Single_W_R-12-31-2014.pdf 274 KB |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2415 浏览 7 评论
2821 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2292 浏览 9 评论
3372 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2458 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1104浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
581浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
444浏览 1评论
2002浏览 0评论
725浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 01:29 , Processed in 1.273735 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号