国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

數字硬件建模SystemVerilog-網絡

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-05-09 09:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

數字硬件建模SystemVerilog(七)-網絡

System Verilog提供兩組通用的數據類型:網絡和變量(nets 和 variables)。網絡和變量同時具有類型和數據類型特性。類型表示信號為網絡或變量,數據類型表示網絡或變量的值系統,即2態或4態。為簡單起見,使用術語data type來表示信號的類型和數據類型。

軟件工具(如仿真器和綜合編譯器)使用數據類型來確定如何存儲數據和處理數據上的更改。數據類型影響操作,并在RTL建模中用于指示所需的硅行為。例如,數據類型用于確定加法器應基于整數還是基于浮點,以及應執行有符號算術還是無符號算術。

網絡類型

網絡用于將設計元素連接在一起,例如將一個模塊的輸出端口連接到另一個模塊的輸入端口。網絡在三個重要方面不同于變量:

  • 網絡沒有像變量一樣的臨時存儲,相反,網絡反映了網絡驅動器的當前值(電容性trireg網絡似乎存儲了一個值,但實際上代表了驅動網絡的電容器的行為),
  • 網絡可以計算多個驅動因素的結果值,其中變量只能有一個來源(如果對一個變量進行了多個程序賦值,則最后一個賦值是結果值,而不是解析所有賦值的結果)。
  • 網絡反映驅動器值(0、1、Z或X)和驅動器強度。

驅動器的強度級別以0~7的步長表示。每個級別由一個關鍵字表示。大多數建模構件的默認強度級別為“強”,即級別6。強度級別對于晶體管級建模很重要,但不用于RTL建模。強度的表示和使用超出了本文關于RTL建模的范圍。

可綜合網絡類型

通過同時指定類型和數據類型來聲明網絡。類型可以是表3-3和3-4中列出的任何關鍵字。數據類型必須是關鍵字logic,可以顯式指定或隱式推斷。

每個SystemVerilog網絡類型都有特定的語義規則,這些規則會影響多個驅動程序的解析方式。雖然所有網絡類型都表示硅行為,但并非所有網絡類型都可以用標準ASICFPGA技術表示。表3-3列出了ASIC和FPGA綜合編譯器支持的網絡類型。

表3-3:可綜合網絡類型
類型 代表
wire 使用CMOS行為解析多個驅動器的互連網絡
tri wire的同義詞在所有方面都相同,可用于強調預期具有三態值的網絡
Supply0 電源強度級別具有恒定邏輯0的互連網絡??捎糜诒硎窘拥剀墸℅ND、VSS)
Supply1 在電源強度級別具有恒定邏輯1的互連網絡??捎糜诒硎竟╇娷墸╒CC、VDD)

不可綜合的網絡類型。

SystemVeriIog有幾種網絡類型,綜合編譯器并不普遍支持這些類型,如表3-4(第77頁)所示。

表3-4:一般不可綜合的網絡類型
類型 代表
uwire 不允許或不解析多個驅動程序的互連網絡
pull0 一種互連網絡,具有將下拉電阻器連接到網絡的特性
Pull1 一種互連網絡,具有將上拉電阻器連接到該網絡的特性
wand 一種互連網絡,通過對驅動值進行AND運算來解析多個驅動程序
triand wand的同義詞,在所有方面都相同;可用于強調預期具有三態值的網絡
wor 一種互連網絡,通過對驅動值進行OR來解析多個驅動程序
trior wor的同義詞,在所有方面都相同;可用于強調預期具有三態值的網絡
trireg 具有電容性的互連網絡;如果所有驅動器均為高阻抗,則電容反映最后解析的驅動值
筆記

某些RTL綜合編譯器可能支持一種或多種網絡類型。最佳實踐編碼風格是不使用這些類型,以確保RTL模型與任何綜合編譯器兼容。如果使用其中一種類型,設計工程師應檢查項目中使用的所有工具是否支持該類型。

CMOS工藝建模。

大多數ASIC和FPGA器件采用CMOS技術實現。CMOS互連的行為用線和三網類型表示。wire類型是最常用的網絡類型,也是隱式推斷網絡時的默認網絡類型。

單驅動和多驅動邏輯。

