色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

探討always和always_ff的編碼風格

OpenFPGA ? 來源:OpenFPGA ? 2023-02-03 10:24 ? 次閱讀

數字門級電路可分為兩大類:組合邏輯和時序邏輯。鎖存器是組合邏輯和時序邏輯的一個交叉點,在后面會作為單獨的主題處理。

組合邏輯描述了門級電路,其中邏輯塊的輸出直接反映到該塊的輸入值的組合,例如,雙輸入AND門的輸出是兩個輸入的邏輯與。如果輸入值發生變化,輸出值將反映這一變化,組合邏輯的RTL模型需要反映這種門級行為,這意味著邏輯塊的輸出必須始終反映該邏輯塊當前輸入值的組合。

SystemVerilog有三種在可綜合RTL級別表示組合邏輯的方法:連續賦值語句、always程序塊和函數。接下來幾篇文章將探討每種編碼風格,并推薦最佳實踐編碼風格。

always和always_ff

通用的always程序可以用來為任何類型的邏輯建模,包括組合邏輯、時序邏輯(觸發器)和電平感應的時序邏輯(鎖存器)。為了讓通用的always程序對觸發器行為進行建模,always關鍵字后面必須緊跟一個敏感度列表,指定時鐘信號的posedge或negedge,如:。

b68a7e2c-a30e-11ed-bfe3-dac502259ad0.png

盡管這個例子在功能上是準確的,但是通用的always程序并不要求也不強制執行前面一節中列出的任何綜合要求。下一個例子在語法上是合法的,但是不可綜合。

b6a33958-a30e-11ed-bfe3-dac502259ad0.png

這個例子可以在仿真中編譯和運行,沒有任何警告或錯誤提示,但是綜合編譯器在試圖編譯這個例子時,會報告一個錯誤。它不符合要求,即除了時鐘和異步置位或復位的邊沿之外,其他信號都不能包含在靈敏度列表中。對RTL仿真的仔細驗證會發現,即使在沒有發生時鐘觸發的情況下,觸發器的狀態也會在每次enable改變值時更新其內部存儲。門級的觸發器沒有這個功能。

always_ff過程也需要一個敏感度列表,指定一個時鐘的posedge或negedge,但是always_ff也執行上一節中列出的許多綜合要求。SystemVerilog標準要求所有軟件工具在以下情況下報告錯誤。

過程的主體包含#,wait,或者@時間控制延遲時,將阻止過程的執行,直到要求的仿真時間。

在程序中,有一個對任務的調用(因為任務可以包含延遲)。

任何其他存儲過程、連續賦值或輸入端口的賦值與always_ff存儲過程的變量相同。

IEEE標準還建議(但不要求)軟件工具檢查其他綜合限制,如不正確的靈敏度列表。設計工程工具,如綜合編譯器和lint檢查器(檢查編碼風格)執行這些可選的檢查,但大多數仿真器不對always_ff程序執行額外的檢查。這些錯誤和可選的額外檢查有助于確保具有時序邏輯的RTL模型既能正確仿真,又能正確綜合(仿真和綜合后功能相同)。

always_ff過程之后必須有一個符合綜合要求的敏感性列表。靈敏度列表不能像always_comb可以推斷靈敏度列表那樣從程序的主體中推斷出來。原因很簡單:時鐘信號在always_ff過程的主體中沒有命名。時鐘的名稱,以及時鐘的哪個邊沿觸發了存儲過程,必須由設計工程師在靈敏度列表中明確指定。

最佳實踐指南8-1
使用SystemVerilog always_ff RTL專用存儲過程來模擬RTL時序邏輯。請不要使用通用的always過程。

always_ff RTL專用程序強制執行上一篇文章中所要求的綜合風格,以正確模擬時序邏輯行為。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鎖存器
    +關注

    關注

    8

    文章

    906

    瀏覽量

    41550
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59849
  • Verilog語言
    +關注

    關注

    0

    文章

    113

    瀏覽量

    8277
  • 門級電路
    +關注

    關注

    0

    文章

    15

    瀏覽量

    1995

