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

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

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

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

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

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-12-07 15:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


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

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

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

0aaaae96-7600-11ed-8abf-dac502259ad0.png

連續(xù)賦值語句(布爾表達(dá)式)

連續(xù)賦值語句將表達(dá)式或操作結(jié)果驅(qū)動(dòng)到網(wǎng)絡(luò)或變量上,顯式連續(xù)賦值語句是以assign關(guān)鍵字開始的語句。連續(xù)賦值語句的一個(gè)簡(jiǎn)單示例:

0ade14b6-7600-11ed-8abf-dac502259ad0.png

賦值的左邊,即上面的sum;在上面的例子中,每當(dāng)右邊的值發(fā)生任何變化時(shí),即在上面的例子中a或b發(fā)生變化時(shí),sum就會(huì)更新。每當(dāng)右邊發(fā)生變化時(shí),左邊的這種持續(xù)更新行為就是組合邏輯行為的模型。

連續(xù)賦值語句允許在右側(cè)發(fā)生更改和左側(cè)更新之間指定傳播延遲。然而,綜合編譯器預(yù)期RTL模型為零延遲,并且會(huì)忽略連續(xù)賦值語句中的延遲。這可能會(huì)導(dǎo)致經(jīng)過延遲驗(yàn)證的設(shè)計(jì)與忽略延遲的綜合實(shí)現(xiàn)之間不匹配。本系列文章只展示零延遲示例。

左側(cè)類型。連續(xù)賦值語句的左側(cè)可以是標(biāo)量(1位)或向量,也可以是變量類型,也可以是用戶定義的類型。左側(cè)不能是未壓縮的的結(jié)構(gòu)體或未壓縮的數(shù)組。

在連續(xù)賦值語句的左側(cè)使用網(wǎng)絡(luò)或變量之間有一個(gè)重要區(qū)別:

  • 網(wǎng)絡(luò)類型(如wire或tri)可以由多個(gè)源驅(qū)動(dòng),包括多個(gè)連續(xù)分配、多個(gè)模塊或基本實(shí)例的輸出或輸入端口連接,或驅(qū)動(dòng)的任意組合。

  • 變量類型(如var或int)只能從單個(gè)源分配一個(gè)值,可以是:?jiǎn)蝹€(gè)輸入端口、單個(gè)連續(xù)賦值語句或任意數(shù)量的過程賦值(多個(gè)過程賦值被視為單個(gè)源;綜合器要求多個(gè)過程賦值在同一個(gè)過程中)。

請(qǐng)注意,logic關(guān)鍵字推斷出一種數(shù)據(jù)類型,但其本身不是網(wǎng)絡(luò)或變量類型。當(dāng)logic本身被使用時(shí),一個(gè)變量被推斷出來,并附帶單個(gè)源賦值限制)。當(dāng)使用logic關(guān)鍵字聲明輸出模塊端口時(shí),也會(huì)推斷出一個(gè)變量。當(dāng)使用logic關(guān)鍵字聲明輸入或inout模塊端口時(shí),將推斷出具有多個(gè)驅(qū)動(dòng)程序功能的wire類型。

最佳實(shí)踐指南7-1
在連續(xù)賦值的左側(cè)使用變量,為防止無意中出現(xiàn)多個(gè)驅(qū)動(dòng),只有打算讓一個(gè)信號(hào)有多個(gè)驅(qū)動(dòng)時(shí),才在左側(cè)使用wire或tri。

僅當(dāng)需要多個(gè)驅(qū)動(dòng)時(shí)使用網(wǎng)絡(luò)類型(如wire或tri),例如共享總線、三態(tài)總線或inout雙向模塊端口。

對(duì)于RTL建模,語義規(guī)則的一個(gè)重要優(yōu)點(diǎn)是變量只能有一個(gè)來源。ASICFPGA設(shè)備中的大多數(shù)信號(hào)大多數(shù)為單源邏輯,但三態(tài)總線和雙向端口除外。變量的單源限制有助于防止無意中的編碼錯(cuò)誤,如果對(duì)具有變量類型的同一信號(hào)進(jìn)行多個(gè)連續(xù)賦值語句或連接,則多源編碼錯(cuò)誤將在仿真和綜合中報(bào)告為編譯或布線錯(cuò)誤。