ASIC和FPGA設計中的大多數互連網絡將單個驅動器連接到一個或多個接收器。例外是共享總線,其中多個驅動程序連接到一個或多個接收器。例如,RAM設備具有雙向數據總線,用于將值寫入RAM和從RAM讀取值。ASIC和FPGA設備通常具有一定數量的雙向I/O焊盤,用于讀取和驅動值。

最佳做法準則3-7

當設計意圖是具有單個驅動器功能時,使用邏輯數據類型將設計組件連接在一起。僅當設計意圖是允許多個驅動器時,才使用wire or tri類型。

將互連聲明為邏輯將推斷一個變量而不是網絡類型。變量只允許單個源(驅動程序)。

盡管大多數互連網絡僅具有一個驅動器;可綜合的網絡類型(如wire)允許多個驅動程序。工程師在使用網絡類型時需要小心避免編碼錯誤。網絡列表中的簡單錯誤可能會導致同一網絡無意中連接到多個驅動程序。在編譯和優化過程中不會捕獲這種類型的錯誤。該錯誤會導致在仿真過程中檢測到功能性錯誤。下面幾個規則可以避免一些錯誤:

  • 使用變量而不是網絡連接設計塊。SystemVerilog還允許使用變量將設計元素連接在一起。變量不允許多個驅動源。如果同一變量意外連接到多個驅動程序,則會發生綜合錯誤。

  • 將輸入端口聲明為變量類型而不是網絡類型。默認情況下,輸入和輸入輸出端口推斷為網絡類型,特別是wire類型,除非網絡類型指定了不同的網絡類型。如果多個驅動程序連接到同一輸入端口(或者一個值從模塊內被反向驅動到輸入端口),這種網絡類型的推斷可能導致難以檢測的建模錯誤。這些建模錯誤在SystemVerilog中是合法的,因為網絡類型允許多個驅動程序。

通過將輸入端口顯式聲明為var logic類型,可以防止輸入端口的意外多個驅動程序。變量不允許多個驅動源。在編譯和詳細闡述設計模塊時,意外的多個驅動程序將被報告為編碼錯誤。

  • 使用uwire防止多個驅動程序。uwire網絡類型還可用于防止輸入端口的多個無意驅動源。uwire類型作為1364-2005 Verilog標準的一部分添加到SystemVerilog中,特別是為了使無意中的多個驅動程序成為編譯/布線錯誤。輸入端口可以明確聲明為uwire類型,或者可以將默認網絡類型更改為uwire。uwire類型不允許多個驅動程序。在編譯和詳細說明設計模塊時,意外的多個驅動程序將被報告為編碼錯誤。
筆記

在編寫本文時,大多數綜合編譯器和一些仿真器尚未添加對uwire類型的支持,盡管它自2005年以來一直是Verilog/SystemVerilog標準的一部分。當需要多驅動器網絡時,本書中的示例使用wire或tri類型。

網絡定義規則

通過指定網絡類型和可選數據類型來定義網絡。數據類型必須是4態logic數據類型,或從4態logic數據類型派生的用戶定義類型,如果未明確指定數據類型,則隱式推斷logic數據類型。

所有網絡類型的默認大小都是標量(1位)??梢允褂门c變量相同的語法將網絡顯式聲明為任何大小的向量。但是,只有變量向量聲明可以劃分為子字段。向量不能劃分為子字段。

一些可綜合的網絡聲明示例如下:

91b8cbc4-cf30-11ec-bce3-dac502259ad0.png

默認情況下,所有網絡類型都是無符號的。網絡可以用與變量相同的方式顯式聲明為有符號或無符號。

網絡位和部分選擇??墒褂门c變量向量相同的語法從向量中選擇任何特定位或位組。常量和變量位和部分選擇都可以在網絡上執行。

隱式聲明

未聲明的信號將在多個上下文中推斷網絡類型:

  • 模塊input, inout or output,未明確聲明類型或數據類型,或從以前的端口聲明繼承
  • 顯式聲明logic or reg數據類型或從以前的端口聲明繼承的模塊input or inout端口
  • 與模塊實例或接口實例的端口或基本實例的終端的連接
  • 連續賦值語句的左側

