欢迎光临
我们一直在努力

NIC400生成Flow全解析(十二)GPV接口配置(part 2)

紧接NIC400生成Flow全解析(十一)GPV接口配置(part1)讲述GPV配置ASIB/IB/AMIB部分内容。

3. ASIB配置寄存器介绍

每个ASIB可以配置如下信息:

  • 配置时钟关系(sync_mode) 当2个clock domain之间配置为Programble时,可以配置ASIB和下游时钟cross clock domain时两个clock之间的关系。 在这里插入图片描述
  • 配置是否开启Bypass merge模式(fn_mod2) 配置ASIB接口开启或关闭data size upsize/downsize的转化。仅当ASIB接口处存在data位宽的upsizing或downsizing时,该配置才生效。 在这里插入图片描述 以upsizing为例,将小位宽的长burst转化为大位宽的短burst,以减少总线传输的拍数,降低系统动态功耗。
    • upsizing转换仅对可Cacheable的读、写事务执行写数据打包

    • Upsizing 只支持 1:2 / 1:4 / 1:8 位宽放大。

    • Exclusive 事务一旦被互联拆分,独占属性直接丢失(总线协议硬约束)。

    • 响应合并时:DECERR > SLVERR,多个错误只报优先级高的

      为什么只有cacheable的数据才可以合并或者拆分呢?

    • Cacheable:合并数据,提高效率

    • Non-cacheable:禁止合并,保证事务语义不被修改

  • 配置AHB的E.E.W.R和Allow Burst Brocken开启任意一项(或两项都选)时,是否可以实时终止AHB读写事务转化协议时的merge操作(fn_mod_ahb) 在这里插入图片描述
    • rd_incr_override:强行将所有 AHB 读事务转换为一系列 AXI 单拍事务。
    • wr_incr_override:强行将所有 AHB 写事务转换为一系列 AXI 单拍事务;每一拍 AHB写都会通过 AXI 写响应确认。
  • 配置是否可以产生long burst(fn_mod_lb) 在这里插入图片描述
    • 配置在ASIB接口downsizing时,是否需要把长的burst拆为短的burst(与upsize相反,downsize把大位宽数据转化为小位宽数据,burst长度理应变长)。该配置只有在downsize的ASIB接口才有效。
  • 配置开启wr_tidemark情况下,WFIFO的水线深度(wr_tidemark) 在这里插入图片描述
    • 当开启wr_tidemark选项时,AXI写地址和数据通道的address & data 都ready才可以发送到switch 进行仲裁。以免地址准备好了,数据一直没有准备好,导致占用带宽。可以通过GPV配置该bit位,进而修改WFIFO的水线深度,以灵活控制wr_tidemark feature。
  • 读通道和写通道QoS值配置(read_qos/write_qos) 在这里插入图片描述
    • 若Qos的配置在GUI界面中配置为Programble类型的,则Qos值可以通过GPV进行配置。
  • 配置读写通道的Outstanding Issue能力为1(fn_mod) 在这里插入图片描述
    • 可以通过GPV强硬将Ost能力限制为1,不让端口发送读或写的OutStanding设置。该配置在ASIB上出现upsizing或者downsizing的情况,或者通道上存在FIFO的情况下使用。

    4. IB配置寄存器介绍

    此处仅介绍与ASIB不同之处。

  • 配置IB前级的读写通道的Outstanding Issue能力为1(fn_mod_bm_iss) 在这里插入图片描述 该寄存器仅在IB直连switch时存在。该寄存器会将前一级switch仲裁机制的ost发送能力限制为1。
  • 当2个clock domain之间配置为Programble时,可以配置ASIB和下游时钟cross clock domain时两个clock之间的关系(sync_mode)
  • 配置是否开启Bypass merge模式(fn_mod2)
  • 配置是否可以产生long burst(fn_mod_lb)
  • 配置开启wr_tidemark情况下,WFIFO的水线深度(wr_tidemark)
  • 配置AHB接口在接收到非对齐地址,或者接收到写数据且strobe非全部为1的数据包时,是否返回DECERR类型的resp。(ahb_cntl) 在这里插入图片描述 由于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。
  • 配置读写通道的Outstanding Issue能力为1(fn_mod) 在这里插入图片描述 仅当进行data width upsize / downsize情况下,或任意通道开启FIFO时,该寄存器才有效。配置使能会限制IB的ost发送能力为1。此处与fn_mod_bm_iss不同之处在于,一个限制IB前级switch的发送能力,一个限制IB自身的发送能力。
  • 5. AMIB配置寄存器介绍

    每个AMIB可以配置如下信息:

  • 配置IB前级的读写通道的Outstanding Issue能力为1(fn_mod_bm_iss)
  • 当2个clock domain之间配置为Programble时,可以配置ASIB和下游时钟cross clock domain时两个clock之间的关系(sync_mode)
  • 配置是否开启Bypass merge模式(fn_mod2)
  • 配置是否可以产生long burst(fn_mod_lb)
  • 配置开启wr_tidemark情况下,WFIFO的水线深度(wr_tidemark)
  • 配置AHB接口在接收到非对齐地址,或者接收到写数据且strobe非全部为1的数据包时,是否返回DECERR类型的resp。(ahb_cntl)
  • 配置读写通道的Outstanding Issue能力为1(fn_mod)
  • 配置内容可以参考ASIB和AMIB部分含义。

    赞(0)
    未经允许不得转载:171主机测评 » NIC400生成Flow全解析(十二)GPV接口配置(part 2)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址