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

65 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 物理层优化
----------------------------
以下为用户区域
---------------------------
## 8b10b模块
* 停用4b5b特性
- 删除选择寄存器器 h4c寄存器不再有效
- 8b10b编码解码模块改为cdrout cdrin中例化
* 增加部分控制码
- 所有控制码都有极性
- 控制码有对应原始码
- 额外增加一条控制线
- 控制线由发送状态机控制
- 解码不需要极性控制
* 增加6个控制码
- 同时将`in(4,0)b11100".U``isCtrl`时映射为 `"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之前两者在同一拍到达将只会产生预解锁效果
---------------------------------------
以下是大模型补充区域
---------------------------------------