目的:輸入乙個時鐘訊號,輸出占空比為50%的三分頻。
首先得到乙個占空比為1/3的分頻時鐘,然後將輸入訊號取反,得到乙個移相180度的占空比為1/3的分頻時鐘,將兩個時鐘相或得到目的時鐘。
verilog**
module
divider_3
(input
clk,//
clock
input
rst_n,/
/asynchronous
reset
active
lowoutput
wire
clk_d3);
reg[3:
0]count
,count1
;reg
clk_div3
,clk_div3_shift
;wire
clk_n
;assign
clk_n=~
clk;
always@(
posedge
clkor
negedge
rst_n
)beginif(
~rst_n
)begin
count
<=0
;end
elseif(
count==
4'd2)
begin
count
<=0
;end
else
begin
count
<
=count+1
;end
endalways@(
posedge
clk_n
ornegedge
rst_n
)beginif(
~rst_n
)begin
count1
<=0
;end
elseif(
count1==
4'd2)
begin
count1
<=0
;end
else
begin
count1
<
=count1+1
;end
endalways@(
posedge
clkor
negedge
rst_n
)beginif(
~rst_n
)begin
clk_div3
<=0
;end
elseif(
count==
4'd0||count==4'd1)
begin
clk_div3
<=~
clk_div3
;end
else
begin
clk_div3
<
=clk_div3
;end
endalways@(
posedge
clk_n
ornegedge
rst_n
)beginif(
~rst_n
)begin
clk_div3_shift
<=0
;end
elseif(
count1==
4'd0||count1==4'd1)
begin
clk_div3_shift
<=~
clk_div3
;end
else
begin
clk_div3_shift
<
=clk_div3_shift
;end
endassign
clk_d3
=clk_div3||
clk_div3_shift
;endmodule
testbench:
`
timescale1ns
/1ps/
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
///module
name:
vtf_led_test//
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
////
module
vtf_divider3_test;/
/inputs
regclk
;reg
rst_n;/
/outputs
wire
clk_div3;/
/create
clock
always#5
clk=
!clk
;initial
begin
rst_n=0
;clk=0
;#20rst_n=1
;#100$finish
;end
divider_3
uut(
.clk
(clk),
.rst_n
(rst_n),
.clk_d3
(clk_div3))
;endmodule
波形圖:
FPGA三分頻,五分頻,奇數分頻
我們在做fpga設計時,有時會用到時鐘頻率奇數分頻的頻率,例如筆者fpga的晶振為50m,當我們需要10m的時鐘時,一種方式可以使用dcm或pll獲取,系統會內部分頻到10m,但其實verilog內部也完全能實現,所以我們還是來了解一下。有這樣乙個歡樂的時鐘了,我們要得到以下的分頻效果 奇數分頻的難...
FPGA三分頻,五分頻,奇數分頻
我們在做fpga設計時,有時會用到時鐘頻率奇數分頻的頻率,例如筆者fpga的晶振為50m,當我們需要10m的時鐘時,一種方式可以使用dcm或pll獲取,系統會內部分頻到10m,但其實verilog內部也完全能實現,所以我們還是來了解一下。有這樣乙個歡樂的時鐘了,我們要得到以下的分頻效果 奇數分頻的難...
verilog奇數分頻器的問題講解(7分頻為例)
先不多嗶嗶,直接上 veriloghdl 的後面講原理 module fenpin3 clk,clk7,rst input clk,rst 設定rst的目的是當rst 1的時候給cnt0和cnt1賦初值 output clk7 reg 2 0 cnt0,cnt1 定義兩個加法器分別生成兩個7分頻的訊...