verilog之簡單時鍾信號的編寫


verilog之簡單時鍾信號的編寫

1、數字時鍾信號

在數字電路中,時鍾信號是重要的一類信號,一般作為激勵源驅動時序電路。掌握時鍾信號的編寫,對於時序電路的仿真具有重要意義。所有的時序電路都需要設置時鍾信號來確認時序。這里先寫一個已知時間間隔的簡易時鍾信號。

2、基於begin-end的編寫

initial begin
     
    clk=1;
    #1
    clk=0;
    #1
    clk=1;
    #1
    clk=0;
end

這個編寫的邏輯非常簡單,就是根據時鍾信號的特點,一個時鍾周期變一次,根據所需的時間長度確認重復的次數。

3、基於fork-join的編寫

initial fork
    clk1=1;
    #1
    clk1=0;
    #2
    clk1=1;
    #3
    clk1=0;
    #10
    $stop();
join

這個代碼是使用同步進行的fork-join來實現的。這里可以看出延時時間是絕對的,不包含前面的延時。這里也可以看出每個語句之間是沒有優先級的。

4、小結

可以看到來個信號的結果是一致的。使用initial語句實現信號可以直接表示每個時間段的信號變化。對於其他測試向量來說,也可以使用這種精確的方法實現信號源的編寫。但是,在比較大的設計中,時鍾信號一般需要作用比較長的時間,使用initial會占用大量的空間。對於高度重復的信號源,可以使用always塊來實現。always塊可以一直循環執行,知道仿真結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM