最近剛開始學習fpga,準備使用verlog實現一些分頻電路,偶數倍分頻比較好操作,奇數倍分頻相對來說要複雜一點點,我在網上查閱了一些資料,我來用我自己的話總結下。使用乙個計數器 對基準時鐘的上公升沿和下降沿計數。計數範圍 [0 n-1] , 在n-1對輸出訊號進行翻轉並復位計數值。以三分頻為例子,下面給出**理解一下
//三分頻實驗
reg div3_o_r = 0;
reg [1:0] div3_cnt;
assign div3_o = div3_o_r;
always @(posedge clk_i or negedge clk_i or negedge rst_n_i)
if(!rst_n_i)
div3_cnt <= 1'd0;
else if(div3_cnt==2) begin //0-2 中已經包含三次計數
div3_o_r <= ~div3_o_r;
div3_cnt <= 1'b0;
endelse
div3_cnt <= div3_cnt + 1;
**結果:
我認為這是最簡單的一種方案,可是網上幾乎沒有人這麼做?不會是大家都沒想到吧?我懷著疑問網上查了很多資料,說verlog中不能同時上公升沿下降沿?那是為什麼呢?
以三分頻為例子乙個計數器 對基準時鐘的上公升沿計數。計數範圍 [0 2] , 在cnt==0時、cnt==2時對訊號進行翻轉 對輸出訊號進行翻轉,並在cnt==2後對cnt進行復位,這樣可以得到占空比為30%的訊號FPGA三分頻,五分頻,奇數分頻
我們在做fpga設計時,有時會用到時鐘頻率奇數分頻的頻率,例如筆者fpga的晶振為50m,當我們需要10m的時鐘時,一種方式可以使用dcm或pll獲取,系統會內部分頻到10m,但其實verilog內部也完全能實現,所以我們還是來了解一下。有這樣乙個歡樂的時鐘了,我們要得到以下的分頻效果 奇數分頻的難...
FPGA三分頻,五分頻,奇數分頻
我們在做fpga設計時,有時會用到時鐘頻率奇數分頻的頻率,例如筆者fpga的晶振為50m,當我們需要10m的時鐘時,一種方式可以使用dcm或pll獲取,系統會內部分頻到10m,但其實verilog內部也完全能實現,所以我們還是來了解一下。有這樣乙個歡樂的時鐘了,我們要得到以下的分頻效果 奇數分頻的難...
verilog奇數分頻,三分頻例項
目的 輸入乙個時鐘訊號,輸出占空比為50 的三分頻。首先得到乙個占空比為1 3的分頻時鐘,然後將輸入訊號取反,得到乙個移相180度的占空比為1 3的分頻時鐘,將兩個時鐘相或得到目的時鐘。verilog module divider 3 input clk,clock input rst n,asyn...