紧接NIC400生成Flow全解析(十一)GPV接口配置(part1)讲述GPV配置ASIB/IB/AMIB部分内容。
3. ASIB配置寄存器介绍
每个ASIB可以配置如下信息:

以upsizing为例,将小位宽的长burst转化为大位宽的短burst,以减少总线传输的拍数,降低系统动态功耗。-
upsizing转换仅对可Cacheable的读、写事务执行写数据打包
-
Upsizing 只支持 1:2 / 1:4 / 1:8 位宽放大。
-
Exclusive 事务一旦被互联拆分,独占属性直接丢失(总线协议硬约束)。
-
响应合并时:DECERR > SLVERR,多个错误只报优先级高的
为什么只有cacheable的数据才可以合并或者拆分呢?
-
Cacheable:合并数据,提高效率
-
Non-cacheable:禁止合并,保证事务语义不被修改

- rd_incr_override:强行将所有 AHB 读事务转换为一系列 AXI 单拍事务。
- wr_incr_override:强行将所有 AHB 写事务转换为一系列 AXI 单拍事务;每一拍 AHB写都会通过 AXI 写响应确认。

- 配置在ASIB接口downsizing时,是否需要把长的burst拆为短的burst(与upsize相反,downsize把大位宽数据转化为小位宽数据,burst长度理应变长)。该配置只有在downsize的ASIB接口才有效。

- 当开启wr_tidemark选项时,AXI写地址和数据通道的address & data 都ready才可以发送到switch 进行仲裁。以免地址准备好了,数据一直没有准备好,导致占用带宽。可以通过GPV配置该bit位,进而修改WFIFO的水线深度,以灵活控制wr_tidemark feature。

- 若Qos的配置在GUI界面中配置为Programble类型的,则Qos值可以通过GPV进行配置。

- 可以通过GPV强硬将Ost能力限制为1,不让端口发送读或写的OutStanding设置。该配置在ASIB上出现upsizing或者downsizing的情况,或者通道上存在FIFO的情况下使用。
4. IB配置寄存器介绍
此处仅介绍与ASIB不同之处。
该寄存器仅在IB直连switch时存在。该寄存器会将前一级switch仲裁机制的ost发送能力限制为1。
由于AXI支持非对齐传输,其可以通过WSTRB进行地址选通操作完成非对齐传输。而AHB只能支持对齐传输。因此,当AXI的Master采用不对齐传输的形式访问AHB域的Slave时,只能强硬把非对齐传输包转换为对齐传输进行。比如AXI Master发送如下不对齐传输:- AWADDR=0x0001,AWSIZE=32bits,WDATA=0x5A5A_5A5A,WSTRB=0xE
或者:
- AWADDR=0x0000,AWSIZE=32bits,WDATA=0x5A5A_5A5A,WSTRB=0xE
也就是说,该访问不会覆盖0x0000地址。由于AHB不支持非对齐访问的特性,上述2种传输转到AHB域的行为是:
- HADDR=0x0000,HSIZE=32bits,HWDATA=0x5A5A_5A00 。
这样有一个问题,从AXI转到AHB后,原本未写的0x0000地址被写了一个0x00进去。从而导致数据错误问题。因此,可以采取如下措施解决该问题:
- AXI 主机访问 AHB 从机时,不可发起写选通信号 WSTRB 存在0bit的写操作。比如WSTRB 为 0110 的单次 32 位事务,而应拆分为两次 8 bits事务再发送到AHB总线。(个人认为总线理论上可以解决,但是为了简化设计而放弃对不对其传输的兼容性)
- 或者通过GPV开启ahb_decerr选项对AXI的不对齐传输进行检测并返回decerr。
仅当进行data width upsize / downsize情况下,或任意通道开启FIFO时,该寄存器才有效。配置使能会限制IB的ost发送能力为1。此处与fn_mod_bm_iss不同之处在于,一个限制IB前级switch的发送能力,一个限制IB自身的发送能力。5. AMIB配置寄存器介绍
每个AMIB可以配置如下信息:
配置内容可以参考ASIB和AMIB部分含义。
