91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

Verilog HDL中的結(jié)構(gòu)建模方式細(xì)述

電子工程師 ? 來源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2021-03-14 09:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

結(jié) 構(gòu) 建 模

本章講述Verilog HDL中的結(jié)構(gòu)建模方式。結(jié)構(gòu)建模方式用以下三種實(shí)例語句描述:

? Gate實(shí)例語句

? UDP實(shí)例語句

? Module實(shí)例語句

第5章和第6章已經(jīng)討論了門級建模方式和U D P建模方式,本章講述模塊實(shí)例語句。

9.1 模塊

Verilog HDL中,基本單元定義成模塊形式,如下所示 :

m o d u l e m o d u l e _ n a m e(p o r t _ l i s t) ;

D e c l a r a t i o n s _ a n d _ S t a t e m e n t s

e n d m o d u l e

端口隊(duì)列p o rt _ l i s t列出了該模塊通過哪些端口與外部模塊通信。

9.2 端口

模塊的端口可以是輸入端口、輸出端口或雙向端口。缺省的端口類型為線網(wǎng)類型(即wire類型)。但是,端口可被顯式地指定為線網(wǎng)。輸出或輸入輸出端口能夠被重新聲明為reg型寄存器。無論是在線網(wǎng)說明還是寄存器說明中,線網(wǎng)或寄存器必須與端口說明中指定的長度相同。下面是一些端口說明實(shí)例。

m o d u l e M i c r o (PC, Instr, NextAddr );

/ /端口說明

i n p u t [3:1] P C;

o u t p u t [1:8] I n s t r;

i n o u t [16:1] N e x t A d d r;

/ /重新說明端口類型:

w i r e [16:1] N e x t A d d r; //該說明是可選的,但如果指定了,就必須與它的端口說明保持相同長度。

r e g [1:8] I n s t r;

/ /I n s t r已被重新說明為r e g類型,因此它能在always 語句或在i n i t i a l語句中賦值。

。 . 。

e n d m o d u l e

9.3 模塊實(shí)例語句

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

如下:

module_name instance_name (p o r t _ a s s o c i a t i o n s) ;

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

p o r t _ e x p r / /通過位置。

.P o r t N a m e (p o r t _ e x p r) / /通過名稱。

p o rt _ e x p r可以是以下的任何類型:

1) 標(biāo)識符(r e g或n e t)

2) 位選擇

3) 部分選擇

4) 上述類型的合并

5) 表達(dá)式(只適用于輸入端口)

在位置關(guān)聯(lián)中,端口表達(dá)式按指定的順序與模塊中的端口關(guān)聯(lián)。在通過名稱實(shí)現(xiàn)的關(guān)聯(lián)中,模塊端口和端口表達(dá)式的關(guān)聯(lián)被顯式地指定,因此端口的關(guān)聯(lián)順序并不重要。下例使用兩個半加器模塊構(gòu)造全加器;邏輯圖如圖 9 - 1所示。

在第一個模塊實(shí)例語句中, H A是模塊的名字 ,h 1是實(shí)例名稱,并且端口按位置關(guān)聯(lián),即

信號P與模塊(H A)的端口A連接,信號Q與端口B連接,S 1與S連接,C 1與模塊端口C連接。在第二個實(shí)例中,端口按名稱關(guān)聯(lián),即模塊( H A)和端口表達(dá)式間的連接是顯示地定義

的。下例是使用不同端口表達(dá)式形式的模塊實(shí)例語句。

Micro M1 (U d I n[3:0], {WrN, RdN}, S t a t u s[0], S t a t u s[ 1 ] ,

& U d O u t [0:7], T x D a t a) ;

這個實(shí)例語句表示端口表達(dá)式可以是標(biāo)識符( T x D a t a)、位選擇(S t a t u s[ 0 ]) 、 部分位選擇(U d I n[ 3 : 0 ])、合并({Wr N,R d N})或一個表達(dá)式(& u d O u t[ 0 : 7 ]);表達(dá)式只能夠連接到輸入端口。

9.3.1 懸空端口

