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

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

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

SystemVerilog中的always語句塊

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 作者:芯片驗證工程師 ? 2022-12-06 09:47 ? 次閱讀

“always”關(guān)鍵字意味著這個語句塊“總是”一直執(zhí)行。大多數(shù)時候“always”后面跟一個邊沿事件或者延遲。

always后面不能0延遲,不然仿真會一直hang,例如下面這行代碼:

always clk = !clk; //zero delay loop. Simulation

will get stuck at time 0

always #10 clk = !clk; //correct time control

在實際的項目當中“always” 后面經(jīng)常跟著一個邊沿事件上升沿或者下降沿。

always @(posedge )
always @(negedge )

但問題是,你真的清楚posedge和negedge的準確定義么?
實際上:
posedge意味著

0->1, 0-> x, 0-> z, x->1, z->1

negedge意味著

1->0, x->0, z->0, 1->x, 1->z

還有一種不那么常見的寫法就是即對上升沿又對下降沿敏感:

always @(edge clk) begin
...
end

或者

always @(clk) begin
...
end

審核編輯:湯梓紅

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

    關(guān)注

    28

    文章

    1333

    瀏覽量

    109719
  • System
    +關(guān)注

    關(guān)注

    0

    文章

    163

    瀏覽量

    36744
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4671

    瀏覽量

    67770

原文標題:SystemVerilog中的“always”語句塊

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于always語句的問題

    1個Verilog HDL語言,有很多個always語句,這些always語句是并行一起執(zhí)行,還是按照先后順序執(zhí)行?
    發(fā)表于 06-29 10:01

    Verilogalways內(nèi)的語句執(zhí)行的速度?

    Verilogalways內(nèi)的語句執(zhí)行的速度是什么樣的,如果always是時鐘上升沿觸發(fā)
    發(fā)表于 10-29 22:30

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

    兩者的關(guān)系 一個程序可以有多個initial和always過程。每個initial和always說明語句在仿真的一開始同時立即開始執(zhí)行;
    的頭像 發(fā)表于 11-24 14:48 ?5532次閱讀

    SystemVerilog對于process的多種控制方式

    Block,也就是語句SystemVerilog提供了兩種類型的語句,分別是begin…end為代表的順序
    的頭像 發(fā)表于 09-14 10:27 ?1069次閱讀

    systemverilog的決策語句if…else語句介紹

    決策語句(Decision statements)允許程序的執(zhí)行流程根據(jù)設(shè)計中信號的當前值分支到特定語句。
    的頭像 發(fā)表于 10-21 08:58 ?2767次閱讀

    決策語句允許程序的執(zhí)行流程

    SystemVerilog case語句與C switch語句類似,但有重要區(qū)別。SystemVerilog不能使用break語句(C使用b
    的頭像 發(fā)表于 10-27 08:57 ?825次閱讀

    數(shù)字硬件建模SystemVerilog-組合邏輯建模(1)連續(xù)賦值語句

    SystemVerilog有三種在可綜合RTL級別表示組合邏輯的方法:連續(xù)賦值語句、always程序和函數(shù)。接下來幾篇文章將探討每種編碼風格,并推薦最佳實踐編碼風格。
    的頭像 發(fā)表于 12-07 15:31 ?1328次閱讀

    什么是SystemVerilog-決策語句-if-else語句

    決策語句(Decision statements)允許程序的執(zhí)行流程根據(jù)設(shè)計中信號的當前值分支到特定語句。SystemVerilog有兩個主要的決策
    的頭像 發(fā)表于 02-09 14:15 ?911次閱讀
    什么是<b class='flag-5'>SystemVerilog</b>-決策<b class='flag-5'>語句</b>-if-else<b class='flag-5'>語句</b>?

    什么是程序

    程序是編程語句的容器。程序的主要目的是控制何時應執(zhí)行編程語句,例如每當時鐘上升沿出現(xiàn)時,或每當信號或總線改變值時。SystemVerilog
    的頭像 發(fā)表于 02-09 16:04 ?1911次閱讀
    什么是程序<b class='flag-5'>塊</b>

    Verilog的If語句和case語句介紹

    我們在上一篇文章已經(jīng)看到了如何使用程序(例如 always 來編寫按順序執(zhí)行的 verilog 代碼。 我們還可以在程序中使用
    的頭像 發(fā)表于 05-11 15:37 ?3909次閱讀
    Verilog<b class='flag-5'>中</b>的If<b class='flag-5'>語句</b>和case<b class='flag-5'>語句</b>介紹

    FPGA設(shè)計:always組合邏輯的講解和譯碼器的實現(xiàn)

    always 語句是重復執(zhí)行的。always 語句從 0 時刻開始執(zhí)行其中的行為語句;當執(zhí)行完
    的頭像 發(fā)表于 05-12 14:42 ?3698次閱讀
    FPGA設(shè)計:<b class='flag-5'>always</b>組合邏輯<b class='flag-5'>塊</b>的講解和譯碼器的實現(xiàn)

    always組合邏輯的講解和譯碼器的實現(xiàn)

    always 語句是重復執(zhí)行的。always 語句從 0 時刻開始執(zhí)行其中的行為語句;當執(zhí)行完
    的頭像 發(fā)表于 05-22 15:13 ?2444次閱讀
    <b class='flag-5'>always</b>組合邏輯<b class='flag-5'>塊</b>的講解和譯碼器的實現(xiàn)

    Python什么是語句

    。Python將一個tab字符解釋為到下一個tab字符位置的移動,而一個tab字符位置為8個空格,但是標準且推薦的方式是只用空格,尤其是在每個縮進需要4個空格的時候。 在Python,英文版冒號(:)用來標識語句的開始,
    的頭像 發(fā)表于 09-12 16:41 ?857次閱讀

    SystemVerilog:處理信號雙驅(qū)動問題解析

    SystemVerilog,類型可以分為線網(wǎng)(net)和變量(variable)。線網(wǎng)的賦值設(shè)定與Verilog的要求相同,即線網(wǎng)賦值需要使用連續(xù)賦值語句(assign),而不應該出現(xiàn)在過程
    的頭像 發(fā)表于 10-13 14:53 ?1729次閱讀
    <b class='flag-5'>SystemVerilog</b>:處理信號雙驅(qū)動問題解析

    assign語句always語句的用法

    Assign語句Always語句是在硬件描述語言(HDL)中常用的兩種語句,用于對數(shù)字電路建模和設(shè)計。Assign語句用于連續(xù)賦值,而
    的頭像 發(fā)表于 02-22 16:24 ?1556次閱讀