<AMBA总线篇> AXI总线通道信号说明

目录

01 Write channels(写通道)

Write request channel signnal(AW)

write data channel signnal(W)

write response channel signnal(B)

02 Read channels(读通道)

Read request channel(AR)

read data channel(R)

03 Snoop channels(Snoop通道)

Snoop request channel(AC)

Snoop response channel(CR)

04 Interface level signals(接口信号)

Clock and rest signals

Wakeup signals

Qos Accept signals

Coherency Connection signals

Interface control signals

05 文章总结


大家好,这里是程序员杰克。一名平平无奇的嵌入式软件工程师。

上篇推送主要是AXI总线的协议架构等进行了介绍,本篇推送主要是对通道的信号进行整理和总结。本文的内容基于AMBA5的版本进行描述。


下面正式进入本章推送的内容。

01 Write channels(写通道)

write通道被用于write事务和其他事务的传输request、传输data、传输responses。

  • Write request channel signnal(AW)

信号名位宽方向描述
AWVALID1M->S写有效信号
AWREADY1S->M从机ready信号
AWIDID_W_WIDTHM->S传输通道的事务ID
AWADDRADDR_WIDTHM->S写入地址/突发传输开始地址
AWREGION4M->S域识别符,表征物理内存区域
AWLEN8M->S数据包的长度(total = AWSIZE * AWLEN)
AWSIZE3M->S单个数据包的大小
AWBURST2M->S

突发传输类型:

0b00-FIXED(固定长度)

0b01-INCR(地址和数据自增)

0b10-WRAP(边界环回)

0b11-RESERVED(无效保留)

AWLOCK1M->S锁信号, 支持原子操作
AWCACHE4M->S

内存参数(默认为0):

[0] - Bufferable

[1] - Modifiable

[2] - Other Allocate

[3] - Allocate

AWPROT3M->S访问属性. 可用于保护内存免受意外事务的影响
AWNSE1M->SRME模式非安全扩展位
AWQOS[可选]4M->S事务优先级信号, 默认设置为0x0
AWUSERUSER_REQ_WIDTHM->S扩展的用户自定义信号
AWDOMAIN[可选]2M->S

共享域参数:

0b00 - Non-shareable(不共享)

0b01 - Shareable(内部可共享)

0b10 - Shareable(外部可共享)

0b11 - System(系统域共享)

特别说明:

对于AXI5, 官方建议使用0b10表征共享域

AWSNOOPAWSNOOP_WIDTHM->S写请求操作码

AWSTASHNID

[可选]

11M->S

AWSTASHNIDEN

[可选]

1M->SAWSTASHNID使能信号

AWSTASHLPID

[可选]

5M->S

AWSTASHLPIDEN

[可选]

1M->SAWSTASHLPID使能信号
AWTRACE1M->S跟踪信号
AWLOOPLOOP_W_WIDTHM->S环回信号
AWMMUVALID1M->SMMU限定符信号
AWMMUSECSIDSECSID_WIDTHM->S安全流ID
AWMMUSIDSID_WIDTHM->S流ID
AWMMUSSIDV1M->S子流ID有效信号
AWMMUSSIDSSID_WIDTHM->S子流ID
AWMMUATST1M->S
AWMMUFLOW2M->SSMMU流类型
AWPBHA4M->S
AWNSAID4M->S非安全访问ID
AWSUBSYSIDSUBSYSID_WIDTHM->S子系统ID
AWATOP6M->S原子事务操作码
AWMPAMMPAM_WIDTHM->SMPAM请求信号
AWIDUNQ1M->S唯一ID指示信号
AWCMOAWCMO_WIDTHM->SCMO类型
AWTAGOP2M->S内存标签操作信号

  • write data channel signnal(W)

信号名位宽方向描述
WVALID1M->S写操作: 数据有效信号
WREADY1S->M写操作: 从机ready信号(可写)
WDATADATA_WIDTHM->S写数据
WSTRBDATA_WIDTH/8M->S写数据选通信号
WLAST1M->S最后一帧数据标志信号
WUSERUSER_DATA_WIDTHM->S用户自定义扩展数据
WPOISONDATA_WIDTH/64M->S数据损坏标志信号
WTAGceil(DATA_WIDTH/128)*4M->S内存标签
WTAGUPDATEceil(DATA_WIDTH/128)M->S内存标签更新

  • write response channel signnal(B)

信号名位宽方向描述
BVALID1S->M有效信号
BREADY1M->Sready信号
BIDID_W_WIDTHS->Mwrite channels ID
BRESPBRESP_WIDTHS->M写响应信号
BUSERUSER_RESP_WDITHS->M用户自定义扩展信号
BTRACE1S->M追踪信号
BLOOPLOOP_W_WIDTHS->M环回信号
BBUSY2S->MBusy繁忙信号
BIDUNQ1S->M唯一ID
BCOMP1S->M响应完成信号
BPERSIST1S->M持续响应信号
BTAGMATCH2S->M内存标签匹配响应

02 Read channels(读通道)

read通道被用于read事务、Cache维护操作以及DVM Complete信息的传输request、传输data、传输responses。

  • Read request channel(AR)

信号名位宽方向描述
ARVALID1M->S写有效信号
ARREADY1S->M从机ready信号
ARIDID_W_WIDTHM->S传输通道的事务ID
ARADDRADDR_WIDTHM->S写入地址/突发传输开始地址
ARREGION4M->S域识别符,表征物理内存区域
ARLEN8M->S数据包的长度(total = AWSIZE * AWLEN)
ARSIZE3M->S单个数据包的大小
ARBURST2M->S

