【AMBA总线三部曲】常见AXI接口时序

接口时序问题整理 

对于验证工程师而言,AMBA总线的接口时序,对于一个验证模块异常的重要!所有的仿真都是从CLK和RESET开始展开。这篇文章就AXI接口常见的问题,做了简单的整理,并会持续更新。


目录

常见问题1

常见问题2 


常见问题1

AXI 接口时序报错;bvalid比awvalid,awready,wvalid,wready来的早,不符合协议的规定。 

常见问题2

rvalid信号超时

正确波形

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AMBA总线是一种用于系统级芯片设计的总线架构,而AXI(Advanced eXtensible Interface)是AMBA总线标准中的一种协议。AXI协议定义了芯片内部组件之间的通信规范,其中包括slave部分,用于处理外部设备对主芯片的请求。 利用Verilog语言可以实现AXI协议中的slave部分。以下是一个简单的例子: ```verilog module AXISlave ( input wire aclk, // 主时钟信号 input wire aresetn, // 复位信号 input wire awvalid, // 主写地址有效信号 input wire [31:0] awaddr, // 主写地址信号 input wire [2:0] awprot, // 主写访问属性信号 input wire wvalid, // 主写数据有效信号 input wire [31:0] wdata, // 主写数据信号 input wire [3:0] wstrb, // 主写数据有效位信号 input wire bready, // 主写响应就绪信号 output wire awready, // 主写地址就绪信号 output wire wready, // 主写数据就绪信号 output wire bvalid, // 主写响应有效信号 output wire bresp // 主写响应状态信号 ); reg [31:0] memory [0:1023]; // 模拟的存储器,大小为1024字(4KB) reg [31:0] data; // 在slave部分中存储数据 /* 生成主写响应 */ always @(posedge aclk or negedge aresetn) begin if (!aresetn) begin bvalid <= 0; bresp <= 0; end else if (awvalid && wvalid && bready) begin memory[awaddr] <= wdata; bvalid <= 1; bresp <= 0; end else if (awvalid && !bready) begin bvalid <= 0; end end /* 处理主写地址信号 */ always @(posedge aclk or negedge aresetn) begin if (!aresetn) begin awready <= 0; end else if (awvalid && bready) begin awready <= 1; end else if (awvalid && !bready) begin awready <= 0; end end /* 处理主写数据信号 */ always @(posedge aclk or negedge aresetn) begin if (!aresetn) begin wready <= 0; end else if (awvalid && wvalid && bready) begin wready <= 1; end else if (awvalid && wvalid && !bready) begin wready <= 0; end end endmodule ``` 这段代码实现了AXI协议的slave部分,包括接收主写地址、数据等信号,并将写地址和数据存储在模拟的存储器中,并生成相应的主写响应信号。 请注意,这只是一个简单的实现示例,实际的AXI slave模块可能需要更复杂的逻辑来处理各种情况以及其他信号。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值