向量寬度不匹配。連續(xù)賦值語句的左側(cè)可以是與右側(cè)的信號(hào)或表達(dá)式結(jié)果不同寬度的向量大小。出現(xiàn)這種情況時(shí),SystemVerilog會(huì)自動(dòng)調(diào)整右側(cè)的向量寬度,以匹配左側(cè)的大小。如果右側(cè)的向量寬度大于左側(cè),則右側(cè)的最高有效位將被截?cái)酁樽髠?cè)的大小。如果右側(cè)是較小的向量寬度大小,則右側(cè)值將向左擴(kuò)展到左側(cè)的大小。如果表達(dá)式或運(yùn)算結(jié)果是無符號(hào)的,則左擴(kuò)展將用0擴(kuò)展。如果右側(cè)表達(dá)式或運(yùn)算結(jié)果是有符號(hào)的,則將使用符號(hào)擴(kuò)展。

最佳實(shí)踐指南7-2
確保連續(xù)賦值語句和程序賦值的兩側(cè)向量寬度相同。避免左側(cè)向量大小和右側(cè)向量大小不匹配 。

在一些特例的情況下,賦值的右側(cè)和左側(cè)有不同大小的向量。這方面的一個(gè)例子是變量旋轉(zhuǎn)操作(variable rotate operation)前面有介紹過,可以查看之前的文章。

顯式和隱式推斷的連續(xù)賦值語句

連續(xù)賦值語句有兩種形式:顯式連續(xù)賦值語句和隱式連續(xù)賦值語句。顯式連續(xù)賦值語句是用assign關(guān)鍵字聲明的,如前面的代碼段和示例所示。這種形式的連續(xù)賦值語句既可以賦值給網(wǎng)絡(luò)類型,也可以賦值給變量類型。隱式連續(xù)賦值語句將網(wǎng)絡(luò)類型的聲明與連續(xù)賦值語句相結(jié)合。即使未使用assign關(guān)鍵字,這種形式的連續(xù)性質(zhì)也是可以推斷出來的。

推斷網(wǎng)絡(luò)聲明賦值示例如下:

0af413c4-7600-11ed-8abf-dac502259ad0.png

請(qǐng)注意,推斷網(wǎng)絡(luò)聲明賦值語句與變量初始化語句不同,例如:

0b1041ca-7600-11ed-8abf-dac502259ad0.png

變量初始化只執(zhí)行一次,而推斷網(wǎng)絡(luò)聲明賦值是一個(gè)過程,每當(dāng)右側(cè)表達(dá)式上的值發(fā)生變化時(shí),就會(huì)更新左側(cè)網(wǎng)絡(luò)。推斷網(wǎng)絡(luò)聲明賦值語句是可綜合的。

多次連續(xù)賦值語句

一個(gè)模塊可以包含任意數(shù)量的連續(xù)賦值語句。每個(gè)連續(xù)賦值語句都是一個(gè)單獨(dú)的過程,與其他連續(xù)賦值語句并行運(yùn)行。所有連續(xù)賦值語句從仿真時(shí)間零點(diǎn)開始計(jì)算右側(cè)運(yùn)算,并運(yùn)行到仿真結(jié)束。

一個(gè)模塊中的多個(gè)過程分配可用于表示數(shù)據(jù)流行為,其中功能是用布爾方程建模的,布爾方程使用SystemVerilog操作符產(chǎn)生輸出,而不是使用過程編程語句。在RTL模型中,數(shù)據(jù)流賦值表示數(shù)據(jù)在寄存器之間流動(dòng)的組合邏輯。

下面的示例使用連續(xù)賦值語句來仿真通過加法器、乘法器和減法器的數(shù)據(jù)流。該數(shù)據(jù)流的結(jié)果在時(shí)鐘每個(gè)正邊緣被存儲(chǔ)在寄存器中:

