2011年12月31日 星期六

2011/11/21 Verilog程序指定

Verilog是由C語言寫出來的程式語言,
理所當然的,
C語言的精隨幾乎都可以在Verilog中被拿出來使用,
這次程序指定所要看的是一些C語言常見的程式用法。

之前所介紹的initial的功能是指告訴編譯器程式的執行起點在這裡,
在initial裡面,
我們可以為變數設初值,
例如:
    i = 2;
    j = 4;
當我們使用C語言時,
若要使兩個變數的值對調,
那我們必須再設一個k變數當中介者,
但Verilog裡的信號延遲"#"可以讓這件事情原封不動的只用兩個變數就完成,
範例如下:















圖中可以注意到,
若display沒有延遲那麼會印出時間為零的時候的i和j,
所以要得到變換後的i、j之值,
則必定要延遲印出的時間。
順帶一提,
begin和end就像是C語言的中括號,
同樣使用這種型式代替中括號的語言還有MATLAB。

C語言中只要對for、while、do while下個不可能達成的條件,
就可以完成無窮迴圈,
Verilog是個設計IC的程式語言,
一顆IC我們都是希望設計出來就是通著電,
然後一直照我們的設定不斷的工作,
因為這樣的重要特性,
Verilog將無窮迴圈交由always函數來處理,
always的條件寫法和while相似,
但always再條件括號前要加個"@",
而內部的條件判斷對應IC中相當重要的時脈信號,
可以有"posedge"、"negaedge"兩種正緣或負緣觸發的兩種判斷條件,
只要滿足就動作,
一直工作到記憶體使用完畢,
或是達到外部條件達成為止。
同樣的這些都不是IC佈局時該出現的東西。

if、和else的用法同C語言,
這裡就不在多加描述。

沒有留言:

張貼留言