電子設(shè)計(jì)自動(dòng)化技術(shù)(EDA)Ch2-2013上_第1頁
電子設(shè)計(jì)自動(dòng)化技術(shù)(EDA)Ch2-2013上_第2頁
電子設(shè)計(jì)自動(dòng)化技術(shù)(EDA)Ch2-2013上_第3頁
電子設(shè)計(jì)自動(dòng)化技術(shù)(EDA)Ch2-2013上_第4頁
電子設(shè)計(jì)自動(dòng)化技術(shù)(EDA)Ch2-2013上_第5頁
已閱讀5頁,還剩227頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系第二章VHDL語言介紹

EDA技術(shù)實(shí)踐教程EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系原理圖輸入與VHDL文本輸入設(shè)計(jì)的區(qū)別Graphiciswhatyoudrawiswhatyouget“tellmewhathardwareyouwantandIwillgiveittoyou”VHDLiswhatyouwriteiswhatfunctionalyouget“tellmehowyourcircuitshouldbehaveandtheVHDLcompilerwillgiveyouthehardwarethatdoesthejob”

butthedesignercannotcontrolhowthecircuitimplement

EDA技術(shù)實(shí)踐教程EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程

VHDL語言的英文全名是VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage即超高速集成電路硬件描述語言。它是70年代和80年代初,由美國(guó)國(guó)防部為他們的超高速集成電路VHSIC計(jì)劃提出的硬件描述語言,它支持硬件的設(shè)計(jì)、綜合、驗(yàn)證和測(cè)試。1986年3月,IEEE開始致力于VHDL的標(biāo)準(zhǔn)化工作,討論VHDL語言標(biāo)準(zhǔn)。IEEE于1987年12月公布了VHDL的標(biāo)準(zhǔn)版本(IEEESTD1076/1987);1993年VHDL重新修訂,形成新的標(biāo)準(zhǔn)即IEEESTD1076-1993,后來有相繼頒布了IEEESTD1076-2002和IEEESTD1076-2008標(biāo)準(zhǔn)。什么是VHDL語言?EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系

EDA技術(shù)實(shí)踐教程

從此以后,美國(guó)國(guó)防部實(shí)施新的技術(shù)標(biāo)準(zhǔn),要求電子系統(tǒng)開發(fā)商的合同文件一律采用VHDL文檔。即第一個(gè)官方VHDL標(biāo)準(zhǔn)得到推廣、實(shí)施和普及。

VHDL語言描述能力極強(qiáng),覆蓋了邏輯設(shè)計(jì)的諸多領(lǐng)域和層次,并支持眾多的硬件模型。設(shè)計(jì)者的原始描述是非常簡(jiǎn)練的硬件描述,經(jīng)過EDA工具綜合處理,最終生成付諸生產(chǎn)的電路描述或版圖參數(shù)描述的工藝文件。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系VHDL的優(yōu)點(diǎn)用于設(shè)計(jì)復(fù)雜的、多層次的設(shè)計(jì)。支持設(shè)計(jì)庫和設(shè)計(jì)的重復(fù)使用與硬件獨(dú)立,一個(gè)設(shè)計(jì)可用于不同的硬件結(jié)構(gòu),而且設(shè)計(jì)時(shí)不必了解過多的硬件細(xì)節(jié)。有豐富的軟件支持VHDL的綜合和仿真,從而能在設(shè)計(jì)階段就能發(fā)現(xiàn)設(shè)計(jì)中的Bug,縮短設(shè)計(jì)時(shí)間,降低成本。更方便地向ASIC過渡VHDL有良好的可讀性,容易理解。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系VHDL與計(jì)算機(jī)語言的區(qū)別運(yùn)行的基礎(chǔ)計(jì)算機(jī)語言是在CPU+RAM構(gòu)建的平臺(tái)上運(yùn)行VHDL設(shè)計(jì)的結(jié)果是由具體的邏輯電路、觸發(fā)器組成的數(shù)字電路執(zhí)行方式計(jì)算機(jī)語言基本上以串行(順序)的方式執(zhí)行VHDL在總體上是以并行方式工作驗(yàn)證方式計(jì)算機(jī)語言主要關(guān)注于變量值的變化VHDL要實(shí)現(xiàn)嚴(yán)格的時(shí)序邏輯關(guān)系EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydiv_clkisport(clkin:instd_logic;reset:instd_logic;clk_time:outstd_logic;clk_change:outstd_logic);enddiv_clk;architecturearchofdiv_clkissignalcounter:std_logic_vector(9downto0);beginclk_time<=counter(9);clk_change<=counter(7);process(reset,clkin)beginifreset='1'thencounter<="0000000000";elsifclkin'eventandclkin='1'thenifcounter="1111111111"thencounter<="0000000000";elsecounter<=counter+'1';endif;endif;endprocess;endarch;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系VHDL語言的結(jié)構(gòu)庫(library)和包(package)實(shí)體(entity)結(jié)構(gòu)體(architecture)EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程VHDL語言的結(jié)構(gòu)VHDL程序結(jié)構(gòu)

一個(gè)完整的VHDL語言程序通常包含實(shí)體(Entity)、結(jié)構(gòu)體(Architecture)、配置(Configuration)、包集合(Package)和庫(Library)5個(gè)部分。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程LIBRARYieee;USE

ieee.std_logic_1164.all;ENTITY

en_name

ISPORT

(input_pin_name:INbit;output_pin_name:OUTbit);END

en_name;ARCHITECTUREar_name

OFen_name

ISBEGINoutput_pin_name<=input_pin_name;ENDar_name;大寫的是關(guān)鍵字VHDL格式邏輯這兩個(gè)必須相同I/O端口定義邏輯行為定義必須用en_name作為文件名存盤,文件名和實(shí)體名相同VHDL的一般結(jié)構(gòu)庫說明實(shí)體說明結(jié)構(gòu)體EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程例:2inputANDgateENTITYsimand

ISPORT(a,b:

IN

BIT;

c:

OUT

BIT);END

simand;ARCHITECTURE

simand_body

OF

simand

ISBEGINc<=aAND

b;END

simand_body;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程

例:一個(gè)二選一電路的VHDL描述

ENTITY

mux

IS

GENERIC

(m:TIME:=5ns);

PORT

(d0,d1,sel:INBIT;

q:OUTBIT);ENDmux;

ARCHITECTURE

connect

OF

mux

IS

SIGNAL

tmp:BIT;

BEGIN

Cale:PROCESS(d0,d1,sel)

VARIABLE

temp1,temp2,temp3:BIT;

BEGIN

temp1:=d0

AND

sel;

temp2:=d1

AND(NOTsel);

temp3:=tmp1

OR

temp2;

tmp<=tmp3;

q<=tmpAFTER

m;

ENDPROCESS;

END

connect;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系1、庫(Library)已編譯的數(shù)據(jù)集合存放包集合、實(shí)體、構(gòu)造體、數(shù)據(jù)類型、函數(shù)、過程和配置的定義庫的種類VHDL系統(tǒng)庫:libraryieee;librarystd;VHDL工作庫-WORK庫存放當(dāng)前正在設(shè)計(jì)的編譯結(jié)果,比如其他成員的設(shè)計(jì)結(jié)果:librarywork廠家自定義庫QuartusII中有l(wèi)pm庫,定義了許多數(shù)字電路基本元件Librarylpm庫的內(nèi)容在quartusX\libraries\vhdl目錄下EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系包(Package)每個(gè)庫里都包含一個(gè)或多個(gè)包在VHDL程序的Architecture中,定義的Type、Component、Function或其他的聲明對(duì)于其他設(shè)計(jì)文件來說都是不可見的。Package中定義的這些對(duì)于其他設(shè)計(jì)則是可見的。Uselibrary_name.package_name.item如果想Package中所有定義都可見,則item用all來代替EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系Libraryieee;Useieee.std_logic_1164.std_ulogic;Useieee.std_logic_1164.rising_edge;例:EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系IEEE標(biāo)準(zhǔn)庫std_logic_1164:定義了VHDL語言的基本數(shù)據(jù)類型,如std_logic以及其向量類型;基本的運(yùn)算,如and、nor等;std_logic_arith:重載了+、-、*、/、等操作符,使其能對(duì)signed和unsigned的數(shù)據(jù)類型進(jìn)行算術(shù)運(yùn)算和比較運(yùn)算操作Std_logic_signed:重載了+、-、×和關(guān)系運(yùn)算符,使std_logic、std_logic_vector和integer能夠進(jìn)行混合有符號(hào)數(shù)據(jù)類型的算術(shù)操作Std_logic_unsigned:重載了+、-、×和關(guān)系運(yùn)算符,使std_logic、std_logic_vector和integer能夠進(jìn)行混合無符號(hào)數(shù)據(jù)類型的算術(shù)操作STD標(biāo)準(zhǔn)庫standard:定義了如整數(shù)、實(shí)數(shù)、Bool、bit、char和物理類型Textio:定義了文件類型及相關(guān)操作EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系包(Package)LIBRARYieee;USEieee.std_logic_1164.ALL;PACKAGEram_constantsISconstantwidth:integer:=8;ENDram_constants;LIBRARYieee;USEieee.std_logic_1164.ALL;LIBRARYwork;USEwork.ram_constants.ALL;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系程序包常數(shù)說明VHDL數(shù)據(jù)類型說明元件定義子程序如果包頭部分聲明了function或者procedure,則在包體中一定要有對(duì)應(yīng)的描述代碼。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系定義包(package)的語句結(jié)構(gòu):Package

程序包名is

--程序包首

程序包首說明部分End

程序包名;Packagebody

程序包名is

--程序包體程序包體說明部分以及包體End

程序包名EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系Packagepac1is

--程序包首開始

typebyteisrange0to255;--第一數(shù)據(jù)類型byte

subtypenibbleis

byte

range0to15;--定義子類型nibbleConstantbyte_ff:byte:=255;--定義常數(shù)byte_ffSignaladdend:nibble;--定義信號(hào)addendComponentbyte_adder--定義元件Port(a,b:in

byte;c:out

byte;overflow:outboolean);Endcomponent;Functionmy_function(a:in

byte)return

byte;--定義函數(shù)Endpac1;--程序包首結(jié)束EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程2、實(shí)體(ENTITY)

設(shè)計(jì)實(shí)體是VHDL程序的基本單元,它與電路圖中元器件符號(hào)對(duì)應(yīng);簡(jiǎn)單的實(shí)體可以代表一個(gè)與門電路,復(fù)雜的可以是一個(gè)微處理器或一個(gè)數(shù)字電子系統(tǒng)。一個(gè)實(shí)體由實(shí)體說明和結(jié)構(gòu)體說明兩部分組成。任何一個(gè)基本設(shè)計(jì)單元的實(shí)體說明都具有如下結(jié)構(gòu):ENTITY實(shí)體名IS[GENERIC(類屬表):][PORT(端口表):]END實(shí)體名EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程實(shí)體名:一個(gè)設(shè)計(jì)實(shí)體無論多大或多復(fù)雜,在實(shí)體中定義的實(shí)體名即為這個(gè)設(shè)計(jì)實(shí)體的名稱。在元件例化中,即可用此名對(duì)相應(yīng)的設(shè)計(jì)實(shí)體進(jìn)行調(diào)用。類屬說明:類屬參數(shù)說明是實(shí)體組織中的可選項(xiàng)。