示例7-1:帶寄存器輸出的加、乘、減數(shù)據(jù)流處理
//`begin_keywords"1800-2012"//useSystemVerilog-2012keywords
moduledataflow
#(parameterN=4)//bussize
(inputlogicclk,//scalarinput
inputlogic[N-1:0]a,b,c,//scalableinputsize
inputlogic[1:0]factor,//fixedinputsize
outputlogic[N-1:0]out//scalableoutputsize
);
timeunit1ns;timeprecision1ns;

logic[N-1:0]sum,diff,prod;

assignsum=a+b;
assigndiff=prod-c;
assignprod=sum*factor;

always@(posedgeclk)
out<=?diff;

endmodule:?dataflow
//`end_keywords

因?yàn)槟K中的多個(gè)連續(xù)賦值語句并行運(yùn)行,所以RTL源代碼中賦值的順序沒有區(qū)別。這可以通過比較示例7-1中連續(xù)賦值語句的順序和圖7-1所示的綜合結(jié)果中的數(shù)據(jù)流順序看出來。RTL代碼按加法、減法、乘法的順序列出賦值語句,但操作的數(shù)據(jù)流是加法、乘法、減法。

0b1f3be4-7600-11ed-8abf-dac502259ad0.png
圖7-1:示例7-1的綜合結(jié)果

同時(shí)使用連續(xù)賦值語句和always程序

一個(gè)模塊可以包含連續(xù)賦值語句和always程序的組合。

下面的簡(jiǎn)單示例演示了一個(gè)帶有雙向數(shù)據(jù)總線的靜態(tài)RAM。當(dāng)從RAM讀取數(shù)據(jù)時(shí),數(shù)據(jù)總線作為輸出端口被驅(qū)動(dòng)——當(dāng)不被讀取時(shí),數(shù)據(jù)總線被分配高阻態(tài),以便其他設(shè)備可以驅(qū)動(dòng)該總線,連續(xù)賦值語句用于仿真輸出功能,以及always程序用于仿真輸入功能(方便在時(shí)鐘上升沿觸發(fā))。

0b5a5b48-7600-11ed-8abf-dac502259ad0.png

數(shù)據(jù)總線是一個(gè)雙向inout端口,必須是網(wǎng)絡(luò)類型,如wire或tri,才能有多個(gè)驅(qū)動(dòng)源。當(dāng)數(shù)據(jù)總線是RAM的輸出時(shí),它可以由RAM驅(qū)動(dòng),當(dāng)數(shù)據(jù)總線是RAM的輸入時(shí),它可以由其他模塊驅(qū)動(dòng)。只有連續(xù)賦值語句才能分配給網(wǎng)絡(luò)數(shù)據(jù)類型。

每個(gè)連續(xù)賦值語句和每個(gè)always程序都是一個(gè)單獨(dú)的并行過程,從仿真時(shí)間零點(diǎn)開始,在整個(gè)仿真過程中運(yùn)行。模塊中連續(xù)賦值語句和always程序的順序并不重要,因?yàn)檫@些程序是并行運(yùn)行的。

審核編輯 :李倩



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

    關(guān)注

    8

    文章

    957

    瀏覽量

    45462
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4421

    瀏覽量

    67822
  • 數(shù)據(jù)總線
    +關(guān)注

    關(guān)注

    2

    文章

    66

    瀏覽量

    18323

