AMBA 总线桥(Crossbar)架构设计报告

面向 AXI4 / AHB / APB / ACE 的统一内部协议总线桥设计。入口为 IB,出口为 TB,中间为 RT,并支持 CA、WA、PD 在 IB/TB/RT/PD 内部可选例化。

内部协议:CIP 结构:Crossbar CDC:CA Data Width:WA Power/Reset:PD ACE:Tunnel / Home 双配置

报告版本:v0.2 | 日期:2026-06-13 | 适用阶段:架构方案、微架构拆分、RTL 规格启动

1. 设计范围与假设

本方案把 AXI4、AHB、APB、ACE 四类 AMBA 外部协议统一收敛到一套内部协议 CIP(Common Internal Protocol)。外部协议只在 IB/TB 边界出现;RT、CA、WA、PD 的数据面均只识别 CIP。这样可以把协议转换复杂度、互连复杂度和物理域适配复杂度分别收敛。

协议边界

IB 负责 Ext → CIP,TB 负责 CIP → Ext。除 ACE snoop 外,内部主流通道沿用 AXI 风格五通道。

Crossbar 核心

RT 负责地址解码、仲裁、ID/route scoreboard、返回路由、错误闭环和可选一致性钩子。

插件化适配

CA、WA、PD 均以 CIP 通道为插入边界,可按端口、目标组、power domain 进行局部例化。

ACE 边界假设:ACE 不能只理解成“AXI 加 sideband”。若要完整支持 full ACE,必须定义 coherent home 在 RT 内还是外部 fabric。本报告给出 ACE_TUNNELACE_HOME 两种实现模式。

2. 总体架构

图 0 Image 2.0 绘制的视觉总览图(用于沟通展示;工程定义以本文 SVG 图和接口表为准)
AMBA Crossbar architecture overview generated by Image 2.0
图 1 顶层工程架构图
图 1 顶层 Crossbar 总线桥结构:外部协议边界 + 内部统一 CIP Fabric外部入口协议AXI4 / AHB / APB / ACEAXI4AHBAPBACEIB Array协议接入与事务归一化IB[0] AXI4Ext → CIP / ID / OrderCA 可选WA 可选PD 钩子IB[1] AHBExt → CIP / ID / OrderCA 可选WA 可选PD 钩子IB[2] APBExt → CIP / ID / OrderCA 可选WA 可选PD 钩子IB[3] ACEExt → CIP / ID / OrderCA 可选WA 可选PD 钩子内部统一协议域:CIP FabricPD/CA/WA 插入层跨电源/时钟/位宽的标准 CIP 边界RT Crossbar Router地址解码 / 仲裁 / 路由 / ID RemapAW/W/AR/B/R 矩阵 + ScoreboardRT.COH 可选ACE Snoop / Barrier / DVM / DirectoryTB Array协议输出与目标调度TB[0] AXI4CIP → Ext / Scheduler / RespCA 可选WA 可选PD 钩子TB[1] AHBCIP → Ext / Scheduler / RespCA 可选WA 可选PD 钩子TB[2] APBCIP → Ext / Scheduler / RespCA 可选WA 可选PD 钩子TB[3] ACECIP → Ext / Scheduler / RespCA 可选WA 可选PD 钩子外部目标协议AXI4 / AHB / APB / ACEAXI4AHBAPBACE设计边界:RT/CA/WA/PD 仅理解 CIP;外部 AMBA 协议只在 IB/TB 转换

2.1 数据方向

事务类型方向内部路径说明
写地址/写数据IB → RT → TBCIP_AW + CIP_WAXI W 无 ID,IB 需要基于 AW 队列补内部 txn_id
写响应TB → RT → IBCIP_B通过 txn_id 查返回源端口和外部 ID。
读地址IB → RT → TBCIP_ARRT 按地址表解码目标 TB,并检查权限/电源状态。
读数据/读响应TB → RT → IBCIP_R支持 burst、last、resp 聚合和乱序返回。
ACE snoopRT.COH ↔ ACE AgentCIP_AC/CIP_CR/CIP_CD仅在 ACE 配置启用;需要独立 buffer 防死锁。

2.2 六大类模块职责

