仿真通过AXI_lite接口读写寄存器时axi_awready信号无法拉高的一种原因

        本人初次接触AXI接口,在了解了AXI接口读写时序后,计划使用AXI接口对BRAM进行读写,并进行仿真测试,AXI接口有三种类型:AXI4、AXI-lite、AXI-stream,我一开始成功对AXI4进行了读写测试,在了解读写时序后这是很简单的,但是在对AXI-lite进行读写测试时,本以为读写时序与AXI4一致,并且端口数量大大减少,实验应该会很快做完,但却出现了下图所示情况:

       图中即使使awvalid信号一直为高,awready信号却迟迟无法拉高,这与AXI4仿真时情况不符,之后再一次偶然打包AXI接口的ip时,发现了原因,如下图所示:

        此处展示的是模拟AXI-lite的有关代码,可以看到,要想拉高awready,不仅需要拉高awvalid,而且wvalid信号 也要同时为高,再来看模拟AXI-full的有关代码:

        可以看到AXI-full中拉高awready的条件仅仅是awvalid拉高即可(其中的awr_flag和arr

_flag信号在复位时会自动置0),接下来我尝试把awvalid和wvalid 同时拉高仿真AXI-lite,结果如下:

        可以看到awready信号成功拉高。

        由于作者为初学者,这个问题困扰了我几天时间,且在网上找了很久没能获得答案,仅以此文做一个记录,若并不是您要找的答案,请忽略。 

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值