在實(shí)例語句中,懸空端口可通過將端口表達(dá)式表示為空白來指定為懸空端口,例如:

DFF d1 ( .Q(Q S), .Q b a r(), .D a t a( D ) ,

.P r e s e t(), .C l o c k(CK)); //名稱對應(yīng)方式。

DFF d2 (QS, , D, , CK ) ; / /位置對應(yīng)方式。

/ /輸出端口Q b a r懸空。

/ /輸入端口P r e s e t打開,其值設(shè)定為z。

在這兩個實(shí)例語句中,端口Q b a r和P re s e t懸空。

模塊的輸入端懸空,值為高阻態(tài)z。模塊的輸出端口懸空,表示該輸出端口廢棄不用。

9.3.2 不同的端口長度

當(dāng)端口和局部端口表達(dá)式的長度不同時,端口通過無符號數(shù)的右對齊或截?cái)喾绞竭M(jìn)行匹

配。例如:

在對C h i l d模塊的實(shí)例中, B d l[ 2 ]連接到P b a[ 0 ],B d l[1] 連接到P b a[ 1 ],余下的輸入端口P b a[ 5 ]、P b a[ 4 ]和P b a[ 3 ]懸空,因此為高阻態(tài) z。與之相似,M p r[ 6 ]連接到P p y[ 0 ],M p r[ 5 ]連接到P p y[ 1 ],M p r[4] 連接到P p y[ 2 ]。參見圖9 - 2。

9.3.3 模塊參數(shù)值

當(dāng)某個模塊在另一個模塊內(nèi)被引用時,高層模塊能夠改變低層模塊的參數(shù)值。模塊參數(shù)值的改變可采用下述兩種方式:

1) 參數(shù)定義語句(d e f p a r a m);

2) 帶參數(shù)值的模塊引用。

1. 參數(shù)定義語句

參數(shù)定義語句形式如下:

d e f p a r a m hier_path_name1 = v a l u e 1,

hier_path_name2 = v a l u e 2, 。..;

較低層模塊中的層次路徑名參數(shù)可以使用如下語句顯式定義(層次路徑名在下一章中講述)。下面是一個例。模塊FA和H A已在本節(jié)前面描述過。

2. 帶參數(shù)值的模塊引用

在這種方法中,模塊實(shí)例語句自身包含有新的參數(shù)值。下面的例子在前幾節(jié)中也出現(xiàn)過,本例中采用帶參數(shù)的模塊引用方式。

模塊實(shí)例語句中參數(shù)值的順序必須與較低層被引用的模塊中說明的參數(shù)順序匹配。在模塊TO P 3中,A N D _ D E L AY已被設(shè)置為5,X O R _ D E L AY已被設(shè)置為2。

模塊TO P 3和TO P 4解釋說明了帶參數(shù)的模塊引用只能用于將參數(shù)值向下傳遞一個層次(例如,O R _ D E L AY),但是參數(shù)定義語句能夠用于替換層次中任意一層的參數(shù)值。

應(yīng)注意到:在帶參數(shù)的模塊引用中,參數(shù)的指定方式與門級實(shí)例語句中時延的定義方式相似;但由于對復(fù)雜模塊的引用時,其實(shí)例語句不能像對門實(shí)例語句那樣指定時延,故此處不會導(dǎo)致混淆。參數(shù)值還可以表示長度。下面是通用的 M×N乘法器建模的實(shí)例。

第1個值8指定了參數(shù)E M的新值,第2個值6指定了參數(shù)E N的新值。

9.4 外部端口

在迄今為止所見到的模塊定義中,端口表列舉出了模塊外部可見的端口。例如,

A r b、C t r l、M e m _ B l k和B y t e為模塊端口。這些端口同時也是外部端口,即在實(shí)例中,當(dāng)采用名稱關(guān)聯(lián)方式時,外部端口名稱用于指定相互連接。下面是模塊 S c r a m _ A的實(shí)例。

Scram_A SX( .B y t e(B 1) , .M e m _ B l k(M 1) , .C t r l(C 1) , .A r b(A 1) ) ;