模块核心职责是否处理外部协议可内嵌 CA/WA
IB外部入口协议解析、事务归一化、ID/order 分配、错误早返回、ACE snoop agent 入口是,入口侧
TB目标调度、CIP 到外部协议恢复、ID remap、响应映射、AHB/APB 串行化是,出口侧
RTCrossbar 矩阵、地址解码、仲裁、scoreboard、返回路由、QoS、错误目标
CA基于 CIP 通道的异步时钟域桥,每通道独立 FIFO不适用
WACIP beat/width 转换、burst 重写、response 聚合、byte strobe 处理不适用
PDpower/reset/clock domain 边界,quiesce、drain、isolation、wakeup

3. CIP 内部协议规划

CIP 应被定义为 AXI4/ACE 能力的内部超集。AXI4/AHB/APB 都可以映射到 CIP 的普通读写 profile;ACE 额外启用 snoop、barrier、DVM、shareability 与 cache maintenance 属性。

图 2 CIP 通道规划
图 2 CIP 内部通道与握手机制IB 侧源端口AXI4/AHB/APB/ACE 转 CIPTB 侧目标端口CIP 转 AXI4/AHB/APB/ACERT / CA / WA / PD 统一处理域只处理 valid-ready-payload,不感知外部协议类型CIP_AW写地址/写控制forwardAW* / HADDR / PADDRCIP_W写数据 beatforwardWDATA + STRB + LAST + txn_idCIP_AR读地址/读控制forwardAR* / HADDR / PADDRCIP_B写响应returnOKAY/EXOKAY/SLVERR/DECERRCIP_R读数据/响应returnRDATA + RESP + LASTACE 一致性扩展通道:仅在 ENABLE_ACE 时启用CIP_ACSnoop requestRT.COH → AgentCIP_CRSnoop responseAgent → RT.COHCIP_CDSnoop dataAgent → RT.COH每个通道独立 valid/ready;CA 用独立异步 FIFO,WA 只改 payload/beat 结构,不改变通道语义。

3.1 通道列表

通道方向payload用途是否可被 CA/WA 处理
CIP_AWIB → TBcip_addr_t写地址、写属性、事务 ID、目标路由CA 可穿越;WA 可改写 len/size
CIP_WIB → TBcip_wdata_t写数据、byte strobe、last、内部 txn_idCA 可穿越;WA 可拆/合 beat
CIP_BTB → IBcip_resp_t写响应和错误码CA 可穿越;WA 可聚合子响应
CIP_ARIB → TBcip_addr_t读地址、读属性、事务 ID、目标路由CA 可穿越;WA 可改写 len/size
CIP_RTB → IBcip_rdata_t读数据、resp、lastCA 可穿越;WA 可拆/合 beat
CIP_ACRT.COH → ACE Agentcip_snoop_req_tsnoop 请求CA 可穿越;WA 通常不改地址语义
CIP_CRACE Agent → RT.COHcip_snoop_resp_tsnoop 响应CA 可穿越;WA 不改语义
CIP_CDACE Agent → RT.COHcip_snoop_data_tsnoop 数据CA 可穿越;WA 需按 cache-line 粒度处理

3.2 握手规则

统一规则:所有 CIP 通道均采用 valid/ready/payloadvalid 一旦拉高,在握手完成前 payload 必须保持稳定;模块不能让 valid 组合依赖下游 ready,以避免组合环和死锁。

3.3 地址类 payload 建议

typedef struct packed {
    logic [SRC_W-1:0]      src_id;        // IB 入口编号
    logic [DST_W-1:0]      dst_id;        // RT 解码后的 TB 编号
    logic [CIP_ID_W-1:0]   txn_id;        // 内部全局唯一事务 ID
    logic [EXT_ID_W-1:0]   ext_id;        // 原外部协议 ID;APB/AHB 可由 IB 生成伪 ID
    logic [ADDR_W-1:0]     addr;

    logic [7:0]            len;           // beats - 1,兼容 AXI4 256 beat
    logic [2:0]            size;          // bytes_per_beat = 2^size
    logic [1:0]            burst;         // FIXED / INCR / WRAP
    logic                  is_write;

    logic [3:0]            qos;
    logic [3:0]            region;
    logic [2:0]            prot;
    logic [3:0]            cache;
    logic [1:0]            domain;        // non-shareable / inner / outer / system
    logic [1:0]            order_domain;  // relaxed / device / barrier / coherent
    logic                  exclusive;
    logic                  locked;
    logic [ATOP_W-1:0]     atomic_op;     // 可选扩展
    logic [COH_W-1:0]      coh_op;        // ACE/DVM/cache maintenance 操作
    logic [USER_W-1:0]     user;
} cip_addr_t;