突发传输类型:

0b00-FIXED(固定长度)

0b01-INCR(地址和数据自增)

0b10-WRAP(边界环回)

0b11-RESERVED(无效保留)

ARLOCK1M->S锁信号, 支持原子操作
ARCACHE4M->S

内存参数(默认为0):

[0] - Bufferable

[1] - Modifiable

[2] - Other Allocate

[3] - Allocate

ARPROT3M->S访问属性. 可用于保护内存免受意外事务的影响
ARNSE1M->SRME模式非安全扩展位
ARQOS[可选]4M->S事务优先级信号, 默认设置为0x0
ARUSERUSER_REQ_WIDTHM->S扩展的用户自定义信号
ARDOMAIN[可选]2M->S

共享域参数:

0b00 - Non-shareable(不共享)

0b01 - Shareable(内部可共享)

0b10 - Shareable(外部可共享)

0b11 - System(系统域共享)

特别说明:

对于AXI5, 官方建议使用0b10表征共享域

ARSNOOPAWSNOOP_WIDTHM->S写请求操作码
ARTRACE1M->S跟踪信号
ARLOOPLOOP_W_WIDTHM->S环回信号
ARMMUVALID1M->SMMU限定符信号
ARMMUSECSIDSECSID_WIDTHM->S安全流ID
ARMMUSIDSID_WIDTHM->S流ID
ARMMUSSIDV1M->S子流ID有效信号
ARMMUSSIDSSID_WIDTHM->S子流ID
ARMMUATST1M->S
ARMMUFLOW2M->SSMMU流类型
ARPBHA4M->S
ARNSAID4M->S非安全访问ID
ARSUBSYSIDSUBSYSID_WIDTHM->S子系统ID
ARMPAMMPAM_WIDTHM->SMPAM请求信号
ARCHUNKEN1M->S读取数据分块使能信号
ARIDUNQ1M->S唯一ID指示信号
AWTAGOP2M->S内存标签操作信号

  • read data channel(R)

信号名位宽方向描述
RVALID1S->M数据有效信号
RREADY1M->Sready信号
RIDID_R_WIDTHS->Mread channel ID
RDATADATA_WIDTHS->M读数据
RSTRBDATA_WIDTH/8S->M读数据选通信号
RLAST1S->M最后一帧数据标志信号
RUSERUSER_DATA_WIDTHS->M用户自定义扩展数据
RPOISONDATA_WIDTH/64S->M数据损坏标志信号
RTRACE1S->M追踪信号
RLOOPLOOP_R_WIDTHS->M环回信号
RBUSY2S->Mbusy信号
RIDUNQ1S->M唯一ID指示信号
RCHUNKV1S->M读取数据分块使能信号
RCHUNKNUMRCHUNKNUM_WIDTHS->M正在传输的块NUM
RCHUNKSTRBRCHUNKSTRB_WIDTHS->M正在传输的块选通信号
RTAGceil(DATA_WIDTH/128)*4M->S内存标签

03 Snoop channels(Snoop通道)

在AXI总线里面,snoop通道仅仅用于传输DVM信息。

  • Snoop request channel(AC)

信号名位宽方向描述
ACVALID1S->M数据有效信号
ACREADY1M->Sready信号
ACADDRADDR_WIDTHS->MDVM信息有效负载
ACVMIDEXT4S->MDVM信息扩展VMID
ACTRACE1S->M追踪信号

  • Snoop response channel(CR)

信号名位宽方向描述
CRVALID1S->M数据有效信号
CRREADY1M->Sready信号
CRTRACE1S->M追踪信号

04 Interface level signals(接口信号)

interface level信号是独立于通道的。

  • Clock and rest signals

信号名位宽方向描述
ACLK1external全局时钟信号
ARESETn1external全局复位信号

  • Wakeup signals

信号名位宽方向描述
AWAKEUP1M->S读、写通道唤醒信号
ACWAKEUP1S->Msnoop通道唤醒信号

  • Qos Accept signals

Qos Accept signnals被用于指示Subordinate接受的请求的最小QoS值。

信号名位宽方向描述
VAWQOSACCEPT  1S->Mwrite requsts的Qos 接受level
VARQOSACCEPT  1M->Sread requsts的Qos 接受level

  • Coherency Connection signals

Coherency Connection signals被用于控制Manager在AC channel接收DVM信息。

信号名位宽方向描述
SYSCOREQ1S->MCoherency connect request
SYSCOACK1M->SCoherency connect acknowledge

  • Interface control signals

interface control signals 是Manager接口的静态输入,用于配置接口的行为。

信号名位宽方向描述
BROADCASTATOMIC
 
1Tie-off原子操作控制
BROADCASTSHAREABLE
 
1Tie-off共享控制
BROADCASTCACHEMAINT1Tie-off缓存维护控制
BROADCASTCMOPOPA1Tie-off
BROADCASTPERSIST1Tie-off

05 文章总结

本篇推送主要是对AXI总线Write通道、Read通道、Snoop通道、接口信号的相关进行了汇总罗列,文章内容略显枯燥。本篇主要是为了后续对AXI总线(AXI-Full/AXI-Lite)信号理解时对照参考。

参考文档:

《IHI0022J_amba_axi_protocol_spec.pdf》

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

杰克拉力船长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值