【8B10B编解码及verilog(xilinx example)解析】

3 篇文章 1 订阅
2 篇文章 1 订阅

8B10B编解码及verilog(xilinx example)解析

编码

8b/10b编码将串行的数据以8bit为一个单位进行编码处理得到一个10bit的数据,具体怎么操作呢,假设原始8位数据从高到低用HGFEDCBA表示,将8位数据分成高3位HGF和低5位EDCBA两个子组。经过5B/6B编码,将低5位EDCBA映射成abcdei;高3位经过3B/4B编码,映射成fghj,最后合成abcdeifghj发送。

在这里插入图片描述

查表算法

在这里插入图片描述在这里插入图片描述
D.x.A7用在:
x=17 x=18 x=20当RD=-1时;
x=11 x=13 x=14 当RD=+1时。
其他情况下x.A7码不能被使用,只能使用P7码
K.28组成了一部分K码,包括了K.28.0至K.28.7
K.23.7、K.27.7、K.29.7、K.30.7编码由D.23、D.27、D.29、D.30和K.x.7编码组成

解码

解码是编码的逆向,首先通过6b查找解析出5bit和k.28代表的K码
然后由K.x.7编码解析出由D.23、D.27、D.29、D.30组成的K.23.7、K.27.7、K.29.7、K.30.7

代码解析

在这里插入图片描述
k28代表K.28.X的K 码,1有效
在4位解析中,根据k28标识解析出K和D码
is_k是输出K码标识
k28表达式中,个人理解可以将d10[8]、d10[9]去掉

极性

+/-RD代表着同一个码型的两种编码方式。再举个例子比如:在表1中,对于D.x.4(100),其对应的4B码字有两种:1101和0010,若此时RD为负,则取1101作为其对应的4B码字作为输出,同时检验此时的编码是否为完美编码,如果是完美编码,则保持RD的极性不变;否则改变RD的极性。通过控制RD的极性,同时在编码时根据RD的极性选择相对应的编码值,使得编码后的数据流有更好的直流平衡特性,达到我们的缓解长“0”或长“1”的目的。
在这里插入图片描述
在这里插入图片描述

控制字K码

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43189165

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值