11.FPGA_Verilog 奇分频

功能:根据系统时钟50M,产生一个频率信号为系统时钟的五分频
描述:分别通过时钟的上升沿和下降沿产生一个计数到5的计数器,两个计数器再分别产生一个占空比为60%的方波,相与即可。

如下图为时序图:

11.FPGA_Verilog 奇分频_第1张图片

module freq_division_ji_1(

input       wire                sclk            ,
input       wire                rst_n           ,

output      wire                sclk_ji

);

reg         [2:0]               cnt_p           ;
reg         [2:0]               cnt_n           ;

reg                             clk_p           ;
reg                             clk_n           ;

always@(posedge sclk or negedge rst_n)
if(!rst_n)
    cnt_p       <=              0               ;
else if(cnt_p==4)
    cnt_p       <=              0               ;
else 
    cnt_p       <=              cnt_p+1'b1      ;

always@(negedge sclk or negedge rst_n)
if(!rst_n)
    cnt_n       <=              0               ;
else if(cnt_n==4)
    cnt_n       <=              0               ;
else 
    cnt_n       <=              cnt_n+1'b1      ;

always@(posedge sclk or negedge rst_n)
if(!rst_n)
    clk_p       <=              0               ;
else if(cnt_p>=1&&cnt_p<=3)
    clk_p       <=              1               ;
else
    clk_p       <=              0               ;

always@(negedge sclk or negedge rst_n)
if(!rst_n)
    clk_n       <=              0               ;
else if(cnt_n>=1&&cnt_n<=3)
    clk_n       <=              1               ;
else
    clk_n       <=              0               ;

assign  sclk_ji =           clk_n&clk_p         ;

endmodule

仿真波形:

11.FPGA_Verilog 奇分频_第2张图片

你可能感兴趣的:(11.FPGA_Verilog 奇分频)