在模塊S c r a m _ A中,外部端口名稱隱式地指定。Verilog HDL中提供顯式方式指定外部端

口名稱。這可以通過按如下形式指定一個端口來完成:

.e x t e r n a l _ p o r t _ n a m e(i n t e r n a l _ p o r t _ n a m e)

下面是同一個例子,只不過是顯式地指定外部端口。

模塊S c r a m _ B在此實(shí)例中指定的外部端口是 D a t a、C o n t ro l、M e m _ Wo rd和A d d r。端口表顯式地表明了外部端口和內(nèi)部端口之間的連接。注意外部端口無需聲明,但是模塊的內(nèi)部端口卻必須聲明。外部端口在模塊內(nèi)不可見,但是卻要在模塊實(shí)例語句中使用,而內(nèi)部端口因?yàn)樵谀K中可見,所以必須在模塊中說明。在模塊實(shí)例語句中,外部端口的使用如下所示:

Scram_B S1 ( .A d d r(A 1) , .D a t a(D 1) , .C o n t r o l(C 1) ,

.M e m _ W o r d(M 1) ) ;

在模塊定義的端口表中,這兩種概念不能混淆,即在模塊定義中所有端口必須指定顯式的端口名稱,或者沒有一個端口帶有顯式的端口名稱。如果模塊端口通過位置連接,則模塊實(shí)例語句中不能使用外部端口名稱。

內(nèi)部端口名稱可以是標(biāo)識符,也可以是下述類型的表達(dá)式:

? 位選擇;

? 部分選擇;

? 位選擇、部分選擇和標(biāo)識符的合并。

例如,

在S c r a m _ C的模塊定義中,端口表包括部分選擇( A r b[ 0 : 2 ])、標(biāo)識符( C t r l)、合并({M e m _ B l k[ 0 ],M e m _ B l k[ 1 ] } )和位選擇(B y t e[ 3 ])。在內(nèi)部端口是位選擇、部分選擇或合并的情況下,沒有隱式地指定外部端口名。因此,在這樣的模塊實(shí)例語句中,模塊端口必須通過位置關(guān)聯(lián)相互連接。例如,

Scram_C SYA (L 1[ 4 : 6 ] ,C L , M M Y[ 1 : 0 ] ,B T) ;

在這個實(shí)例語句中,端口通過位置關(guān)聯(lián)相連接,因此 L 1[ 4∶6 ]連接到A r b[ 0∶2 ],C L連接

到C t r l,M M Y[ 1 ]連接到M e m _ B l k[ 0 ] ,M M Y[ 0 ]連接到M e m _ B l k[ 1 ],B T連接到B y t e[ 3 ]。

若使用端口名稱關(guān)聯(lián)(即當(dāng)內(nèi)部端口不是標(biāo)識符時),必須對模塊中的端口指定外部端口名。如下面的S c r a m _ D模塊定義所示。

在S c r a m _ D模塊實(shí)例語句中,端口既能夠使用位置連接,也能夠使用名稱連接,但是不能混合使用。下例的模塊實(shí)例語句端口通過名稱連接。

