国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Verilog HDL基礎(chǔ)知識7之模塊例化

Verilog HDL基礎(chǔ)知識7之模塊例化

作者: 時間:2024-02-21 來源:電子森林 收藏

Verilog使用模塊(module)的概念來代表一個基本的功能塊。一個模塊可以是一個元件,也可以是低層次模塊的組合。常用的設(shè)計方法是使用元件構(gòu)建在設(shè)計中多個地方使用的功能塊,以便進(jìn)行代碼重用。模塊通過接口(輸入和輸出)被高層的模塊調(diào)用,但隱藏了內(nèi)部的實現(xiàn)細(xì)節(jié)。這樣就使得設(shè)計者可以方便地對某個模塊進(jìn)行修改,而不影響設(shè)計的其他部分。

本文引用地址:http://m.ptau.cn/article/202402/455550.htm

在verilog中,模塊聲明由關(guān)鍵字module開始,關(guān)鍵字endmodule則必須出現(xiàn)在模塊定義的結(jié)尾。每個模塊必須具有一個模塊名,由它唯一地標(biāo)識這個模塊。模塊的端口列表則描述這個模塊的輸入和輸出端口。

module <模塊名>(<模塊端口列表>);
...
<模塊的內(nèi)容>
...
...
endmodule

使用Verilog既可以進(jìn)行行為描述,同時也可以進(jìn)行結(jié)構(gòu)描述。根據(jù)設(shè)計需要,設(shè)計者在每個模塊內(nèi)部可以在4個抽象層次中進(jìn)行描述,而模塊對外顯示的功能都是一樣的,僅與外部環(huán)境有關(guān),而與抽象層次無關(guān)。模塊的內(nèi)部結(jié)構(gòu)對于外部環(huán)境來講是透明的。因此,對模塊內(nèi)部抽象層次的改變不會影響外部環(huán)境。這些抽象層次的定義如下:

1.行為或算法級:Verilog所支持的最高抽象層次。設(shè)計者只注重其實現(xiàn)的算法,而不關(guān)心其具體的硬件實現(xiàn)細(xì)節(jié)。在這個層次上進(jìn)行的設(shè)計與C語言編程非常類似。

2.數(shù)據(jù)流級:通過說明數(shù)據(jù)的流程對模塊進(jìn)行描述。設(shè)計者關(guān)心的是數(shù)據(jù)如何在各個寄存器之間流動,以及如何處理這些數(shù)據(jù)。

3.門級:從組成電路的邏輯門及其相互之間的互連關(guān)系的角度來設(shè)計模塊。這個層次的設(shè)計類似于使用門級邏輯簡圖來完成設(shè)計。

4.開關(guān)級:Verilog所支持的最低抽象層次。通過使用開關(guān)、存儲節(jié)點及其互連關(guān)系來設(shè)計模塊。在這個層次進(jìn)行設(shè)計需要了解開關(guān)級的實現(xiàn)細(xì)節(jié)。

Verilog允許設(shè)計者在一個模塊中混合使用多個抽象層次。在數(shù)字電路設(shè)計中,術(shù)語寄存器傳輸級(RTL)描述在很多情況下是指能夠被邏輯綜合工具接受的行為級和數(shù)據(jù)流級的混合描述。

例化

端口是模塊與外部環(huán)境交互的通道,只有在模塊有端口的情況下才需要有端口列表和端口聲明。模塊內(nèi)部的5個組成部分是:變量聲明、數(shù)據(jù)流語句、低層模塊實例、行為語句塊以及任務(wù)與函數(shù)。這些部分可以在模塊中的任意位置,以任意順序出現(xiàn)。在模塊的所有組成部分中,只有module、模塊名和endmodule必須出現(xiàn),其他部分都是可選的,用戶可以根據(jù)設(shè)計的需要隨意選用。在一個Verilog源文件中可以定義多個模塊,Verilog對模塊的排列順序沒有要求。

為了理解模塊的各個組成部分,我們以SR鎖存器為例進(jìn)行詳細(xì)說明,如下。

SR鎖存器構(gòu)成如下:

  // 本例說明模塊的構(gòu)成部件   
 
  // 模塊名和端口列表
 // SR鎖存器模塊   
 
 module SR_latch(Q, Qbar, Sbar, Rbar);   
 
 // 端口聲明
 output Q, Qbar;
 input Sbar, Rbar;   
 
 // 調(diào)用(實例引用)較低層次的模塊
 // 本例中調(diào)用(實例引用)的是Verilog原語部件nand,即與非門
 // 注意它們之間互相交叉連接的情況
 nand n1(Q, Sbar, Qbar);
 nand n2(Qbar, Rbar, Q);
 // 模塊語句結(jié)束
 endmodule   
 
 // 模塊名和端口列表
 // 測試激勵信號模塊
 module Top;   
 
 // 聲明wire, reg和其他類型的變量
 wire q, qbar;
 reg set, reset;   

 // 調(diào)用(實例引用)較低層次的模塊
 // 本模塊中調(diào)用(實例引用)的是SR_latch
 SR_latch m1(q, qbar, ~set, ~reset);   
 
 // 行為模塊, 初始化
 initial
 begin
  $monitor($time, " set = %b, reset= %b, q= %bn",set,reset,q);
  set = 0; reset = 0;
  #5 reset = 1;
  #5 reset = 0;
  #5set = 1;
 end   
 
 // 模塊語句結(jié)束
 endmodule


關(guān)鍵詞: FPGA verilog HDL 模塊例化

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