CRC ,8b/10b,64b/66b,扰码,时钟恢复CDR

crc 参考:

基于FPGA的CRC校验码生成器_fpga crc 8bit校验_limanjihe的博客-CSDN博客

FPGA产生基于LFSR的伪随机数 - BitArt - 博客园

总结: 有效数据的位宽 是 代码中的 i ,crc校验码宽度是 crc_temp 的位宽,生成多项式(反馈点)为公式中的 异或

复制代码
module CRC5_GEN(
    input           rst,
    input           clk,
    input     [3:0] data_in,
    input           d_valid, 
    output reg[4:0] crc
);

integer i;
reg feedback;
reg [4:0] crc_tmp;
always @(posedge clk or negedge rst)
begin
    if(!rst) 
        crc <= 5'b0;         
    else if(d_valid==1'b0)
        crc <= 5'b0;
    else
        crc <= crc_tmp;
end


always@( data_in or crc)
begin
    crc_tmp = crc;
    for(i=3; i>=0; i=i-1)
    begin
        feedback    = crc_tmp[4] ^ data_in[i];
        crc_tmp[4]  = crc_tmp[3];
        crc_tmp[3]  = crc_tmp[2];
        crc_tmp[2]  = crc_tmp[1] ^ feedback;
        crc_tmp[1]  = crc_tmp[0];
        crc_tmp[0]  = feedback;
    end
    
end

endmodule

8b/10b 编码:

目的是负载均衡 ,使每一个 8bit 数据都映射成一个 5bit 0 + 5 bit 1 的数据,8bit 有256种数据,而 10bit中5bit0/5bit1 一共可以表示 C(10,5) = 10! / 5! / 5! =252 种数据, 基本可以完全映射

64b/66b 编码 + 扰码:

64B/66B编码技术_任成风的博客-CSDN博客

Verilog数字系统基础设计-扰码与解扰 - 码农教程

64b/66b 中多的 2bit 是无法像 8b/10b 一样 ,用 33bit 0 + 33bit 1的组合来表示2^64种情况,一一映射没有足够数量的组合形式。即无法用 2bit 的组合来均衡64bit的数据。

64b/66b 中多的 2bit 只是用来区分数据头,用的扰码的方法来实现了负载均衡,即用类似crc 的多项式将原始数据随机化 ,随机的数据理论上就是均衡的。随机化之后相同的原始数据在不同的时间得到的结果可能是不同的,结果与原始数据不是一一映射的关系,

解扰码只需要根据 一个逻辑运算表达式(如果A^B=C,那么C^B=A,此处A为原始数据,B为扰码器的输出,C为扰码后的数据) ,逆向用相同的多项式和种子值依次解开即可

时钟数据恢复 CDR :

深入浅出聊聊时钟恢复CDR_技术分析_技术方案_仪商网

时钟恢复就像 pll锁相一样,但是数据会有连0连1的现象,不像 clk 是周期性的,导致反馈不是稳定的,不能在较短时间内锁住

时钟恢复的基础是有足够多的数据,然后 DC平衡,才能在数据连0导致反馈频率下降和数据连1导致反馈频率上升之间找到最终的平均值,即实际的时钟, 这里的DC平衡就用8b/10b ,64b/66bit 实现

pll 或者 cdr 电路因为有低通滤波器的存在,低频的抖动是可以通过的,高频的抖动会被滤掉,所以会在 pll 的输出clk观察到低频时钟抖动,在 cdr 的数据采集时采集准确度不受低频抖动干扰(数据和恢复的时钟一起抖,所以能采准)

相关推荐
xyx-3v7 小时前
SOC相对于版上系统的优势是什么?
fpga开发
Aaron15881 天前
RFSOC+VU13P+GPU 在6G互联网中的技术应用
大数据·人工智能·算法·fpga开发·硬件工程·信息与通信·信号处理
stars-he1 天前
基于 Design Compiler 的 UDP Payload 追加控制模块综合与门级后仿真
笔记·fpga开发·udp
尤老师FPGA2 天前
HDMI数据的接收发送实验(十)
fpga开发
逻辑诗篇2 天前
破核拆解:PCIE719——基于Xilinx Zynq UltraScale+的高性能SAS扩展卡设计
fpga开发·架构
逻辑诗篇2 天前
高性能存储扩展利器|PCIE719 基于Zynq UltraScale+的企业级可编程SAS方案
fpga开发
liuluyang5302 天前
SV主要关键词详解
fpga开发·uvm·sv
happyDogg_2 天前
验证环境采样rtl时序数据遇到的问题
fpga开发
unicrom_深圳市由你创科技2 天前
项目分析和FPGA器件选型外包服务包括哪些内容?别让选错芯片毁了整个项目
fpga开发
Aaron15882 天前
27DR/47DR/67DR技术对比及应用分析
人工智能·算法·fpga开发·硬件架构·硬件工程·信息与通信·基带工程