利用條件語句實現不同占空比的分頻時鐘電路

2021-07-01 23:26:28 字數 2305 閱讀 2028

1,要實現的是如下的乙個「產生占空比不同的分頻時鐘」:

(1)、建模:

module fdivision_module(clock,d_clock,reset,j);

input clock,reset;

output d_clock,j;

reg d_clock;

reg [2:0]j;

always @(posedge clock)

begin

if(!reset)

//初始化過程

begin

d_clock<=0;

j<=0;

endelse

begin

if(j==4)

j<=0;

else if(j==1)

begin

d_clock=1;

j<=j+1;

endelse

begin

d_clock=0;

j<=j+1;

endend

endendmodule

(2)testbench:

`include "fdivision_module.v"

module fdivision_stimulus;

reg clock,reset;

wire d_clock;

wire [2:0]j;

fdivision_module  fd(clock,d_clock,reset,j);

initial

begin

clock=0;

forever #5 clock=~clock;

endinitial

begin

reset=0;

#20 reset=1;

#100 reset=1;

#5 reset=1;

end(3)、正確**波形:

2、出現的問題及解決辦法:

(1)、第一次的**結果如下:由圖可見,在reset置0的時候,d_clock並沒有置0,沒有初始化

(2)、為了除錯程式,我將區域性變數j也作為輸出變數,得到下面的**結果:區域性起到計數的變數一直為未知量x

(3)、改動程式,將reset也放入always的敏感列表中,寫成always @(posedge clock,negedge reset),得到下面的結果:很顯然,儘管**出結果,但是占空比錯誤,這個錯歸根結底還是在於計數器的設定,開始我寫成(j==5)時,j<=0;(j==2)時,d_clock=1;特別很明顯0~5總共經歷了6個時鐘。所以,建模過程中,要特別注意計數器j的設定。

(4),現在回過頭來想想最開始的建模有什麼錯誤,在2.3中,將reset置於敏感列表中,寫成always @(posedge clock,negedge reset),這相當於非同步置0 ,reset的置0訊號是不受時鐘控制的,只要reset=0,就能將d_clock和j置0。但是在最開始錯誤的2.1中,敏感列表為always @(posedge clock),再在後面過程塊中寫,reset=0時,j=0,d_clock=0;那麼這時的reset置0為同步置0,只有當上公升沿出現時,才生效,給j和d_clock賦值。但是,我在testbench模組中,給reset的賦值如下圖:很顯然,在0~5ns時,reset=0,#5ns之後reset=1,則當#10ns,上公升沿到來時,reset已經為1,不能再給j和d_clock賦值了,所以造成了2.1的錯誤。特別值得注意的是,在非同步置0時,reset=0的保持時間可以任意,但同步置0時,reset=0的保持時間需要大於乙個時鐘,否則就會出現上面上公升沿還沒到來,reset就為1,不能賦值的錯誤。

php的關於 與 的條件語句實現

第一種 if 條件語句 第二種 三目運算 第三種 組成的條件語句 第一種 if 不用講了,這是基礎,相信絕大多數人都會 第二種 c a b true false 意思是 如果a b 為真 則返回真,否則返回假 當然可以用語句替換 並且把結果返回給c 第三種 1 在大多數語言中,他的意思是並且的意思,...

sql利用在一條語句中count出不同的條件的值

過多繁瑣的sql影響 質量,及維護成本,以下為兩種小技巧處理方式,僅供參考,第二種更美觀點 第一種,用case when 方法 selectid,sum case when type in 1,2 then count else 0 end as sum1 sum case when type in...

利用json檔案實現不同裝置間的互動(一)

在做工程時,遇到如下需求 當移動端按下按鍵,機械人底盤實現相應功能,即樹莓派上啟動相應服務。鑑於涉及不同裝置以及各項服務涉及不同語言,需要設計一種互動方式相互協調。實際實現借鑑了client server結構。首先在server端 即樹莓派,各項功能對應的程式實現均於此 新建乙個json檔案,檔案中...