8b/10b编码器设计Verilog代码Quartus仿真

名称:8b/10b编码器设计Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

8b/10b编码器设计

8b/10b编码是将8位符号映射到10位符号,以实现直流平衡,同时提供足够多的状态来实现时钟恢复。这意味着在一个至少20位的字符串中,1和0的计数之差不超过2,并且在一排中不超过5个1或0。

1、具有时钟、复位信号

2、8位并行输入

3、10bit 串行输出

1. 工程文件

2. 程序文件

3. 程序编译

4. 仿真文件

5. 仿真图

部分代码展示:

module b8_b10(
input clk,
input reset_p,//复位
input [7:0] bit_8_in,//8位并行输入
output reg bit_10_serial//10bit 串行输出
);
//8bit转换为10bit
reg [11:0] bit_12_parallel=12'd0;
wire [9:0] bit_10_parallel;
always@(*)
case(bit_8_in)//根据码表映射
8'h00:bit_12_parallel<=12'h346;//先用12bit表示,方便用16进制
8'h01:bit_12_parallel<=12'h351;
8'h02:bit_12_parallel<=12'h352;
8'h03:bit_12_parallel<=12'h0A3;
8'h04:bit_12_parallel<=12'h354;
8'h05:bit_12_parallel<=12'h0A5;
8'h06:bit_12_parallel<=12'h0A6;
8'h07:bit_12_parallel<=12'h0B8;
8'h08:bit_12_parallel<=12'h358;
8'h09:bit_12_parallel<=12'h0A9;
8'h0a:bit_12_parallel<=12'h0AA;
8'h0b:bit_12_parallel<=12'h08B;
8'h0c:bit_12_parallel<=12'h0AC;
8'h0d:bit_12_parallel<=12'h08D;
8'h0e:bit_12_parallel<=12'h08E;
8'h0f:bit_12_parallel<=12'h345;
default:;
endcase
assign bit_10_parallel=bit_12_parallel[9:0];//取低十位
///
//串行输出
reg [3:0] data_cnt=4'd0;
always@(posedge clk or posedge reset_p)
if(reset_p)
data_cnt<=4'd0;
else
if(data_cnt>=4'd10)
源代码

点击下方的公众号卡片获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值