名称: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)
源代码
点击下方的公众号卡片获取