版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VHDL培訓(xùn)教程歡迎參加VHDL培訓(xùn)1精選2021版課件VHDL培訓(xùn)教程第一講、VHDL簡(jiǎn)介及其結(jié)構(gòu)第二講、VHDL中的對(duì)象、操作符、數(shù)據(jù)類(lèi)型第三講、VHDL中的控制語(yǔ)句及模塊第四講、狀態(tài)機(jī)的設(shè)計(jì)2精選2021版課件第一講、VHDL簡(jiǎn)介及其結(jié)構(gòu)通過(guò)本課的學(xué)習(xí)您可以了解以下幾點(diǎn)1、VHDL的基本概念2、VHDL的基本結(jié)構(gòu)3、VHDL的設(shè)計(jì)初步3精選2021版課件VHDL-VHSICHardwareDecriptionLanguage
其中VHSIC-VeryHighSpeedIntegratedCircuit電子設(shè)計(jì)自動(dòng)化的關(guān)鍵技術(shù)之一是要求用形式化方法來(lái)描述硬件系統(tǒng)。VHDL適應(yīng)了這種要求。什么是VHDL4精選2021版課件VHDL和VerilogHDLVerilogHDL:另一種硬件描述語(yǔ)言,由Verilog公司開(kāi)發(fā),1995年成為IEEE標(biāo)準(zhǔn)。優(yōu)點(diǎn):簡(jiǎ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精選2021版課件VHDL的發(fā)展歷史起源于八十年代,由美國(guó)國(guó)防部開(kāi)發(fā)兩個(gè)標(biāo)準(zhǔn):1、1987年的IEEE1076(VHDL87)
2、1993年進(jìn)行了修正(VHDL93)6精選2021版課件VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用電子系統(tǒng)的設(shè)計(jì)模塊7精選2021版課件VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用電子系統(tǒng)設(shè)計(jì)的描述等級(jí)1、行為級(jí)2、RTL級(jí)(Registertransferlevel)3、邏輯門(mén)級(jí)4、版圖級(jí)用VHDL可以描述以上四個(gè)等級(jí)8精選2021版課件VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用系統(tǒng)設(shè)計(jì)的描述等級(jí)-制版級(jí)9精選2021版課件VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用系統(tǒng)設(shè)計(jì)的描述等級(jí)-邏輯門(mén)級(jí)10精選2021版課件VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用系統(tǒng)設(shè)計(jì)的描述等級(jí)-RTL級(jí)11精選2021版課件VHDL在電子系統(tǒng)設(shè)計(jì)中的應(yīng)用系統(tǒng)設(shè)計(jì)的描述等級(jí)-行為級(jí)12精選2021版課件如何使用VHDL描述硬件實(shí)體
Entity(實(shí)體)Architecture1(構(gòu)造體)ArchitectureN
process(進(jìn)程結(jié)構(gòu))
block(塊結(jié)構(gòu))
subprograms(子程序)
procedure(過(guò)程)
function(函數(shù))13精選2021版課件libraryIEEE;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精選2021版課件VHDL結(jié)構(gòu)要點(diǎn)1、ENTITY(實(shí)體)格式:
Entity實(shí)體名IS[類(lèi)屬參數(shù)說(shuō)明][端口說(shuō)明]EndEntity;其中端口說(shuō)明格式為:
PORT(端口名1,端口名N:方向:類(lèi)型)其中方向有:IN,OUT,INOUT,BUFFER,LINKAGE
15精選2021版課件VHDL結(jié)構(gòu)要點(diǎn)注意簡(jiǎn)單地說(shuō)
In
不可以出現(xiàn)在<=或:=的左邊
out不可以出現(xiàn)在<=或:=的右邊
buffer可以出現(xiàn)在<=或:=的兩邊In信號(hào)只能被引用,不能被賦值out信號(hào)只能被賦值,不能被引用buffer信號(hào)可以被引用,也可以被賦值16精選2021版課件VHDL結(jié)構(gòu)要點(diǎn)例子(HalfAdd)
其內(nèi)部結(jié)構(gòu)將由Architecture來(lái)描述17精選2021版課件VHDL結(jié)構(gòu)要點(diǎn)2、Arcthitecture(構(gòu)造體)
格式:
Arcthitecture
構(gòu)造體名of
實(shí)體名is
[定義語(yǔ)句]內(nèi)部信號(hào)、常數(shù)、元件、數(shù)據(jù)類(lèi)型、函數(shù)等的定義
begin[并行處理語(yǔ)句和block、process、function、procedure]
end構(gòu)造體名;
18精選2021版課件VHDL結(jié)構(gòu)要點(diǎn)例子(HalfAdd)19精選2021版課件VHDL結(jié)構(gòu)要點(diǎn)例子(FullAdd)(學(xué)習(xí)如何調(diào)用現(xiàn)有模塊)
20精選2021版課件VHDL結(jié)構(gòu)要點(diǎn)實(shí)例(FullAdd)-entity
21精選2021版課件VHDL結(jié)構(gòu)要點(diǎn)實(shí)例(FullAdd)-architecture22精選2021版課件23精選2021版課件VHDL中的設(shè)計(jì)單元
除了entity(實(shí)體)和architecture(構(gòu)造體)外還有另外三個(gè)可以獨(dú)立進(jìn)行編譯的設(shè)計(jì)單元Package(包集合)屬于庫(kù)結(jié)構(gòu)的一個(gè)層次,存放信號(hào)定義、常數(shù)定義、數(shù)據(jù)類(lèi)型、元件語(yǔ)句、函數(shù)定義和過(guò)程定義。PackageBody具有獨(dú)立對(duì)端口(port)的packageconfiguration(配置)描述層與層之間的連接關(guān)系以及實(shí)體與構(gòu)造體之間關(guān)系。24精選2021版課件VHDL中的設(shè)計(jì)單元VHDL中的設(shè)計(jì)單元(可以獨(dú)立編譯)25精選2021版課件Library庫(kù)的概念STD庫(kù)--VHDL的標(biāo)準(zhǔn)庫(kù)IEEE庫(kù)--VHDL的標(biāo)準(zhǔn)庫(kù)的擴(kuò)展面向ASIC的庫(kù)--不同的工藝不同公司自定義的庫(kù)普通用戶(hù)自己的庫(kù)庫(kù):數(shù)據(jù)的集合。內(nèi)含各類(lèi)包定義、實(shí)體、構(gòu)造體等26精選2021版課件Library庫(kù)的概念用戶(hù)自己的庫(kù)當(dāng)您的VHDL文件被編譯后,編譯的結(jié)果儲(chǔ)存在特定的目錄下,這個(gè)目錄的邏輯名稱(chēng)即Library,此目錄下的內(nèi)容亦即是這個(gè)Library的內(nèi)容。27精選2021版課件Package包的概念Package(包)28精選2021版課件VHDL中的結(jié)構(gòu)關(guān)系結(jié)構(gòu)關(guān)系29精選2021版課件VHDL簡(jiǎn)介及其結(jié)構(gòu)本講結(jié)束下一講:VHDL中的對(duì)象、操作符、數(shù)據(jù)類(lèi)型30精選2021版課件第二講、VHDL對(duì)象、操作符、數(shù)據(jù)類(lèi)型通過(guò)本課的學(xué)習(xí)您可以了解以下幾點(diǎn)1、VHDL的基本類(lèi)型2、如何在VHDL中定義類(lèi)型3、VHDL的信號(hào)定義4、如何在VHDL中對(duì)信號(hào)賦值5、VHDL中的操作符31精選2021版課件VHDL對(duì)象、操作符、數(shù)據(jù)類(lèi)型對(duì)象object
對(duì)客觀實(shí)體的抽象和概括VHDL中的對(duì)象有:1、Constant(常量)在程序中不可以被賦值
2、Variable(變量)在程序中可以被賦值(用“:=”),賦值后立即變化為新值。3、Signal(信號(hào))在程序中可以被賦值(用“<=”),但不立即更新,當(dāng)進(jìn)程掛起后,才開(kāi)始更新。
32精選2021版課件VHDL對(duì)象、操作符、數(shù)據(jù)類(lèi)型VHDL中的對(duì)象使用:
variable
x,y:integer;--定義了整數(shù)型的變量對(duì)象x,y
constantVcc:real;--定義了實(shí)數(shù)型的常量對(duì)象Vcc
signalclk,reset:bit;--定義了位類(lèi)型的信號(hào)對(duì)象clk,reset33精選2021版課件VHDL中的對(duì)象使用注意1、variable只能定義在process和subprogram(包括function和procedure)中,不可定以在其外部。2、signal不能定義在process和subprogram(包括function和procedure)中,只可定以在其外部。34精選2021版課件VHDL對(duì)象、操作符、數(shù)據(jù)類(lèi)型對(duì)象的屬性
類(lèi)似于其它面向?qū)ο蟮木幊陶Z(yǔ)言如VB、VC、DELPHI
用法格式:對(duì)象’屬性例子:clk’event--表明信號(hào)clk的event屬性
常用的屬性:
Signal對(duì)象的常用屬性有:
event:返回boolean值,信號(hào)發(fā)生變化時(shí)返回truelast_value:返回信號(hào)發(fā)生此次變化前的值
last_event:返回上一次信號(hào)發(fā)生變化到現(xiàn)在變化的間隔時(shí)間35精選2021版課件VHDL對(duì)象、操作符、數(shù)據(jù)類(lèi)型Signal對(duì)象的常用屬性有:接上頁(yè)delayed[(時(shí)延值)]:使信號(hào)產(chǎn)生固定時(shí)間的延時(shí)并返回stable[(時(shí)延值)]:返回boolean,信號(hào)在規(guī)定時(shí)間內(nèi)沒(méi)有變化返回truetransaction:返回bit類(lèi)型,信號(hào)每發(fā)生一次變化,返回值翻轉(zhuǎn)一次例子:A<=B’delayed(10ns);--B延時(shí)10ns后賦給A;
if(B’Stable(10ns));--判斷B在10ns中是否發(fā)生變化36精選2021版課件VHDL對(duì)象、操作符、數(shù)據(jù)類(lèi)型信號(hào)的event和last_value屬性經(jīng)常用來(lái)確定信號(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精選2021版課件VHDL的基本類(lèi)型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精選2021版課件VHDL的基本類(lèi)型9、natural
自然數(shù)和positive
正整數(shù)10、senveritylevel(常和assert語(yǔ)句配合使用)包含有:note、warning、error、failure
以上十種類(lèi)型是VHDL中的標(biāo)準(zhǔn)類(lèi)型,在編程中可以直接使用。使用這十種以外的類(lèi)型,需要自行定義或指明所引用的Library(庫(kù))和Package(包)集合39精選2021版課件VHDL的基本類(lèi)型例子一40精選2021版課件VHDL的基本類(lèi)型和賦值例子二41精選2021版課件VHDL的基本類(lèi)型和賦值例子三例子中信號(hào)Z有兩個(gè)驅(qū)動(dòng)A和B;Z必須定義為一種新的數(shù)據(jù)類(lèi)型,否則Z將無(wú)法決定取值,語(yǔ)句視為非法。42精選2021版課件VHDL的基本類(lèi)型和賦值例子四43精選2021版課件VHDL的基本類(lèi)型和賦值例子五要點(diǎn):賦值語(yǔ)句中的方向應(yīng)和聲明中的方向一樣44精選2021版課件VHDL的基本類(lèi)型和賦值連接操作符---使用&45精選2021版課件VHDL的基本類(lèi)型和賦值集合操作---使用()46精選2021版課件VHDL的基本類(lèi)型和賦值集合操作---采用序號(hào)47精選2021版課件VHDL的基本類(lèi)型和賦值集合操作--采用others48精選2021版課件在VHDL中定義自己的類(lèi)型通用格式
TYPE
類(lèi)型名IS數(shù)據(jù)類(lèi)型定義用戶(hù)可以定義的數(shù)據(jù)類(lèi)型枚舉類(lèi)型enumberated、整數(shù)型integer、實(shí)數(shù)型real、數(shù)組類(lèi)型array、紀(jì)錄類(lèi)型record、時(shí)間類(lèi)型time、文件類(lèi)型file、存取類(lèi)型access49精選2021版課件在VHDL中定義自己的類(lèi)型枚舉類(lèi)型enumberated格式
type
數(shù)據(jù)類(lèi)型名is
(元素,元素…...);例子
typeweekis(sun,mon,tue,thu,fri,sat);typestd_logicis(‘1’,’0’,’x’,’z’);
50精選2021版課件在VHDL中定義自己的類(lèi)型整數(shù)類(lèi)integer和實(shí)數(shù)類(lèi)real格式
type
數(shù)據(jù)類(lèi)型名is數(shù)據(jù)類(lèi)型定義約束范圍;例子
typeweekisintegerrange1to7;typecurrentisrealrange-1E4to1E451精選2021版課件在VHDL中定義自己的類(lèi)型數(shù)組類(lèi)型array格式
type
數(shù)據(jù)類(lèi)型名isarray
范圍
of元數(shù)據(jù)類(lèi)型名例子
typeweekisarray(1to7)ofinteger;
typedeweekisarray(1to7)ofweek;52精選2021版課件在VHDL中定義自己的類(lèi)型時(shí)間類(lèi)型time格式
type
數(shù)據(jù)類(lèi)型名is
范圍
units基本單位;
單位;
endunits53精選2021版課件在VHDL中定義自己的類(lèi)型時(shí)間類(lèi)型例子
typetimeisrange-1E18to1E18unitsus;ms=1000us;sec=1000ms;min=60sec;endunits注意:引用時(shí)間時(shí),有的編譯器要求量與單位之間應(yīng)有一個(gè)空格如:1ns;不能寫(xiě)為1ns;54精選2021版課件在VHDL中定義自己的類(lèi)型紀(jì)錄類(lèi)型record格式
type
數(shù)據(jù)類(lèi)型名is
record
元素名:數(shù)據(jù)類(lèi)型名;
元素名:數(shù)據(jù)類(lèi)型名;….
endrecord;55精選2021版課件在VHDL中定義自己的類(lèi)型紀(jì)錄類(lèi)型的例子typeorderisrecordid:integer;date:string;security:boolean;endrecord;引用:signalflag:boolean;signalorder1:order;order1<=(3423,”1999/07/07”,true);flag<=order1.security;
56精選2021版課件IEEE1164中定義的類(lèi)型std_ulogic是對(duì)位(bit)類(lèi)型的擴(kuò)展,只允許一個(gè)驅(qū)動(dòng)源57精選2021版課件IEEE1164中定義的類(lèi)型Std_logic同std_ulogic一樣有九個(gè)狀態(tài),允許一個(gè)或多個(gè)驅(qū)動(dòng)源58精選2021版課件IEEE1164中定義的類(lèi)型Std_unlogic_vector和std_logic_vector59精選2021版課件IEEE1164中定義的類(lèi)型Std_unlogic、std_ulogic_vectorstd_logic_vector和std_unlogic_vector類(lèi)型均定義在package(包)standard_logic_1164中在使用這四種類(lèi)形時(shí)應(yīng)加以說(shuō)明,例如:libraryieee;useieee.std_logic_1164.all;注:standard_logic_1164位于IEEE庫(kù)中60精選2021版課件類(lèi)型使用例子例子一(聲明使用的庫(kù)和包)61精選2021版課件類(lèi)型使用例子例子二std_ulogic和std_logic的區(qū)別62精選2021版課件類(lèi)型使用例子練習(xí)一:下面那一個(gè)是正確的363精選2021版課件VHDL中的操作符分類(lèi)
1、邏輯操作符
2、關(guān)系操作符
3、數(shù)學(xué)運(yùn)算符64精選2021版課件VHDL中的操作符1、邏輯操作符有:65精選2021版課件VHDL中的操作符邏輯操作符的應(yīng)用類(lèi)型66精選2021版課件VHDL中的操作符邏輯操作符的應(yīng)用例子67精選2021版課件VHDL中的操作符2、關(guān)系運(yùn)算符有68精選2021版課件VHDL中的操作符關(guān)系運(yùn)算符的應(yīng)用ARRAY(數(shù)組)沒(méi)有數(shù)字概念,數(shù)組“111”不等于769精選2021版課件VHDL中的操作符3、數(shù)學(xué)運(yùn)算符注意:上述運(yùn)算符應(yīng)用于integer,real,time類(lèi)型,不能用于vector(如果希望用于vector,可以使用庫(kù)IEEE的std_logic_unsigned包,它對(duì)算術(shù)運(yùn)算符進(jìn)行了擴(kuò)展)70精選2021版課件VHDL中的操作符VHDL中的操作符應(yīng)用要點(diǎn)
1、VHDL屬于強(qiáng)類(lèi)型,不同類(lèi)型之間不能進(jìn)行運(yùn)算和賦值,可以進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換
2、vector不表示number3、array不表示number71精選2021版課件VHDL中的操作符本講結(jié)束下一講:VHDL中的控制語(yǔ)句及模塊72精選2021版課件第三講VHDL中的控制語(yǔ)句及模塊通過(guò)本講您將會(huì)學(xué)到1、Block的編寫(xiě)2、Process的編寫(xiě)3、function和procedure的編寫(xiě)4、VHDL中的流程控制語(yǔ)句的書(shū)寫(xiě)73精選2021版課件VHDL中的控制語(yǔ)句及模塊回顧第一講的內(nèi)容
Entity(實(shí)體)Architecture1(構(gòu)造體)ArchitectureN
process(進(jìn)程結(jié)構(gòu))
block(塊結(jié)構(gòu))
subprograms(子程序)
procedure(過(guò)程)
function(函數(shù))74精選2021版課件VHDL中的控制語(yǔ)句及模塊基本概念1、并行處理(concurrent)語(yǔ)句的執(zhí)行與書(shū)寫(xiě)順序無(wú)關(guān),并行塊內(nèi)的語(yǔ)句時(shí)同時(shí)執(zhí)行的2、順序處理(sequential)語(yǔ)句的執(zhí)行按書(shū)寫(xiě)的先后次序,從前到后順序執(zhí)行。這種方式和其他普通編程語(yǔ)言(如c,pascal)是一樣的。75精選2021版課件VHDL中的控制語(yǔ)句及模塊Architecture中的語(yǔ)句及子模塊之間是并行處理的子模塊block中的語(yǔ)句是并行處理的子模塊process中的語(yǔ)句是順序處理的子模塊subprogram中的function和procedure是順序處理的76精選2021版課件VHDL中的architectureArcthitecture(構(gòu)造體)的格式為:(第一講)
Arcthitecture
構(gòu)造體名of
實(shí)體名is
[定義語(yǔ)句]內(nèi)部信號(hào)、常數(shù)、元件、數(shù)據(jù)類(lèi)型、函數(shù)等的定義
begin[并行處理語(yǔ)句和block、process、function、procedure]
end構(gòu)造體名;
77精選2021版課件Architecture中的BlockBlock格式
塊名:
BLOCK[定義語(yǔ)句]
begin[并行處理語(yǔ)句concurrentstatement]
endblock
塊名78精選2021版課件Architecture中的Block條件Block格式
塊名:
BLOCK
[(布爾表達(dá)式)]
[定義語(yǔ)句]
begin[并行處理語(yǔ)句concurrentstatement[信號(hào)]<=
guarded[信號(hào),延時(shí)];
endblock
塊名79精選2021版課件Architecture中的BlockBlock例子
myblock1:
block(clk=‘1’)
signal:qin:bit:=‘0’;
beginqout<=guardedqin;
endblockmyblock1
myblock2:
block
beginqout<=qin;
endblock
myblock280精選2021版課件Architecture中的processProcess格式[進(jìn)程名:]
process[(觸發(fā)信號(hào)列表)][定義語(yǔ)句;]
begin[串行處理語(yǔ)句sequentialstatement;]
endprocess81精選2021版課件Architecture中的processprocess例子
exp1:
process
(clk,qin)
variable:qin:bit:=‘0’;
beginqout<=qin;
endprocessexp2:
process
begin
waitonclk,qin;
qout<=qin;
endprocess82精選2021版課件process例子-值的更新分析:當(dāng)A、B、C、D中任一信號(hào)發(fā)生變化時(shí),進(jìn)程將開(kāi)始執(zhí)行,當(dāng)執(zhí)行Z<=AandB后,Z的值不會(huì)立即變化;同理執(zhí)行Z<=CandD后Z的值也不會(huì)立即變化。當(dāng)執(zhí)行endprocess后,Z的值才開(kāi)始更新,同時(shí)系統(tǒng)掛起開(kāi)始等待敏感信號(hào)。83精選2021版課件Architecture中的processProcess中敏感信號(hào)列表的普遍原則是:在process中,其值被引用的信號(hào)應(yīng)當(dāng)出現(xiàn)在敏感信號(hào)列表中例子;二選一的選擇器:A、B為輸入信號(hào);SEL為選路信號(hào);Z為輸出信號(hào);84精選2021版課件不符和設(shè)計(jì)要求85精選2021版課件Architecture中的subprogramFunction(函數(shù))格式:
function
函數(shù)名(參數(shù)1,參數(shù)2…...)
[定義語(yǔ)句]
return
數(shù)據(jù)類(lèi)型名
is[定義語(yǔ)句]
begin[順序執(zhí)行語(yǔ)句]
return[返回變量名]
end函數(shù)名
86精選2021版課件Architecture中的subprogramFunction例子functionmax(a,b:bit)
returnbooleanisvariable:flag:boolean;beginif(a=b)thenflag<=true;
endifreturnflag;endmaxFunction中的參數(shù)不用說(shuō)明方向(因?yàn)橹挥幸环N方向in)87精選2021版課件Architecture中的subprogramprocedure(過(guò)程)格式:
procedure
過(guò)程名(參數(shù)1,參數(shù)2…...)is[定義語(yǔ)句]
begin[順序執(zhí)行語(yǔ)句]
end
過(guò)程名
88精選2021版課件Architecture中的subprogramProcedure例子proceduremax(a,b:inbit;
flag:outboolean)isbeginif(a=b)thenflag<=true;
endifendmax;89精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementWait語(yǔ)句assert語(yǔ)句If語(yǔ)句case語(yǔ)句forloop語(yǔ)句while語(yǔ)句90精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementWait語(yǔ)句書(shū)寫(xiě)格式
wait;--無(wú)限等待
waiton[信號(hào)列表]--等待信號(hào)變化
waituntil[條件];--等待條件滿(mǎn)足
waitfor[時(shí)間值];--等待時(shí)間到功能
wait語(yǔ)句使系統(tǒng)暫時(shí)掛起(等同于endprocess),此時(shí),信號(hào)值開(kāi)始更新。條件滿(mǎn)足后,系統(tǒng)將繼續(xù)運(yùn)行。91精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementWait語(yǔ)句例子process(a,b)
beginy<=aandb;endprocessprocessbeginwaitona,b;y<=aandb;endprocess等同于process(a,b)
begin錯(cuò)誤如果process中已有敏感信號(hào)
waitona,b;進(jìn)程中不能使用wait語(yǔ)句
y<=aandb;endprocess92精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementWait語(yǔ)句例子如果process中沒(méi)有敏感信號(hào)列表,其進(jìn)程中也沒(méi)有wait語(yǔ)句,則process中的程序代碼循環(huán)執(zhí)行processbeginclk<=notclkafter50ns;endprocess功能:產(chǎn)生頻率為100ns的clk信號(hào)93精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementAssert語(yǔ)句格式
assert條件[report輸出信息][severity]
說(shuō)明:條件為true時(shí)執(zhí)行下一條語(yǔ)句,為false時(shí)輸出錯(cuò)誤信息和錯(cuò)誤的嚴(yán)重級(jí)別例子
….assert(sum=100)report“sum/=100”severityerror;
nextstatement…...94精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementIf語(yǔ)句格式
if條件then[順序執(zhí)行語(yǔ)句][else][順序執(zhí)行語(yǔ)句]endifif條件then[順序執(zhí)行語(yǔ)句][elsif][順序執(zhí)行語(yǔ)句][elsif][順序執(zhí)行語(yǔ)句]…..[else]endif95精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementIf語(yǔ)句例子96精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementCase語(yǔ)句格式Case表達(dá)式iswhen條件表達(dá)式=>順序處理語(yǔ)句
when條件表達(dá)式=>順序處理語(yǔ)句
…….whenothers=>順序處理語(yǔ)句endcase
原則:1、完全性:表達(dá)式所有可能的值都必須說(shuō)明,可以用others2、唯一性:相同表達(dá)式的值只能說(shuō)明一次97精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementCase語(yǔ)句例子,條件表達(dá)式可以有多種形式98精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementCase語(yǔ)句例子99精選2021版課件
順序執(zhí)行語(yǔ)句sequentialstatementForloop語(yǔ)句格式For循環(huán)變量in范圍loop[順序處理語(yǔ)句]endloop注意:循環(huán)變量不需要定義(聲明);例子中i不需要定義Forloop語(yǔ)句例子Foriin1to10loopsum=sum+1;endloop100精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatement在loop語(yǔ)句中可以用next來(lái)跳出本次循環(huán),也可以用exit來(lái)結(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精選2021版課件順序執(zhí)行語(yǔ)句sequentialstatementWhile語(yǔ)句格式while條件loop[順序處理語(yǔ)句]endloopWhilei<10loopsum=sum+1;i=i+1;endloopWhile語(yǔ)句例子102精選2021版課件并行處理語(yǔ)句concurrentstatement1、信號(hào)賦值操作2、帶條件的信號(hào)賦值語(yǔ)句3、帶選擇的信號(hào)賦值語(yǔ)句103精選2021版課件并行處理語(yǔ)句concurrentstatement信號(hào)賦值操作符號(hào)“<=”進(jìn)行信號(hào)賦值操作的,它可以用在順序執(zhí)行語(yǔ)句中,也可以用在并行處理語(yǔ)句中注意
1、用在并行處理語(yǔ)句中時(shí),符號(hào)<=右邊的值是此條語(yǔ)句的敏感信號(hào),即符號(hào)<=右邊的值發(fā)生變化就會(huì)重新激發(fā)此條賦值語(yǔ)句,也即符號(hào)<=右邊的值不變化時(shí),此條賦值語(yǔ)句就不會(huì)執(zhí)行。如果符號(hào)<=右邊是常數(shù)則賦值語(yǔ)句一直執(zhí)行。
2、用在順序執(zhí)行語(yǔ)句中時(shí),沒(méi)有以上說(shuō)法。104精選2021版課件并行處理語(yǔ)句concurrentstatement賦值語(yǔ)句例子Myblock:Blockbeginclr<=‘1’after10ns; clr<=‘0’after20ns;endblockmyblockprocessbeginclr<=‘1’after10ns;clr<=‘0’after20ns;endblockmyblock程序執(zhí)行10ns后clr為1,又過(guò)10ns后0賦給了clr,此時(shí)clr以前的值1并沒(méi)有清掉,clr將出現(xiàn)不穩(wěn)定狀態(tài)程序執(zhí)行10ns后clr為1,又過(guò)20ns后clr的值變?yōu)?,105精選2021版課件并行處理語(yǔ)句concurrentstatement條件信號(hào)帶入語(yǔ)句格式
目的信號(hào)量<=表達(dá)式1when條件1else表達(dá)式2when條件2else表達(dá)式3when條件3…..
else表達(dá)式4注意:最后的Else項(xiàng)是必須的;滿(mǎn)足完全性和唯一性106精選2021版課件并行處理語(yǔ)句concurrentstatement條件信號(hào)帶入語(yǔ)句例子Blockbeginsel<=b&a;q<=ainwhensel=“00”elsebinwhensel=“01”elsecinwhensel=“10”elsedinwhensel=‘11”elsexx;endblock107精選2021版課件并行處理語(yǔ)句concurrentstatement選擇信號(hào)帶入語(yǔ)句格式
with表達(dá)式select
目的信號(hào)量<=表達(dá)式1when條件1,表達(dá)式2when條件2,
…..
表達(dá)式nwhen條件n;108精選2021版課件并行處理語(yǔ)句concurrentstatement選擇信號(hào)帶入語(yǔ)句例子Blockbeginwithselselectq<=ainwhensel=“00”,
binwhensel=“01”,
cinwhensel=“10”,
dinwhensel=‘11”xx;whenothers;endblock109精選2021版課件順序執(zhí)行語(yǔ)句和并行處理語(yǔ)句順序執(zhí)行語(yǔ)句和并行處理語(yǔ)句總結(jié)1、順序執(zhí)行語(yǔ)句wait、assert、if-else、case、for-loop、while語(yǔ)句只能用在process、function和procedure中;2、并行處理語(yǔ)句(條件信號(hào)帶入和選擇信號(hào)帶入)只能用在architecture、block中;110精選2021版課件其它語(yǔ)句Generic語(yǔ)句enttityand2isgeneric(rise:time:=10ns);port(a,b:innit;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《訊期安全修定版》課件
- 學(xué)年課程大綱與重難點(diǎn)分析計(jì)劃
- 精心設(shè)計(jì)的幼兒園課程計(jì)劃
- 《麻醉工作規(guī)范》課件
- 川大華西-神經(jīng)解剖學(xué)-課件-神經(jīng)系統(tǒng)的發(fā)生
- 預(yù)算控制與財(cái)務(wù)管理的計(jì)劃
- 鐵人挑戰(zhàn)學(xué)校鐵人項(xiàng)社團(tuán)訓(xùn)練計(jì)劃
- 電子數(shù)據(jù)處理委托合同三篇
- 實(shí)木類(lèi)家具相關(guān)行業(yè)投資規(guī)劃報(bào)告
- 發(fā)光二極管(LED)相關(guān)行業(yè)投資方案范本
- 華南理工大學(xué)《自然語(yǔ)言處理》2021-2022學(xué)年期末試卷
- 廣東開(kāi)放大學(xué)2024秋《形勢(shì)與政策(專(zhuān))》形成性考核參考答案
- 部編版小學(xué)五年級(jí)語(yǔ)文上冊(cè)第15課《小島》精美課件(共53張課件)
- 線(xiàn)上客服外包合作協(xié)議書(shū)范文
- 2023-2024-深圳某中學(xué)初二年級(jí)上冊(cè)數(shù)學(xué)期末測(cè)試卷
- 企業(yè)社會(huì)責(zé)任(CSR)與可持續(xù)發(fā)展規(guī)章制度
- 員工的工作態(tài)度指標(biāo)評(píng)分標(biāo)準(zhǔn)示例-企業(yè)管理
- 供水設(shè)備相關(guān)項(xiàng)目實(shí)施方案
- 2024版年度中華人民共和國(guó)傳染病防治法
- 辰顯光電微型發(fā)光二極管(Micro-LED)生產(chǎn)基地項(xiàng)目環(huán)評(píng)報(bào)告表
- 醫(yī)師定期考核人文醫(yī)學(xué)模擬考試500題(含參考答案)
評(píng)論
0/150
提交評(píng)論