本人初次接触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信号成功拉高。文章来源:https://www.toymoban.com/news/detail-602424.html
由于作者为初学者,这个问题困扰了我几天时间,且在网上找了很久没能获得答案,仅以此文做一个记录,若并不是您要找的答案,请忽略。 文章来源地址https://www.toymoban.com/news/detail-602424.html
到了这里,关于仿真通过AXI_lite接口读写寄存器时axi_awready信号无法拉高的一种原因的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!