GENERIC[常數(shù)名字表:數(shù)據(jù)類型[:=設(shè)定值],……]例如:GENETRIC(m:TIME:=3ns);……A<=CANDBAFTERm;端口說明:是對(duì)設(shè)計(jì)實(shí)體與外部接口的描述。端口說明的一般書寫格式:PORT(端口名{,端口名}:方向

數(shù)據(jù)類型;…

端口名:方向

數(shù)據(jù)類型名);PORT說明語句是對(duì)一個(gè)設(shè)計(jì)實(shí)體界面的說明及對(duì)設(shè)計(jì)實(shí)體與外部電路的接口通道的說明,其中包括對(duì)每一接口的輸入輸出模式和數(shù)據(jù)類型的定義端口名是設(shè)計(jì)者為實(shí)體的每一個(gè)對(duì)外通道所取的名字,端口模式是指這些通道上的數(shù)據(jù)流動(dòng)方式。數(shù)據(jù)類型是指端口上流動(dòng)的數(shù)據(jù)的表達(dá)格式或取值類型EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程端口類似于原理圖部件符號(hào)上的管腳。端口模式:用來說明數(shù)據(jù)、信號(hào)通過該端口的方向,端口模式有IN、OUT、INOUT、BUFFER。IN模式:主要用于時(shí)鐘輸入、控制輸入和單向的數(shù)據(jù)輸入。不用的輸入一般接地,以免浮動(dòng)引入干擾噪聲。OUT模式:用于數(shù)據(jù)輸出,不能通過該端口向?qū)嶓w輸入信號(hào)。不用的輸出端口不能接地,避免造成輸出高電平燒毀被設(shè)計(jì)實(shí)體。BUFFER模式:與輸出模式的端口相類似,只是該模式允許內(nèi)部引用該端口的信號(hào)。緩沖端既能用于輸出,也能用于反饋。INOUT模式:可以代替輸入、輸出和緩沖三種模式。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系端口示意圖EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系Out與Buffer的區(qū)別Entitytest1isport(a:instd_logic;

b,c:outstd_logic);endtest1;architectureaoftest1isbeginb<=not(a);

c<=b;--Errorenda;Entitytest2isport(a:instd_logic;

b:bufferstd_logic;

c:outstd_logic

);endtest2;architectureaoftest2isbeginb<=not(a);

c<=b;enda;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程3、結(jié)構(gòu)體(ARCHITECTURE)

結(jié)構(gòu)體指明了該設(shè)計(jì)實(shí)體的行為,定義了該設(shè)計(jì)實(shí)體的功能,規(guī)定了該設(shè)計(jì)實(shí)體的數(shù)據(jù)流程,指派了實(shí)體中內(nèi)部的連接關(guān)系。結(jié)構(gòu)體通過若干并行語句來描述設(shè)計(jì)實(shí)體的邏輯功能(行為描述)、數(shù)據(jù)流向(RTL描述)或內(nèi)部電路結(jié)構(gòu)(結(jié)構(gòu)描述),從而建立設(shè)計(jì)實(shí)體輸出與輸入之間的關(guān)系。結(jié)構(gòu)體中的并行語句對(duì)應(yīng)了硬件電路中的不同部件之間、不同數(shù)據(jù)流之間的并行工作特性。用VHDL語言描述結(jié)構(gòu)體功能有三種方法:⑴行為behavioral描述;⑵寄存器傳輸描述(RTL描述,也稱為數(shù)據(jù)流dataflow描述方式);⑶結(jié)構(gòu)structural描述。不同的描述方式,只體現(xiàn)在描述語句上,而結(jié)構(gòu)體的結(jié)構(gòu)是完全一樣的。一個(gè)設(shè)計(jì)實(shí)體可以有多個(gè)結(jié)構(gòu)體,分別代表該實(shí)體的不同實(shí)現(xiàn)方案。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程返回(1)結(jié)構(gòu)體的格式及其命名:

ARCHITECTURE

結(jié)構(gòu)體名OF

實(shí)體名

IS[定義語句]

BEGIN[功能描述語句]ARCHITECTUREconnect

OF

muxISEDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程(2)定義語句

結(jié)構(gòu)體定義語句位于ARCHITECTURE和BEGIN之間。說明語句用以定義結(jié)構(gòu)體中所用的數(shù)據(jù)對(duì)象(CONSTANT、SIGNAL)和子程序(FUNCTION、PROCEDURE),并對(duì)所引用的元件(COMPONENT)加以說明,但不能定義變量。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程(3)并行處理語句

并行處理語句是結(jié)構(gòu)體功能描述的重要語句,功能描述語句位于BEGIN和END之間。在結(jié)構(gòu)體中的語句都是并行執(zhí)行的,這些語句具體地描述了結(jié)構(gòu)體的行為及其連接關(guān)系。包括并行進(jìn)程語句、條件信號(hào)賦值語句、選擇信號(hào)賦值語句、并行信號(hào)賦值語句、并行子程序調(diào)用語句和元件例化語句(生成語句)。例二選一的數(shù)據(jù)流方式描述可以寫成為:…ARCHITECTUREdataflow

OFmux

ISBEGIN

q<=(d0

AND

sel)OR

((NOT

sel)AND

d1);END