3.4 数据与响应 payload 建议

typedef enum logic [2:0] {
    CIP_RESP_OKAY   = 3'd0,
    CIP_RESP_EXOKAY = 3'd1,
    CIP_RESP_SLVERR = 3'd2,
    CIP_RESP_DECERR = 3'd3,
    CIP_RESP_PWRERR = 3'd4,
    CIP_RESP_TIMEOUT= 3'd5
} cip_resp_e;

typedef struct packed {
    logic [CIP_ID_W-1:0]       txn_id;
    logic [CIP_DATA_W-1:0]     data;
    logic [CIP_DATA_W/8-1:0]   strb;
    logic                      last;
    cip_resp_e                 resp;
    logic [USER_W-1:0]         user;
} cip_data_t;

3.5 外部协议到 CIP profile

外部协议CIP profile默认 outstandingorderingcoherency备注
AXI4Full non-coherent多 outstanding按 ID 和外部协议规则无 AC/CR/CD保留 QoS、Region、Cache、Prot。
AHBPipelined simple推荐 1 或小深度 in-order强 in-order默认 non-coherentHBURST 可映射到 CIP burst;复杂组合由 IB/TB 限制。
APBRegister/device1严格顺序non-coherent/device单 beat;通常不做跨事务合并。
ACEFull coherent / tunnel多 outstandingbarrier/DVM/coh domain启用 AC/CR/CD必须明确 coherent home 位置。

4. IB 内部架构

图 3 IB 微架构图
图 3 IB(Initiator Bridge)内部详细架构外部协议入口AXI4 / AHB / APB / ACETarget/Subordinate-facingAXI4 AW/W/BAR/RAHB HADDRHWDATA/HRDATAAPB PSELPENABLE/PREADYACE AC/CR/CD+ AXI channelsProtocol Frontend采样/握手/反压协议合法性预检查协议专用解析器AXI/AHB/APB/ACEfield extractionRequest AssemblerAHB/APB 单事务组装AXI AW/W/AR 分流Snoop FrontendACE AC/CR/CD仅 ACE 入口启用IB CSR/Monitor配置/状态/中断性能计数/trace tapTransaction Normalizerburst/size/cache/prot转换为 cip_addr_tID Allocatortxn_id={ib,ext_id,seq}全局唯一 IDOrder TrackerID/order domainbarrier/fence 记录AW/W Pairing FIFOAXI W 无 ID → 补 txn_id写数据路由绑定Error / DECERR Gen非法 burst/权限/掉电本地错误响应Ingress QueuesAW/W/AR 队列credit/backpressure可选 WA入口侧位宽规整按 CIP_DATA_W 输出可选 CA入口跨时钟每通道异步 FIFOPD Hookwakeup/quiesceidle/empty 上报CIP Out Mux请求/响应/snoop统一切片输出CIP Request OutputCIP_AW / CIP_W / CIP_ARvalid-ready-payloadCIP Response InputCIP_B / CIP_R按 txn_id 回填外部 IDCIP ACE Snoop PortCIP_AC / CIP_CR / CIP_CDENABLE_ACE 时启用ACE snoop关键:IB 是唯一把外部 Manager/Initiator 事务转成 CIP 的入口;AXI W 通道在这里补内部 txn_id。

4.1 IB 子模块划分

子模块输入/输出职责关键状态
Protocol Frontend外部 AMBA 信号 ↔ 内部解析事件握手采样、backpressure、协议字段捕获、pipeline 时序隔离。采样寄存器、ready 生成、front skid。
Legality Checker解析事件 → 合法事务/本地错误检查 burst、size、alignment、exclusive、ACE 属性、协议配置能力。错误码、非法组合事件、first-fail 记录。
Transaction Normalizer外部字段 → cip_addr_t把 AXI/AHB/APB/ACE 字段归一到 CIP header。协议 profile、默认属性、device/cacheable mapping。
ID Allocatorext_id/src_id/seq → txn_id生成全局唯一内部事务 ID,维护 ext_id 恢复信息。per-ID sequence、free-list、outstanding table。
Order TrackerCIP header → order gate维护同 ID/同 domain 顺序、barrier、device 强序。ID busy、barrier pending、fence count。
AW/W Pairing FIFOAW 与 W beat给 AXI W beat 补 txn_id,绑定写数据到目标 route。AW route FIFO、W beat counter、last check。
Ingress QueueCIP_AW/W/AR吸收 RT backpressure,提供 credit/阈值。fifo level、almost full、credit return。
Response FormatterCIP_B/R → 外部 B/R/HRESP/PSLVERR恢复外部 ID,处理 error、last、APB PREADY/HREADY。return table、resp reorder queue。
Snoop FrontendCIP_AC/CR/CD ↔ ACE AC/CR/CD处理 ACE snoop 通道;对 non-ACE 入口裁剪。snoop credit、CR/CD pair 状态。

