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

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

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

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

離散端口的語法和使用指南

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-05-13 10:44 ? 次閱讀

端口聲明

模塊定義包括一個端口列表,該列表用括號括起來。端口用于將數(shù)據(jù)傳入或傳出模塊。模塊可以有四種類型的端口:輸入、輸出、雙向輸入輸出和接口(input,output, bidirectional inout,和 interface)。輸入、輸出和輸入輸出端口是離散端口,其中每個端口通信一個值或用戶定義的類型。接口端口是復(fù)合端口,可以通信多個值的集合。本文介紹離散端口的語法和使用指南。后續(xù)將介紹接口端口。

可綜合端口聲明

端口聲明定義端口的方向、類型、數(shù)據(jù)類型、符號、大小和名稱(direction, type, data type, sign, size 和 name)。

  • 端口方向用關(guān)鍵字input、output或inout聲明,
  • port類型和數(shù)據(jù)類型可以是變量,也可以是之前介紹的任何網(wǎng)絡(luò)類型和數(shù)據(jù)類型。
  • 端口標(biāo)志可以是有符號的,也可以是無符號的。
  • 端口大小的范圍從1位寬到2^16(65536)位寬。在實踐中,工程師必須考慮FPGA技術(shù)將用于實現(xiàn)設(shè)計的尺寸限制。

端口在模塊端口列表中聲明,該列表用簡單的括號括起來。端口可以按任何順序列出。一些工程師喜歡先列出輸入,然后列出輸出。其他工程師更喜歡先列出輸出,然后列出輸入。一些公司對端口的順序有嚴(yán)格的編碼風(fēng)格規(guī)則,而其他公司則將順序留給編寫模塊定義的工程師。對于縮進的使用,工程師們在編碼風(fēng)格上也有很大的不同,是否在同一行或單獨的行上列出多個端口,這些都沒有統(tǒng)一的標(biāo)準(zhǔn)。

SystemVerilog提供用于聲明端口列表和端口聲明的編碼樣式:組合樣式、傳統(tǒng)樣式和具有組合類型和大小的傳統(tǒng)樣式(combined-style, legacy-style and legacy-style with combined type and size)。

組合樣式端口列表,組合樣式端口列表將每個端口的完整聲明放在端口列表括號內(nèi)。大多數(shù)工程師都喜歡這種風(fēng)格。

26e06eea-d266-11ec-bce3-dac502259ad0.png

請注意,每個端口聲明都用逗號分隔,并且列表中的最后一個端口在右括號前沒有逗號

可以使用以逗號分隔的端口名列表聲明具有相同方向、類型、數(shù)據(jù)類型和大小的多個端口。通過組合相似端口的聲明,前面的端口列表可以簡化為:

27167814-d266-11ec-bce3-dac502259ad0.png

IEEE SystemVerilog標(biāo)準(zhǔn)將端口聲明的組合樣式定義為ANSI樣式的端口列表,因為該樣式類似于函數(shù)聲明的ANSI C樣式。這種類型的端口聲明作為Verilog2001標(biāo)準(zhǔn)的一部分添加到Verilog中。

傳統(tǒng)樣式端口列表。最初的Verilog-1995標(biāo)準(zhǔn)將端口列表和每個端口的類型、數(shù)據(jù)類型、符號和大小聲明分開。SystemVerilog標(biāo)準(zhǔn)將此分離樣式稱為非ANSI樣式端口列表。此樣式類似于原始的、ANSI C之前的函數(shù)聲明樣式。下面的示例使用Verilog-2001數(shù)據(jù)類型。SystemVeriIog邏輯類型也可用于傳統(tǒng)Verilog樣式的端口列表:

2735ab26-d266-11ec-bce3-dac502259ad0.png

請注意,每個端口聲明都以分號結(jié)尾,但可以對具有相同方向和大小,或相同類型、數(shù)據(jù)類型和大小(例如端口a和b,或前面端口聲明中的overflow和error)的端口使用逗號分隔的端口名列表。