dataflow;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系并行語句EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系VHDL語言的基本語法標(biāo)識(shí)符數(shù)據(jù)對(duì)象數(shù)據(jù)類型運(yùn)算操作符EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系VHDL語言的標(biāo)識(shí)符EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程VHDL語言的標(biāo)識(shí)符VHDL中的標(biāo)識(shí)符是常數(shù)、變量、信號(hào)、端口、子程序或參數(shù)的名字。使用標(biāo)識(shí)符要遵守如下規(guī)則:·標(biāo)識(shí)符由字母(A…Z,a…z)、數(shù)字和下劃線字符組成?!と魏螛?biāo)識(shí)符必須以英文字母開頭?!つ┳址荒転橄聞澗€?!げ辉试S出現(xiàn)兩個(gè)連續(xù)下劃線?!?biāo)識(shí)符中不區(qū)分大小寫字母?!HDL定義的保留字或稱關(guān)鍵字,不能用作標(biāo)識(shí)符?!HDL中的注釋由兩個(gè)連續(xù)的虛線(--)開始,直到行尾。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程例:一些錯(cuò)誤的標(biāo)識(shí)符_Decoder_1--起始為非英文字母3DOP--起始為數(shù)字Large#number--“#”不能成為標(biāo)識(shí)符的構(gòu)成符號(hào)Date__bus--不能有雙下劃線Copper_--最后字符不能為下劃線on--關(guān)鍵字EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系VHDL數(shù)據(jù)對(duì)象(DataObjects)常數(shù)變量信號(hào)EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程1.

常數(shù)(Constant)

常數(shù)是一個(gè)固定的值,主要是為了使設(shè)計(jì)實(shí)體中的常數(shù)更容易閱讀和修改。常數(shù)一旦被賦值就不能再改變。一般格式:CONSTANT

常數(shù)名:數(shù)據(jù)類型:=表達(dá)式;例:CONSTANTfbus:BIT_VECTOR:=“01011001”;--總線上數(shù)據(jù)設(shè)備向量CONSTANTVcc:REAL:=5.0;--設(shè)計(jì)實(shí)體的電源電壓指定CONSTANTdely:TIME:=25ns;--輸入/輸出的延遲時(shí)間常數(shù)所賦的值應(yīng)與定義的數(shù)據(jù)類型一致。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程

常量的使用范圍取決于它被定義的位置。程序包中定義的常量具有最大的全局化特性,可以用在調(diào)用此程序包的所有設(shè)計(jì)實(shí)體中;設(shè)計(jì)實(shí)體中定義的常量,其有效范圍為這個(gè)實(shí)體定義的所有的結(jié)構(gòu)體;設(shè)計(jì)實(shí)體中某一結(jié)構(gòu)體中定義的常量只能用于此結(jié)構(gòu)體;結(jié)構(gòu)體中某一單元定義的常量,如一個(gè)進(jìn)程中,這個(gè)常量只能用在這一進(jìn)程中。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系常數(shù)(Constant)固定值,不能在程序中被改變?cè)鰪?qiáng)程序的可讀性,便于修改程序在綜合后,連接到電源和地可在庫Library、實(shí)體Entity、結(jié)構(gòu)體Architecture、進(jìn)程Process中進(jìn)行定義,其有效范圍也相應(yīng)限定常數(shù)總結(jié)EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程2.

變量(Variable)

變量是一個(gè)局部變量,它只能在函數(shù)語句和進(jìn)程語句結(jié)構(gòu)中使用,用作局部數(shù)據(jù)存儲(chǔ)。在仿真過程中,它不像信號(hào)那樣,到了規(guī)定的仿真時(shí)間才進(jìn)行賦值,變量的賦值是立即生效的。變量常用在實(shí)現(xiàn)某種算法的賦值語句中。一般格式:VARIABLE

變量名:數(shù)據(jù)類型約束條件:=表達(dá)式;例:VARIABLEx,y:INTEGER;

--定義x,y為整數(shù)變量VARIABLEcount:INTEGERRANGE0TO255:=10;--定義計(jì)數(shù)變量范圍EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程

變量的適用范圍僅限于定義了變量的進(jìn)程或子程序中。若將變量值用于進(jìn)程之外,必須將該值賦給一個(gè)相同的類型的信號(hào),即進(jìn)程之間傳遞數(shù)據(jù)靠的是信號(hào)。變量賦值語句的語法格式如下:目標(biāo)變量:=表達(dá)式;

變量賦值符號(hào)是“:=”。賦值語句右方的表達(dá)式必須是一個(gè)與目標(biāo)變量有相同數(shù)據(jù)類型的數(shù)值。變量不能用于硬件連線和存儲(chǔ)元件。下例表達(dá)了變量不同的賦值方式。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程例:VARIABLE

x,y

:REAL;VARIABLE

a,b:

BIT_VECTOR(0TO7);x:=100.0;

--實(shí)數(shù)賦值,x是實(shí)數(shù)變量y:=1.5+x;

--運(yùn)算表達(dá)式賦值,y也是實(shí)數(shù)變量a:=b;a:=”1010101”;

--位矢量賦值,a的數(shù)據(jù)類型是位矢量a(3TO6):=(‘1’,’1’,’0’,’1’);

--段賦值a(0TO5):=b(2TO7);a(7):=’0’;

--位賦值EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系變量(Variable)臨時(shí)數(shù)據(jù),沒有物理意義只能在Process和Function中定義,并只在其內(nèi)部有效要使其全局有效,先轉(zhuǎn)換為Signal。用:=

進(jìn)行賦值

variableresult:std_logic:=‘0’;變量總結(jié)EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程3.信號(hào)(Signal)