4.2 各协议入口处理

入口处理策略容易出错点
AXI4 IBAW/AR 直接生成 cip_addr_t;W 基于 AW FIFO 补 txn_id;B/R 根据 txn_id 恢复 BID/RID。W 无 ID、AW/W interleave 限制、ID-based ordering、burst 4KB 边界。
AHB IB把 HTRANS/HADDR/HWRITE/HSIZE/HBURST 组装成 CIP;推荐单 outstanding。HREADY 反压、地址/数据 phase pipeline、ERROR 响应的周期数。
APB IBPSEL/PENABLE 形成单 beat CIP;PREADY 等待 CIP response;PSLVERR 映射错误。APB 无 burst/ID,强 device 顺序,不能跨事务合并。
ACE IBAXI 通道 + ACE sideband + AC/CR/CD snoop 端口;barrier/DVM/coh_op 进入 CIP。必须预留 snoop buffer;coherent home 未定义时只能 tunnel。

5. TB 内部架构

图 4 TB 微架构图
图 4 TB(Target Bridge)内部详细架构CIP Request Input来自 RT 的 AW/W/AR携带 dst_id/txn_idCIP Response OutputB/R 回到 RT错误/正常响应ACE Snoop PortAC/CR/CD可选可选 CA出口跨时钟目标 clock domain可选 WA内部宽度 → 外部宽度拆分/合并PD Gate目标 power statewakeup/error/drainInput Demuxread/write/snoop按目标 profile 分流TB CSR/Monitor限流参数/状态timeout/traceTarget Scheduler读写仲裁outstanding acceptanceID Remap Tablecip_txn_id ↔ ext_id返回路径查表SerializerAHB/APB 强顺序AXI/ACE 可并发Protocol FormatterAW/W/AR/HTRANS/PSEL外部字段恢复Response MapperBRESP/RRESP/HRESP/PSLVERR→ CIP_RESPAXI4 BackendAW/W/B/AR/RID/QoS/RegionAHB BackendHTRANS/HREADY/HRESP单 pipeline 或有限队列APB Backendsetup/access FSMPREADY/PSLVERRACE BackendAXI + AC/CR/CDTunnel 或 Home 接口Default/Error Targetdecode miss/掉电/非法组合生成确定性错误外部目标侧AXI4 / AHB / APB / ACEManager-facingDDR / SRAM / PeripheralsCoherent Fabricsnoop关键:TB 是唯一把 CIP 恢复成外部 Target/Subordinate 协议的出口;AHB/APB 由 TB 强制串行化。

5.1 TB 子模块划分

子模块职责实现建议
Input DemuxCIP_AW/W/AR/AC 分发到 write/read/snoop 路径。每通道独立队列,W 路径根据 txn_id 或 AW route FIFO 跟随。
Target Scheduler控制目标 acceptance、读写优先级、QoS 与 starvation guard。AXI 目标可多 outstanding;AHB/APB 目标必须串行化。
ID Remap Table当外部 ID 位宽小于 CIP ID 时分配 ext_id,并维护返回查表。free-list + CAM/RAM table;错误/timeout 也必须释放。
Protocol Backend把 CIP 恢复成 AXI4/AHB/APB/ACE manager-facing 信号。独立 backend wrapper,统一上游接口。
Response Mapper外部响应映射到 CIP_B/R,包括 SLVERR/DECERR/PWRERR/TIMEOUT。读 burst 需要 last;写响应需要原 txn_id。
Default/Error Target为 decode miss、权限失败、掉电目标、非法请求生成确定响应。可在 RT 或 TB 实现;建议 RT 有全局默认错误目标。

5.2 TB 协议输出策略

