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

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

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

FPGA入門(mén)之信號(hào)類(lèi)型

jf_78858299 ? 來(lái)源:CSDN ? 作者:原來(lái)如此呀 ? 2023-03-21 10:39 ? 次閱讀

第4節(jié) 信號(hào)類(lèi)型

Verilog HDL 的信號(hào)類(lèi)型有很多種,主要包括兩種數(shù)據(jù)類(lèi)型:線(xiàn)網(wǎng)類(lèi)型(net type) 和寄存器類(lèi)型( reg type)。在進(jìn)行工程設(shè)計(jì)的過(guò)程中也只會(huì)使用到這兩個(gè)類(lèi)型的信號(hào)。

4.1 信號(hào)位寬

定義信號(hào)類(lèi)型的同時(shí),必須定義好信號(hào)的位寬。默認(rèn)信號(hào)的位寬是 1 位,當(dāng)信號(hào)的位寬為 1 時(shí)可不表述,如定義位寬為 1 的 wire 型信號(hào) a 可直接用“ wire a;”來(lái)表示。 但信號(hào)的位寬大于 1 位時(shí)就一定要表示出來(lái),如用“ wire [7:0]”來(lái)表示該 wire 型信號(hào)的位寬為 8 位(位寬數(shù)從0開(kāi)始計(jì))。

信號(hào)的位寬取決于要該信號(hào)要表示的最大值。該信號(hào)能表示的無(wú)符號(hào)數(shù)最大值是: 2n-1,其中n表示該信號(hào)的位寬。例如,信號(hào) a 的最大值為 1000,那么信號(hào) a 的位寬必須大于或等于 10 位。

下面分享一個(gè)位寬計(jì)算技巧:打開(kāi)電腦的“計(jì)算器” 后選用程序員模式,在在 10 進(jìn)制下輸入信號(hào)值,如 1000,隨后可以查看信號(hào)位寬。

4.2 線(xiàn)網(wǎng)類(lèi)型 wire

線(xiàn)網(wǎng)類(lèi)型用于對(duì)結(jié)構(gòu)化器件之間的物理連線(xiàn)的建模, 如器件的管腳,芯片內(nèi)部器件如與門(mén)的輸出等。由于線(xiàn)網(wǎng)類(lèi)型代表的是物理連接線(xiàn),因此其不存儲(chǔ)邏輯值,必須由器件驅(qū)動(dòng)。通常用 assign 進(jìn)行賦值, 如 assign A = B ^ C。

wire 類(lèi)型定義語(yǔ)法如下:

wire [msb: lsb] wire1, wire2, . . .,wireN;

msb 和 lsb 定義了范圍,表示了位寬。例如[7:0]是 8 位位寬,也就是可以表示成 8’b0 至 8’b1111_1111;

msb 和 lsb 必須為常數(shù)值;

如果沒(méi)有定義范圍,缺省值為 1 位;

沒(méi)有定義信號(hào)數(shù)據(jù)類(lèi)型時(shí),缺省為 wire 類(lèi)型。

注意數(shù)組類(lèi)型按照降序方式,如[7: 0] , 不要寫(xiě)成[0:7]。

下面對(duì)上述情況進(jìn)行舉例說(shuō)明:

wire [3:0] Sat; // Sat 為 4 位線(xiàn)型信號(hào)

wire Cnt; //1 位線(xiàn)型信號(hào)

wire [31:0] Kisp, Pisp, Lisp ;// Kisp, Pisp, Lisp 都是 32 位的線(xiàn)型信號(hào)。

4.3 寄存器類(lèi)型 reg

reg 是最常用的寄存器類(lèi)型,寄存器類(lèi)型通常用于對(duì)存儲(chǔ)單元的描述,如 D 型觸發(fā)器、 ROM等。寄存器類(lèi)型信號(hào)的特點(diǎn)是在某種觸發(fā)機(jī)制下分配了一個(gè)值,在下一觸發(fā)機(jī)制到來(lái)之前保留原值。但必須注意的是: reg 類(lèi)型的變量不一定是存儲(chǔ)單元,如在 always 語(yǔ)句中進(jìn)行描述的必須是用 reg類(lèi)型的變量。

