Files
eb001/doc/spec/SlaveParser.md
2026-07-28 17:28:49 +08:00

4.3 KiB
Raw Permalink Blame History

SlaveParser


以下为用户区域


  • 该模块例化在MstSlvSwith模块内,负责从站接收功能实现
  • 内部例化了两个SlaveRecParserdownRecParserupRecParser)和两个SlaveSendGendownSendGenupSendGen

接口

  • downInDecoupled封装的axis格式的lvds下行串行数据输入
  • downOutDecoupled封装的axis格式的lvds下行串行数据输出
  • upInDecoupled封装的axis格式的lvds上行串行数据输入
  • upOutDecoupled封装的axis格式的lvds上行串行数据输出
  • sram_w接入到4个SmUnit的SRAM写接口
  • sram_r接入到4个SmUnit的SRAM读接口
  • dSMenq接入到4个SmUnit的下行写入压栈Bool信号
  • uSMdeq接入到4个SmUnit的上行读出弹出Bool信号
  • localDevIndex输出本地设备的索引16bits
  • isDevOnRight表示设备的“右边”下行方向下一级是否还有设备2bits实际只使用了1bits
  • isDevOnRightModify表示设备的“右边”(下行方向下一级)是否改变过
  • indexOfRightDev表示设备的“右边”(下行方向下一级)设备的索引号
  • mstDeltaTimeStamp输出32bits的时间戳信息
  • slvDeltaTime输出32bits的时间戳信息
  • deltaFinal输出64bits的时间戳信息
  • isLoop是否回环Bool
  • cReg以结构体输入通用寄存器组
  • sReg以结构体输入从站寄存器组
  • lvds一个类似sram的访问接口用于允许从lvds总线的访问读写寄存器区域
  • intHWTrig输出两个Bool硬件中断信号
  • intHWClr输入两个Bool硬件清除中断信号
  • downRecStat输出下行接收方向信息
  • upRecStat输出上行接收方向信息

主报文转发处理

  • 下行发送模块downSendGen的帧头请求frameReq来自于下行接收downRecParser的报文头同步握手,同时frameInfo会被更改为本地设备的索引号lcalDevIndex

  • 上行发送模块upSendGen的帧头请求frameReq

    • 上行接收upRecParser的报文头同步握手,此时frameStyle需要为普通包FRAME_STYLE_COMMON,转发完全相同的上行接收报文头
    • 下行接收到的是嗅探包而进入isAckProbe状态,发送(回复)嗅探包,frameLenAim为0frameStyleFRAME_STYLE_PROBEframeInfolocalDevIndex

子报文处理

  • 子报文接收在上、下行各有2个位宽8bits深度20的FIFOdownRecFifo/upRecFifo,以乒乓方式工作,子报文负载信息先进入RecFifo,再由发送模块SendGen发送
  • 子报文接收在上、下行各有2组寄存器分别保存子报文头子报文尾信息以乒乓方式工作发送模块发送时从寄存器中提取和修改信息

索引特质

  • 当子报文的operatorSUBMSG_OPERATOR_INDEX,为索引模式,从站按顺序更新自己的索引
  • 更新索引时
    • 本设备索引localDevIndex更新为子报文尾工作计数workCnt加1
    • 下行转发的workCnt计数也加1localDevIndex
    • 右边(下行方向)设备索引indexOfRightDev
      • 当是最后一个设备记录为0
      • 不是最后一个设备,更新为子报文尾工作计数workCnt计数加2

读写特质

  • 写操作发生在下行阶段
  • 读操作发生在上行阶段
  • 单独读(和/或)写操作是否执行需要根据子报文头的报文类型style进行判定
    • 当为顺序索引SeqIndex,只需要子报文头的设备索引devIndex匹配上本设备的索引localDevIndex,则需要进行操作
    • 当为逻辑索引LgcIndex, 则需要进一步根据EBMMU的配置进行判定
  • 广播读(和/或)写操作则均会被执行
  • 如果从站对该子报文进行了操作,则转发到下一级从站时,子报文的工作计数workCnt需要加1
  • lvds的写操作根据地址可以访问
    • 寄存器
    • SMUnit0
    • SMUnit2
    • SMUnit4
    • SMUnit6
  • lvds的写操作根据地址可以访问
    • 寄存器
    • SMUnit1
    • SMUnit3
    • SMUnit5
    • SMUnit7
  • 当lvds的读、写操作到特定地址时触发SMUnit对应的写压入或者读弹出操作

ebmmu

同步特质

嗅探特质


以下是大模型补充区域