?? 5分頻.v
字號:
這很簡單,按下列方法可以獲得占空比為50%的分頻器:
(1)寫一個根據(jù)上升沿觸發(fā)的2:3的5分頻器(低2高3);
(2)再寫一個根據(jù)下降沿觸發(fā)的2:3的5分頻器;
(3)兩個輸出相“與”即可。
提供一個簡單的時鐘線控制實現(xiàn)50%占空比的方案,當然對與不對,大家指教。
比如大家要計數(shù)到5:0,1,2,3,4;在計到2的時候,使得控制信號
為1,并將該控制信號與時鐘信號異或。這樣假如采用上升沿計數(shù)的話,
在下一個下降沿就會被反轉(zhuǎn)為上升沿,使得在一個時鐘周期內(nèi),輸出
2和3。輸出3后時鐘線恢復正常。于是我們實現(xiàn)了在5個周期內(nèi)輸出6
個狀態(tài),我想下面的事情,諸位大俠都是知道的羅,不羅嗦啦
我想我提供的方法應該可以和時鐘邊沿同步,只要合適地選擇
狀態(tài)的編碼,使得狀態(tài)0,1,2對應輸出為0,狀態(tài)3,4,5對應輸出為
1即可。
module tridivf(clk,rst,clk3);
input clk,rst;
output clk3;
reg QA,QB,C,clk3;
always @(QA or QB)
C = ~(QA & QB);
always @(posedge clk or posedge rst)
if(rst)
QA <= 1'b0;
else
if(!C)
QA <= ~QA;
else
QA <= 1'b1;
always @(negedge clk or posedge rst)
if(rst)
QB <= 1'b0;
else
if(!C)
QB <= ~QB;
else
QB <= 1'b1;
always @(posedge C or posedge rst)
if (rst)
clk3 <= 1'b0;
else
clk3 <= ~clk3;
endmodule
覺得這個寫法不好,看起來很簡潔,不過我覺得不夠規(guī)范。//隨便說說。
1)always @(posedge C)
clk3 = ~clk3; 這相對于clk應該是一個異步電路
。
2)既用到posedge clk,也用到negedge clk,對于綜合做sta來說,
并不提倡這樣寫。
3)always @(posedge clk )
if (C)
QA = ~QA;
else
QA = 1'b1;
改成:always@(posedge clk)
if(!C)
QA = 1'b1;
else
QA = ~QA; 也許更符合電路的行為吧。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -