




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)鍍膜玻璃市場(chǎng)發(fā)展動(dòng)態(tài)及投資規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)鋰精礦行業(yè)競(jìng)爭(zhēng)格局規(guī)劃分析報(bào)告
- 2025-2030年中國(guó)鉑金首飾市場(chǎng)運(yùn)營(yíng)狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國(guó)軌道交通牽引變流器行業(yè)運(yùn)營(yíng)狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)箱紙板行業(yè)運(yùn)行動(dòng)態(tài)與發(fā)展建議分析報(bào)告
- 2025貴州省建筑安全員C證考試題庫
- 2025-2030年中國(guó)硫氰酸鈉市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及發(fā)展規(guī)劃分析報(bào)告
- 撫順職業(yè)技術(shù)學(xué)院《安裝工程計(jì)量與計(jì)價(jià)》2023-2024學(xué)年第二學(xué)期期末試卷
- 伊春職業(yè)學(xué)院《平面制圖設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 隨州職業(yè)技術(shù)學(xué)院《科技文本翻譯》2023-2024學(xué)年第二學(xué)期期末試卷
- 醫(yī)療機(jī)構(gòu)維修申請(qǐng)單
- 部編版小學(xué)六年級(jí)語文下冊(cè)全冊(cè)教案(詳案)
- 釘釘品牌設(shè)計(jì)規(guī)范手冊(cè)
- 砂土袋擋墻施工方案
- 住院患者長(zhǎng)囑口服藥發(fā)藥流程 內(nèi)科
- 少兒繪畫之《水粉畫葡萄》
- GB∕T 19924-2021 流動(dòng)式起重機(jī) 穩(wěn)定性的確定
- ACUSONX150西門子彩色多普勒超聲系統(tǒng)
- 中國(guó)青年氣候意識(shí)與行為調(diào)研報(bào)告2020
- M701F燃?xì)廨啓C(jī)控制與保護(hù)
- 《物理化學(xué)》電子教案(上冊(cè))(共84頁)
評(píng)論
0/150
提交評(píng)論