如果端口列表中的第一個端口上的端口方向、類型、數(shù)據(jù)類型、符號和大小都被省略,則整個端口列表將采用傳統(tǒng)的非ANSI樣式的端口列表。端口列表中的所有端口必須是組合的ANSI樣式或傳統(tǒng)的ANSI樣式。在同一端口列表中混合使用這兩種樣式是非法的。

具有組合方向和大小的傳統(tǒng)樣式端口列表。Verilog-2001標(biāo)準(zhǔn)允許傳統(tǒng)樣式的端口列表將方向聲明和類型/數(shù)據(jù)類型聲明組合到單個語句中。

2755d4b4-d266-11ec-bce3-dac502259ad0.png

模塊端口默認(rèn)值。每個端口的方向、類型、數(shù)據(jù)類型、有無符號和大小都有隱式默認(rèn)值。端口類型可以是網(wǎng)絡(luò)(如wire)或變量(如var)。端口數(shù)據(jù)類型可以是logic(4態(tài))或bit(2態(tài))。端口方向、類型、數(shù)據(jù)類型、有無符號和大小的默認(rèn)規(guī)則為:

  • 未指定方向-模塊端口的默認(rèn)方向為inout,但僅在定義方向之前,一旦指定方向,該方向?qū)?yīng)用于所有后續(xù)端口,直到指定新方向。
  • 未指定類型No type specified-未指定數(shù)據(jù)類型(如邏輯)時,默認(rèn)類型端口為wire,指定數(shù)據(jù)類型時,默認(rèn)類型為wire(輸入和輸入輸出端口)和var(輸出端口),并且可以使用'default_nettype編譯器指令更改wire。
  • 未指定數(shù)據(jù)類型No data type specified-所有端口的默認(rèn)數(shù)據(jù)類型為logic(4態(tài))。
  • 未指定有無符號No signedness specified-默認(rèn)有無符號是端口數(shù)據(jù)類型的默認(rèn)有無符號,reg、logic、bit和time數(shù)據(jù)類型默認(rèn)為unsigned。byte、shortint、int、integer和longint數(shù)據(jù)類型默認(rèn)為signed。
  • 未指定大小No size specified-默認(rèn)大小是端口數(shù)據(jù)類型的默認(rèn)大小。該條例;邏輯和位數(shù)據(jù)類型默認(rèn)為1位寬。

下面的代碼片段不是真實的RTL編碼樣式,但用于說明模塊端口聲明的隱式默認(rèn)值。

2780d16e-d266-11ec-bce3-dac502259ad0.png

盡管前面代碼段中的端口聲明是可綜合的,但對于可綜合的RTL模型,不建議使用這種編碼樣式。

繼承的端口聲明。端口的方向、類型、數(shù)據(jù)類型、有無符號或大小的顯式聲明可以由端口列表中的后續(xù)端口繼承。繼承的端口特征是“粘滯的”,因為特征會一直粘滯(保持有效),直到發(fā)生更改。

端口聲明繼承規(guī)則包括:

  • 繼承的端口方向-顯式端口方向聲明在指定新方向之前保持有效,即使端口類型發(fā)生更改。
  • 繼承的端口類型-在指定新的方向或類型之前,顯式端口類型聲明保持有效。
  • 繼承的端口數(shù)據(jù)類型-在指定新的方向、類型或數(shù)據(jù)類型之前,顯式端口數(shù)據(jù)類型聲明保持有效。
  • 繼承的端口有無符號-顯式端口有無符號聲明在指定新的方向或類型或數(shù)據(jù)類型或大小之前保持有效,
  • 繼承的端口大小-在指定新的方向或類型或數(shù)據(jù)類型或大小之前,顯式端口大小聲明保持有效。

下面代碼段不是推薦的RTL編碼樣式,但說明了后續(xù)端口如何從模塊端口列表中先前的端口聲明繼承特征。

27bec0c8-d266-11ec-bce3-dac502259ad0.png

