時鐘分頻之奇分頻(5分頻)

來源:[原創(chuàng)][FPGA]時鐘分頻之奇分頻(5分頻)

其實現(xiàn)很簡單,主要為使用兩個計數(shù)模塊分別計數(shù),得到兩個波形進行基本與或操作完成。直接貼出代碼部分如下。

module  div_freq(
        iCLK,
        iRST_n,
        oCLK
);
 
input   wire    iCLK;
input   wire    iRST_n;
output          oCLK;
 
parameter   N = 4'd5;
 
reg         clk_p;
reg [3:0]   cnt_p;
always @ (posedge iCLK or negedge iRST_n) begin
    if (!iRST_n)
        cnt_p <= 4'd0;
    else if (cnt_p == N - 1)
        cnt_p <= 4'd0;
    else
        cnt_p <= cnt_p + 1'b1;
end
always @ (posedge iCLK or negedge iRST_n) begin
    if (!iRST_n)
        clk_p <= 1'b0;
    else if (cnt_p == (N - 1) / 2)
        clk_p <= ~clk_p;
    else if (cnt_p == N - 1)
        clk_p <= ~clk_p;
    else
        clk_p <= clk_p;
end
 
 
reg         clk_n;
reg [3:0]   cnt_n;
always @ (negedge iCLK or negedge iRST_n) begin
    if (!iRST_n)
        cnt_n <= 4'd0;
    else if (cnt_n == N - 1)
        cnt_n <= 4'd0;
    else
        cnt_n <= cnt_n + 1'b1;
end
always @ (negedge iCLK or negedge iRST_n) begin
    if (!iRST_n)
        clk_n <= 1'b0;
    else if (cnt_n == (N - 1) / 2)
        clk_n <= ~clk_n;
    else if (cnt_n == N - 1)
        clk_n <= ~clk_n;
    else
        clk_n <= clk_n;
end
 
assign  oCLK = clk_p | clk_n;
 
endmodule

使用兩個計數(shù)器cnt_p和cnt_n,cnt_p在時鐘上升沿變化,對應clk_p兩低三高;cnt_n在時鐘下降沿變化,對應clk_n兩低三高。但是clk_p和clk_n的變化邊沿正好相差半個clk周期,對兩個時鐘進行或運算即可。

modelsim仿真結果如下圖


最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一個計數(shù)器通常是由一組觸發(fā)器構成,該組觸發(fā)器按照預先給定的順序改變其狀態(tài),如果所有觸發(fā)器的狀態(tài)改變是在同一時鐘脈沖...
    錦穗閱讀 15,175評論 0 6
  • 學號:16010199021 姓名:李若宇 轉載自 http://blog.csdn.net/sun1991011...
    承瑜閱讀 2,058評論 0 1
  • 來源:FPGA 時鐘設計 1 —— 時鐘資源總結 關于一款芯片,最權威、最新的資料當然是廠家的官方文件。很多大牛都...
    暗夜望月閱讀 3,755評論 0 2
  • 在有些關系里 我發(fā)現(xiàn)自己什么角色也不是。
    發(fā)芽的船槳閱讀 181評論 0 1
  • 喜歡它們 它們的顏色 實實在在的不遮掩 比人的心潔凈
    蕭蕭暮雪閱讀 254評論 0 3

友情鏈接更多精彩內(nèi)容