⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ham_code.v

📁 HAMMING CODE在偵錯及更正的原理實現
💻 V
字号:

`timescale 1ns/1ns

module Ham_Code (clk, rst, ,ack, datain, cout, dataout, req);

//input	signal
input 		clk,rst;
input		ack;
input	[3:0]	datain;

//output signal
output	[3:0]	dataout;
output		req;
output	[2:0]	cout;

wire	[3:0]	dataout;
wire		req;
wire	[2:0]	cout;

wire 		c1 = datain[3] ^ datain [2] ^ datain [0];
wire		c2 = datain[3] ^ datain [1] ^ datain [0];
wire		c3 = datain[2] ^ datain [1] ^ datain [0];

reg		h1,h2,h3,h4,h5,h6,h7;

always @(posedge clk or negedge rst)begin
	if (~rst)
		begin
		h1 <= 'bx;
		h2 <= 'bx;
		h3 <= 'bx;
		h4 <= 'bx;
		h5 <= 'bx;
		h6 <= 'bx;
		h7 <= 'bx;
		end
	else
		if (ack)
		begin
		h1 <=	 c1;		
                h2 <=    c2;
                h3 <=    datain[3] ;
                h4 <=	 c3;
                h5 <=    datain[2] ;
	        h6 <=	 datain[1] ;
                h7 <=	 datain[0] ;
		end
end

//**********************************************************
//			req
//**********************************************************

reg	reqs;

always @(posedge clk or negedge rst)begin
	if  (~rst)
	reqs <= 1'b1;
	else
	reqs <= ~ack;
end

assign req = reqs;

assign cout = {h1,h2,h4};

assign dataout = {h3,h5,h6,h7};

endmodule
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -