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

📄 crc1.v

📁 该工程是基于verilog hdl 语言编写的帧传输协议HDLC帧的发送端代码
💻 V
字号:
/////////////////////////////////////////////////////////////
// din:输入信号clk:全局时钟                               ///  
//en1:使能控制sel1:信息位与校验位的区分1为信息位,0为校验位//
//reset:复位  crcout:输出   clkout:位定时信号              //
/////////////////////////////////////////////////////////////                 
module crc1(din,clk,en1,sel1,reset,crcout,clkout);
input din,clk,sel1,en1,reset;
output crcout,clkout;
reg crcout;
reg[15:0] crc_reg;
integer j;
reg[4:0] count;
wire clkout;
assign clkout=clk&&en1;

 
always@(posedge clkout or posedge reset)
begin
	if (reset) begin
		crc_reg<=16'hffff; count<=15;
	end
    else if (sel1) begin
		crcout<=din;
        for(j=14;j>11;j=j-1) begin
			crc_reg[j+1]<=crc_reg[j];       
        end
        crc_reg[12]<=crc_reg[11]^crc_reg[15]^din;
        for(j=10;j>4;j=j-1)begin
			crc_reg[j+1]<=crc_reg[j];       
        end 
        crc_reg[5]<=crc_reg[4]^crc_reg[15]^din;
        for(j=3;j>=0;j=j-1)begin
			crc_reg[j+1]<=crc_reg[j];       
        end 
        crc_reg[0]<=din^crc_reg[15];
    end
	else  begin     
		crcout<=crc_reg[count];
        if(count>0)count<=count-1;
		else count<=15;
    end
end
endmodule 

⌨️ 快捷键说明

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