chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

探討always和always_ff的編碼風(fēng)格

OpenFPGA ? 來源:OpenFPGA ? 2023-02-03 10:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

always和always_ff

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

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

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

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

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

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

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

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

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

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

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

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

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






審核編輯:劉清

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

    關(guān)注

    8

    文章

    926

    瀏覽量

    42403
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    389

    瀏覽量

    61133
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8555
  • 門級電路
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    2063

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

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

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

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

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

    Verilog中always @*是什么意思

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

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

    什么是AO/DI (Always On-line/Dynamic ISDN)  英文縮寫: AO/DI (Always On-line/Dynamic ISDN) 中文譯名: 永遠(yuǎn)在線/動態(tài)ISDN
    發(fā)表于 02-22 10:03 ?726次閱讀

    FPGA 開發(fā)經(jīng)驗與技巧—無處不在的 ALWAYS@

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

    談?wù)?b class='flag-5'>Always@_【FPGA助學(xué)系列—技巧篇】

    電子專業(yè)單片機相關(guān)知識學(xué)習(xí)教材資料——談?wù)?b class='flag-5'>Always@
    發(fā)表于 08-08 17:03 ?0次下載

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

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

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

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

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

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

    數(shù)字硬件建模SystemVerilog篇OpenFPGA介紹

    專用的RTL程序。Always_ff、always_comb和always_latch專用always程序塊的行為與通用always程序塊相
    發(fā)表于 10-11 09:20 ?1621次閱讀

    SystemVerilog中的always語句塊

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

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

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

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

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

    SystemVerilog相比于Verilog的優(yōu)勢

    我們再從對可綜合代碼的支持角度看看SystemVerilog相比于Verilog的優(yōu)勢。針對硬件設(shè)計,SystemVerilog引入了三種進程always_ff,always
    的頭像 發(fā)表于 10-26 10:05 ?1630次閱讀
    SystemVerilog相比于Verilog的優(yōu)勢

    assign語句和always語句的用法

    Assign語句和Always語句是在硬件描述語言(HDL)中常用的兩種語句,用于對數(shù)字電路建模和設(shè)計。Assign語句用于連續(xù)賦值,而Always語句用于時序邏輯建模。本文將詳細(xì)探討這兩種語句
    的頭像 發(fā)表于 02-22 16:24 ?3959次閱讀