Scram_D SZ ( .D a t a(L 1[ 4 : 6 ] , .C o n t r o l(C L) ,

.M e m _ W o r d(M M Y[ 1 : 0 ],.A d d r(B T) ) ;

模塊中可以只有外部端口而沒有內(nèi)部端口。即模塊在引用中其外部端口可以懸空,不與內(nèi)部信號相連。例如:

模塊S c r a m _ E 有兩個外部端口D a t a和A d d r,這兩個端口在使用時被懸空。

一個內(nèi)部端口是否能與多個外部端口連接?Verilog HDL允許這樣連接。例如,

內(nèi)部端口C o n d O u t 與兩個外部端口B和C連接,所以C o n d O u t的值在B和C上都出現(xiàn)。

9.5 舉例

下例采用結(jié)構(gòu)模型描述十進(jìn)制計(jì)數(shù)器。十進(jìn)制計(jì)數(shù)器的邏輯圖如圖 9 - 3所示。

ad29dd00-8434-11eb-8b86-12bb97331649.png

注意常數(shù)作為輸入端口信號的用法,以及懸空端口。

下面是另一個例子,3位可逆計(jì)數(shù)器的邏輯結(jié)構(gòu)如圖9 - 4所示,其結(jié)構(gòu)描述如下:

ade46cba-8434-11eb-8b86-12bb97331649.png

責(zé)任編輯:lq6

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

    關(guān)注

    0

    文章

    334

    瀏覽量

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

    關(guān)注

    4

    文章

    1104

    瀏覽量

    33966
  • Verilog HDL
    +關(guān)注

    關(guān)注

    17

    文章

    126

    瀏覽量

    51434
  • 可逆計(jì)數(shù)器

    關(guān)注

    0

    文章

    2

    瀏覽量

    6840

原文標(biāo)題:Verilog入門-結(jié)構(gòu)建模

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Verilog HDL語法學(xué)習(xí)筆記

    Verilog HDL 語 言 最 初 是 作為 Gateway Design Automation 公 司 ( Gateway DesignAutomation 公司后來被著名的 Cadence Design Systems 公司收購)模擬器產(chǎn)品開發(fā)的硬件
    的頭像 發(fā)表于 03-04 15:04 ?3014次閱讀
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>語法學(xué)習(xí)筆記

    線性科技LTC1060:通用雙濾波器構(gòu)建模塊的卓越性能與應(yīng)用

    線性科技LTC1060:通用雙濾波器構(gòu)建模塊的卓越性能與應(yīng)用 在電子工程師的日常設(shè)計(jì),濾波器的選擇至關(guān)重要。今天,我們將深入探討線性科技(Linear Technology)的LTC1060通用雙
    的頭像 發(fā)表于 01-20 11:40 ?371次閱讀

    LTC1164:低功耗、低噪聲的通用濾波器構(gòu)建模

    LTC1164:低功耗、低噪聲的通用濾波器構(gòu)建模塊 在電子設(shè)計(jì)領(lǐng)域,濾波器的性能對整個系統(tǒng)的穩(wěn)定性和可靠性起著至關(guān)重要的作用。今天,我們要深入探討 Linear Technology 公司推出
    的頭像 發(fā)表于 01-20 10:55 ?193次閱讀

    LTC1067/LTC1067 - 50:通用雙濾波器構(gòu)建模塊的深度剖析與應(yīng)用

    LTC1067/LTC1067 - 50:通用雙濾波器構(gòu)建模塊的深度剖析與應(yīng)用 引言 在電子工程師的日常設(shè)計(jì)工作,濾波器的選擇和設(shè)計(jì)至關(guān)重要。LTC1067/LTC1067 - 50作為一款出色
    的頭像 發(fā)表于 01-19 17:05 ?388次閱讀

    FPGA 入門必看:Verilog 與 VHDL 編程基礎(chǔ)解析!

    很多開發(fā)者第一次接觸FPGA,都會有同樣的疑問:FPGA是硬件,不是軟件,怎么寫程序?答案就是用硬件描述語言(HDL),最常用的就是Verilog和VHDL。今天,我們就帶你入門,搞清楚FPGA編程
    的頭像 發(fā)表于 01-19 09:05 ?453次閱讀
    FPGA 入門必看:<b class='flag-5'>Verilog</b> 與 VHDL 編程基礎(chǔ)解析!

    【產(chǎn)品介紹】Modelsim:HDL語言仿真軟件

    概述ModelSim是業(yè)界最優(yōu)秀的HDL語言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持VHDL和Verilog混合仿真的仿真器。它采用直接優(yōu)化的編譯技術(shù)、Tcl/Tk技術(shù)、和單一內(nèi)核
    的頭像 發(fā)表于 11-13 11:41 ?503次閱讀
    【產(chǎn)品介紹】Modelsim:<b class='flag-5'>HDL</b>語言仿真軟件

    如何利用Verilog HDL在FPGA上實(shí)現(xiàn)SRAM的讀寫測試

    本篇將詳細(xì)介紹如何利用Verilog HDL在FPGA上實(shí)現(xiàn)SRAM的讀寫測試。SRAM是一種非易失性存儲器,具有高速讀取和寫入的特點(diǎn)。在FPGA實(shí)現(xiàn)SRAM讀寫測試,包括設(shè)計(jì)SRAM接口模塊
    的頭像 發(fā)表于 10-22 17:21 ?4345次閱讀
    如何利用<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>在FPGA上實(shí)現(xiàn)SRAM的讀寫測試

    使用Simulink自動生成浮點(diǎn)運(yùn)算HDL代碼(Part 1)

    引言 想要實(shí)現(xiàn)浮點(diǎn)運(yùn)算功能,如果自己寫Verilog代碼,需要花費(fèi)較多的時間和精力。好在Simulink HDL Coder工具箱提供了自動代碼生成技術(shù)。下圖展示了HDL Coder如何生成浮點(diǎn)運(yùn)算
    發(fā)表于 10-22 06:48

    VirtualLab Fusion應(yīng)用:Herriott池的建模

    摘要 在氣體光譜學(xué),為了獲得足夠靈敏的吸收測量,通常要求具有較長的光程長度。充氣體積包裹在反射鏡之間的多通道單元是滿足這一要求的一種方式,同時在途中控制光束發(fā)散,避免了對超大設(shè)備的需求
    發(fā)表于 06-11 08:52

    利用MATLAB對交流電機(jī)調(diào)速系統(tǒng)進(jìn)行建模和仿真

    原理結(jié)構(gòu)圖的仿真方法,對交流電機(jī)調(diào)速系統(tǒng)進(jìn)行研究,從而實(shí)現(xiàn)對典型電機(jī)定子調(diào)壓調(diào)速模型的構(gòu)建與仿真。 純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~*附件:利用MATLAB對交流電機(jī)調(diào)速系統(tǒng)進(jìn)行建模和仿真
    發(fā)表于 06-06 14:31

    verilog模塊的調(diào)用、任務(wù)和函數(shù)

    在做模塊劃分時,通常會出現(xiàn)這種情形,某個大的模塊包含了一個或多個功能子模塊,verilog是通過模塊調(diào)用或稱為模塊實(shí)例化的方式來實(shí)現(xiàn)這些子模塊與高層模塊的連接的.
    的頭像 發(fā)表于 05-03 10:29 ?1569次閱讀
    <b class='flag-5'>verilog</b>模塊的調(diào)用、任務(wù)和函數(shù)

    VirtualLab應(yīng)用:傅科刀口測試的建模

    建模任務(wù) 系統(tǒng)構(gòu)建模塊——拋物面鏡 系統(tǒng)構(gòu)建模塊 – 球面鏡 系統(tǒng)構(gòu)建塊 – 光闌 系統(tǒng)構(gòu)建模塊——理想準(zhǔn)直透鏡 系統(tǒng)
    發(fā)表于 04-26 10:37

    FPGA Verilog HDL語法之編譯預(yù)處理

    Verilog HDL語言和C語言一樣也提供了編譯預(yù)處理的功能。“編譯預(yù)處理”是Verilog HDL編譯系統(tǒng)的一個組成部分。Verilog
    的頭像 發(fā)表于 03-27 13:30 ?1437次閱讀
    FPGA <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>語法之編譯預(yù)處理

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

    VirtualLab Fusion工作流程 ?設(shè)置輸入點(diǎn)源 –[教程視頻] ?構(gòu)造漸變折射率鏡片 –漸變折射率鏡片的構(gòu)建建模[用例] ?配置探測器 –PSF和MTF探測器的使用[用例] –電磁場探測器[用例] 電磁場探測器 VirtualLab Fusion技術(shù)
    發(fā)表于 03-18 08:57

    一文詳解Verilog HDL

    Verilog HDL(Hardware Description Language)是一種硬件描述語言,用于從算法級、門級到開關(guān)級的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模?,F(xiàn)實(shí)生活多用于專用
    的頭像 發(fā)表于 03-17 15:17 ?4297次閱讀
    一文詳解<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>