目标协议策略限制/注意
AXI4 TB保留多 outstanding、QoS、Region、Cache、Prot;必要时 remap ID。外部 target 的 ID/acceptance/ordering 能力决定限流。
AHB TB把 CIP 转为 HTRANS/HADDR/HWRITE/HSIZE/HBURST,单 pipeline 执行。遇到不支持 burst/atomic/coherent 时应拆分或报错。
APB TBsetup/access 两阶段 FSM;PREADY wait;PSLVERR 映射 CIP error。单 beat;多个 APB peripheral 可在 TB 内做 PSEL decode。
ACE TBACE tunnel 时转发 ACE 语义;ACE home 时与 RT.COH 交互。需要 AC/CR/CD 独立通路和 buffer credit。

6. RT / Crossbar 架构

图 5 RT 微架构图
图 5 RT(Router/Crossbar)内部详细架构Ingress Slice x Nper-IB skid bufferchannel FIFO / creditAddress Decodebase/mask/regionpermission / pwr stateTxn Scoreboardtxn_id → src/dst/routeAW/W/AR 关联Ordering GateID/order domainbarrier/fenceAW Matrix写地址路由QoS/priority/ageW Matrix写数据路由根据 W txn_id/route FIFOAR Matrix读地址路由read acceptance 限流Error ResponderDECERR/SLVERR非法地址/权限/掉电Crossbar CoreN×M 互连矩阵AW/W/AR/B/R 分通道实现Route / QoS ControllerWRR / priority / agingper-TB outstanding limiterEgress Arbiter x Mper-TB read/write arbQoS and starvation guardEgress FIFOAW/W/AR 分队列目标 backpressure 吸收Return RouterB/R 按 txn_id 回 src_idID restore / resp orderTimeout & Debughang detectiontrace/perf/eventRT.COH 可选ACE Home/TunnelSnoop/Barrier/DVMPower/Reset HooksPD quiesceroute disablewakeup policycoh hooksPD stateRT 不做外部协议转换,只维护 CIP 路由、仲裁、顺序、一致性钩子和错误闭环。

6.1 RT 数据面

路径主要模块功能
Request forwardIngress Slice → Decode → Scoreboard → AW/W/AR Matrix → Egress Arbiter按地址和目标状态路由请求,执行仲裁、限流和顺序约束。
Response returnB/R Return Matrix → Route Lookup → Ingress Response Queue按 txn_id 把响应送回源 IB,并恢复外部 ordering。
Error pathDecode/Permission/PD 检查 → Error Responder不把非法事务发到目标;本地生成确定性响应。
Coherency pathRT.COH hooks → AC/CR/CD Router处理 ACE snoop、barrier、DVM 或把其 tunnel 到外部 coherent fabric。

6.2 地址表与权限结构

typedef struct packed {
    logic [ADDR_W-1:0] base;
    logic [ADDR_W-1:0] mask;
    logic [DST_W-1:0]  dst_id;
    logic              valid;

    logic              secure_only;
    logic              privileged_only;
    logic              executable;
    logic              cacheable_allowed;
    logic              coherent_allowed;

    logic [PWR_W-1:0]  pwr_domain;
    logic              wake_on_access;
    logic [3:0]        default_qos;
} cip_addr_region_t;

6.3 仲裁建议

策略适用场景实现备注
Round-Robin默认公平仲裁每个 TB 出口一个 RR 指针。
Weighted RR多入口带宽配比配合 QoS 和 credit;避免低权重端口饿死。
Priority + Aging实时/显示/音频链路优先级高者先发,但 aging 提升等待太久的请求。
QoS-awareAXI QoS/内部性能隔离把 AXI AxQOS 映射为内部服务等级。

6.4 顺序约束

最小保证:同一 IB、同一外部 ID、同一 order domain 内,不允许违反外部协议顺序。APB/AHB 入口始终强 in-order;AXI4/ACE 可利用多 ID 乱序,但 barrier、DVM、device 和 coherent 操作不得被普通事务穿越。

7. ACE 一致性子层

