RM新时代网站-首页

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

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

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

FPGA入門之模塊結(jié)構(gòu)

jf_78858299 ? 來源:CSDN ? 作者:原來如此呀 ? 2023-03-21 10:35 ? 次閱讀

3.1 模塊介紹

模塊( module)是 Verilog 的基本描述單位, 是用于描述某個(gè)設(shè)計(jì)的功能或結(jié)構(gòu)及與其他模塊通信的外部端口。

模塊在概念上可等同一個(gè)器件,就如調(diào)用通用器件(與門、三態(tài)門等)或通用宏單元(計(jì)數(shù)器、ALU、 CPU)等。因此,一個(gè)模塊可在另一個(gè)模塊中調(diào)用,一個(gè)電路設(shè)計(jì)可由多個(gè)模塊組合而成。一個(gè)模塊的設(shè)計(jì)只是一個(gè)系統(tǒng)設(shè)計(jì)中的某個(gè)層次設(shè)計(jì),模塊設(shè)計(jì)可采用多種建模方式。

Verilog 的基本設(shè)計(jì)單元是―模塊‖。采用模塊化的設(shè)計(jì)使系統(tǒng)看起來更有條理也便于仿真和測(cè)試,因此整個(gè)項(xiàng)目的設(shè)計(jì)思想就是模塊套模塊,自頂向下依次展開。 在一個(gè)工程的設(shè)計(jì)里,每個(gè)模塊實(shí)現(xiàn)特定的功能,模塊間可進(jìn)行層次的嵌套。

對(duì)大型的數(shù)字電路進(jìn)行設(shè)計(jì)時(shí),可以將其分割成大小不一的小模塊,每個(gè)小模塊實(shí)現(xiàn)特定的功能,最后通過由頂層模塊調(diào)用子模塊的方式來實(shí)現(xiàn)整體功能,這就是 Top-Down 的設(shè)計(jì)思想。 本書主要以 Verilog 硬件描述語言為主,模塊是 Verilog 的基本描述單位,用于描述每個(gè)設(shè)計(jì)的功能和結(jié)構(gòu),以及其他模塊通信的外部接口。

模塊有五個(gè)主要部分:端口定義、參數(shù)定義(可選)、 I/O 說明、內(nèi)部信號(hào)聲明、功能定義。模塊總是以關(guān)鍵詞 module 開始,以關(guān)鍵詞 endmodule 結(jié)尾。它的一般語法結(jié)構(gòu)如下所示:

1679366060(1).png

3.2 模塊名和端口定義

第 1 至 5 行聲明了模塊的名字和輸入輸出口。其格式如下:module 模塊名(端口 1,端口 2,端口 3, ……);其中模塊是以 module 開始,以 endmodule 結(jié)束。模塊名是模塊唯一的標(biāo)識(shí)符, 一般建議模塊名盡量用能夠描述其功能的名字來命名,并且模塊名和文件名相同。

模塊的端口表示的是模塊的輸入和輸出口名,也是其與其他模塊聯(lián)系端口的標(biāo)識(shí)。

3.3 參數(shù)定義

第 8 行參數(shù)定義是將常量用符號(hào)代替以增加代碼可讀性和可修改性。這是一個(gè)可選擇的語句,用不到的情況下可以省略,參數(shù)定義一般格式如下:

parameter DATA_W = x;

3.4 接口定義

第 9 至 12 行是 I/O(輸入/輸出)說明,模塊的端口可以是輸入端口、輸出端口或雙向端口。其說明格式如下。

輸入端口: input [信號(hào)位寬-1 : 0] 端口名 1;

input [信號(hào)位寬-1 : 0] 端口名 2;

……;

輸出端口:output [信號(hào)位寬-1 : 0] 端口名 1;

output [信號(hào)位寬-1 : 0] 端口名 2;

……;

雙向端口: inout [信號(hào)位寬-1 : 0] 端口名 1;

inout [信號(hào)位寬-1 : 0] 端口名 2;

……;

3.5 信號(hào)類型

第 14 至 17 行定義了信號(hào)的類型。 這些信號(hào)是在模塊內(nèi)使用到的信號(hào),并且與端口有關(guān)的 wire和 reg 類型變量(即線網(wǎng)型與寄存器型)。 其聲明方式如下:

reg [width-1 : 0] R 變量 1, R 變量 2 ……;

wire [width-1 : 0] W 變量 1, W 變量 2……;

如果沒有定義信號(hào)類型,默認(rèn)是 wire 型,并且信號(hào)位寬為 1。

3.6 功能描述

第 21 至 31 行是功能描述部分。模塊中最重要的部分是邏輯功能定義部分, 有三種方法可在模塊中產(chǎn)生邏輯。

用“assign”聲明語句,如描

述一個(gè)兩輸入與門: assign a = b & c。 詳細(xì)功能見“功能描述-組合邏輯”一節(jié)。

用“always”塊。即前面介紹的時(shí)序邏輯和組合邏輯。

模塊例化。詳細(xì)功能見“模塊例化”一節(jié)。

3.7 模塊例化

對(duì)數(shù)字系統(tǒng)的設(shè)計(jì)一般采用的是自頂向下的設(shè)計(jì)方式, 可將系統(tǒng)劃分成幾個(gè)功能模塊,每個(gè)功能模塊再劃分成下一層的子模塊。每個(gè)模塊的設(shè)計(jì)對(duì)應(yīng)一個(gè) module , 每個(gè) module 設(shè)計(jì)成一個(gè) Verilog HDL 程序文件。因此,對(duì)一個(gè)系統(tǒng)的頂層模塊采用結(jié)構(gòu)化設(shè)計(jì),即頂層模塊分別調(diào)用了各個(gè)功能模塊。