原文標題:數字硬件建模SystemVerilog-時序邏輯建模(2)always和always_ff

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是always on buffer?什么情況下需要插always on buffer?

    相比普通的buffer cell,always on buffer(AOB)有secondary always on pin,可以讓AOB即使在primary power off的情況下保持on的狀態;AOB在secondary pg pin off的情況下也是off的。
    的頭像 發表于 12-01 15:31 ?2736次閱讀
    什么是<b class='flag-5'>always</b> on buffer?什么情況下需要插<b class='flag-5'>always</b> on buffer?

    關于always語句的問題

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

    Verilog中always @*是什么意思

    Verilog中always @*是什么意思???
    發表于 09-27 16:27

    什么是AO/DI (Always On-line/Dynam

    什么是AO/DI (Always On-line/Dynamic ISDN)  英文縮寫: AO/DI (Always On-line/Dynamic ISDN) 中文譯名: 永遠在線/動態ISDN
    發表于 02-22 10:03 ?687次閱讀

    FPGA 開發經驗與技巧—無處不在的 ALWAYS@

    FLC1301T02 無處不在的Always@,希望對大家的學習有幫助!
    發表于 12-16 15:32 ?2次下載

    談談Always@_【FPGA助學系列—技巧篇】

    電子專業單片機相關知識學習教材資料——談談Always@
    發表于 08-08 17:03 ?0次下載

    initial和always兩者的關系分析

    兩者的關系 一個程序塊可以有多個initial和always過程塊。每個initial和always說明語句在仿真的一開始同時立即開始執行;initial語句只執行一次,而always語句則不斷重復
    的頭像 發表于 11-24 14:48 ?5770次閱讀

    你們知道always,assign和always@(*)之間的區別嗎

    1.always@后面內容是敏感變量,always@(*)里面的敏感變量為*,意思是說敏感變量由綜合器根據always里面的輸入變量自動添加,也就是所有變量都是敏感列表,不用自己考慮。2.如果沒有
    的頭像 發表于 06-27 11:47 ?1.5w次閱讀

    assign組合邏輯和always@(*)組合邏輯的區別

    1.always@后面內容是敏感變量,always@(*)里面的敏感變量為*,意思是說敏感變量由綜合器根據always里面的輸入變量自動添加,也就是所有變量都是敏感列表,不用自己考慮。
    的頭像 發表于 03-15 14:08 ?1w次閱讀

    數字硬件建模SystemVerilog篇OpenFPGA介紹

    專用的RTL程序。Always_ffalways_comb和always_latch專用always程序塊的行為與通用always程序塊相
    發表于 10-11 09:20 ?1466次閱讀

    SystemVerilog中的always語句塊

    always”關鍵字意味著這個語句塊“總是”一直執行。大多數時候“always”后面跟一個邊沿事件或者延遲。
    的頭像 發表于 12-06 09:47 ?2503次閱讀

    FPGA設計:always組合邏輯塊的講解和譯碼器的實現

    always 語句是重復執行的。always 語句塊從 0 時刻開始執行其中的行為語句;當執行完最后一條語句后,便再次執行語句塊中的第一條語句,如此循環反復。多用于仿真時鐘的產生,信號行為的檢測等。
    的頭像 發表于 05-12 14:42 ?4607次閱讀
    FPGA設計:<b class='flag-5'>always</b>組合邏輯塊的講解和譯碼器的實現

    always組合邏輯塊的講解和譯碼器的實現

    always 語句是重復執行的。always 語句塊從 0 時刻開始執行其中的行為語句;當執行完最后一條語句后,便再次執行語句塊中的第一條語句,如此循環反復。
    的頭像 發表于 05-22 15:13 ?3176次閱讀
    <b class='flag-5'>always</b>組合邏輯塊的講解和譯碼器的實現

    SystemVerilog相比于Verilog的優勢

    我們再從對可綜合代碼的支持角度看看SystemVerilog相比于Verilog的優勢。針對硬件設計,SystemVerilog引入了三種進程always_ffalways
    的頭像 發表于 10-26 10:05 ?1000次閱讀
    SystemVerilog相比于Verilog的優勢

    assign語句和always語句的用法

    Assign語句和Always語句是在硬件描述語言(HDL)中常用的兩種語句,用于對數字電路建模和設計。Assign語句用于連續賦值,而Always語句用于時序邏輯建模。本文將詳細探討這兩種語句
    的頭像 發表于 02-22 16:24 ?2644次閱讀
    主站蜘蛛池模板: 精品午夜视频| 亚洲AV无码一区二区三区牛牛 | 久热在线这里只有精品7| 妻子的秘密HD观看| 亚洲 日本 中文字幕 制服 | 无人区国产片| 孕交videosgratis乌克兰| www.97干| 果冻传媒在线播放| 欧美大片免费观看| 亚洲精品电影天堂网| 99手机在线视频| 国内精品免费视频精选在线观看| 免费看a毛片| 亚洲国产在线精品国 | 伊人大香线蕉精品在线播放| 扒开老师大腿猛进AAA片| 国内一级一级毛片a免费| 嫩草成人影院| 亚洲精品视频区| gayxxxxgay呻吟受日本| 国产在线亚洲v天堂a| 亲胸摸下面激烈免费网站| 一本大道熟女人妻中文字幕在线| 川师 最美老师| 久久草这在线观看免费| 受被三个攻各种道具PLAY| 88.7在线收听| 好紧的小嫩嫩17p| 日韩亚洲视频一区二区三区| 中文国产乱码在线人妻一区二区| 国产精品九九久久精品视| 女人一级毛片免费视频观看| 亚洲综合视频| 国产精品无码视频一区二区| 欧美性狂猛AAAAAA| 樱花草在线影视WWW日本动漫| 国产精品免费一区二区三区四区| 欧美老少欢杂交另类| 曰批视频免费40分钟不要钱| 国产精品永久免费|