位置:51電子網 » 技術資料 » 電源技術

DC2857A 串行語句塊

發布時間:2019/10/16 21:17:21 訪問次數:326

DC2857A在Verilog中,將邏輯電路中的敏感事件分為兩種類型:電平敏感事件和邊沿觸發事件。在組合電路中,輸入信號的變化直接會導致輸出信號的變化;

時序電路中的鎖存器輸出在使能信號為高電平時亦隨輸人電平而變化,波形如

圖5.3.1(a)所示。這種對輸入信號電平變化的響應稱為電平敏感事件。

例如,例4.5.9中的語句

[email protected] (se1 0r a or b)

說明sel、a或b中任意一個信號的電平發生變化(即有電平敏感事件發生),后面的過程賦值語句將會執行一次。

而觸發器狀態的變化僅僅發生在時鐘脈沖的上升沿或下降沿,如圖5,3∶1(b)、(c)所示波形。Ⅴerilog中分別用關鍵詞posedge(上升沿)和negedge(下降沿)進行說明,這就是邊沿敏感事件。例如,語句

[email protected](posedge CP or negedge CR)

說明在時鐘信號CP的上升沿到來或在清零信號CR跳變為低電平時,后面的過程語句就會執行。

在always語句內部的過程賦值語句有兩種類型:阻塞型賦值語句①和非阻塞型賦值語句①。所使用的賦值符分別為“=”和“<=”,通常稱“=”為阻塞賦值符,“(:”為非阻塞賦值符。在串行語句塊中,阻塞型賦值語句按照它們在塊中排列的順序依次執行,即前一條語句沒有完成賦值之前,后面的語句不能被執行,換言之,前面的語句阻塞了后面語句的執行,這與在一個公路收費站,汽車必須排成隊順序前進繳費有些類似t例如,下面兩條阻塞型賦值語句的執行過程是:首先執行第一條語句,將A的值賦給B,接著執行第二條語句,將B的值(等于A值)加1,并賦給C,執行完后,C的值等于A+1。

begin

BrA;

CrB+1;

elld

           

為了改變這種阻塞的狀況今Verilog提供了由“<=”符號構成的非阻塞型賦值語句。非阻塞型語句的執行過程是:首先計算語句塊內部所有右邊表達式的值,然后完成對左邊寄存器變量的賦值操作,這些操作是并行執行的。例如,下面兩條非阻塞型賦值語句的執行過程是;首先計算所有表達式右邊的值并分別存儲在暫存器中,即A的值被保存在一個暫存器中,而B+1的值被保存在另一個暫存器中,在begin和end之間所有非阻塞型賦值語句的右邊表達式都被同時計算并存儲后,對左邊寄存器變量的賦值操作才會進行。這樣,C的值等于B的原始值(而不是A的賦值)加1。

begin

B<=A;

C(=B+1;

end

綜上所述夕阻塞型賦值語句和非阻塞型賦值語句的主要區別是完成賦值操作的時間不同,前者的賦值操作是立即執行的,即執行后一句時,前一句的賦值已經完成;而后者的賦值操作要到順序塊內部的多條非阻塞型賦值語句運算結束時,才同時并行完成賦值操作,一旦賦值操作完成,語句塊的執行也就結束了c.需要注意的是,在可綜合的電路設計中9一個語句塊的內部只允許出現唯一一種類型的賦值語句,而不允許阻塞型賦值語句和非阻塞型賦值語句二者同時出現。在時序電路的設計中)建議采用非阻塞型賦值語句。


系Blocking Assignment statement的譯稱。



相關IC型號

熱門點擊

推薦技術資料

Seeed Studio
SeeedStudio紿我們的印象總是和繪畫脫離不了關系,... [詳細]


广东快乐十分17码计划