信號(hào)是描述硬件系統(tǒng)的基本數(shù)據(jù)對(duì)象,它類似于連接線。它除了沒有數(shù)據(jù)流動(dòng)方向說明以外,其他性質(zhì)與實(shí)體的端口(Port)概念一致。信號(hào)通常在構(gòu)造體、包集合和實(shí)體中說明。信號(hào)說明格式為:

SIGNAL

信號(hào)名:數(shù)據(jù)類型約束條件:=初始值;信號(hào)初始值的設(shè)置不是必需的,而且初始值僅在VHDL的行為仿真中有效。例SIGNAL

temp:

STD_LOGIC:='0';

第一組定義了一個(gè)單值信號(hào)temp,數(shù)據(jù)類型是標(biāo)準(zhǔn)位STD_LOGIC,信號(hào)初始值為低電平;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程

第二組定義了兩個(gè)數(shù)據(jù)類型位BIT的信號(hào)flaga和flagb;

第三組定義了一個(gè)位矢量信號(hào)或者說是總線信號(hào),或者組信號(hào),數(shù)據(jù)類型是標(biāo)準(zhǔn)位矢量STD_LOGIC_VECTOR,共有16個(gè)信號(hào)元素。SIGNAL

flaga,flagb:

BIT;SIGNAL

data:

STD_LOGIC_VECTOR

(15DOWNTO0);EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程

信號(hào)的使用和定義范圍是實(shí)體、結(jié)構(gòu)體和程序包。

在進(jìn)程中,只能將信號(hào)列入敏感表,而不能將變量列入敏感表。可見進(jìn)程只對(duì)信號(hào)敏感,而對(duì)變量不敏感。

在程序中,信號(hào)值的代入采用“<=”代入符,而不是像變量賦值時(shí)用“:=”。而且信號(hào)代入時(shí)可以附加延時(shí)。但需注意,信號(hào)的初始賦值符號(hào)仍是“:=”,不可附加延時(shí)。例如:X<=YAFTER10ns;X,Y都是信號(hào),且Y的值經(jīng)過10ns延時(shí)以后才被代入X。信號(hào)是一個(gè)全局量,它可以用來進(jìn)行進(jìn)程之間的通信。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系信號(hào)(Signals)代表連線,Port也是一種信號(hào)沒有方向性,可給它賦值,也可當(dāng)作輸入在Entity中和Architecture中定義設(shè)定的初始值在綜合時(shí)沒有用,只是在仿真時(shí)在開始設(shè)定一個(gè)起始值。在Max+PlusII中被忽略。用<=

進(jìn)行賦值signalcount:bit_vector(3downto0):=“0011”;信號(hào)總結(jié)EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系信號(hào)與變量賦值語句功能的比較

信號(hào)SIGNAL變量VARIABLE基本用法用于作為電路中的信號(hào)連線

用于作為進(jìn)程中局部數(shù)據(jù)存儲(chǔ)單元

適用范圍在整個(gè)結(jié)構(gòu)體內(nèi)的任何地方都能適用

只能在所定義的進(jìn)程中使用

行為特性在進(jìn)程的最后才對(duì)信號(hào)賦值

立即賦值

EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系信號(hào)與變量的區(qū)別(1)architecturertlofstartissignalcount:integerrange0to7;beginprocess(clk)beginif(clk'eventandclk='1')then

count<=count+1;

if(count=0)thencarryout<='1';elsecarryout<='0';endif;endif;endprocess;endrtl;architecturertlofstartisbeginprocess(clk)variablecount:integerrange0to7;beginif(clk'eventandclk='1')then

count:=count+1;

if(count=0)thencarryout<='1';elsecarryout<='0';endif;endif;endprocess;endrtl;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系LIBRARY

IEEE;USE

IEEE.STD_LOGIC_1164.ALL;USE

IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY

EXAM

ISPORT(CLK:IN

STD_LOGIC;QA:OUT

STD_LOGIC_VECTOR(4DOWNTO0);QB:OUT

STD_LOGIC_VECTOR(4DOWNTO0));END

EXAM;ARCHITECTURE

SVSV

OF

EXAM

ISSIGNAL

B:STD_LOGIC_VECTOR(4DOWNTO0):="00000";BEGINPROCESS(CLK)VARIABLE

A:STD_LOGIC_VECTOR(4DOWNTO0):="00000";BEGINIFCLK'EVENTANDCLK='1'THENA:=A+1;A:=A+1;B<=B+1;B<=B+1;ENDIF;QA<=A;QB<=B;ENDPROCESS;ENDSVSV;信號(hào)與變量賦值區(qū)別EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程例

進(jìn)程1:PROCESS(A,B,C,D)BEGIN

D<=A;X<=B+D;D<=C;Y<=B+D;ENDPROCESS;

D中最初代入的值是A,接著又代入C值。盡管D中先代入A值,后代入C值,在時(shí)間上有一個(gè)△的延時(shí),但是,在代入時(shí)由于不進(jìn)行處理,因此仿真時(shí)認(rèn)為是時(shí)間0值延時(shí)。所以D的最終值應(yīng)為C,這樣執(zhí)行的結(jié)果:X,Y的內(nèi)容都為B+C。進(jìn)程2:PROCESS(A,B,C)VARIABLED:STD_LOGIC_VECTOR(3DOWNTO0);BEGIN

D:=A;X<=B+D;D:=C;Y<=B+D;ENDPROCESS;

在執(zhí)行“D:=A;”語句后,A的值就被賦給D,所以X為B+A。此后又執(zhí)行“D:=C;”,從而使Y為B+C。由此可看出,信號(hào)的值將進(jìn)程語句最后所代入的值作為最終代入值。而變量的值一經(jīng)賦值就變成新的值。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系【例3-8】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF3ISPORT(CLK,D1:INSTD_LOGIC;Q1:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF3IS

SIGNALA,B:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THEN

A<=D1;B<=A;Q1<=B;ENDIF;ENDPROCESS;END;變量賦值與信號(hào)賦值EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系【例3-9】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF3ISPORT(CLK,D1:INSTD_LOGIC;Q1:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF3ISBEGINPROCESS(CLK)

VARIABLEA,B:STD_LOGIC;

BEGINIFCLK'EVENTANDCLK='1'THEN

A:=D1;B:=A;Q1<=B;

ENDIF;ENDPROCESS;

END;變量賦值與信號(hào)賦值EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系

例3-8的RTL電路例3-9的RTL電路變量賦值與信號(hào)賦值EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系VHDL語言的數(shù)據(jù)類型(datatype)EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程數(shù)據(jù)類型VHDL語言提供了許多標(biāo)準(zhǔn)的數(shù)據(jù)類型;用戶也可自定義數(shù)據(jù)類型,這樣使VHDL語言的描述能力和自由度進(jìn)一步提高。但VHDL語言的數(shù)據(jù)類型的定義相當(dāng)嚴(yán)格,不同類型之間的數(shù)據(jù)不能直接代入。而且相同類型,但位長(zhǎng)不同的也不能直接代入,否則EDA工具在編譯綜合時(shí)會(huì)報(bào)告類型錯(cuò)。因此,為了熟練地使用VHDL語言編寫程序,必須很好地理解各種數(shù)據(jù)類型的意義。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程1)VHDL標(biāo)準(zhǔn)的數(shù)據(jù)類型(2)實(shí)數(shù)(Real)實(shí)數(shù)類型也類似于數(shù)學(xué)上的實(shí)數(shù),或稱浮點(diǎn)數(shù),表示范圍-1.0E+38~+1.0E+38。

(3)位(Bit)在數(shù)字系統(tǒng)中,信號(hào)通常采用一個(gè)位來表示,取值只能是1或0。(1)整數(shù)(Integer)整數(shù)類型的數(shù)代表正整數(shù)、負(fù)整數(shù)和零,表示的范圍為-(231-1)到(231-1),它與算術(shù)整數(shù)相似,可進(jìn)行“+”,“-”,“*”,“/”等算術(shù)運(yùn)算,不能用于邏輯運(yùn)算。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程(4)位矢量(Bit_Vector)位矢量是用雙引號(hào)括起來的一組位數(shù)據(jù),使用位矢量必須注明位寬。例如:SIGNALa:BIT_VECTOR

(7downto0)信號(hào)a被定義為一個(gè)具有8位位寬的矢量,最左位是a(7),最右位是a(0)。(5)布爾量(Boolean)一個(gè)布爾量具有兩種狀態(tài),“真”或者“假”。布爾量不屬于數(shù)值,因此不能用于運(yùn)算。它只能通過關(guān)系運(yùn)算符獲得。一般這一類型的數(shù)據(jù)初始值總為FALSE。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程(6)字符(Character)字符也是一種數(shù)據(jù)類型,字符類型通常用單引號(hào)引起來,如‘A’。字符類型區(qū)分大小寫,如‘B’不同于‘b’。(7)字符串(String)字符串是由雙引號(hào)括起來的一個(gè)字符序列,也稱字符矢量或字符串?dāng)?shù)組。常用于程序的提示和說明,如“STARING”等。(8)時(shí)間(Time)時(shí)間是一個(gè)物理數(shù)據(jù)。完整的時(shí)間類型包括整數(shù)和單位兩部分,整數(shù)與單位之間至少留一個(gè)空格,如55ms,2ns。在包集合STANDARD中給出了時(shí)間的預(yù)定義,其單位為fs,ps,ns,us,ms,sec,min,hr。

在系統(tǒng)仿真時(shí),時(shí)間數(shù)據(jù)很有用,可用它表示信號(hào)延時(shí),從而使模型系統(tǒng)能更逼近實(shí)際系統(tǒng)的運(yùn)行環(huán)境。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程(9)錯(cuò)誤等級(jí)(SeverityLevel)

在VHDL仿真器中,錯(cuò)誤等級(jí)來用指示設(shè)計(jì)系統(tǒng)的工作狀態(tài),它有四種:即NOTE(注意)、WARNING(警告)、ERROR(出錯(cuò))、FAILURE(失?。?。在仿真過程中,可輸出這四種狀態(tài)來提示系統(tǒng)當(dāng)前的工作情況。(10)自然數(shù)(Natural)和正整數(shù)(Positive)自然數(shù)是整數(shù)的一個(gè)子類型,非負(fù)的整數(shù),即為零和正整數(shù)。而Positive只能為正整數(shù)。例一個(gè)BCD數(shù)的比較器,利用約束的區(qū)間說明的端口說明語句可以寫為:ENTITYbcd_compareISPORT(a,b:ININTEGERRANGE0TO9:=0;c:OUTBOOLEAN);ENDbcd_compare;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程2)IEEE預(yù)定義標(biāo)準(zhǔn)邏輯位與矢量在IEEE庫的程序包STD_LOGIC_1164中,定義了兩個(gè)重要的數(shù)據(jù)類型,即標(biāo)準(zhǔn)邏輯位STD_LOGIC和標(biāo)準(zhǔn)邏輯矢量STD_LOGIC_VECTOR,使得STD_LOGIC型數(shù)據(jù)可以具有如下的9種不同的值:‘U’————初始值不定‘X’————不定‘0’————0‘1’————1‘Z’————高阻‘W’————弱信號(hào)不定‘L’————弱信號(hào)0‘H’————弱信號(hào)1‘_’————忽略

注意在使用該類型數(shù)據(jù)時(shí),在程序中必須寫出庫說明語句和使用包集合的說明語句。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系8值邏輯系統(tǒng)數(shù)值關(guān)系表X01ZWLH-XXXXXXXXX0X0X0000X1XX11111XZX01ZWLHXWX01WWWWXLX01LWLHXHX01HWWHX-XXXXXXXXEDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程3)用戶定義的數(shù)據(jù)類型

