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 的数据采集时采集准确度不受低频抖动干扰(数据和恢复的时钟一起抖,所以能采准)

相关推荐
不可思议迷宫15 小时前
Verilog编程实现一个分秒计数器
单片机·嵌入式硬件·fpga开发
Terasic友晶科技19 小时前
第3篇:Linux程序访问控制FPGA端LEDR<一>
fpga开发·嵌入式系统·de1-soc开发板
双料毒狼_s19 小时前
【FPGA】状态机思想回顾流水灯
fpga开发
双料毒狼_s1 天前
【FPGA实战】基于DE2-115实现数字秒表
fpga开发
Cynthia的梦1 天前
FPGA学习-基于 DE2-115 板的 Verilog 分秒计数器设计与按键功能实现
fpga开发
9527华安2 天前
Xilinx系列FPGA实现HDMI2.1视频收发,支持8K@60Hz分辨率,提供2套工程源码和技术支持
fpga开发·音视频·8k·hdmi2.1
大熊Superman2 天前
FPGA实现LED流水灯
fpga开发
泪水打湿三角裤2 天前
fpga:分秒计时器
fpga开发
奋斗的牛马2 天前
FPGA_AXI仿真回环(一)
fpga开发
LeeConstantine2 天前
FPGA FLASH烧写遇到的问题
fpga开发