0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

initial和always兩者的關(guān)系分析

454398 ? 來源:CSDN博主 ? 作者:陌上花開___了嗎 ? 2020-11-24 14:48 ? 次閱讀

兩者的關(guān)系

一個程序塊可以有多個initial和always過程塊。每個initial和always說明語句在仿真的一開始同時立即開始執(zhí)行;initial語句只執(zhí)行一次,而always語句則不斷重復(fù)的活動著,直到仿真結(jié)束。但always塊語句后面跟著的過程快是否運行,滿足則運行一次,滿足則運行一次,直到程序結(jié)束。一段程序中使用的initial和always語句的次數(shù)不受限制,他們都是同時開始運行的。

(1)、initial語句

1、語句格式

initia

begin

語句一;

語句二;

語句三;

語句四;

end

2.舉例說明

initia

begin

S1 = 0 ;

for(index=0;index

上述例子中在仿真開始對各變量進(jìn)行初始化,這個初始化過程不需要任何仿真時間,即在0ns時間內(nèi),便可以完成存儲器的初始化工作。實例2:initia語句生成激勵波形

initial

begin

s= ‘b00000;

#10 s = ’b00001;

#10 s= ‘b00010;

#10 s = ’b00100;

#10 s= ‘b01000;

#10 s = ’b10000;

```/

end

上面程序塊按照順序依次執(zhí)行

10 :s=1; 20 :s=2;。。.。。.。

注意一個模塊中可以有許多個initial塊,它們都是并行運行的。initial語句最常見的是用于測試文件里面的初始化語句,用來產(chǎn)生測試環(huán)境和設(shè)置信號記錄。(2)always語句always語句在仿真過程中不斷的運行著。initial語句只執(zhí)行一次,而always語句則不斷重復(fù)的活動著,直到仿真結(jié)束。但always塊語句后面跟著的過程快是否運行,滿足則運行一次,滿足則運行一次,直到程序結(jié)束。1、語句格式:always 《時序控制》 《語句》always語句由于其不斷活動的特性,只有和一定的時序控制邏輯結(jié)合在一起才有用。如果一個always沒有時序控制,它將會產(chǎn)生死鎖,例如:always clk = ~clk;加上時序控制 always可以用來產(chǎn)生時鐘信號:always #10 clk = ~clk 10個時間單位翻轉(zhuǎn)一次。always的時序控制可以使邊沿觸發(fā)(上升沿或者下降沿)也可以用電平觸發(fā),可以是單個信號也可以是多個信號,中間需要用關(guān)鍵字or連接,例如:》 邊沿觸發(fā)

always@(posedge clk or negedge rst)

》begin

》end

由兩個沿觸發(fā)的always只要其中一個沿到來,就立即執(zhí)行一次過程塊,然后等待下一次的沿到來。電平觸發(fā)

always@(a or b or c)

begin

。。.。

end

由多個電平觸發(fā)的的always塊,只要a,b,c中的任何一個發(fā)生變化,從高到低或者從低到高都會執(zhí)行一次過程,這里有個疑問,執(zhí)行過程塊的時刻是在從低到高變化的時候還是什么時候?一個模塊可以包含多個always塊,它們都是并行執(zhí)行的2. always塊的or時間控制//有異步復(fù)位的電平敏感鎖存器

always@(reset or clock or d)//也可以寫成always@(a,b,c) 用,代替or

begin

if(reset)

q = 1‘b0;

else if(clock)

q = d;

end

//用reset異步下降沿復(fù)位,clock的正條邊沿觸發(fā)的D寄存器

always@(negedge reset , posedge clk)

if(!reset)

q 《= 0;

else

q 《= d;

always@ (*)的使用用符號always@(*)可以把所有輸入變量都包含進(jìn)敏感列表例如:

always@(a,b,c,d,e,f,g,h,r,m)

begin

out1 = a?(b+c):(d+e);

out2 = f?(g+h):(r+m)

end

可以用下面代碼來代替

always@(*)

begin

out1 = a?(b+c):(d+e);

out2 = f?(g+h):(r+m)

end

前面所討論的時間控制都需要等待信號值的變化或者事件的觸發(fā),使用符號@和后面的敏感列表來表示。verilog允許另外一種形式表示的電平敏感時序控制(即后面的語句或者語句塊必須等到某個條件誒真是才能執(zhí)行),具體請看下面例子:always

wait(count_enabel) # 20 count = count +1;

```

上面例子中,仿真器連續(xù)監(jiān)視count_enable的值,若其值為1,在20個時間單位過后執(zhí)行后面的語句,若其值為0,則不執(zhí)行后面的語句。若其值始終為1,那么count將每過20個時間單位加1.編輯:hfy


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1008

    瀏覽量

    83441
  • 時序控制
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    11932
收藏 人收藏

    評論

    相關(guān)推薦

    Ethernet和EtherCAT兩者有什么區(qū)別和聯(lián)系?

    Ethernet和EtherCAT兩者有什么區(qū)別和聯(lián)系?
    發(fā)表于 04-12 07:13

    STM32的 ENIC和EXTI兩者有什么關(guān)系

    初學(xué)stm32,遇到一個棘手的問題,望各位大神不吝賜教STM32的 ENIC和EXTI兩者有什么關(guān)系?EXTI線 與 中斷通道有什么聯(lián)系?具體點,謝謝
    發(fā)表于 07-26 22:54

    CPK和PPK兩者的區(qū)別份資料分享

    CPK和PPK兩者的區(qū)別是什么,請看這份資料!
    發(fā)表于 08-24 13:48

    FTW影響系統(tǒng)時鐘請問這兩者之間有什么關(guān)系

    您好我現(xiàn)在要用AD9957的pll和DDS。pll可以鎖定,但是DDS中FTW的改變影響PLL系統(tǒng)時鐘的輸出。這兩者之間有什么關(guān)系
    發(fā)表于 09-10 10:34

    IWDG和WWDG兩者特點

    一、介紹STM32看門狗分為獨立看門狗和窗口看門狗種,兩者使用調(diào)條件如下所示:IWDG和WWDG兩者特點如下圖所示:二、WWDG原理介紹寄存器控制寄存器(WWDG_CR),只有低八位有效。WDGA
    發(fā)表于 07-30 07:30

    物聯(lián)網(wǎng)與嵌入式兩者是什么關(guān)系

    物聯(lián)網(wǎng)與嵌入式兩者是什么關(guān)系?物聯(lián)網(wǎng)與嵌入式是密不可分的,雖然物聯(lián)網(wǎng)擁有傳感器、無線網(wǎng)絡(luò)、射頻識別,但物聯(lián)網(wǎng)系統(tǒng)的控制操作、數(shù)據(jù)處理操作,都是通過嵌入式的技術(shù)去實現(xiàn)的,物聯(lián)網(wǎng)就是嵌入式產(chǎn)品的網(wǎng)絡(luò)化
    發(fā)表于 01-31 15:03

    PCB干膜和濕膜具體指什么?兩者之間的區(qū)別在哪里?

    PCB干膜和濕膜具體指什么?兩者之間的區(qū)別在哪里?與正片和負(fù)片有什么關(guān)系?
    發(fā)表于 04-06 15:58

    CPLD和FPGA兩者的區(qū)別

    CPLD和FPGA都是我們經(jīng)常會用到的器件。有的說有配置芯片的是FPGA,沒有的是CPLD;有的說邏輯資源多的是FPGA,少的是CPLD;有的直接就不做區(qū)分,把他們都叫做FPGA。那么兩者到底有什么區(qū)別呢?下面我們就以Altera公司的CPLD和FPGA為例來說說兩者的區(qū)
    發(fā)表于 05-24 02:03 ?5w次閱讀
    CPLD和FPGA<b class='flag-5'>兩者</b>的區(qū)別

    物聯(lián)網(wǎng)與嵌入式兩者是什么關(guān)系

    物聯(lián)網(wǎng)與嵌入式兩者是什么關(guān)系?物聯(lián)網(wǎng)與嵌入式是密不可分的,雖然物聯(lián)網(wǎng)擁有傳感器、無線網(wǎng)絡(luò)、射頻識別,但物聯(lián)網(wǎng)系統(tǒng)的控制操作、數(shù)據(jù)處理操作,都是通過嵌入式的技術(shù)去實現(xiàn)的,物聯(lián)網(wǎng)就是嵌入式產(chǎn)品的網(wǎng)絡(luò)化。
    發(fā)表于 06-10 17:13 ?9997次閱讀

    RFID與IoT兩者發(fā)展聯(lián)系

    射頻識別(RFID)與物聯(lián)網(wǎng)(IoT)兩者發(fā)展聯(lián)系
    的頭像 發(fā)表于 08-20 10:27 ?2715次閱讀

    無線熱點和無線局域網(wǎng)兩者的區(qū)別以及聯(lián)系

    無線熱點和無線局域網(wǎng)有什么區(qū)別,因為從某些方面來說兩者好像沒有什么不同,但實際上兩者是包含與被包含的關(guān)系,無線局域網(wǎng)(WLAN)包含無線熱點(Wi-Fi)的。
    發(fā)表于 11-15 10:56 ?6661次閱讀

    人工智能和物聯(lián)網(wǎng)兩者之間有什么關(guān)系

    隨著國家把人工智能和物聯(lián)網(wǎng)的發(fā)展作為國家的戰(zhàn)略,越來越多的各種人工智能和物聯(lián)網(wǎng)的概念在各種媒體上反復(fù)提出,但人工智能和物聯(lián)網(wǎng)到底是什么?兩者關(guān)系是什么?
    的頭像 發(fā)表于 03-17 11:54 ?9893次閱讀

    MOS管是場效應(yīng)管嗎?兩者之間存在怎樣的關(guān)系?

    MOS管即金屬-氧化物-半導(dǎo)體場效應(yīng)晶體管,或被稱為金屬-絕緣體-半導(dǎo)體。那么MOS管和場效應(yīng)管兩者之間存在怎樣的關(guān)系?
    發(fā)表于 03-11 11:22 ?1w次閱讀
    MOS管是場效應(yīng)管嗎?<b class='flag-5'>兩者</b>之間存在怎樣的<b class='flag-5'>關(guān)系</b>?

    機(jī)器學(xué)習(xí)和預(yù)測分析兩者之間如何相互關(guān)聯(lián)?

    我們經(jīng)常聽到機(jī)器學(xué)習(xí)和預(yù)測分析,但它們的具體含義是什么,兩者之間如何相互關(guān)聯(lián)的?
    的頭像 發(fā)表于 10-25 17:33 ?1087次閱讀
    機(jī)器學(xué)習(xí)和預(yù)測<b class='flag-5'>分析</b><b class='flag-5'>兩者</b>之間如何相互關(guān)聯(lián)?

    verilog中initialalways的區(qū)別

    Verilog是一種硬件描述語言(HDL),用于設(shè)計和模擬數(shù)字電路。在Verilog中,關(guān)鍵字initialalways都是用于描述電路行為的特殊語句。它們被用來生成仿真模型,并控制模擬器的啟動
    的頭像 發(fā)表于 02-22 16:09 ?1694次閱讀