• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > Verilog HDL阻塞屬性探究及其應(yīng)用

    Verilog HDL阻塞屬性探究及其應(yīng)用

    作者: 時間:2011-09-02 來源:網(wǎng)絡(luò) 收藏

    中,有兩種過程賦值方式,即阻塞賦值(blocking)和非阻塞賦值(nonblocking)。阻塞賦值執(zhí)行時,RHS(right hand statement)估值與更新LHS(left hand statement)值一次執(zhí)行完成,計(jì)算完畢,立即更新。在執(zhí)行時阻塞同塊中的其他語句的執(zhí)行。阻塞式(blocking)的操作符為 “ = ”。它的執(zhí)行很像傳統(tǒng)程序設(shè)計(jì)語言。非阻塞賦值RHS估值與更新LHS值分兩步執(zhí)行。在單位仿真周期開始時RHS估值,在同一單位仿真周期末更新LHS值,不阻塞同塊中其他語句的執(zhí)行。非阻塞式(non-blocking)的操作符為 “ = ”,它的執(zhí)行更像并行電路,使描述電路更自然。阻塞賦值與非阻塞賦值是 程序設(shè)計(jì)的難點(diǎn),它們既有共同點(diǎn),也有差異,深入剖析其異同,對于硬件程序的開發(fā)具有重大意義。

    本文引用地址:http://www.czjhyjcfj.com/article/187349.htm

      1 事件處理機(jī)制

      層積事件列(The Stratified Event Queue)是一個事件管理概念模型,而非硬件邏輯。模型內(nèi)事件的具體實(shí)現(xiàn)與EDA軟件生產(chǎn)商的算法策略有關(guān)。在IEEE-2001中,Verilog把事件分為5個不同部分,按照時間順序如圖1所示。

      

      觸發(fā)的任何事件可以加入到這5個事件列中的任何事件列中,但只能從活躍事件列中移出。即上面的5個事件列中的事件最后都將被激活而放入活躍事件列中。層積事件列是層次模型,層積事件列的執(zhí)行順序是按優(yōu)先級排列的。任何EDA軟件都只能執(zhí)行活躍事件。其他事件列都按優(yōu)先級級別依次激活本列事件以供執(zhí)行。

      1.1 活躍事件列

      由圖1可見,大部分事件都被放入活躍事件列。活躍事件列里包括非阻塞賦值RHS估值。但是,非阻塞賦值的更新不是在活躍事件列,它被列成獨(dú)立的非阻塞更新事件列。活躍事件列是仿真的執(zhí)行源,從一開始執(zhí)行活躍事件列到活躍事件列執(zhí)行完畢稱為一個仿真周期。活躍事件列中的事件可以觸發(fā)活躍或非活躍等其他事件。當(dāng)活躍事件列中的所有事件執(zhí)行完后,EDA軟件會按優(yōu)先級依次觸發(fā)其余事件列以供仿真執(zhí)行。但在當(dāng)前活躍事件列中的事件執(zhí)行順序是不確定的。

      1.2 非活躍事件列

      發(fā)生在當(dāng)前仿真時間里并且在活躍事件列執(zhí)行完后執(zhí)行的事件列,即非活躍事件列執(zhí)行優(yōu)先級僅次于活躍事件列。如帶PLI例程的回調(diào)過程(tf_synchronize()、vpi_register_cb(cb_readwrite))。非活躍事件列中的事件亦可以觸發(fā)其他事件。如果觸發(fā)了優(yōu)先級更高的活躍事件,非活躍事件列中的其余事件執(zhí)行后移。

      1.3 非阻塞賦值更新事件列

      活躍事件列中的每個非阻塞賦值RHS估值,都會觸發(fā)一個與之對應(yīng)的非阻塞賦值更新事件,這些事件被放在非阻塞賦值更新事件列中,執(zhí)行優(yōu)先級次于活躍與非活躍事件列。非阻塞賦值更新事件亦可以觸發(fā)其他事件。若在非阻塞賦值更新事件列中,存在多個對同一變量的先后賦值,只有最后一個有效,其余值將被覆蓋。

      1.4 監(jiān)控事件列

      監(jiān)控事件列被放在非阻塞賦值更新事件列后。由此可見,用監(jiān)控事件列中的監(jiān)控命令監(jiān)控得到的值都是賦值后的值,活躍事件列$display系統(tǒng)命令則可以查看非阻塞更新前的值。

      1.5 未來事件列

      在執(zhí)行事件時,如果事件含有延時,為不阻礙仿真的繼續(xù)執(zhí)行,該事件將被掛起而放入未來事件列。未來事件包含未來非活躍事件和未來非阻塞賦值更新事件。

      理解阻塞與非阻塞賦值就需要深入理解層積事件列,層積事件列反應(yīng)了Verilog事件處理機(jī)制。

     


    上一頁 1 2 下一頁

    關(guān)鍵詞: Verilog HDL 阻塞屬性

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 澜沧| 承德县| 吉木萨尔县| 乌鲁木齐市| 嵩明县| 绥德县| 贺州市| 望城县| 环江| 砀山县| 宜良县| 利辛县| 莱州市| 云安县| 电白县| 岐山县| 望谟县| 改则县| 青河县| 呈贡县| 六枝特区| 日喀则市| 房山区| 新郑市| 延川县| 连城县| 马尔康县| 当阳市| 门源| 昌邑市| 临澧县| 比如县| 泸定县| 张家口市| 鹿泉市| 垫江县| 永德县| 井冈山市| 乐陵市| 阿坝县| 张家港市|