下面展示一些內聯**片
。
/******************
執行環境: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分頻訊號產生原理。利用原始訊號的上公升沿產生乙個三分頻的...