bch_divd.v

来自「这是我做的一个BCH译码模块硬件语言模块」· Verilog 代码 · 共 45 行

V
45
字号
module bch_divd(clk,rst,gate,d16,d31,start,in,data_out);
    input [0:0] clk;
    input [0:0] rst;
	 input gate;
    input [0:0] in;
	 input start;
	 input  d16;
	 input d31;
	 wire gate_in;
    output [3:0] data_out;

	 reg [3:0] data_out;
    reg [3:0] shift_reg;

	 assign gate_in= gate & in;

  always @(posedge clk or negedge rst)
       begin
		   if(!rst) 
			  begin
			  shift_reg<=0;
			  data_out<=0;
			  end
		    else if(d16 || d31)									//d16,d13时刻取出数据
			 
			  begin
			   
				data_out<=shift_reg;
				shift_reg<={3'b000,gate_in};
			
				end

			 else if(start)											//start有效时,移位
			     begin
					shift_reg[3]<=shift_reg[2];
					shift_reg[2]<=shift_reg[1];
					shift_reg[1]<=shift_reg[0]^shift_reg[3];
					shift_reg[0]<=shift_reg[3]^gate_in;
			 	 end

				else
				   shift_reg<=0;
		  end
			
endmodule

⌨️ 快捷键说明

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