原文標(biāo)題:數(shù)字硬件建模SystemVerilog-組合邏輯建模(1)連續(xù)賦值語句

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    【分享】告別盲目建模!Simcenter Simlab PCB建模的6大高效策略,助您事半功倍!

    。如何在保留關(guān)鍵物理特性的前提下,實(shí)現(xiàn)大規(guī)模數(shù)組的快速運(yùn)算。從傳統(tǒng)的均質(zhì)化材料到精細(xì)的3D細(xì)節(jié)建模,選擇合適的建模策略(ModelingStrategy)不僅關(guān)乎精
    的頭像 發(fā)表于 04-02 10:21 ?137次閱讀
    【分享】告別盲目<b class='flag-5'>建模</b>!Simcenter Simlab PCB<b class='flag-5'>建模</b>的6大高效策略,助您事半功倍!

    知識(shí)分享 | 如何通過建模規(guī)范輕松掌控Stateflow開發(fā)

    Stateflow為用戶提供了強(qiáng)大的建模功能,但如果使用不當(dāng),也可能帶來風(fēng)險(xiǎn)。通過使用MXAM,遵循這些最佳實(shí)踐,可以構(gòu)建穩(wěn)健、高效且易于維護(hù)的Stateflow模型,并實(shí)現(xiàn)與Simulink和TargetLink的無縫集成。
    的頭像 發(fā)表于 03-26 14:27 ?1319次閱讀
    知識(shí)分享 | 如何通過<b class='flag-5'>建模</b>規(guī)范輕松掌控Stateflow開發(fā)

    VirtualLab:泰伯效應(yīng)的建模

    VirtualLab:泰伯效應(yīng)的建模
    的頭像 發(fā)表于 03-18 16:59 ?110次閱讀
    VirtualLab:泰伯效應(yīng)的<b class='flag-5'>建模</b>

    【產(chǎn)品介紹】Altair HyperMesh有限元建模和分析軟件

    有限元建模預(yù)處理和后處理功能。在AI增強(qiáng)的3D建模和可視化工具、下一代設(shè)計(jì)和優(yōu)化工作流以及開放、可編程、用戶友好的界面的支持下,HyperMesh使用戶能夠輕松管理
    的頭像 發(fā)表于 01-06 17:56 ?1348次閱讀
    【產(chǎn)品介紹】Altair HyperMesh有限元<b class='flag-5'>建模</b>和分析軟件

    技術(shù)資訊 I 多板系統(tǒng) 3D 建模,提升設(shè)計(jì)精度和性能

    本文要點(diǎn)了解3D建模流程。洞悉多板系統(tǒng)3D建模如何提高設(shè)計(jì)精度、性能和成本效益。掌握3D建模在制造工藝中的優(yōu)勢(shì)。在PCBA領(lǐng)域,仿真與建模是實(shí)現(xiàn)精準(zhǔn)高效設(shè)計(jì)的基石。在量產(chǎn)前構(gòu)建并復(fù)用原
    的頭像 發(fā)表于 11-21 17:45 ?2642次閱讀
    技術(shù)資訊 I 多板系統(tǒng) 3D <b class='flag-5'>建模</b>,提升設(shè)計(jì)精度和性能

    SOLIDWORKS 2025有效的建模與仿真功能

    ,SOLIDWORKS 2025再次以其在建模與仿真功能方面的顯著進(jìn)步,為工程設(shè)計(jì)領(lǐng)域樹立了新的標(biāo)桿。本文將深入探討SOLIDWORKS 2025在建模與仿真功能方面的創(chuàng)新之處,以及這些功能如何助力設(shè)計(jì)師提升設(shè)計(jì)效率、優(yōu)化產(chǎn)品性能。
    的頭像 發(fā)表于 11-05 10:18 ?1364次閱讀
    SOLIDWORKS 2025有效的<b class='flag-5'>建模</b>與仿真功能

    如何利用三維建模加速FCB-CR8530的定制化開發(fā)?案例與工具詳解

    領(lǐng)域。然而,傳統(tǒng)開發(fā)流程中,硬件設(shè)計(jì)、結(jié)構(gòu)驗(yàn)證與軟件調(diào)試往往需要多次迭代,導(dǎo)致周期長、成本高。三維建模技術(shù)的引入,為FCB-CR8530的定制化開發(fā)提供了全新路徑,通過數(shù)字化仿真與快速驗(yàn)證,顯著提升了開發(fā)效率。 一、三維
    的頭像 發(fā)表于 07-22 16:14 ?705次閱讀

    VirtualLab Fusion應(yīng)用:多反射系統(tǒng)的非序列建模

    可以在面臨此類任務(wù)時(shí)成為一個(gè)巨大的優(yōu)勢(shì)。 建模和設(shè)計(jì)軟件VirtualLab Fusion正是通過其手動(dòng)通道配置模式提供了這優(yōu)勢(shì),在該模式中,所謂的“光路查找器”對(duì)光在非連續(xù)系統(tǒng)中遵循的路徑進(jìn)行初步分析
    發(fā)表于 06-12 08:49

    VirtualLab Fusion應(yīng)用:Herriott池的建模

    。Herriott單元是這種系統(tǒng)的一個(gè)例子,其特點(diǎn)是使用兩個(gè)球面反射鏡,在其中一個(gè)球面反射鏡上鉆一個(gè)離軸孔,以允許光束進(jìn)出。鏡子的曲率改變了光束的方向并控制了它的發(fā)散。在此用例中,我們用光學(xué)建模和設(shè)計(jì)軟件
    發(fā)表于 06-11 08:52

    利用MATLAB對(duì)交流電機(jī)調(diào)速系統(tǒng)進(jìn)行建模和仿真

    是借助計(jì)算機(jī)及相關(guān)技術(shù),對(duì)真實(shí)系統(tǒng)的運(yùn)行過程和狀態(tài)進(jìn)行數(shù)字化模擬的技術(shù)。Simulink作為MATLAB的一個(gè)組件,能夠?qū)崿F(xiàn)對(duì)動(dòng)態(tài)系統(tǒng)的建模、仿真和綜合分析。本文在Simulink環(huán)境中建立面向電氣
    發(fā)表于 06-06 14:31

    Techwiz LCD 2D應(yīng)用:二維LC透鏡建模分析

    Techwiz LCD 2D新的Lens掩膜結(jié)構(gòu) 1. 摘要 Techwiz LCD 2D新增Lens掩膜結(jié)構(gòu),可以方便快捷的對(duì)LC 透鏡進(jìn)行建模分析。LC透鏡由于體積小、焦距可變等優(yōu)點(diǎn),被認(rèn)為是
    發(fā)表于 05-30 08:47

    SOLIDWORKS建模秘籍——必學(xué)的五個(gè)草圖與建模技巧

    SOLIDWORKS作為一款功能強(qiáng)大的三維CAD軟件,廣泛應(yīng)用于各種設(shè)計(jì)和產(chǎn)品開發(fā)領(lǐng)域。掌握SOLIDWORKS的草圖與建模技巧,能夠顯著提升設(shè)計(jì)效率,減少錯(cuò)誤,并快速將創(chuàng)意轉(zhuǎn)化為現(xiàn)實(shí)。以下是五個(gè)必學(xué)的SOLIDWORKS草圖與建模技巧,幫助你成為設(shè)計(jì)高手。
    的頭像 發(fā)表于 05-26 13:17 ?1440次閱讀
    SOLIDWORKS<b class='flag-5'>建模</b>秘籍——必學(xué)的五個(gè)草圖與<b class='flag-5'>建模</b>技巧

    索尼FCB-ER8530:三維建模與視覺感知的跨界融合

    數(shù)字化浪潮中,三維建模技術(shù)正重塑工業(yè)設(shè)計(jì)、文化遺產(chǎn)保護(hù)與智慧城市管理等領(lǐng)域,而索尼FCB-ER8530一體化攝像機(jī)模組憑借其4K超高清成像與智能感知能力,成為這一進(jìn)程中的關(guān)鍵硬件支撐。 三維
    的頭像 發(fā)表于 05-19 17:30 ?730次閱讀

    車用鋰離子電池機(jī)理建模與并聯(lián)模組不一致性研究

    車用鋰離子電池機(jī)理建模與并聯(lián)模組不一致性研究
    發(fā)表于 05-16 21:02

    VirtualLab應(yīng)用:傅科刀口測(cè)試的建模

    。 建模任務(wù) 系統(tǒng)構(gòu)建模塊——拋物面鏡 系統(tǒng)構(gòu)建模塊 – 球面鏡 系統(tǒng)構(gòu)建塊 – 光闌 系統(tǒng)構(gòu)建模塊——理想準(zhǔn)直透鏡 系統(tǒng)中應(yīng)用了理想化的透鏡功能,以確保刀口后視場(chǎng)的準(zhǔn)直。
    發(fā)表于 04-26 10:37