欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: verilog中的initial語句 [打印本頁]

作者: geige    時間: 2015-7-26 02:08
標題: verilog中的initial語句
  首先說說結構化過程語句,在verilog中有兩種結構化的過程語句:initial語句和always語句,他們是行為級建模的兩種基本語句。其他所有的行為語句只能出現在這兩種語句里



與C語言不通,verilog在本質上是并發而非順序的。verilog中的各個執行流程(進程)并發執行,而不是順序執行的。每個initial語句和always語句代表一個獨立的執行過程,每個執行過程從仿真時間0開始執行并且兩種語句不能嵌套使用。下面舉例解釋之:

initial語句

所有的initial語句內的語句構成了一個initial塊。initial塊從仿真0時刻開始執行,在整個仿真過程中只執行一次。如果一個模塊中包括了若干個initial塊,則這些initial塊從仿真0時刻開始并發執行,且每個塊的執行是各自獨立的。如果在塊內包含了多條行為語句,那么需要將這些語句組成一組,一般式使用關鍵字begin和end將他們組合在一個塊語句;如果塊內只有一條語句,則不必使用begin和end.下面給出了initial語句的例子:

    module stimulus  

    reg x,y, a,b, m  

    initial  
        m = 1'b0;  

    initial  
    begin  
        #5 a = 1'b1;  
        #25 b = 1'b0;  
    end  

    initial  
    begin  
        #10 x = 1'b0;  
        #25 y = 1'b1;  
    end  

    initial  
        #50 $finish;  

    endmodule  



在上面例子中,三條initial語句在仿真0時刻開始并行執行。如果在某一條語句前面存在延遲#,那么這條initial語句的仿真將會停頓下來,在經過指定的延遲時間之后再繼續執行。因此上面的initial語句執行順序為:

    時間              所執行的語句  
    0                   m = 1'b0;  
    5                   a = 1'b1;  
    10                  x = 1'b0;  
    30                  b = 1'b0;  
    35                  y = 1'b1;  
    50                  $finish;  






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1