8B10B编码

news/2024/11/16 15:53:29/

这个功能虽然一直在用,但是具体没有研究过具体编码过程:

参考Intel的文档:
agx_52004.pdf

数据输入 datain
表示它的具体bit位出来:

datain[7:0]
+---+---+---+---+---+---+---+---+
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+---+---+---+---+---+---+---+---+8B10B的过程改下名字
+---+---+---+---+---+---+---+---+
| H | G | F | E | D | C | B | A |
+---+---+---+---+---+---+---+---+拆分后交换位置
前面部分即为Dx.y或Kx.y中的x,范围0-31
后面部分即为Dx.y或Kx.y中的x,范围0-7
+---+---+---+---+---+   +---+---+---+
| E | D | C | B | A |   | H | G | F |
+---+---+---+---+---+   +---+---+---+对其编码后为
+---+---+---+---+---+---+   +---+---+---+---+
| i | e | d | c | b | a |   | j | h | g | f |
+---+---+---+---+---+---+   +---+---+---+---+再将其交换位置拼接后作为10bit编码结果
+---+---+---+---+---+---+---+---+---+---+
| j | h | g | f | i | e | d | c | b | a |
+---+---+---+---+---+---+---+---+---+---+

具体码是怎么编的,无从得知了。只留下来对照表:
取其中最简单的部分进行分析:

| datain |    RD-     _ "1"cnt |    RD+     _ "1"cnt |
|  D0.0  | 1001110100 |   5    | 0110001011 |   5    |
|  D1.0  | 0111010100 |   5    | 1000101011 |   5    |
|  D2.0  | 1011010100 |   5    | 0100101011 |   5    |
|  D3.0  | 1100011011 |   6    | 1100010100 |   4    |
|  D4.0  | 1101010100 |   5    | 0010101011 |   5    |
|  D5.0  | 1010011011 |   6    | 1010010100 |   4    |
|  D6.0  | 0110011011 |   6    | 0110010100 |   4    |
|  D7.0  | 1110001011 |   6    | 0001110100 |   4    |
|  D8.0  | 1110010100 |   5    | 0001101011 |   5    |
|  D9.0  | 1001011011 |   6    | 1001010100 |   4    |
| D10.0  | 0101011011 |   6    | 0101010100 |   4    |
| D11.0  | 1101001011 |   6    | 1101000100 |   4    |
| D12.0  | 0011011011 |   6    | 0011010100 |   4    |
| D13.0  | 1011001011 |   6    | 1011000100 |   4    |
| D14.0  | 0111001011 |   6    | 0111000100 |   4    |
| D15.0  | 0101110100 |   5    | 1010001011 |   5    |
| D16.0  | 0110110100 |   5    | 1001001011 |   5    |
| D17.0  | 1000111011 |   6    | 1000110100 |   4    |
| D18.0  | 0100111011 |   6    | 0100110100 |   4    |
| D19.0  | 1100101011 |   6    | 1100100100 |   4    |
| D20.0  | 0010111011 |   6    | 0010110100 |   4    |
| D21.0  | 1010101011 |   6    | 1010100100 |   4    |
| D22.0  | 0110101011 |   6    | 0110100100 |   4    |
| D23.0  | 1110100100 |   5    | 0001011011 |   5    |
| D24.0  | 1100110100 |   5    | 0011001011 |   5    |
| D25.0  | 1001101011 |   6    | 1001100100 |   4    |
| D26.0  | 0101101011 |   6    | 0101100100 |   4    |
| D27.0  | 1101100100 |   5    | 0010011011 |   5    |
| D28.0  | 0011101011 |   6    | 0011100100 |   4    |
| D29.0  | 1011100100 |   5    | 0100011011 |   5    |
| D30.0  | 0111100100 |   5    | 1000011011 |   5    |
| D31.0  | 1010110100 |   5    | 0101001011 |   5    |

可以发现,RD-中只有5-6,而RD+中只有4-5;
8b10bRD机制是为了保持数据中0和1的个数尽可能一样多;
比方说,现在要输出一组码型:
D0.0, D3.0, D3.0, D3.0, D3.0
那么,默认起始状态为RD-,并累计1和0的个数。

D0.0 RD- 1001110100  5  5 累计均衡
D3.0 RD- 1100011011 11  9 累计失衡
D3.0 RD+ 1100010100 15 15 累计均衡
D3.0 RD+ 1100010100 19 21 累计失衡
D3.0 RD- 1100011011 25 25 累计均衡

通过切换RD+和RD-,使其达到动态平衡
通过组合逻辑实现时会在gw1nr芯片上产生5级LUT,严重影响时序;直接上个查表就完事了。


http://www.ppmy.cn/news/687242.html

相关文章

女子捡到一部手机没有锁屏密码, 用支付宝疯狂买买买

现在支付宝清扫码支付真的很方便我们的生活,不再需要外出带很多现金,只需用手机支付。有些人通常很麻烦,但也喜欢把支付宝设置为一个小秘密免费支付,但一旦手机丢失,这是很悲惨的,尤其是有些人甚至不费心设…

根据经纬度实现附近搜索Java实现

现在很多手机软件都用附近搜索功能,但具体是怎么实现的呢》 在网上查了很多资料,mysql空间数据库、矩形算法、geohash我都用过了,当数据上了百万之后mysql空间数据库方法是最强最精确的(查询前100条数据只需5秒左右)。…

地图采集商家,附近商家,最新企业信息采集软件的使用教程

地图采集商家,附近商家,最新企业信息采集软件的使用教程 对全图数据、全网数据、运营商大数据进行有效整合,通过精准搜索实现高效获客 一款能够帮助您快速挖掘并宣传出售您自己产品的拓客软件,我们利用互联网公开合法数据&#xf…

大学城附近的打印店总是人很多怎么办?

打印资料文件,很多人都会想到大学城附近的打印店,一般在校园周围会汇聚很多打印店,学校附近的打印店打印价格都比较低,价格低成为吸引人流的重要因素,可是遇到学生考试的旺季,去大学城附近的打印店打印东西…

手机筛选效果 html5,html5仿美团ios手机端信息筛选条件代码

特效描述:html5仿美团 ios手机端 信息筛选条件。html5仿美团ios手机版信息筛选 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 美食附近排序筛选 全部分类 1225> 美食 1225> 电影 1225> 酒店 1225> 休闲娱乐 1225> KTV 1225> 丽人 1225> 外卖 12…

Javaweb获取用户附近商家

开始 项目上需要在用户端展示周围的商家,比如用户周围5km内的商家,思路是先获取用户的经纬度,然后与商家的经纬度计算出距离是否符合。 环境框架 后端使用关系型数据库,前端使用js、jq。 步骤 1. 获取用户经纬度。 因为是手…

shodan搜索附近摄像头_深夜,摄像头前惊现一团白光!不明光源,村民心慌

最近,有一组词语火了,“心里有火、眼里有光”。哈尔滨市阿城区的一村民也发现了光,不过,她看到的,是一道不寻常的白光。 这就是李晓军所说的那团白光,时间显示为5月6日零时24分,一个白色的光圈从视频右下角出现,不断向左上方缓慢移动,同时光圈也由大变小,在屏幕中停留…

获取当前位置附近的小吃店功能

** 获取当前位置附近的小吃店功能: ** 源码:https://blog.csdn.net/BOY017/article/details/105891141 1、注册腾讯地图服务:申请秘钥 https://lbs.qq.com/dev/console/key/manage 2、下载qqmap-wx-jssdk文件并引入 var QQMapWX requi…