AXI总线上的大小端

ZYNQ PL与PS通信,AXI总线的大小端老是记不住,该文章用于理清思路和备查

上位机上的大小端

总线上大小端的表现形式

小端模式下,2字节、4字节的数据传输,直接放到总线上就行了,不需要转字节序,

注意字符串的情况,先发的字节在下面低位。

### ZYNQ 中 AXI4 总线时序特性与设计规范 #### 一、AXI4 总线概述 AXI4 是一种高性能的 AMBA(Advanced Microcontroller Bus Architecture)协议,广泛应用于 SoC 设计中。它支持高带宽和低延迟的数据传输,并通过分离地址和数据通道优化了性能[^1]。 #### 二、AXI4 总线的关键信号与时序特性 以下是 AXI4 总线的主要信号及其功能描述: 1. **时钟与复位** - ACLK:全局同步时钟信号,用于协调所有 AXI4 事务。 - ARESETN:异步低电平有效的复位信号,在系统启动或异常情况下初始化总线状态[^3]。 2. **读写信道结构** - 地址信道(AR/AW):负责传递读/写请求的目标地址及相关属性。 - ARADDR / AWADDR:目标地址。 - ARPROT / AWPROT:访问保护类型。 - ARLEN / AWLEN:突发长度。 - ARSIZE / AWSIZE:每次传输的数据大小。 - ARBURST / AWBURST:指定突发模式(固定式、增值式或包装式)[^2]。 - 数据信道(W/R):处理实际数据流。 - WDATA:写入数据。 - STRB:指示哪些字节有效。 - RDATA:返回给主设备的读取数据。 - 响应信道(B/R):确认操作完成并提供状态反馈。 - BRESP:写响应。 - RRESP:读响应。 3. **握手机制** - READY 和 VALID 组合实现流水线化通信模型。 - 当发送方设置某条信道上的 VALID 为高时,表示有新数据待传送。 - 只有当接收端也拉高对应的 READY 后,该次交换才被认为正式生效。 #### 三、典型时序分析 下面以一次简单的写事务为例说明其基本流程: ```plaintext 时间轴 t0 -> t1 -> ... tn AWVALID ----->|---->|------>| AWREADY |<-----| | WDATA ----->|--------> WSTRB ----->|--------> WLAST ----->|--------> WVALID ----->|--------> WREADY |<-------| BVALID ----->| BREADY |<-----| ``` - `t0` 至 `tn`: 主设备逐步提交完整的地址包 (AW),随后持续推送多个数据单元直到最后一个由 WLAST 显式标记结束; - 整个交易完成后,从属组件会经由单独设立好的回执路径通知发起者结果详情 (^3). #### 四、设计注意事项 为了确保系统的稳定性和效率,需遵循以下几点建议: - 正确配置各参数组合关系, 如不同类型的 burst length 应匹配相应的 buffer depth; - 考虑到可能存在的竞争条件或者死锁风险, 实现充分的仲裁策略; - 对于高速场景下, 关注 setup time & hold time 等关键电气指标约束. ```python def check_axi_timing(clock_period_ns, data_width_bits): """ Simple function to estimate minimum clock period based on given constraints. Args: clock_period_ns (float): Desired operating frequency's inverse value in nanoseconds. data_width_bits(int): Number of bits per transfer cycle. Returns: bool: Whether the specified timing can meet design requirements theoretically. """ min_setup_time = 0.5 # ns as an example figure only here max_hold_time = 0.2 effective_transfer_rate = data_width_bits * (clock_period_ns - (min_setup_time + max_hold_time)) return True if effective_transfer_rate >= required_throughput else False ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bitQ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值