不可綜合的端口聲明

SystemVerilog具有幾種主要綜合編譯器不普遍支持的其他端口類型和聲明功能,包括:

  • 模塊ref參考端口
  • 模塊互連端口
  • 輸入端口默認(rèn)值(如input logic [7:0] a=0)
  • 輸出端口默認(rèn)值(如output logic [7:0] y=l
  • 端口表達式(例如.b({c,d}))
  • 具有隱式端口的外部模塊和嵌套模塊

一些綜合編譯器可能支持其中一些構(gòu)造,但本文中沒有討論它們,因為在本文編寫時,并非所有主要綜合編譯器都支持它們。這些構(gòu)造對于驗證非常有用,并且超出了本文關(guān)于RTL建模的范圍。

模塊端口聲明建議

SystemVerilog為聲明模塊端口提供了相當(dāng)大的能力和靈活性,如本節(jié)所示。工程師應(yīng)對端口聲明采用一致的編碼風(fēng)格,以確保模型能夠自我記錄,更易于維護,并且更易于在未來項目中重復(fù)使用。

最佳做法準(zhǔn)則3-9
最佳做法準(zhǔn)則3-9
對模塊端口列表使用ANSI-C樣式聲明。將輸入端口和輸出端口聲明為logic類型。

聲明模塊端口的一些最佳實踐編碼建議包括:

  • 使用組合的ANSI-C樣式端口列表,以便所有端口信息都包含在端口列表中。
  • 聲明每個端口的方向,而不是依賴默認(rèn)端口方向和繼承的(粘性)端口方向。
  • 將所有端口數(shù)據(jù)類型聲明為logic數(shù)據(jù)類型。避免RTL模型中的2態(tài)數(shù)據(jù)類型-它們可能隱藏設(shè)計錯誤。
  • 不要聲明端口類型,允許語言推斷wire或var類型。輸入和輸出端口的隱式默認(rèn)類型適用于可綜合的RTL級別模型。例外:三態(tài)端口可以選擇性地聲明為三態(tài)類型。tri類型與wire相同,但顯式聲明有助于記錄端口應(yīng)為三態(tài)聲明,
  • 在單獨的行上聲明每個端口。這允許添加注釋來描述每個端口的用法或假設(shè),例外情況:可以接受以逗號分隔的端口名稱列表,這些端口名稱都具有相同的方向、數(shù)據(jù)類型、大小和類似用法。

示例3-3說明了使用這些編碼準(zhǔn)則的模塊端口列表。

示例3-3:使用推薦編碼準(zhǔn)則的模塊端口聲明
`begin_keywords"1800-2012"//useSystemVerilog-2012keywords
modulealu
(inputlogicsigned[31:0]a,b,//ALUoperandinputs
inputlogic[3:0]opcode,//ALUoperationcode
outputlogicsigned[31:0]result,//Operationresult
outputlogicoverflow,//Setifresultoverflowed
outputlogicerror//Setifoperationerrored
);
timeunit1ns;timeprecision100ps;
/////////////////////////////////////////////
//modelfunctionalitynotshown//
/////////////////////////////////////////////
endmodule:alu
`end_keywords

傳統(tǒng)的Verilog考慮因素。在SystemVeriIog之前,傳統(tǒng)的Verilog沒有l(wèi)ogic數(shù)據(jù)類型,對于隱式默認(rèn)端口類型有不同的規(guī)則。傳統(tǒng)的Verilog會為所有端口假定一種端口類型wire,除非該端口被顯式聲明為reg,這將推斷出一個變量。工程師必須小心地使用顯式端口聲明,以確保每個端口具有模塊內(nèi)功能的正確類型和數(shù)據(jù)類型。要使所有聲明正確,通常需要編譯代碼、檢查編譯錯誤或更糟的情況、容易忽略的警告、修復(fù)錯誤或警告,然后重新編譯。對功能建模方式的更改通常會導(dǎo)致新的編譯錯誤,因為還需要更改端口數(shù)據(jù)類型。

SystemVerilog使端口聲明更加容易。只需將所有端口聲明為logic數(shù)據(jù)類型,并讓語言正確推斷出正確的網(wǎng)絡(luò)或變量類型。SystemVerilog幾乎在所有情況下都能正確推斷出網(wǎng)絡(luò)或變量。

審核編輯 :李倩


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

    關(guān)注

    1

    文章

    309

    瀏覽量

    60784
  • 端口
    +關(guān)注

    關(guān)注

    4

    文章

    977

    瀏覽量

    32100

原文標(biāo)題:數(shù)字硬件建模SystemVerilog(八)-端口聲明

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

收藏 人收藏

    評論

    相關(guān)推薦

    OTDR使用指南與注意事項

    OTDR使用指南 1. 準(zhǔn)備工作 設(shè)備檢查 :確保OTDR設(shè)備完好,電池充滿電,軟件更新至最新版本。 光纖清潔 :在測試前,使用光纖清潔工具清潔光纖端面,以減少連接損耗。 安全防護 :穿戴適當(dāng)?shù)陌踩?/div>
    的頭像 發(fā)表于 12-30 18:01 ?294次閱讀

    示波器使用指南 如何選擇合適的示波器

    示波器使用指南 示波器是一種電子測量儀器,用于顯示電壓隨時間變化的波形。以下是示波器的基本使用指南: 獲得基線 : 預(yù)置面板各開關(guān)、旋鈕至適當(dāng)位置。 按下電源開關(guān),電源指示燈點亮。 調(diào)節(jié)相關(guān)控制旋鈕
    的頭像 發(fā)表于 11-28 09:26 ?306次閱讀

    RTC時鐘使用指南:簡單步驟,實用成果

    今天展示的是RTC時鐘使用指南,輕松學(xué)習(xí),完美成果。
    的頭像 發(fā)表于 11-08 11:40 ?342次閱讀
    RTC時鐘<b class='flag-5'>使用指南</b>:簡單步驟,實用成果

    技術(shù)指南 | 深視智能SRI系列一體式激光三維輪廓測量儀快速使用指南

    技術(shù)指南 | 深視智能SRI系列一體式激光三維輪廓測量儀快速使用指南
    的頭像 發(fā)表于 10-29 08:08 ?237次閱讀
    技術(shù)<b class='flag-5'>指南</b> | 深視智能SRI系列一體式激光三維輪廓測量儀快速<b class='flag-5'>使用指南</b>

    技術(shù)指南 | 深視智能SCI系列光譜共焦位移傳感器快速使用指南

    技術(shù)指南 | 深視智能SCI系列光譜共焦位移傳感器快速使用指南
    的頭像 發(fā)表于 10-22 08:06 ?211次閱讀
    技術(shù)<b class='flag-5'>指南</b> | 深視智能SCI系列光譜共焦位移傳感器快速<b class='flag-5'>使用指南</b>

    中短程超聲波應(yīng)用優(yōu)化和使用指南:TUSS4470和TDC1000

    電子發(fā)燒友網(wǎng)站提供《中短程超聲波應(yīng)用優(yōu)化和使用指南:TUSS4470和TDC1000.pdf》資料免費下載
    發(fā)表于 09-24 11:21 ?0次下載
    中短程超聲波應(yīng)用優(yōu)化和<b class='flag-5'>使用指南</b>:TUSS4470和TDC1000

    深視智能SGI系列激光位移傳感器快速使用指南

    深視智能SGI系列激光位移傳感器快速使用指南
    的頭像 發(fā)表于 07-27 08:45 ?414次閱讀
    深視智能SGI系列激光位移傳感器快速<b class='flag-5'>使用指南</b>

    深視智能SD33系列小型激光位移傳感器使用指南

    深視智能SD33系列小型激光位移傳感器使用指南
    的頭像 發(fā)表于 07-27 08:44 ?470次閱讀
    深視智能SD33系列小型激光位移傳感器<b class='flag-5'>使用指南</b>

    深視智能SD22系列小型激光位移傳感器使用指南

    深視智能SD22系列小型激光位移傳感器使用指南
    的頭像 發(fā)表于 07-27 08:42 ?470次閱讀
    深視智能SD22系列小型激光位移傳感器<b class='flag-5'>使用指南</b>

    GD32F10x 固件庫使用指南

    電子發(fā)燒友網(wǎng)站提供《GD32F10x 固件庫使用指南.pdf》資料免費下載
    發(fā)表于 05-22 14:15 ?27次下載

    32位基于ARM微控制器GD32E50x固件庫使用指南

    電子發(fā)燒友網(wǎng)站提供《32位基于ARM微控制器GD32E50x固件庫使用指南.pdf》資料免費下載
    發(fā)表于 05-16 18:12 ?10次下載

    芯海科技通用 MCU 應(yīng)用筆記: CS32F103 FOC 電機評估板使用指南

    本文檔描述了基于芯海 CS32F103 系列芯片的矢量控制電機開發(fā)板 V1.00 的設(shè)計理念、結(jié)構(gòu)和使用說明,以幫助用戶快速使用此開發(fā)板,評估 CS32F103 芯片在電機控制應(yīng)用上的性能表現(xiàn)。*附件:應(yīng)用筆記:CS32F103FOC電機評估板使用指南.pdf
    發(fā)表于 05-16 11:35

    熱敏FET使用指南

    電子發(fā)燒友網(wǎng)站提供《熱敏FET使用指南.pdf》資料免費下載
    發(fā)表于 02-22 09:35 ?0次下載
    熱敏FET<b class='flag-5'>使用指南</b>

    電力調(diào)整器的安裝與使用指南

    電力調(diào)整器的安裝與使用指南? 電力調(diào)整器是一種用于調(diào)整電力供應(yīng)的裝置,它可以穩(wěn)定電壓、提高電流質(zhì)量、減少電力損耗。在家庭、工業(yè)和商業(yè)場所中廣泛使用,如今,我們?yōu)槟鷰黼娏φ{(diào)整器的安裝與使用指南。本文
    的頭像 發(fā)表于 02-03 10:13 ?1464次閱讀

    AT32F423 I 2C使用指南

    電子發(fā)燒友網(wǎng)站提供《AT32F423 I 2C使用指南.pdf》資料免費下載
    發(fā)表于 02-01 09:30 ?0次下載
    AT32F423 I 2C<b class='flag-5'>使用指南</b>
    主站蜘蛛池模板: 欧美夜夜噜2017最新| yy8090理论三级在线看| 猫咪www958ii| 国产精品久久久久久人妻香蕉| 一本道高清到手机在线| 色婷婷我要去我去也| 久热人人综合人人九九精品视频| 国产乱人伦AV麻豆网| jizz日本黄色| 语文老师扒开胸罩喂我奶| 午夜噜噜噜私人影院在线播放 | 超污视频带污疼免费视频| 中国字字幕在线播放2019| 性白俄罗斯高清xxxxx| 人淫阁| 门事件快播| 九九99亚洲精品久久久久| 国产国语在线播放视频| music radio在线收听| 最近日本字幕免费高清| 亚洲欧美日韩在线码不卡| 婷婷精品国产亚洲AV在线观看| 漂亮的保姆5电影免费观看完整版中文 | 俄罗斯9一14 young处| 99精品视频在线| 张开腿我尝尝你的草莓| 亚洲综合视频| 亚洲国产av| 性色欲情网站IWWW| 偷窥美女3| 少妇的肉体AA片免费观看| 日本久久不射| 青柠在线观看免费全集| 年轻漂亮的妺妺中文字幕版| 开心色99xxxx开心色| 久久精品国产只有精品| 狠狠狠狠狠狠干| 国产亚洲精品线视频在线| 国产精品一区二区在线播放 | 成人国产在线看不卡| www.青青草.com|