Files
eb001/doc/spec/物理层优化.md
RuigeLee d53d1dbe9b * 上下行清硬件错误的条件增加为**上**行接收到isK28_0
* 从站发生硬件错误时,软件先写`clr`寄存器预解锁,其后上行方向接收到K28_0完成正式解锁
* 预解锁需要在K28_0之前,两者在同一拍到达将只会产生预解锁效果
2026-07-31 16:48:27 +08:00

2.1 KiB
Raw Blame History

物理层优化


以下为用户区域


8b10b模块

  • 停用4b5b特性

    • 删除选择寄存器器 h4c寄存器不再有效
    • 8b10b编码解码模块改为cdrout cdrin中例化
  • 增加部分控制码

    • 所有控制码都有极性
    • 控制码有对应原始码
    • 额外增加一条控制线
    • 控制线由发送状态机控制
    • 解码不需要极性控制
  • 增加6个控制码

    • 同时将in(4,0)b11100".UisCtrl时映射为 "b001111".U(6.W), "b110000".U(6.W)
    • 3个必选 in(7,5)保持不变 val isK28_0 = Output(Bool()) //0x1c val isK28_3 = Output(Bool()) //0x7c val isK28_4 = Output(Bool()) //0x9c
    • 3个备选使用宏定义控制 in(7,5)平衡但需要增加翻转
      • val isK28_1 = Output(Bool()) //0x3c IS_ENABLE_K28_1
      • val isK28_2 = Output(Bool()) //0x5c IS_ENABLE_K28_2
      • val isK28_6 = Output(Bool()) //0xdc IS_ENABLE_K28_6
  • PRE改为K28_0 //0x1C

  • SDF改为K28_3 //0x7C

  • CDR_OUT CDR_IN补充状态state_ctrl

  • 编码的isCtrl在idle转preamblepreamble处最后一个state_ctrl有效

  • CDR_OUT补充对外寄存器输入ctrlWord

  • CDR_IN对齐直接看decoder的控制字组合

  • CDR_IN的控制字由补充状态机STATE_CTRL过滤后输出

  • PRE SDF的控制字在包末尾将允许重复使用

  • 主站寄存器增加"h600"指向CDR_OUT的ctrlWord

  • 从站SlaveParse层增加两个ctrlWordRelay寄存器,

    • 下行relay只看下行输入的6个isK布尔信号直接转译8bit原始码
    • 上行relay在isProbeAck跳变状态直接拷贝下行寄存器信息其它条件看上行输入的6个isK布尔信号直接转译8bit原始码
  • 上下行清硬件错误的条件增加为行接收到isK28_0

  • 从站发生硬件错误时,软件先写clr寄存器预解锁其后上行方向接收到K28_0完成正式解锁

  • 预解锁需要在K28_0之前两者在同一拍到达将只会产生预解锁效果


以下是大模型补充区域