名称:8b/10b编码器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
8b/10b编码器设计
8b/10b编码是将8位符号映射到10位符号,以实现直流平衡,同时提供足够多的状态来实现时钟恢复。这意味着在一个至少20位的字符串中,1和0的计数之差不超过2,并且在一排中不超过5个1或0。
1、具有时钟、复位信号;
2、8位并行输入;
3、10bit 串行输出。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
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)
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=938
阅读全文