# 物理层优化 ---------------------------- 以下为用户区域 --------------------------- ## 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原始码 --------------------------------------- 以下是大模型补充区域 ---------------------------------------