蜂鸟E203总线:
采用自定义总线协议 ICB(Internal Chip Bus),该总线用于蜂鸟 E203 内核内部使用,同时也可作为 SoC 中的总线使用。
ICB 总线的初衷是为了能够尽可能地结合 AXI 总线和 AHB 总线的优点,兼具高速性和易用性,它具有如下特性:
相比 AXI 和 AHB 而言,ICB 的协议控制更加简单,仅有两个独立的通道,如图所示,读和写操作共用地址通道,共用结果返回通道。
与 AXI 总线一样采用分离的地址和数据阶段。
与 AXI 总线一样采用地址区间寻址,支持任意的主从数目,譬如一主一从,一主多从,多主一从,多主多从等拓扑结构。
与 AHB 总线一样每个读或者写操作都会在地址通道上产生地址,而非像 AXI 中只产生起始地址。
与 AXI 总线一样支持地址非对齐的数据访问,使用字节掩码(Write Mask)来控制部分写操作。
与 AXI 总线一样支持多个滞外交易(Multiple Oustanding Transaction)。
与 AHB 总线一样不支持乱序返回乱序完成。反馈通道必须按顺序返回结果。
与 AXI 总线一样非常容易添加流水线级数以获得高频的时序。
协议非常简单,易于桥接转换成其他总线类型,譬如 AXI,AHB,APB 或者 TileLink 等总线。
对于蜂鸟 E203 内核这样的低功耗处理器而言,ICB 总线能够被用于几乎所有的相关场合,包括:作为内部模块之间的接口,SRAM 模块接口,低速设备总线,系统存储总线等等。
ICB 总线协议信号
ICB 总线主要包含 2 个通道,如图所示。ICB 总线信号列表如下表所示:
命令通道(Command Channel)
Command Channel 主要用于主设备向从设备发起读写请求。
返回通道(Response Channel)
Response Channel 主要用于从设备向主设备返回读写结果。
基本时序很简单:主要为:主设备向从设备通过 ICB 的 Command Channel 发送读/写操作请求(icb_cmd_read 为高/低),从设备立即接收该请求(icb_cmd_ready 为高)。从设备在所需周期后连续返回读写结果。