# encode_decode_8b10b **Repository Path**: victorfengming/encode_decode_8b10b ## Basic Information - **Project Name**: encode_decode_8b10b - **Description**: 基于FPGA 的8b10b编解码电路前端电路设计 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-12-19 - **Last Updated**: 2021-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 说明 本项目为第二版的8B10B编解码模块 # 简介 本设计是采用EDA技术设计的一种`8B /10B` 编解码电路,实现了在高速的串行数据传输中的直流平衡。 利用`verilog HDL `逻辑设计语言,经过`modelsim`、`quartus II`的仿真和下载验证,实现其编码和解码的功能。 该编解码电路设计大体上可以由五个模块构成,分别是默认编码模块、差异度计算模块、编码校正模块、并串转换模块、显示模块。 采用`Verilog HDL` 描述、`modelsim 10.2a` 进行功能仿真、`Quartus II 13.1` 进行`FPGA`逻辑综合和适配下载,最后在`Alter` 公司的`Cyclone IV E` 的芯片`EP4CE6F17C8` 上实现并完成测试。 资源包中附有`quartusII` 的项目文件和代码,直接打开即可使用。 # 更新log 这回可以输入随机数进行编码 解码 随机数的产生 定义一个与输入数据相同bit的计数变量(即8bit) 通过按键`key2`的电平检测 对cnt进行加1 运算 但key松开时 cnt 已经加了无数次了 这个与 程序在fpga芯片里面运行的速度有关 但是这个数量级很大,基本可以认为是停下来的时候是一个随机数值 之后当key1松开 进行编码解码运算 将结果送给显示模块 显示的结果可以通过查询真值表来进行验证 其中在特殊值的情况下,如果输入的数据为非法数据 会编出默认值 1f4 或者 20b 这个与当前的rd有关 ,如果rd=0 则为前者否则为后者 这样 在解码部分也会 产生默认值00 # 克隆本仓库 ```shell git clone https://gitee.com/victorfengming/encode_decode_8b10b.git cd encode_decode_8b10b ``` ## 目录结构 code : 源码