图 6 RT.COH 微架构图
图 6 RT.COH(ACE 一致性子层)详细架构ACE Agent PortsACE IB/TB cached agentsAC/CR/CD + AW/AR sidebandACE Agent 0AC/CR/CDACE Agent 1AC/CR/CDACE Agent 2AC/CR/CDCoherent Request ClassifierReadOnce/ReadShared/MakeUniqueClean/Invalidate/DVMSnoop Filter / Directoryline state / sharer vector可选:广播或过滤Barrier & DVM Managerbarrier 序列点DVM broadcast 完成统计Snoop Request SchedulerAC fanout / credit避免死锁的独立缓冲CR/CD Aggregator多 agent 响应聚合data owner 选择 / resp 合并Home State Machine事务状态:lookup/snoop/mem/resp异常/timeout 处理Memory / IO Path到 TB 的普通 CIP_AW/AR/W或外部 coherent fabricACE Tunnel Mode仅搬运 ACE 语义coherent home 在外部 fabric配置选择CONFIG_COH_TUNNELCONFIG_COH_HOMEENABLE_SFENABLE_DVMENABLE_BARRIERmode cfg建议产品分档:第一版做 ACE Tunnel / ACE-Lite;Full ACE Home 需要 Directory、Snoop 聚合和强验证闭环。

7.1 两种 ACE 模式

模式桥内职责优点代价/限制
ACE_TUNNEL透明承载 ACE sideband 与 AC/CR/CD;coherent home 在外部 fabric。RTL 和验证成本低,适合第一版。本桥不能独立宣称 full coherent home。
ACE_HOMERT.COH 实现 snoop filter/directory、snoop fanout、CR/CD aggregation、barrier/DVM 完成条件。本桥可作为 coherent interconnect。验证复杂度高;必须专门做死锁、缓存状态和异常路径证明。

7.2 必备缓冲与死锁隔离

  • CIP_ACCIP_CRCIP_CD 不能与普通 AW/W/AR/R/B 共用会产生 head-of-line blocking 的单一队列。
  • CR/CD aggregation 需要能处理“有数据响应”和“无数据响应”的不同完成条件。
  • DVM 和 barrier 需要全局完成计数,不允许被普通事务绕过。
  • ACE agent 掉电前必须通过 PD 与 RT.COH 协商,保证没有未完成 snoop。

8. CA 异步桥

图 7 CA 微架构图
图 7 CA(Clock Adapter)内部详细架构src_clk 域dst_clk 域Input Skid Buffer断开组合 ready保持 payload 稳定Write PointerGray codefull detectRead PointerGray code syncempty detectOutput Slicevalid-ready 输出反压吸收Async FIFO Memory Bank每个 CIP 通道独立 FIFO:AW/W/B/AR/R/AC/CR/CDpayload 包括 txn_id、last、resp、sidebandSrc Reset Syncsrc_rst_nstop accept / flush reqCDC Guardspointer syncmetastability budgetDst Reset Syncdst_rst_nflush/clear policyIdle Reporterfifo_emptyoutstanding=0CA Control FSMRUN → QUIESCE → DRAIN → FLUSH/RESET → RUN向 PD 暴露 empty、idle、safe_to_poweroffflush/idleemptyCA 不拆分、不合并、不改 ID;只做时钟域穿越和 reset/PD 安全握手。

8.1 设计要点

项目建议原因
FIFO 粒度每个 CIP 通道一个异步 FIFO。避免 AW/W/R/响应互相阻塞,降低死锁风险。
指针同步Gray pointer + 双触发同步。CDC 标准实现方式,便于形式检查。
resetsrc/dst reset 独立同步,提供 flush/quiesce 状态。支持不同 reset domain 和 PD 关电流程。
语义不改 ID、不拆 burst、不合并数据。CA 只负责 clock crossing,避免职责混乱。
监控暴露 fifo_level、empty、full、cdc_error、flush_done。支持 PD 和 debug。

9. WA 位宽转换

图 8 WA 微架构图
图 8 WA(Width Adapter)内部详细架构CIP InDATA_W_INAW/W/AR/R/CDTxn Classifierread/write/snoopnormal/device/cohAddress/Burst Rewriteraddr/len/size/burst4KB 边界检查Special Txn Guardexclusive/atomic/barrier禁止非法合并Write Data Adapterpack/unpackstrb lane placementWLAST 重算Read Data Adapternarrow→wide mergewide→narrow splitRRESP 聚合ACE CD Adaptercache-line 粒度CR/CD 状态一致Split/Merge Scoreboard原事务 ↔ 子事务beat counter / resp foldResponse AggregatorOKAY 优先正常任一子事务 error 升级Alignment Enginebyte lane / unalignedwrapping 限制CIP OutDATA_W_OUT语义保持不变典型转换:256→64 为 1 beat 拆 4 beat;32→128 为多 beat 合并 1 beat。APB/device 事务默认不跨事务合并。限制:不跨 4KB、burst、barrier、exclusive、atomic、coherent op 合并或重排。