除上面講述的標(biāo)準(zhǔn)的數(shù)據(jù)類型外,用戶可自己定義數(shù)據(jù)類型,一般格式為:TYPE

數(shù)據(jù)類型名{,數(shù)據(jù)類型名}數(shù)據(jù)類型定義;例:TYPEmy_integerISRANGE0TO100;TYPEstateIS(idle,forward,backward,stop);可由用戶定義的數(shù)據(jù)類型常見的有8種:

·枚舉(Enumerated)類型;·整數(shù)(Integer)類型·實(shí)數(shù)(Real),浮點(diǎn)數(shù)(Floating)類型;·數(shù)組(Array)類型;·存?。ˋccess)類型;·文件(File)類型;·記錄(Recode)類型;·時(shí)間(Time)類型。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系VHDL自定義數(shù)據(jù)類型--枚舉列舉數(shù)據(jù)對(duì)象可能存在的值,一般用于定義狀態(tài)機(jī)的狀態(tài)Type

statesis(idle,start,running,pause,stop)Signalcurrent_state:states;IEEE1076標(biāo)準(zhǔn)中預(yù)定義了兩個(gè)枚舉類型Type

booleanis(False,True)Type

bitis(‘0’,‘1’)EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系VHDL自定義數(shù)據(jù)類型--枚舉IEEE1164標(biāo)準(zhǔn)中預(yù)定義了一個(gè)枚舉類型Typestd_logicis(‘U’,‘X’,‘0’,‘1’,‘Z’,‘W’,‘L’,‘H’,‘-’);該類型能比較全面地包括數(shù)字電路中信號(hào)會(huì)出現(xiàn)的幾種狀態(tài),因此一般情況把這種類型代替bitSignala:std_logic;注意:這里的大小寫是敏感的EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程整數(shù)類型和實(shí)數(shù)類型(Integer&Real)

在實(shí)際應(yīng)用中,用戶可以根據(jù)實(shí)際的需要重新定義,整數(shù)和實(shí)數(shù)類型,并限定其取值范圍,以使其能為綜合所接受,從而提高芯片資源的利用率,一般格式為:TYPE

數(shù)據(jù)類型名

IS

數(shù)據(jù)類型定義約束范圍;數(shù)據(jù)類型如果沒有被指定,則默認(rèn)為整數(shù)類型。TYPE

currentIS

REALRANGE-1E4TO

1E4;TYPE

digitISINTEGERRANGE0

TO9;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系屬性(Attributes)提供Entity、Architecture、Type和Signals的信息。有許多預(yù)定義的值、信號(hào)和范圍的屬性一個(gè)最常用的屬性是’eventifclk’eventand

clk=‘1’then’left,’right,’high,’low,’lengthtypecountisintegerrange0to127count’left=0;count’right=127;count’high=127;count’low=0;count’length=128;EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系VHDL語言的運(yùn)算操作符EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程VHDL語言的運(yùn)算操作符

在VHDL語言中共用4類操作符??梢苑謩e進(jìn)行邏輯運(yùn)算(Logic)、關(guān)系運(yùn)算(Relational)、算術(shù)運(yùn)算(Arithmetic)和一些其他運(yùn)算符。被操作符所操作的對(duì)象是操作數(shù),且操作數(shù)的類型應(yīng)該和操作符所要求的類型相一致。需要注意的是,各家EDA綜合軟件對(duì)運(yùn)算操作符支持程度各不相同,使用時(shí)應(yīng)參考綜合工具說明。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程返回1)邏輯運(yùn)算符

在VHDL語言中邏輯運(yùn)算符有6種,它們分別是:NOT(非)AND(與)NAND(與非)OR(或)NOR(或非)XOR(異或)2)關(guān)系運(yùn)算符

關(guān)系運(yùn)算符它們分別是:=(等于)/=(不等于)<(小于)<=(小于等于)>(大于)>=(大于等于)EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程3)算術(shù)運(yùn)算符

+(加)-(減)*(乘)**(指數(shù))

/(除)MOD(求模)REM(取余)

4)其它運(yùn)算符<=(信號(hào)賦值):=(變量賦值)-(負(fù))+(正)&(并置運(yùn)算符,用于位的連接)(關(guān)聯(lián)運(yùn)算符,在元件例化時(shí)可用于形參到實(shí)參的映射)SLL(邏輯左移)SRL(邏輯右移)SLA(算術(shù)左移)SRA(算術(shù)右移)ROL(邏輯循環(huán)左移)**(乘方)ROR(邏輯循環(huán)右移)ABS(取絕對(duì)值)EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系結(jié)構(gòu)體的三種描述方法

在VHDL語言中,可以用三種不同風(fēng)格的描述方式來對(duì)硬件系統(tǒng)進(jìn)行描述。即行為描述、數(shù)據(jù)流(或寄存器傳輸)描述和結(jié)構(gòu)化的描述方式。一、行為描述(behavioral)

行為描述表示輸入與輸出間轉(zhuǎn)化的行為,它不包含任何結(jié)構(gòu)信息。

二、數(shù)據(jù)流描述(dataflow,RTL描述)方式

