版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VHDL培訓(xùn)教程歡迎參加VHDL培訓(xùn)1/127VHDL培訓(xùn)教程第一講、VHDL介紹及其結(jié)構(gòu)第二講、VHDL中對(duì)象、操作符、數(shù)據(jù)類型第三講、VHDL中控制語句及模塊第四講、狀態(tài)機(jī)設(shè)計(jì)2/127第一講、VHDL介紹及其結(jié)構(gòu)經(jīng)過本課學(xué)習(xí)您能夠了解以下幾點(diǎn)1、VHDL基本概念2、VHDL基本結(jié)構(gòu)3、VHDL設(shè)計(jì)初步3/127VHDL-VHSICHardwareDecriptionLanguage
其中VHSIC-VeryHighSpeedIntegratedCircuit電子設(shè)計(jì)自動(dòng)化關(guān)鍵技術(shù)之一是要求用形式化方法來描述硬件系統(tǒng)。VHDL適應(yīng)了這種要求。什么是VHDL4/127VHDL和VerilogHDLVerilogHDL:另一個(gè)硬件描述語言,由Verilog企業(yè)開發(fā),1995年成為IEEE標(biāo)準(zhǔn)。優(yōu)點(diǎn):簡單、易學(xué)易用缺點(diǎn):功效不如VHDL強(qiáng)大,仿真工具少VHDL:
1987年成為IEEE標(biāo)準(zhǔn)優(yōu)點(diǎn):功效強(qiáng)大、通用性強(qiáng)。缺點(diǎn):難學(xué)5/127VHDL發(fā)展歷史起源于八十年代,由美國國防部開發(fā)兩個(gè)標(biāo)準(zhǔn):1、1987年IEEE1076(VHDL87)
2、1993年進(jìn)行了修正(VHDL93)6/127VHDL在電子系統(tǒng)設(shè)計(jì)中應(yīng)用電子系統(tǒng)設(shè)計(jì)模塊7/127VHDL在電子系統(tǒng)設(shè)計(jì)中應(yīng)用電子系統(tǒng)設(shè)計(jì)描述等級(jí)1、行為級(jí)2、RTL級(jí)(Registertransferlevel)3、邏輯門級(jí)4、版圖級(jí)用VHDL能夠描述以上四個(gè)等級(jí)8/127VHDL在電子系統(tǒng)設(shè)計(jì)中應(yīng)用系統(tǒng)設(shè)計(jì)描述等級(jí)-制版級(jí)9/127VHDL在電子系統(tǒng)設(shè)計(jì)中應(yīng)用系統(tǒng)設(shè)計(jì)描述等級(jí)-邏輯門級(jí)10/127VHDL在電子系統(tǒng)設(shè)計(jì)中應(yīng)用系統(tǒng)設(shè)計(jì)描述等級(jí)-RTL級(jí)11/127VHDL在電子系統(tǒng)設(shè)計(jì)中應(yīng)用系統(tǒng)設(shè)計(jì)描述等級(jí)-行為級(jí)12/127怎樣使用VHDL描述硬件實(shí)體
Entity(實(shí)體)Architecture1(結(jié)構(gòu)體)ArchitectureN
process(進(jìn)程結(jié)構(gòu))
block(塊結(jié)構(gòu))
subprograms(子程序)
procedure(過程)
function(函數(shù))13/127libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_unsigned.all;entitycountisport(clock,reset:inSTD_LOGIC;dataout:outSTD_LOGIC_VECTOR(3downto0));endcount;architecturebehaviorlofcountissignaldatabuffer:STD_LOGIC_VECTOR(3downto0);begindataout<=databuffer;
process(clock,reset)
beginif(reset='1')thendatabuffer<="0000";elsif(clock'eventandclock='1')thenifdatabuffer="1000"thendatabuffer<="0000";elsedatabuffer<=databuffer+'1';endif;endif;
endprocess;endbehavioral;14/127VHDL結(jié)構(gòu)關(guān)鍵點(diǎn)1、ENTITY(實(shí)體)格式:
Entity實(shí)體名IS[類屬參數(shù)說明][端口說明]EndEntity;其中端口說明格式為:
PORT(端口名1,端口名N:方向:類型)其中方向有:IN,OUT,INOUT,BUFFER,LINKAGE
15/127VHDL結(jié)構(gòu)關(guān)鍵點(diǎn)注意簡單地說
In
不能夠出現(xiàn)在<=或:=左邊
out不能夠出現(xiàn)在<=或:=右邊
buffer能夠出現(xiàn)在<=或:=兩邊In信號(hào)只能被引用,不能被賦值out信號(hào)只能被賦值,不能被引用buffer信號(hào)能夠被引用,也能夠被賦值16/127VHDL結(jié)構(gòu)關(guān)鍵點(diǎn)例子(HalfAdd)
其內(nèi)部結(jié)構(gòu)將由Architecture來描述17/127VHDL結(jié)構(gòu)關(guān)鍵點(diǎn)2、Arcthitecture(結(jié)構(gòu)體)
格式:
Arcthitecture
結(jié)構(gòu)體名of
實(shí)體名is
[定義語句]內(nèi)部信號(hào)、常數(shù)、元件、數(shù)據(jù)類型、函數(shù)等定義
begin[并行處理語句和block、process、function、procedure]
end結(jié)構(gòu)體名;
18/127VHDL結(jié)構(gòu)關(guān)鍵點(diǎn)例子(HalfAdd)19/127VHDL結(jié)構(gòu)關(guān)鍵點(diǎn)例子(FullAdd)(學(xué)習(xí)怎樣調(diào)用現(xiàn)有模塊)
20/127VHDL結(jié)構(gòu)關(guān)鍵點(diǎn)實(shí)例(FullAdd)-entity
21/127VHDL結(jié)構(gòu)關(guān)鍵點(diǎn)實(shí)例(FullAdd)-architecture22/12723/127VHDL中設(shè)計(jì)單元
除了entity(實(shí)體)和architecture(結(jié)構(gòu)體)外還有另外三個(gè)能夠獨(dú)立進(jìn)行編譯設(shè)計(jì)單元Package(包集合)屬于庫結(jié)構(gòu)一個(gè)層次,存放信號(hào)定義、常數(shù)定義、數(shù)據(jù)類型、元件語句、函數(shù)定義和過程定義。PackageBody含有獨(dú)立對(duì)端口(port)packageconfiguration(配置)描述層與層之間連接關(guān)系以及實(shí)體與結(jié)構(gòu)體之間關(guān)系。24/127VHDL中設(shè)計(jì)單元VHDL中設(shè)計(jì)單元(能夠獨(dú)立編譯)25/127Library庫概念STD庫--VHDL標(biāo)準(zhǔn)庫IEEE庫--VHDL標(biāo)準(zhǔn)庫擴(kuò)展面向ASIC庫--不一樣工藝不一樣企業(yè)自定義庫普通用戶自己庫庫:數(shù)據(jù)集合。內(nèi)含各類包定義、實(shí)體、結(jié)構(gòu)體等26/127Library庫概念用戶自己庫當(dāng)您VHDL文件被編譯后,編譯結(jié)果儲(chǔ)存在特定目錄下,這個(gè)目錄邏輯名稱即Library,此目錄下內(nèi)容亦即是這個(gè)Library內(nèi)容。27/127Package包概念Package(包)28/127VHDL中結(jié)構(gòu)關(guān)系結(jié)構(gòu)關(guān)系29/127VHDL介紹及其結(jié)構(gòu)本講結(jié)束下一講:VHDL中對(duì)象、操作符、數(shù)據(jù)類型30/127第二講、VHDL對(duì)象、操作符、數(shù)據(jù)類型經(jīng)過本課學(xué)習(xí)您能夠了解以下幾點(diǎn)1、VHDL基本類型2、怎樣在VHDL中定義類型3、VHDL信號(hào)定義4、怎樣在VHDL中對(duì)信號(hào)賦值5、VHDL中操作符31/127VHDL對(duì)象、操作符、數(shù)據(jù)類型對(duì)象object
對(duì)客觀實(shí)體抽象和概括VHDL中對(duì)象有:1、Constant(常量)在程序中不能夠被賦值
2、Variable(變量)在程序中能夠被賦值(用“:=”),賦值后馬上改變?yōu)樾轮怠?、Signal(信號(hào))在程序中能夠被賦值(用“<=”),但不馬上更新,當(dāng)進(jìn)程掛起后,才開始更新。
32/127VHDL對(duì)象、操作符、數(shù)據(jù)類型VHDL中對(duì)象使用:
variable
x,y:integer;--定義了整數(shù)型變量對(duì)象x,y
constantVcc:real;--定義了實(shí)數(shù)型常量對(duì)象Vcc
signalclk,reset:bit;--定義了位類型信號(hào)對(duì)象clk,reset33/127VHDL中對(duì)象使用注意1、variable只能定義在process和subprogram(包含function和procedure)中,不可定以在其外部。2、signal不能定義在process和subprogram(包含function和procedure)中,只可定以在其外部。34/127VHDL對(duì)象、操作符、數(shù)據(jù)類型對(duì)象屬性
類似于其它面向?qū)ο缶幊陶Z言如VB、VC、DELPHI
使用方法格式:對(duì)象’屬性例子:clk’event--表明信號(hào)clkevent屬性
慣用屬性:
Signal對(duì)象慣用屬性有:
event:返回boolean值,信號(hào)發(fā)生改變時(shí)返回truelast_value:返回信號(hào)發(fā)生此次改變前值
last_event:返回上一次信號(hào)發(fā)生改變到現(xiàn)在改變間隔時(shí)間35/127VHDL對(duì)象、操作符、數(shù)據(jù)類型Signal對(duì)象慣用屬性有:接上頁delayed[(時(shí)延值)]:使信號(hào)產(chǎn)生固定時(shí)間延時(shí)并返回stable[(時(shí)延值)]:返回boolean,信號(hào)在要求時(shí)間內(nèi)沒有改變返回truetransaction:返回bit類型,信號(hào)每發(fā)生一次改變,返回值翻轉(zhuǎn)一次例子:A<=B’delayed(10ns);--B延時(shí)10ns后賦給A;
if(B’Stable(10ns));--判斷B在10ns中是否發(fā)生改變36/127VHDL對(duì)象、操作符、數(shù)據(jù)類型信號(hào)event和last_value屬性經(jīng)慣用來確定信號(hào)邊緣
屬性應(yīng)用比如:判斷clk上升沿if((clk’event)and(clk=‘1’)and(clk’last_value=‘0’))then判斷clk下降沿if((clk’event)and(clk=‘0’)and(clk’last_value=‘1’))then37/127VHDL基本類型1、bit(位):
`0`和`1`2、bit-Vector(位矢量):比如:``00110``3、Boolean“ture”和“false”4、time
比如:1us、100ms,3s5、character
比如:‘a(chǎn)’、’n’、’1’、’0’6、string
比如:“sdfsd”、”mydesign”7、integer32位比如:1、234、-21342348、real范圍-1.0E38~+1.0E38
比如:1.0、2.834、3.14、0.038/127VHDL基本類型9、natural
自然數(shù)和positive
正整數(shù)10、senveritylevel(常和assert語句配合使用)包含有:note、warning、error、failure
以上十種類型是VHDL中標(biāo)準(zhǔn)類型,在編程中能夠直接使用。使用這十種以外類型,需要自行定義或指明所引用Library(庫)和Package(包)集合39/127VHDL基本類型例子一40/127VHDL基本類型和賦值例子二41/127VHDL基本類型和賦值例子三例子中信號(hào)Z有兩個(gè)驅(qū)動(dòng)A和B;Z必須定義為一個(gè)新數(shù)據(jù)類型,不然Z將無法決定取值,語句視為非法。42/127VHDL基本類型和賦值例子四43/127VHDL基本類型和賦值例子五關(guān)鍵點(diǎn):賦值語句中方向應(yīng)和申明中方向一樣44/127VHDL基本類型和賦值連接操作符---使用&45/127VHDL基本類型和賦值集合操作---使用()46/127VHDL基本類型和賦值集合操作---采取序號(hào)47/127VHDL基本類型和賦值集合操作--采取others48/127在VHDL中定義自己類型通用格式
TYPE
類型名IS數(shù)據(jù)類型定義用戶能夠定義數(shù)據(jù)類型枚舉類型enumberated、整數(shù)型integer、實(shí)數(shù)型real、數(shù)組類型array、紀(jì)錄類型record、時(shí)間類型time、文件類型file、存取類型access49/127在VHDL中定義自己類型枚舉類型enumberated格式
type
數(shù)據(jù)類型名is
(元素,元素…...);例子
typeweekis(sun,mon,tue,thu,fri,sat);typestd_logicis(‘1’,’0’,’x’,’z’);
50/127在VHDL中定義自己類型整數(shù)類integer和實(shí)數(shù)類real格式
type
數(shù)據(jù)類型名is數(shù)據(jù)類型定義約束范圍;例子
typeweekisintegerrange1to7;typecurrentisrealrange-1E4to1E451/127在VHDL中定義自己類型數(shù)組類型array格式
type
數(shù)據(jù)類型名isarray
范圍
of元數(shù)據(jù)類型名例子
typeweekisarray(1to7)ofinteger;
typedeweekisarray(1to7)ofweek;52/127在VHDL中定義自己類型時(shí)間類型time格式
type
數(shù)據(jù)類型名is
范圍
units基本單位;
單位;
endunits53/127在VHDL中定義自己類型時(shí)間類型例子
typetimeisrange-1E18to1E18unitsus;ms=1000us;sec=1000ms;min=60sec;endunits注意:引用時(shí)間時(shí),有編譯器要求量與單位之間應(yīng)有一個(gè)空格如:1ns;不能寫為1ns;54/127在VHDL中定義自己類型紀(jì)錄類型record格式
type
數(shù)據(jù)類型名is
record
元素名:數(shù)據(jù)類型名;
元素名:數(shù)據(jù)類型名;….
endrecord;55/127在VHDL中定義自己類型紀(jì)錄類型例子typeorderisrecordid:integer;date:string;security:boolean;endrecord;引用:signalflag:boolean;signalorder1:order;order1<=(3423,”1999/07/07”,true);flag<=order1.security;
56/127IEEE1164中定義類型std_ulogic是對(duì)位(bit)類型擴(kuò)展,只允許一個(gè)驅(qū)動(dòng)源57/127IEEE1164中定義類型Std_logic同std_ulogic一樣有九個(gè)狀態(tài),允許一個(gè)或多個(gè)驅(qū)動(dòng)源58/127IEEE1164中定義類型Std_unlogic_vector和std_logic_vector59/127IEEE1164中定義類型Std_unlogic、std_ulogic_vectorstd_logic_vector和std_unlogic_vector類型均定義在package(包)standard_logic_1164中在使用這四種類形時(shí)應(yīng)加以說明,比如:libraryieee;useieee.std_logic_1164.all;注:standard_logic_1164位于IEEE庫中60/127類型使用例子例子一(申明使用庫和包)61/127類型使用例子例子二std_ulogic和std_logic區(qū)分62/127類型使用例子練習(xí)一:下面那一個(gè)是正確363/127VHDL中操作符分類
1、邏輯操作符
2、關(guān)系操作符
3、數(shù)學(xué)運(yùn)算符64/127VHDL中操作符1、邏輯操作符有:65/127VHDL中操作符邏輯操作符應(yīng)用類型66/127VHDL中操作符邏輯操作符應(yīng)用例子67/127VHDL中操作符2、關(guān)系運(yùn)算符有68/127VHDL中操作符關(guān)系運(yùn)算符應(yīng)用ARRAY(數(shù)組)沒有數(shù)字概念,數(shù)組“111”不等于769/127VHDL中操作符3、數(shù)學(xué)運(yùn)算符注意:上述運(yùn)算符應(yīng)用于integer,real,time類型,不能用于vector(假如希望用于vector,能夠使用庫IEEEstd_logic_unsigned包,它對(duì)算術(shù)運(yùn)算符進(jìn)行了擴(kuò)展)70/127VHDL中操作符VHDL中操作符應(yīng)用關(guān)鍵點(diǎn)
1、VHDL屬于強(qiáng)類型,不一樣類型之間不能進(jìn)行運(yùn)算和賦值,能夠進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換
2、vector不表示number3、array不表示number71/127VHDL中操作符本講結(jié)束下一講:VHDL中控制語句及模塊72/127第三講VHDL中控制語句及模塊經(jīng)過本講您將會(huì)學(xué)到1、Block編寫2、Process編寫3、function和procedure編寫4、VHDL中流程控制語句書寫73/127VHDL中控制語句及模塊回顧第一講內(nèi)容
Entity(實(shí)體)Architecture1(結(jié)構(gòu)體)ArchitectureN
process(進(jìn)程結(jié)構(gòu))
block(塊結(jié)構(gòu))
subprograms(子程序)
procedure(過程)
function(函數(shù))74/127VHDL中控制語句及模塊基本概念1、并行處理(concurrent)語句執(zhí)行與書寫次序無關(guān),并行塊內(nèi)語句時(shí)同時(shí)執(zhí)行2、次序處理(sequential)語句執(zhí)行按書寫先后次序,從前到后次序執(zhí)行。這種方式和其它普通編程語言(如c,pascal)是一樣。75/127VHDL中控制語句及模塊Architecture中語句及子模塊之間是并行處理子模塊block中語句是并行處理子模塊process中語句是次序處理子模塊subprogram中function和procedure是次序處理76/127VHDL中architectureArcthitecture(結(jié)構(gòu)體)格式為:(第一講)
Arcthitecture
結(jié)構(gòu)體名of
實(shí)體名is
[定義語句]內(nèi)部信號(hào)、常數(shù)、元件、數(shù)據(jù)類型、函數(shù)等定義
begin[并行處理語句和block、process、function、procedure]
end結(jié)構(gòu)體名;
77/127Architecture中BlockBlock格式
塊名:
BLOCK[定義語句]
begin[并行處理語句concurrentstatement]
endblock
塊名78/127Architecture中Block條件Block格式
塊名:
BLOCK
[(布爾表示式)]
[定義語句]
begin[并行處理語句concurrentstatement[信號(hào)]<=
guarded[信號(hào),延時(shí)];
endblock
塊名79/127Architecture中BlockBlock例子
myblock1:
block(clk=‘1’)
signal:qin:bit:=‘0’;
beginqout<=guardedqin;
endblockmyblock1
myblock2:
block
beginqout<=qin;
endblock
myblock280/127Architecture中processProcess格式[進(jìn)程名:]
process[(觸發(fā)信號(hào)列表)][定義語句;]
begin[串行處理語句sequentialstatement;]
endprocess81/127Architecture中processprocess例子
exp1:
process
(clk,qin)
variable:qin:bit:=‘0’;
beginqout<=qin;
endprocessexp2:
process
begin
waitonclk,qin;
qout<=qin;
endprocess82/127process例子-值更新分析:當(dāng)A、B、C、D中任一信號(hào)發(fā)生改變時(shí),進(jìn)程將開始執(zhí)行,當(dāng)執(zhí)行Z<=AandB后,Z值不會(huì)馬上改變;同理執(zhí)行Z<=CandD后Z值也不會(huì)馬上改變。當(dāng)執(zhí)行endprocess后,Z值才開始更新,同時(shí)系統(tǒng)掛起開始等候敏感信號(hào)。83/127Architecture中processProcess中敏感信號(hào)列表普遍標(biāo)準(zhǔn)是:在process中,其值被引用信號(hào)應(yīng)該出現(xiàn)在敏感信號(hào)列表中例子;二選一選擇器:A、B為輸入信號(hào);SEL為選路信號(hào);Z為輸出信號(hào);84/127不符和設(shè)計(jì)要求85/127Architecture中subprogramFunction(函數(shù))格式:
function
函數(shù)名(參數(shù)1,參數(shù)2…...)
[定義語句]
return
數(shù)據(jù)類型名
is[定義語句]
begin[次序執(zhí)行語句]
return[返回變量名]
end函數(shù)名
86/127Architecture中subprogramFunction例子functionmax(a,b:bit)
returnbooleanisvariable:flag:boolean;beginif(a=b)thenflag<=true;
endifreturnflag;endmaxFunction中參數(shù)不用說明方向(因?yàn)橹挥幸粋€(gè)方向in)87/127Architecture中subprogramprocedure(過程)格式:
procedure
過程名(參數(shù)1,參數(shù)2…...)is[定義語句]
begin[次序執(zhí)行語句]
end
過程名
88/127Architecture中subprogramProcedure例子proceduremax(a,b:inbit;
flag:outboolean)isbeginif(a=b)thenflag<=true;
endifendmax;89/127次序執(zhí)行語句sequentialstatementWait語句assert語句If語句case語句forloop語句while語句90/127次序執(zhí)行語句sequentialstatementWait語句書寫格式
wait;--無限等候
waiton[信號(hào)列表]--等候信號(hào)改變
waituntil[條件];--等候條件滿足
waitfor[時(shí)間值];--等候時(shí)間到功效
wait語句使系統(tǒng)暫時(shí)掛起(等同于endprocess),此時(shí),信號(hào)值開始更新。條件滿足后,系統(tǒng)將繼續(xù)運(yùn)行。91/127次序執(zhí)行語句sequentialstatementWait語句例子process(a,b)
beginy<=aandb;endprocessprocessbeginwaitona,b;y<=aandb;endprocess等同于process(a,b)
begin錯(cuò)誤假如process中已經(jīng)有敏感信號(hào)
waitona,b;進(jìn)程中不能使用wait語句
y<=aandb;endprocess92/127次序執(zhí)行語句sequentialstatementWait語句例子假如process中沒有敏感信號(hào)列表,其進(jìn)程中也沒有wait語句,則process中程序代碼循環(huán)執(zhí)行processbeginclk<=notclkafter50ns;endprocess功效:產(chǎn)生頻率為100nsclk信號(hào)93/127次序執(zhí)行語句sequentialstatementAssert語句格式
assert條件[report輸出信息][severity]
說明:條件為true時(shí)執(zhí)行下一條語句,為false時(shí)輸犯錯(cuò)誤信息和錯(cuò)誤嚴(yán)重級(jí)別例子
….assert(sum=100)report“sum/=100”severityerror;
nextstatement…...94/127次序執(zhí)行語句sequentialstatementIf語句格式
if條件then[次序執(zhí)行語句][else][次序執(zhí)行語句]endifif條件then[次序執(zhí)行語句][elsif][次序執(zhí)行語句][elsif][次序執(zhí)行語句]…..[else]endif95/127次序執(zhí)行語句sequentialstatementIf語句例子96/127次序執(zhí)行語句sequentialstatementCase語句格式Case表示式iswhen條件表示式=>次序處理語句
when條件表示式=>次序處理語句
…….whenothers=>次序處理語句endcase
標(biāo)準(zhǔn):1、完全性:表示式全部可能值都必須說明,能夠用others2、唯一性:相同表示式值只能說明一次97/127次序執(zhí)行語句sequentialstatementCase語句例子,條件表示式能夠有各種形式98/127次序執(zhí)行語句sequentialstatementCase語句例子99/127
次序執(zhí)行語句sequentialstatementForloop語句格式For循環(huán)變量in范圍loop[次序處理語句]endloop注意:循環(huán)變量不需要定義(申明);例子中i不需要定義Forloop語句例子Foriin1to10loopsum=sum+1;endloop100/127次序執(zhí)行語句sequentialstatement在loop語句中能夠用next來跳出此次循環(huán),也能夠用exit來結(jié)束整個(gè)循環(huán)狀態(tài)
next格式:next[標(biāo)號(hào)][when條件];
exit格式:
exit[標(biāo)號(hào)][when條件];Foriin1to10loopsum=sum+1;nextwhensum=100;endloopForiin1to10loopsum=sum+1;exitwhensum=100;endloop101/127次序執(zhí)行語句sequentialstatementWhile語句格式while條件loop[次序處理語句]endloopWhilei<10loopsum=sum+1;i=i+1;endloopWhile語句例子102/127并行處理語句concurrentstatement1、信號(hào)賦值操作2、帶條件信號(hào)賦值語句3、帶選擇信號(hào)賦值語句103/127并行處理語句concurrentstatement信號(hào)賦值操作符號(hào)“<=”進(jìn)行信號(hào)賦值操作,它能夠用在次序執(zhí)行語句中,也能夠用在并行處理語句中注意
1、用在并行處理語句中時(shí),符號(hào)<=右邊值是此條語句敏感信號(hào),即符號(hào)<=右邊值發(fā)生改變就會(huì)重新激發(fā)此條賦值語句,也即符號(hào)<=右邊值不改變時(shí),此條賦值語句就不會(huì)執(zhí)行。假如符號(hào)<=右邊是常數(shù)則賦值語句一直執(zhí)行。
2、用在次序執(zhí)行語句中時(shí),沒有以上說法。104/127并行處理語句concurrentstatement賦值語句例子Myblock:Blockbeginclr<=‘1’after10ns; clr<=‘0’after20ns;endblockmyblockprocessbeginclr<=‘1’after10ns;clr<=‘0’after20ns;endblockmyblock程序執(zhí)行10ns后clr為1,又過10ns后0賦給了clr,此時(shí)clr以前值1并沒有清掉,clr將出現(xiàn)不穩(wěn)定狀態(tài)程序執(zhí)行10ns后clr為1,又過20ns后clr值變?yōu)?,105/127并行處理語句concurrentstatement條件信號(hào)帶入語句格式
目標(biāo)信號(hào)量<=表示式1when條件1else表示式2when條件2else表示式3when條件3…..
else表示式4注意:最終Else項(xiàng)是必須;滿足完全性和唯一性106/127并行處理語句concurrentstatement條件信號(hào)帶入語句例子Blockbeginsel<=b&a;q<=ainwhensel=“00”elsebinwhensel=“01”elsecinwhensel=“10”elsedinwhensel=‘11”elsexx;endblock107/127并行處理語句concurrentstatement選擇信號(hào)帶入語句格式
with表示式select
目標(biāo)信號(hào)量<=表示式1when條件1,表示式2when條件2,
…..
表示式nwhen條件n;108/127并行處理語句concurrentstatement選擇信號(hào)帶入語句例子Blockbeginwithselselectq<=ainwhensel=“00”,
binwhensel=“01”,
cinwhensel=“10”,
dinwhensel=‘11”xx;whenothers;endblock109/127次序執(zhí)行語句和并行處理語句次序執(zhí)行語句和并行處理語句總結(jié)1、次序執(zhí)行語句wait、assert、if-else、case、for-loop、while語句只能用在process、function和procedure中;2、并行處理語句(條件信號(hào)帶入和選擇信號(hào)帶入)只能用在architecture、block中;110/127其它語句Generic語句enttityand2isgeneric(rise:t
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房屋財(cái)產(chǎn)分割及共有權(quán)轉(zhuǎn)讓協(xié)議3篇
- 課程設(shè)計(jì)游標(biāo)卡尺
- 2025年銷售年終工作總結(jié)參考(三篇)
- 二零二五年度創(chuàng)業(yè)投資對(duì)賭協(xié)議書范本及退出機(jī)制
- 二零二五年度建筑水暖消防工程監(jiān)理分包合同2篇
- 市場總監(jiān)主要職責(zé)模版(2篇)
- 課程設(shè)計(jì)醫(yī)療急救
- 2025年牛津上海版高二地理下冊(cè)階段測試試卷
- 2025年人教版七年級(jí)物理上冊(cè)階段測試試卷
- 2025版頂樓物業(yè)買賣合同書3篇
- 電機(jī)制造行業(yè)的競爭對(duì)手分析
- 廣西失敗企業(yè)案例分析報(bào)告
- 【基層版】中國房顫中心認(rèn)證標(biāo)準(zhǔn)
- 磨工技能試卷及答案
- 稀土鋁合金電纜項(xiàng)目可行性研究報(bào)告
- 會(huì)展行業(yè)的薪資分析
- 司法鑒定業(yè)務(wù)管理制度
- 升壓站設(shè)備基礎(chǔ)施工方案
- 污水處理工程設(shè)備安裝驗(yàn)收記錄
- 西藏甲瑪銅多金屬礦床地質(zhì)特征
- 真空采血管的分類及應(yīng)用及采血順序課件
評(píng)論
0/150
提交評(píng)論