1.课程设计目的:
掌握verilog这门硬件描述语言,掌握数字集成电路设计流程和FPGA开发流程,能够将所学知识与实际应用相结合,提升自己的专业知识和素养。
2.课程设计题目描述和要求:
本设计要求设计一个汉明码编码器和汉明码译码器,基本要求如下。
(1)具备基本的汉明码编码解码功能。
(2)能够显示纠错位。
3.实验内容:
参照书中的教程代码,进行汉明码编译器的测试。
4.实验原理:
根据书上的代码和老师的教学步骤进行仿真
5.实验代码:
第一个:
module ham_encoder(data_in,data_out);
input [3:0] data_in;
output [6:0] data_out;
wire s2,s1,s0;
assign s2=data_in[3]+data_in[2]+data_in[1];
//or data_in[6]data_in[5]data_in[4]
assign s1=data_in[3]+data_in[2]+data_in[0];
assign s0=data_in[3]+data_in[1]+data_in[0];
assign data_out={data_in[3:1],s2,data_in[0],s1,s0};
endmodule
module tb_he;
reg [3:0] data_in;
wire [6:0] data_out;
initial
data_in=4’b1101;
always #10 data_in=$random;
ham_encoder myham(data_in,data_out);
endmodule
第二个:
module ham_decoder(data_in,data_out,err,warn,p);
input [6:0] data_in;
output [3:0] data_out;
output err,warn;
output [2:0] p;
reg err,warn;
wire [2:0] tp;
reg [6:0] data_tmp;
assign tp[2]=data_in[6]+