數(shù)據(jù)流描述方式,也稱RTL描述方式。RTL是寄存器轉(zhuǎn)換層次的簡(jiǎn)稱。描述了數(shù)據(jù)流程的運(yùn)動(dòng)路徑、運(yùn)動(dòng)方向和運(yùn)動(dòng)結(jié)果。數(shù)據(jù)流描述法采用并發(fā)信號(hào)賦值語句,而不是進(jìn)程順序語句。

三、結(jié)構(gòu)描述方式(structural)

所謂結(jié)構(gòu)體的結(jié)構(gòu)描述方式,就是在層次設(shè)計(jì)中,高層次的設(shè)計(jì)模塊調(diào)用低層次的設(shè)計(jì)模塊,或者直接用門電路設(shè)計(jì)單元來構(gòu)成一復(fù)雜的邏輯電路的描述方法。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系結(jié)構(gòu)體--行為描述Architecture

behavioral

ofeqcomp4is

begincomp:process(a,b)

begin

ifa=bthen equal<=‘1’;

else

equal<=‘0’;

endif;

endprocesscomp;end

behavioral;高層次的功能描述,不必考慮在電路中到底是怎樣實(shí)現(xiàn)的。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系結(jié)構(gòu)體--數(shù)據(jù)流描述,描述輸入信號(hào)經(jīng)過怎樣的變換得到輸出信號(hào)Architecture

dataflow1

ofeqcomp4is

beginequal<=‘1’whena=belse‘0’;end

dataflow1;Architecture

dataflow2

ofeqcomp4is

beginequal<=not(a(0)xorb(0))andnot(a(1)xorb(1))andnot(a(2)xorb(2))andnot(a(3)xorb(3));end

dataflow2;當(dāng)a和b的寬度發(fā)生變化時(shí),需要修改設(shè)計(jì),當(dāng)寬度過大時(shí),設(shè)計(jì)非常繁瑣EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系結(jié)構(gòu)體--結(jié)構(gòu)化描述architecture

struct

ofeqcomp4isbeginU0:xnor2port

map(a(0),b(0),x(0));U1:xnor2port

map(a(1),b(1),x(1));U2:xnor2port

map(a(2),b(2),x(2));U3:xnor2port

map(a(3),b(3),x(3));U4:and4port

map(x(0),x(1),x(2),x(3),equal);end

struct;類似于電路的網(wǎng)絡(luò)表,將各個(gè)器件通過語言的形式進(jìn)行連接,與電路有一一對(duì)應(yīng)的關(guān)系。一般用于大規(guī)模電路的層次化設(shè)計(jì)時(shí)。Gotop120EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系三種描述方式的比較描述方式優(yōu)點(diǎn)缺點(diǎn)適用場(chǎng)合結(jié)構(gòu)化描述連接關(guān)系清晰,電路模塊化清晰電路不易理解、繁瑣、復(fù)雜電路層次化設(shè)計(jì)數(shù)據(jù)流描述布爾函數(shù)定義明白不易描述復(fù)雜電路,修改不易小門數(shù)設(shè)計(jì)行為描述電路特性清楚明了進(jìn)行綜合效率相對(duì)較低大型復(fù)雜的電路模塊設(shè)計(jì)、算法EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系作業(yè):1、VHDL程序有哪些基本的部分?2、信號(hào)與變量使用時(shí)有何區(qū)別?3、BUFFER與INOUT有何異同?4、設(shè)計(jì)二選一多路選擇器,用三種方法實(shí)現(xiàn)(輸入都為1bit寬度)。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程3VHDL語言最基本的描述方法

順序語句(SequentialStatements)用來實(shí)現(xiàn)模型的算法描述,并行語句(ConcurrentStatements)則用來表示各模型算法描述之間的連接關(guān)系。順序語句和并行語句是VHDL程序設(shè)計(jì)中兩大基本描述語句系列。EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程1.VHDL語言順序語句VHDL語言是并發(fā)語言,大部分語句是并發(fā)執(zhí)行的。但在進(jìn)程、過程、塊語句和子程序(包括函數(shù))中,還有許多順序執(zhí)行語句。順序語句按出現(xiàn)次序執(zhí)行各條語句。順序語句包括以下幾種:WAIT語句

IF語句

CASE語句

LOOP語句

NEXT 語句

EXIT語句

RETURN語句

NULL語句

REPORT語句

變量賦值語句 信號(hào)代入語句

過程調(diào)用語句 斷言語句EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程1)WAIT語句

進(jìn)程在仿真運(yùn)行中,當(dāng)執(zhí)行到WAIT等待語句時(shí),運(yùn)行程序?qū)⒈粧炱?,并設(shè)置好再次執(zhí)行的條件。WAIT語句可以設(shè)置4種不同的條件,這幾類條件可以混用,格式為:

WAIT--無限等待

WAITON--敏感信號(hào)量變化

WAITUNTIL--條件滿足

WAITFOR--時(shí)間到EDA技術(shù)與應(yīng)用中國(guó)地質(zhì)大學(xué)通信工程系EDA技術(shù)實(shí)踐教程WAITON

WAITON是一種按信號(hào)等待的情形,當(dāng)信號(hào)發(fā)生變化時(shí),就執(zhí)行WAIT語句之后的語句。

WAITONa,b;

WAITUNTIL

WAITUNTIL語句后面跟的是布爾表達(dá)式,當(dāng)進(jìn)程執(zhí)行到該語句時(shí)將其掛起,直到表達(dá)式返回一個(gè)真值,進(jìn)程才被再次調(diào)用。WAITUNTIL((x*10)<100);EDA技術(shù)與應(yīng)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論