9.1 转换策略

场景动作响应处理
Downsize:宽 → 窄一个宽 beat 拆多个窄 beat;重写 len/size/addr;拆分 strb。多个子响应聚合为原事务响应;任一 error 升级为 error。
Upsize:窄 → 宽多个窄 beat 合并为宽 beat;按 byte lane 放置 data/strb。读数据需要 merge 后再返回;写响应按原事务聚合。
Device/APB通常只做 lane placement,不跨事务合并。保持强顺序和单事务可观测性。
ACE CD按 cache line 或项目定义粒度转换。必须与 CR 状态、data owner 和 snoop 完成条件一致。

9.2 禁止跨越规则

WA 不允许跨越:4KB 边界、burst 边界、barrier、DVM、exclusive、atomic、coherent operation、device 强序事务。遇到目标不支持的组合,应由 IB/TB/RT 返回错误或由 WA 拆分为合法子事务。

10. PD 电源/复位域管理

图 9 PD 微架构图
图 9 PD(Power/Reset Domain)内部详细架构AON Controlleralways-onclock/power/reset requestPD FSMACTIVE / QUIESCE / DRAINISO / OFF / WAKEAccess PolicyWAKE_ON_ACCESSERROR_ON_POWERDOWNTimeout / Faultdrain timeoutreset error interruptAccept Gate阻止新事务进入保持 ready 可控Outstanding DrainAW/W/B/AR/R/AC/CR/CD计数到 0FIFO Empty CheckCA/WA/RT sliceempty/idle 汇聚Isolation Clamp关电前输出 clamp输入 ignore/errorReset Sequencerassert/deassert syncper-domain resetOptional CA/WA受 PD FSM 管控暴露 safe_to_offTarget Power DomainTB / RT slice / SRAM / Peripheralclock gated or power switched状态:OFF / RET / ONACTIVEQUIESCEDRAINISOLATEOFFWAKEidlepwr ackPD 关电不是简单拉 isolation:必须先阻止新事务、drain outstanding、清空 FIFO,再进入 isolation/off。

10.1 状态机

状态行为退出条件
ACTIVE正常接收和转发 CIP。收到 quiesce 或 powerdown 请求。
QUIESCE停止接收新事务;允许已接收事务继续。accept gate 生效。
DRAIN等待 outstanding、FIFO、CA/WA pipeline 全部清空。所有 idle/empty 置位。
ISOLATE输出 clamp,输入按策略 ignore 或 error。isolation ack。
OFF/RET目标域关电或保持 retention。wakeup 请求或外部 power request。
WAKE上电、时钟稳定、reset 同步释放、de-isolate。domain ready。

10.2 访问掉电目标的策略

配置行为适用对象
WAKE_ON_ACCESS=1PD hold 事务并触发 wake;目标 ready 后继续。低速 APB/AHB 外设、可唤醒 SRAM。
ERROR_ON_POWERDOWN=1立即返回 CIP_RESP_PWRERR 或映射为 SLVERR/DECERR。不可唤醒目标或安全隔离区域。
POSTED_WRITE_ALLOW=1允许特定 posted 写先被接收,但必须保证不会丢失。很少使用;需强约束和审计。
DRAIN_TIMEOUT_EN=1drain 超时触发中断/错误/系统恢复。所有 production 配置建议启用。

11. 跨模块机制

11.1 ID / Route / Scoreboard

推荐内部 ID 采用 {src_id, ext_id, local_seq} 形式。src_id 负责返回路径,ext_id 负责恢复外部协议 ID,local_seq 避免同一外部 ID 多 outstanding 时内部冲突。RT 和 TB 均需要对异常路径释放 scoreboard,包括 decode error、timeout、power error、exclusive fail。

11.2 错误响应映射

CIP 响应AXI/ACEAHBAPB典型来源
OKAYOKAYOKAYPSLVERR=0正常完成
EXOKAYEXOKAY通常不支持,映射 ERROR 或禁用通常不支持exclusive 成功
SLVERRSLVERRERRORPSLVERR=1目标内部错误
DECERRDECERRERRORPSLVERR=1地址未命中/权限失败
PWRERRSLVERR 或 DECERRERRORPSLVERR=1目标掉电且不可唤醒
TIMEOUTSLVERRERRORPSLVERR=1外设无响应或 drain 超时

