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

📄 clkunit.v

📁 UART verilog hdl 实现
💻 V
字号:
module ClkUNIT(SysClk, EnableRx, EnableTx, Reset);

input SysClk;
input Reset;
output EnableRx;
output EnableTx;

//内部信号定义
reg ClkDiv26;
reg tmpEnRx;
reg tmpEnTx;
reg[4:0] Cnt26;
reg[3:0] Cnt10;
reg[4:0] Cnt16;

//
always@(posedge SysClk)
begin
	if(Reset==0)begin
    	Cnt26 = 5'b00000;
        ClkDiv26 = 0;
    end else begin
        Cnt26 = Cnt26 + 5'b00001;
        case(Cnt26)
        	5'b11010: begin ClkDiv26 = 1;
                    Cnt26 = 5'b00000;end
            default:ClkDiv26 = 0;      
        endcase
    end        
end

always@(posedge SysClk)
begin
	if(Reset==0)begin
		Cnt10 = 4'b0000;
		tmpEnRx = 0;
	end else if(ClkDiv26==1)begin
		Cnt10 = Cnt10 + 1;
    end
    
	case(Cnt10)
		4'b1010:begin
        	tmpEnRx = 1;
			Cnt10 = 0;end
		default:tmpEnRx = 0;
    endcase
end


always@(posedge SysClk)
begin
	if(Reset==0)begin
		Cnt16 = 0;
		tmpEnTx = 0;
	end else if(tmpEnRx==1)begin
        Cnt16 = Cnt16 + 1;
    end

	case(Cnt16)
		5'b01111:begin
			tmpEnTx = 1;
            Cnt16 = Cnt16 + 1;end
		5'b10001:begin
			Cnt16 = 5'b00000;
			tmpEnTx = 0;end
        default:tmpEnTx = 0;
     endcase
end


assign EnableRx = tmpEnRx;
assign EnableTx = tmpEnTx; 

endmodule

⌨️ 快捷键说明

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