1.8 KiB
1.8 KiB
物理层优化
以下为用户区域
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转preamble,preamble处最后一个,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原始码
- 下行relay只看下行输入的6个
以下是大模型补充区域