默認情況下,推斷的隱式網絡類型為網絡wire類型。隱式網絡的向量大小基于本地上下文。如果網絡是從模塊端口聲明推斷出來的,那么隱式網絡的向量大小將是端口的大小。如果從與模塊、接口或例化實例的連接推斷網絡,則將推斷標量網絡。如果從連續賦值的左側推斷標量網絡,則也會推斷標量網絡。示例3-1說明了幾個隱式網絡聲明。

示例3-1:創建隱式網絡的未聲明標識符示例
91d26d0e-cf30-11ec-bce3-dac502259ad0.png

上面還涉及到dot-name 和 dot-star的使用,這將在后面介紹。

更改默認的隱式網絡類型??梢允褂镁幾g器指令:

'default_nettype

更改隱式網絡類型。每當推斷出隱式網絡時,在指令之后編譯的所有SystemVerilog代碼都將使用指定的網絡類型。'default_nettype必須在模塊或接口邊界之外指定。

示例3-2將隱式網絡類型定義為uwire(單驅動源)類型

示例3-2:更改隱式網絡的網絡類型
`default_nettypetri1//changedefaultforimplicitnets
//`default_nettypeuwire//changedefaultforimplicitnets
`begin_keywords"1800-2012"//useSystemVerilog-2012keywords
modulemixed_rtl_and_gate_adder
(inputa,//implicituwirenet,logicdatatype
inputlogicb,//implicituwirenet,logicdatatype
inputregci,//implicituwirenet,logicdatatype
outputsum,//implicituwirenet,logicdatatype
outputlogicco//implicitvariable,logicdatatype
);
timeunit1ns/1ns;

xorg1(n1,a,b);//undeclaredn1isimplicituwirenet
xorg2(sum,n1,ci);
andg3(n2,a,b);//undeclaredn2isimplicituwirenet

assignn3=n1&ci;//undeclaredn3isimplicituwirenet

always_combbegin
co=n2|n3;
end
endmodule:mixed_rtl_and_gate_adder
`end_keywords
`default_nettypewire//resetdefaultforimplicitnets

關閉隱式網絡聲明。

隱式網絡有優點也有缺點。大型、復雜的網絡表可能需要幾十個1位網絡來連接設計塊。顯式聲明這些多個網絡既繁瑣又耗時,顯式聲明大量互連網絡也可能需要大量的鍵入,并存在需要鍵入的錯誤風險。隱式網絡可以減少編寫網表模型所需的時間,并減少鍵入錯誤。

但是,隱式網絡的一個缺點是,與模塊、接口或例化實例的連接中拼寫錯誤的名稱不會被檢測為連接錯誤。不正確的名稱將推斷出一個隱式網絡,其結果是必須檢測、調試和糾正的功能性錯誤。另一個缺點是,從實例連接推斷出的網絡將是一個1位網絡,而不管該網絡連接到的端口大小如何。連接大小不匹配將導致警告消息,但仿真或綜合仍將繼續。端口大小不匹配還可能導致必須檢測和糾正的功能缺陷。

隱式net與顯式聲明net的優缺點是Verilog和SystemVerilog工程師經常爭論的話題。這實際上是用戶偏好的問題。這兩種編碼風格都很好地工作,并且兩種風格都有優點和缺點。

對于喜歡顯式聲明所有網絡的工程師或公司,SystemVerilog提供了一種禁用隱式網絡的方法。這就要求顯式聲明所有網絡,禁用隱式網絡是通過設置編譯器指令來完成的:

91ef9834-cf30-11ec-bce3-dac502259ad0.png

此編譯器指令必須在模塊外部設置,并對編譯到同一編譯單元的所有后續模塊保持有效,或者直到遇到另一個'default_nettype指令。

使用隱式網絡或禁用隱式網絡通常是個人偏好,有時也是公司內部的編碼準則。本書中的示例假設啟用了隱式網絡,默認隱式網絡類型為wire。

筆記

“default_nettype”指令可以影響多個文件。編譯器指令在編譯單元中是準全局的。當在同一編譯單元中編譯多個文件時,編譯器指令對遇到該指令之前編譯的任何文件沒有影響,但會影響遇到該指令之后編譯的所有文件。

最佳做法準則3-8

如果更改了默認網絡類型,請始終將’default_nettype”用作一對指令,第一個指令將默認設置為所需的網絡類型,第二個指令將默認設置回wire。

在任何更改默認值的模塊之后,將默認網絡類型設置回wire,將防止意外的副作用影響到其他預期默認wire的文件。

網絡分配和連接規則

給網絡賦值。網絡可以從兩種類型的源接收值:作為output or inout port端口的連接,以及作為連續賦值(assign語句)的左側。不能在程序賦值的左側使用網絡。

在整個仿真過程中對連續賦值進行求值,賦值右側的任何更改都會導致對右側表達式進行求值,并更新左側表達式。左側可以是變量或網絡。網絡的連續賦值可以是顯式的,也可以是隱式的。顯式連續賦值以關鍵字assign開始。

9208610c-cf30-11ec-bce3-dac502259ad0.png

隱式連續賦值結合了網絡聲明和對該網絡的賦值。組合中未使用assign關鍵字。

9225957e-cf30-11ec-bce3-dac502259ad0.png

注意不要混淆內嵌變量初始化和隱式連續賦值。

92441332-cf30-11ec-bce3-dac502259ad0.png

這兩個構造的語法可能看起來很相似,但行為卻截然不同。在線變量初始化是一次評估和賦值,在前面的示例中,如果a或b的值在以后的仿真中發生變化,則不會更新變量。隱式連續賦值,顧名思義,是在整個仿真過程中不斷求值的表達式。在前面的示例中,每次仿真期間a或b的值發生變化時,n1都會更新。

連接大小不匹配。網絡用于將設計塊連接在一起,例如將一個模塊的輸出端口連接到一個或多個其他模塊的輸入端口。通常,端口和互連網絡的向量寬度相同,但SystemVerilog允許向量大小不同。例如16位標量網絡可以將32位寬的輸出端口連接到8位寬的輸入端口。這種尺寸不匹配可能是設計錯誤,但在SystemVerilog中,只會生成警告。

SystemVerilog語言具有解決端口/連接不匹配的規則:

  • port的比特數少于連接到的網絡或變量-值的最左邊的比特被截斷,導致值的最重要比特丟失。
  • 一個端口的比特數大于連接到它的網絡或變量的比特數-網絡或變量的值保持擴展狀態,如果端口、網絡/變量中有一個無符號,則該值為零擴展。如果端口和網絡/變量都有符號,則該值為有符號。

仿真器和綜合編譯器將生成連接大小不匹配的警告消息。這些警告不容忽視!連接不匹配通常是需要糾正的設計錯誤。

審核編輯 :李倩


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

    關注

    54

    文章

    9082

    瀏覽量

    155498
  • 編譯器
    +關注

    關注

    1

    文章

    1672

    瀏覽量

    51597
  • 變量
    +關注

    關注

    0

    文章

    616

    瀏覽量

    29505

原文標題:SystemVerilog(七)-網絡

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    SD-WAN 網絡設計核心解析:從硬件到組網的全維度構建

    重構企業網絡架構的核心技術。SD-WAN的網絡設計并非單一技術的應用,而是涵蓋邊緣硬件、隧道技術、組網拓撲的全維度體系搭建,其設計的科學性直接決定了企業網絡的可靠性、擴展
    的頭像 發表于 02-25 13:39 ?380次閱讀
    SD-WAN <b class='flag-5'>網絡</b>設計核心解析:從<b class='flag-5'>硬件</b>到組網的全維度構建

    6組網口讓龍芯主板成為防護網絡安全的核心硬件

    數字化浪潮下,網絡安全的重視持續升級,數據泄露、系統入侵等已成為企業發展的攔路虎。在網絡安全防護體系中,硬件是筑牢防線的基礎,而一款具備高性能、高可靠性的主板,更是核心中的核心。
    的頭像 發表于 01-16 09:54 ?113次閱讀
    6組網口讓龍芯主板成為防護<b class='flag-5'>網絡</b>安全的核心<b class='flag-5'>硬件</b>

    探索 AURIX? 音頻應用套件:硬件設計與網絡音頻應用剖析

    探索 AURIX? 音頻應用套件:硬件設計與網絡音頻應用剖析 引言 在當今的音頻技術領域,開發一套高效且多功能的音頻應用套件至關重要。Infineon Technologies AG 推出
    的頭像 發表于 12-21 09:25 ?682次閱讀

    網絡接口:數字世界的“門鈴”,你了解多少?

    一個關鍵組件——網絡接口。它就像是數字世界的“門鈴”,負責接收和發送信息。作為蘇州沃虎科技的銷售人員,我經常向客戶講解網絡接口的重要性,今天也和大家分享這方面的知識。 什么是網絡接口?
    發表于 11-26 18:53

    NPB 2.0:網絡可視化告別“專用硬件”?

    傳統的基于專用硬件的實現方案,例如使用TAP交換機/分流器等采集設備,其初期購置和維護成本顯而易見,并且隨著網絡規模的擴大,采購和運維費用都將繼續增長。NPB 2.0是基于 SONiC 的開放網絡技術棧的前沿實踐。
    的頭像 發表于 11-24 16:45 ?1594次閱讀
    NPB 2.0:<b class='flag-5'>網絡</b>可視化告別“專用<b class='flag-5'>硬件</b>”?

    企業如何用SD-WAN節省50%網絡成本?揭秘數字化轉型的網絡新基建

    #企業如何用SD-WAN節省50%網絡成本?揭秘數字化轉型的網絡新基建>一條軟件定義的網絡高速公路,正在為成千上萬企業開辟數字化轉型的快車道
    的頭像 發表于 08-13 10:32 ?1697次閱讀
    企業如何用SD-WAN節省50%<b class='flag-5'>網絡</b>成本?揭秘<b class='flag-5'>數字</b>化轉型的<b class='flag-5'>網絡</b>新基建

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

    領域。然而,傳統開發流程中,硬件設計、結構驗證與軟件調試往往需要多次迭代,導致周期長、成本高。三維建模技術的引入,為FCB-CR8530的定制化開發提供了全新路徑,通過數字化仿真與快速驗證,顯著提升了開發效率。 一、三維
    的頭像 發表于 07-22 16:14 ?593次閱讀

    繞組開放型永磁同步電機的建模及應用

    :繞組開放型永磁同步電機的建模及應用.pdf【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內容!
    發表于 06-12 13:52

    VirtualLab Fusion應用:Herriott池的建模

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

    利用MATLAB對交流電機調速系統進行建模和仿真

    是借助計算機及相關技術,對真實系統的運行過程和狀態進行數字化模擬的技術。Simulink作為MATLAB的一個組件,能夠實現對動態系統的建模、仿真和綜合分析。本文在Simulink環境中建立面向電氣
    發表于 06-06 14:31

    SOLIDWORKS建模秘籍——必學的五個草圖與建模技巧

    SOLIDWORKS作為一款功能強大的三維CAD軟件,廣泛應用于各種設計和產品開發領域。掌握SOLIDWORKS的草圖與建模技巧,能夠顯著提升設計效率,減少錯誤,并快速將創意轉化為現實。以下是五個必學的SOLIDWORKS草圖與建模技巧,幫助你成為設計高手。
    的頭像 發表于 05-26 13:17 ?1174次閱讀
    SOLIDWORKS<b class='flag-5'>建模</b>秘籍——必學的五個草圖與<b class='flag-5'>建模</b>技巧

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

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

    VirtualLab應用:傅科刀口測試的建模

    。 建模任務 系統構建模塊——拋物面鏡 系統構建模塊 – 球面鏡 系統構建塊 – 光闌 系統構建模塊——理想準直透鏡 系統中應用了理想化的透鏡功能,以確保刀口后視場的準直。
    發表于 04-26 10:37

    基于VT系統的MCU硬件在環建模與仿真應用分析

    在新能源汽車行業快速發展的背景下,電機控制器(MCU)作為核心部件,其開發和測試的重要性日益增加。為了在開發早期階段快速驗證應用層算法功能及基礎軟件質量,硬件在環(HIL)測試技術應運而生。本文分析
    的頭像 發表于 04-16 10:07 ?1409次閱讀
    基于VT系統的MCU<b class='flag-5'>硬件</b>在環<b class='flag-5'>建模</b>與仿真應用分析

    VirtualLab Fusion應用:漸變折射率(GRIN)鏡頭的建模

    摘要 折射率平滑變化的漸變折射率(GRIN)介質可用于例如:使鏡頭表面平坦或減少像差。 VirtualLab Fusion為光通過GRIN介質的傳播提供了一種物理光學建模技術。在相同的速度下
    發表于 03-18 08:57