11.3 死锁规避规则

  • request path 与 response path 独立缓冲,response 不应被 request 永久阻塞。
  • ACE AC/CR/CD 必须有独立 credit,不与普通读写共用单点阻塞队列。
  • WA 拆分事务前必须确保子事务响应空间,不允许发出无法回收的子事务。
  • PD quiesce 后不再接收新事务,并确保所有 CA/WA/RT slice 都能上报 idle。
  • RT arbitration 必须具备 anti-starvation,不能让低优先级端口永远得不到服务。
  • 所有 ID remap/free-list 在错误、reset、timeout 路径必须可恢复。

12. 参数化与接口

12.1 顶层参数建议

参数说明建议取值/备注
NUM_IB, NUM_TB入口/出口数量按 SoC 拓扑配置。
ADDR_W地址宽度32/40/48/64。
CIP_DATA_W内部数据宽度64/128/256/512;建议按主存路径选择。
CIP_ID_W内部事务 ID 宽度SRC_W + EXT_ID_W + SEQ_W
ENABLE_CA, ENABLE_WA, ENABLE_PD端口级适配开关IB/TB/RT/PD 内部均可局部启用。
ENABLE_ACE是否启用 ACE 通道启用后加入 AC/CR/CD、domain、barrier、DVM。
ENABLE_COH_HOME是否在 RT 内实现 coherent home第一版建议默认 0。
MAX_OUTSTANDING端口 outstanding 上限按协议和目标 acceptance 设置。
ENABLE_QOSQoS 仲裁显示/ISP/NPU/DDR 等场景建议启用。

12.2 CIP 通道接口模板

interface cip_chan_if #(parameter type PAYLOAD_T = logic[31:0]) (
    input logic clk,
    input logic rst_n
);
    logic     valid;
    logic     ready;
    PAYLOAD_T payload;

    modport source (input ready, output valid, output payload);
    modport sink   (output ready, input valid, input payload);
endinterface

13. 验证与落地路线

13.1 分阶段实现

阶段目标交付物
Phase 1非一致性 Crossbar:AXI4/AHB/APB + CIP AW/W/B/AR/R + CA/WA/PD 基础能力。RTL skeleton、UVM basic traffic、协议转换 directed tests、CDC/Reset 基础检查。
Phase 2ACE tunnel / ACE-Lite:增加 AC/CR/CD,barrier/DVM 顺序约束,coherent fabric 外置。ACE channel tests、barrier tests、snoop buffer deadlock tests。
Phase 3Full ACE home:RT.COH directory、snoop fanout、CR/CD aggregation。coherency state model、formal properties、压力与异常恢复测试。

13.2 验证清单

协议转换

  • AXI burst/ID/乱序/错误
  • AHB pipeline/HREADY/HRESP
  • APB wait/PSLVERR
  • ACE AC/CR/CD/barrier

互连与性能

  • 多入口到同一 TB 仲裁
  • 不同 ID 乱序返回
  • QoS/priority/aging
  • default error target

物理域适配

  • CA 异步 FIFO CDC
  • WA up/down size 和 resp 聚合
  • PD quiesce/drain/isolation
  • reset 中断恢复

健壮性

  • timeout/error recovery
  • scoreboard free-list 回收
  • deadlock/livelock 压测
  • trace/perf counter 覆盖

13.3 建议优先级

建议第一版落地:先把 AXI4/AHB/APB + CIP + RT + CA/WA/PD 做稳定,再引入 ACE_TUNNEL。除非项目明确需要本桥作为 coherent home,否则不要在首版同时承诺 full ACE home。

14. 参考资料

  1. Arm AMBA Specifications:AMBA 规范集合和协议列表。https://www.arm.com/architecture/system-architectures/amba/amba-specifications
  2. Arm AMBA AXI Protocol Specification:AXI 面向高性能、高频率系统设计,定义五个独立事务通道。https://developer.arm.com/documentation/ihi0022/l/
  3. Arm AMBA 4 AXI and ACE:ACE 在 AXI 基础上增加一致性相关通道、barrier 和 DVM;AXI4 支持更长 burst、QoS、region 等能力。https://www.arm.com/architecture/system-architectures/amba/amba-4
  4. Arm AMBA Low Power Interface:Q-Channel/P-Channel 类型接口用于控制设备 clock/power 状态。https://developer.arm.com/documentation/ihi0068/d/