Verilog 奇數分頻與偶數分頻及占空比

2021-07-04 15:30:49 字數 2556 閱讀 8010

分頻器設計

1.簡單的二分頻

module

half_clk(reset, clk_in, clk_out);

input clk_in, reset;

output clk_out;

reg clk_out;

always @(posedge clk_in)

begin

if(!reset)

clk_out = 0;

else

clk_out = ~clk_out;

endendmodule

2.任意偶數分頻

例如20分頻

module fdivision(reset, f10m, f500k);

input reset, f10m;

output f500k;

reg f500k;

reg[7:0]

j;always @(posedge f10m)

if(!reset)

begin

f500k <= 0;

j<= 0;

endelse

begin

if( j == 19)

begin

f500k <= ~f500k;

j<= 0;

endelse

j<= j+1;

endendmodule

3.占空比為1:n的n分頻器

以n=5為例

module counter5( clk , clr, clkout);

input clk, clr;

output clkout;

reg[2:0] count;

reg clkout;

always @(posedge clk or posedge clr)

begin

if(clr)

begin

clkout = 0;

count = 3'b000;

endelse

if(count == 3

'b100)

begin

clkout = 1;

count = 3'b000;

endelse

begin

count = count + 1;

clkout = 0;

endend

endmodule

4.實現占空比為50%的n倍奇數分頻:

首先進行上公升沿觸發進行模n計數,計數到某乙個值時進行輸出時鐘翻轉,然後經過(n-1)/2再次進行翻轉得到乙個占空比非50%的奇數n分頻時鐘。再者 同時進行下降沿觸發的模n計數,到和上公升沿觸發輸出時鐘翻轉選定值相同值時,進行輸出時鐘時鐘翻轉,同樣經過(n-1)/2時,輸出時鐘再次翻轉生成占空 比非50%的奇數n分頻時鐘。兩個占空比非50%的n分頻時鐘相或運算,得到占空比為50%的奇數n分頻時鐘。

module div5(clr,clk,clkout);

input clr,clk;

output clkout;

reg clkreg1,clkreg2;

parameter n=5;

reg[n:0] counter1,counter2;

assign clkout=clkreg1||clkreg2;

always @(posedge clk)

if(clr==1)

begin

clkreg1=0;

counter1=0;

endelse

begin

if(counter1==n-1)

begin

counter1=0;

clkreg1=~clkreg1;

endelse

if(counter1==(n-1)/2)

begin

counter1=counter1+1;

clkreg1=~clkreg1;

endelse

begin

counter1=counter1+1;

endend

always @(negedge clk)

if(clr==1)

begin

clkreg2=0;

counter2=0;

endelse

begin

if(counter2==n-1)

begin

counter2=0;

clkreg2=~clkreg2;

endelse

if(counter2==(n-1)/2)

begin

counter2=counter2+1;

clkreg2=~clkreg2;

endelse

begin

counter2=counter2+1;

endend

endmodule

部分資料來自

1.《數字ic系統設計》

2.

基於 Verilog HDL偶數分頻和奇數

fpga開發板上的晶振頻率都是固定值,只能產生固定頻率的時鐘訊號,但是實際工程中需要各種不同頻率的訊號,這時就需要對晶振產生的頻率進行分頻。比如 fpga開發板上的晶振頻率為50mhz,若想要得到1mhz的方波訊號,那麼就需要對晶振產生的訊號進行50分頻 若要實現秒計數,則需對50mhz頻率進行50...

verlog任意奇數和偶數分頻

下面展示一些內聯 片。執行環境 quartus ii 13.0 module five div input clk,rst n,output reg clk div 5分頻時鐘只能用於奇數分頻 reg clk pose reg clk nege reg clk oushu parameter fen...

FPGA奇數分頻

前注 設計中盡量還是要避免使用自己計數分頻得到的時鐘,去使用廠家自帶的分頻ip 如vivado中的clock wizard 偶數分頻比較簡單,這裡略過。對於不要求占空比為50 的奇數分頻,也比較簡單,直接模n計數,期間進行兩次翻轉就可以了。這裡重點介紹要求占空比為50 的奇數分頻。步驟 1.在時鐘上...