verlog任意奇數和偶數分頻

2021-10-07 22:45:43 字數 1633 閱讀 2292

下面展示一些內聯**片

/******************

執行環境: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 fenpin=7;//fenpin值

parameter div1=fenpin/2;

parameter div2=fenpin-1;

reg [3:0]fenpinjs;

reg [3:0]fenpinjs_oushu;

//以下為奇數分頻運算

always@(posedge clk or negedge rst_n)

if(!rst_n)

clk_pose<=0;

else if(fenpinjs==div1||fenpinjs==div2)

clk_pose<=~clk_pose;

else

clk_pose<=clk_pose;

always@(negedge clk or negedge rst_n)

if(!rst_n)

clk_nege<=0;

else if(fenpinjs==div1||fenpinjs==div2)

clk_nege<=~clk_nege;

else

clk_nege<=clk_nege;

always@(posedge clk or negedge rst_n)

if(!rst_n)

fenpinjs<=0;

else if(fenpinjs==(fenpin-1))

fenpinjs<=0;

else

fenpinjs<=fenpinjs+1;

//以下為偶數分頻計算

always@(posedge clk or negedge rst_n)

if(!rst_n)

begin

fenpinjs_oushu<=0;

clk_oushu<=0;

endelse if(fenpinjs_oushu==(fenpin/2-1))

begin

fenpinjs_oushu<=0;

clk_oushu<=~clk_oushu;

endelse

fenpinjs_oushu<=fenpinjs_oushu+1;

//分頻結果

always@(*)

if(fenpin%2==1)

clk_div=clk_pose|clk_nege;//奇數分頻結果

else

clk_div=clk_oushu;//偶數分頻結果

endmodule

## modelsim結果如下

7分頻的結果如下

![在這裡插入描述](

6分頻結果如下

![在這裡插入描述](

基於 Verilog HDL偶數分頻和奇數

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

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

分頻器設計 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 ...

FPGA實現任意奇數分頻

我們都知道用fpga做偶數分頻很簡單,只需要用計數器計數到分頻係數n的一半再減去1,不斷去翻轉分頻的訊號即可得到分頻的訊號,那麼奇數奇數分頻其實也是一樣的,但是如果要得到占空比為50 的訊號,那可能就需要處理一下才可以,下圖為占空比為50 的3分頻訊號產生原理。利用原始訊號的上公升沿產生乙個三分頻的...