reg 類(lèi)型定義語(yǔ)法如下:

reg [msb: lsb] reg1, reg2, . . . reg N;

msb 和 lsb 定義了范圍,表示了位寬。例如[7:0]是 8 位位寬,也就是可以表示成 8’b0 至 8’b1111_1111;

msb 和 lsb 必須為常數(shù)值;

如果沒(méi)有定義范圍,缺省值為 1 位;

沒(méi)有定義信號(hào)數(shù)據(jù)類(lèi)型時(shí),缺省為 wire 類(lèi)型,不是 reg 型。

對(duì)數(shù)組類(lèi)型按照降序方式,如[7: 0] ;不要寫(xiě)成[0:7]。

例如:

reg [3:0] Sat; // Sat 為 4 位寄存器型信號(hào)。

reg Cnt; //1 位寄存器。

reg [31:0] Kisp, Pisp, Lisp ; // Kisp, Pisp, Lisp 都是 32 位的寄存器型信號(hào)。

4.4 wire 和 reg 的區(qū)別

reg 型信號(hào)并不一定生成寄存器。 針對(duì)什么時(shí)候使用 wire 類(lèi)型,什么時(shí)候用 reg 類(lèi)型這一問(wèn)題,本書(shū)總結(jié)出一套解決方法:在 本模塊中使用 always 設(shè)計(jì)的信號(hào)都定義為 reg 型, 其他信號(hào)都定義為 wire 型 。

1679366242(1).png

上述代碼中, cnt1 是用 always 設(shè)計(jì)的,所以定義為 reg 型。 add_cnt1 和 end_cnt 不是由 always 產(chǎn)生的,所以定義為 wire 型。

1679366297(1).png

上述代碼中,信號(hào) x 是用 always 設(shè)計(jì)的,所以要定義為 reg 型。注意: 實(shí)際的電路中信號(hào) x 不是寄存器類(lèi)型,但仍然定義為 reg 型。

1679366311(1).png

以上是例化的代碼,其中 df 是例化模塊的輸出。由于 df 不是由 always 產(chǎn)生的,而是例化產(chǎn)生的, 因此要定義成 wire 型。

————————————————