一個(gè)模塊能夠在另外一個(gè)模塊中被引用,這樣就建立了描述的層次。模塊實(shí)例化語句形式如下:

module_nameinstance_name(port_associations) ;

信號(hào)端口可以通過位置或名稱關(guān)聯(lián), 但是關(guān)聯(lián)方式不能夠混合使用。端口關(guān)聯(lián)形式如下:port_expr / /通過位置。.

PortName (port_expr) / /通過名稱。

1679366012(1).png

1679366003(1).png

建議:在例化的端口映射中請(qǐng)采用名字關(guān)聯(lián),這樣,當(dāng)被調(diào)用的模塊管腳改變時(shí)不易出錯(cuò)。在實(shí)例化中,可能有些管腳沒用到,可在映射中采用空白處理,如:

1679365973(1).png

輸入管腳懸空端口的輸入為高阻 Z,由于輸出管腳是被懸空的,該輸出管腳廢棄不用。

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

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

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

聲明:本文內(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)注

    7

    文章

    2695

    瀏覽量

    47431
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10854

    瀏覽量

    211576
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110074
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2256

    瀏覽量

    94476
  • 器件
    +關(guān)注

    關(guān)注

    4

    文章

    310

    瀏覽量

    27824
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA如何從入門到高手?

    本文首先介紹了FPGA的特點(diǎn)與FPGA芯片結(jié)構(gòu),其次分析了FPGA與ASIC及CPLD對(duì)比,最后介紹了FPGA基礎(chǔ)
    發(fā)表于 05-30 08:39 ?3.7w次閱讀
    <b class='flag-5'>FPGA</b>如何從<b class='flag-5'>入門</b>到高手?

    如何快速入門FPGA?

    電路。它允許用戶通過編程對(duì)內(nèi)部的邏輯模塊和I/O模塊進(jìn)行重新配置,以實(shí)現(xiàn)特定功能。FPGA具有靜態(tài)可重復(fù)編程和動(dòng)態(tài)在系統(tǒng)重構(gòu)的特性。 熟悉FPGA的基本
    發(fā)表于 04-28 08:54

    如何快速入門FPGA

    電路。它允許用戶通過編程對(duì)內(nèi)部的邏輯模塊和I/O模塊進(jìn)行重新配置,以實(shí)現(xiàn)特定功能。FPGA具有靜態(tài)可重復(fù)編程和動(dòng)態(tài)在系統(tǒng)重構(gòu)的特性。 熟悉FPGA的基本
    發(fā)表于 04-28 09:06

    FPGA入門資料

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

    FPGA入門知識(shí)介紹

    FPGA入門知識(shí)還應(yīng)該包含FPGA工作原理、FPGA的基本特點(diǎn)、FPGA芯片結(jié)構(gòu)等基礎(chǔ)的知識(shí),
    發(fā)表于 08-16 10:32

    FPGA入門:內(nèi)里本質(zhì)探索——器件結(jié)構(gòu)

    本帖最后由 rousong1989 于 2015-1-27 11:45 編輯 FPGA入門:內(nèi)里本質(zhì)探索——器件結(jié)構(gòu)本文節(jié)選自特權(quán)同學(xué)的圖書《FPGA/CPLD邊練邊學(xué)——快速
    發(fā)表于 01-27 11:43

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

    SF-SP6入門指南 -- PLL實(shí)例基本配置Lesson27 特權(quán)Xilinx FPGA SF-SP6入門指南 -- PLL實(shí)例
    發(fā)表于 07-22 11:49

    Xilinx FPGA入門連載38:SRAM讀寫測(cè)試設(shè)計(jì)概述

    `Xilinx FPGA入門連載40:SRAM讀寫測(cè)試設(shè)計(jì)概述特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1jGjAhEm 1 功能簡介如圖所示,本
    發(fā)表于 12-18 12:57

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

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

    JavaWeb入門響應(yīng)的結(jié)構(gòu)

    JavaWeb入門—響應(yīng)的結(jié)構(gòu)
    發(fā)表于 05-15 06:00

    [NI技術(shù)]-LabVIEW-FPGA代碼模塊設(shè)計(jì)

    [NI技術(shù)]-LabVIEW-FPGA代碼模塊設(shè)計(jì),入門級(jí)資料。
    發(fā)表于 05-17 16:41 ?34次下載

    FPGA入門技術(shù)教程

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

    FPGA模塊化設(shè)計(jì)與AlteraHardCopy結(jié)構(gòu)化ASIC

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA模塊化設(shè)計(jì)與AlteraHardCopy結(jié)構(gòu)化ASIC。
    發(fā)表于 01-20 17:03 ?6次下載
    <b class='flag-5'>FPGA</b><b class='flag-5'>模塊</b>化設(shè)計(jì)與AlteraHardCopy<b class='flag-5'>結(jié)構(gòu)</b>化ASIC

    FPGA入門什么是FPGA

    專用集成電路( ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。簡而言之, FPGA 就是一個(gè)可以通過編程來改變內(nèi)部結(jié)構(gòu)的芯片 。
    的頭像 發(fā)表于 03-21 10:21 ?1310次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>入門</b><b class='flag-5'>之</b>什么是<b class='flag-5'>FPGA</b>

    FPGA編程語言的入門教程

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