版權(quán)聲明:本文為CSDN博主「原來(lái)如此呀」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/Royalic/article/details/121151985

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

    關(guān)注

    31

    文章

    5357

    瀏覽量

    120655
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7081

    瀏覽量

    89178
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110156
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA入門(mén)FPGA設(shè)計(jì)者入門(mén)必備!

    電子發(fā)燒友網(wǎng): 在我看來(lái),想要成為一名合格的 FPGA 設(shè)計(jì)者,需要掌握很多知識(shí)和技巧。本文就針對(duì)FPGA設(shè)計(jì)入門(mén)者需要掌握的基本功及設(shè)計(jì)原則展開(kāi)分析,希望對(duì)大家有幫助。 一.5大
    發(fā)表于 06-26 15:26 ?1.4w次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>入門(mén)</b>:<b class='flag-5'>FPGA</b>設(shè)計(jì)者<b class='flag-5'>入門(mén)</b>必備!

    FPGA入門(mén)資料

    本帖最后由 eehome 于 2013-1-5 09:55 編輯 哪位大俠有FPGA入門(mén)級(jí)的資料,跪求?。?!關(guān)于FPGA可以實(shí)現(xiàn)哪些功能,進(jìn)行哪些方面的功能擴(kuò)展,比如內(nèi)嵌硬核、
    發(fā)表于 07-22 08:45

    Xilinx FPGA無(wú)痛入門(mén),海量教程免費(fèi)下載

    用notepad++的關(guān)聯(lián)設(shè)置Lesson07 特權(quán)Xilinx FPGA SF-SP6入門(mén)指南 -- ISE與Modelsim聯(lián)合仿真庫(kù)編譯Lesson08 特權(quán)Xilinx FPGA
    發(fā)表于 07-22 11:49

    Xilinx FPGA入門(mén)連載50:FPGA片內(nèi)RAM實(shí)例chipscope在線(xiàn)調(diào)試

    Xilinx FPGA入門(mén)連載50:FPGA片內(nèi)RAM實(shí)例chipscope在線(xiàn)調(diào)試特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1jG
    發(fā)表于 01-27 13:10

    Xilinx FPGA入門(mén)連載52:FPGA片內(nèi)FIFO實(shí)例FIFO配置

    Xilinx FPGA入門(mén)連載52:FPGA片內(nèi)FIFO實(shí)例FIFO配置特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1jGjAhEm1
    發(fā)表于 02-29 13:35

    Xilinx FPGA入門(mén)連載52:FPGA片內(nèi)FIFO實(shí)例FIFO配置

    Xilinx FPGA入門(mén)連載52:FPGA片內(nèi)FIFO實(shí)例FIFO配置特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1jGjAhEm1
    發(fā)表于 02-29 13:35

    Xilinx FPGA入門(mén)連載54:FPGA 片內(nèi)FIFO實(shí)例chipscope在線(xiàn)調(diào)試

    `Xilinx FPGA入門(mén)連載54:FPGA 片內(nèi)FIFO實(shí)例chipscope在線(xiàn)調(diào)試特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s
    發(fā)表于 03-04 13:13

    Xilinx FPGA入門(mén)連載58:FPGA 片內(nèi)異步FIFO實(shí)例chipscope在線(xiàn)調(diào)試

    `Xilinx FPGA入門(mén)連載58:FPGA 片內(nèi)異步FIFO實(shí)例chipscope在線(xiàn)調(diào)試特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接:http://pan.baidu.com/
    發(fā)表于 03-16 12:13

    Xilinx FPGA入門(mén)PLL實(shí)例的基本配置

    Xilinx FPGA入門(mén)連載24:PLL實(shí)例基本配置 1 工程移植可以復(fù)制上一個(gè)實(shí)例sp6ex7的整個(gè)工程文件夾,更名為sp6ex8。然后在ISE中打開(kāi)這個(gè)新的工程。 2 新建IP核文件
    發(fā)表于 01-21 21:33

    FPGA入門(mén)ModelSim的安裝步驟

    FPGA入門(mén):ModelSim的安裝本文節(jié)選自特權(quán)同學(xué)的圖書(shū)《FPGA/CPLD邊練邊學(xué)——快速入門(mén)Verilog/VHDL》書(shū)中代碼請(qǐng)?jiān)L問(wèn)網(wǎng)盤(pán):http://pan.baidu.co
    發(fā)表于 01-22 06:35

    FPGA入門(mén)試驗(yàn)精品

    FPGA入門(mén)試驗(yàn)精品,有需要的下來(lái)看看啊
    發(fā)表于 05-10 11:24 ?27次下載

    FPGA入門(mén)技術(shù)教程

    FPGA入門(mén)技術(shù)教程,適合新手剛入門(mén)的時(shí)候看
    發(fā)表于 01-24 16:29 ?47次下載

    KEIL-MDK和STM32的數(shù)據(jù)類(lèi)型-入門(mén)篇pdf資料下載

    數(shù)據(jù)類(lèi)型-入門(mén)
    發(fā)表于 04-14 10:50 ?7次下載
    KEIL-MDK和STM32的數(shù)據(jù)<b class='flag-5'>類(lèi)型</b>-<b class='flag-5'>之</b><b class='flag-5'>入門(mén)</b>篇pdf資料下載

    FPGA入門(mén)什么是FPGA

    FPGA 的全稱(chēng)為 Field-Programmable Gate Array ,即現(xiàn)場(chǎng)可編程門(mén)陣列。FPGA 是在 PAL、 GAL、 CPLD 等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物, 是作為
    的頭像 發(fā)表于 03-21 10:21 ?1335次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>之</b>什么是<b class='flag-5'>FPGA</b>

    FPGA編程語(yǔ)言的入門(mén)教程

    FPGA(現(xiàn)場(chǎng)可編程邏輯門(mén)陣列)的編程涉及特定的硬件描述語(yǔ)言(HDL),其中Verilog和VHDL是最常用的兩種。以下是一個(gè)FPGA編程語(yǔ)言(以Verilog為例)的入門(mén)教程: 一、Verilog
    的頭像 發(fā)表于 10-25 09:21 ?345次閱讀