醫(yī)院應(yīng)當(dāng)如何建立管理人才隊伍_第1頁
醫(yī)院應(yīng)當(dāng)如何建立管理人才隊伍_第2頁
醫(yī)院應(yīng)當(dāng)如何建立管理人才隊伍_第3頁
醫(yī)院應(yīng)當(dāng)如何建立管理人才隊伍_第4頁
醫(yī)院應(yīng)當(dāng)如何建立管理人才隊伍_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

VHDL編程基礎(chǔ)

目錄3.1概述3.2VHDL設(shè)計實體的基本結(jié)構(gòu)3.3VHDL語言要素3.4VHDL順序語句3.5VHDL并行語句3.6VHDL的庫和程序包

3.7VHDL設(shè)計流程

3.1概述3.1.1VHDL語言簡介VHDL是超高速集成電路硬件描述語言(VeryHighSpeedIntegratedCircuitHardwareDescriptionlanguage)。是標(biāo)準(zhǔn)化程度最高的硬件描述語言。目前流行的EDA工具軟件全部支持VHDL,VHDL是現(xiàn)代電子設(shè)計師必須掌握的硬件設(shè)計計算機語言。(1)邏輯描述層次:一般的硬件描述語言可以在三個層次上進行電路描述,層次由高到低依次可分為行為級、RTL級(寄存器轉(zhuǎn)換級)和門電路級。VHDL語言是一種高級描述語言,適用于行為級和RTL級的描述,最適于描述電路的行為;(2)設(shè)計要求:VHDL進行電子系統(tǒng)設(shè)計時可以不了解電路的結(jié)構(gòu)細節(jié),設(shè)計者所做的工作較少;Verilog和ABEL語言進行電子系統(tǒng)設(shè)計時需了解電路的結(jié)構(gòu)細節(jié),設(shè)計者需做大量的工作。3.1.3VHDL程序設(shè)計約定為了便于程序的閱讀和調(diào)試,對VHDL程序設(shè)計特作如下約定:(1)語句結(jié)構(gòu)描述中方括號“[]”內(nèi)的內(nèi)容為可選內(nèi)容。(2)對于VHDL的編譯器和綜合器來說,程序文字的大小寫是不加區(qū)分的。(3)程序中的注釋使用雙橫線“--”。在VHDL程序的任何一行中,雙橫線“--”后的文字都不參加編譯和綜合。(4)為了便于程序的閱讀與調(diào)試,書寫和輸入程序時,使用層次縮進格式,同一層次的對齊,低層次的較高層次的縮進兩個字符。(5)考慮到MAX+plusII要求源程序文件的名字與實體名必須一致,因此為了使同一個VHDL源程序文件能適應(yīng)各個EDA開發(fā)軟件上的使用要求,建議各個源程序文件的命名均與其實體名一致。

3.2VHDL設(shè)計實體的基本結(jié)構(gòu)通過VHDL描述一個二輸入或門的實例,來說明VHDL的基本結(jié)構(gòu)。例1一個二輸入或門的VHDL程序如下:LIBRARYIEEE;--IEEE庫的使用說明USEIEEE.STD_LOGIC_1164.ALL;--實體描述器件的輸入、輸出端口和數(shù)據(jù)類型用的程序包ENTITYOR2IS--實體OR2的說明PORT(A,B:STD_LOGIC;---端口聲明,A、B是標(biāo)準(zhǔn)邏輯位類型的輸入端口C:OUTSTD_LOGIC);--聲明C是標(biāo)準(zhǔn)邏輯位類型的輸出端口ENDENTITYOR2;ARCHITECTUREONEOFOR2IS--實體OR2的結(jié)構(gòu)體ONE的說明BEGINC<=AORB;--二輸入或門邏輯功能描述ENDARCHITECTUREONE;或門程序包含了VHDL的庫、程序包、實體說明和結(jié)構(gòu)體幾個主要部分。語句C<=AORB為或門電路的邏輯描述,其他都作為或門對外部端口的描述,設(shè)計實體定義了或門外部界面后,其他的設(shè)計就可以直接調(diào)用這個或門實體。3.2.1VHDL程序設(shè)計舉例1.設(shè)計思路以全加器為例例2全加器可以由兩個1位的半加器構(gòu)成。1位半加器的端口信號A和B分別是2位相加的二進制輸入信號,SO是相加和的輸出信號,CO是進位輸出信號,左邊的門電路結(jié)構(gòu)構(gòu)成了右邊的半加器H_ADDER。圖中,全加器F_ADDER內(nèi)部的功能結(jié)構(gòu)是由3個邏輯器件構(gòu)成的,即由兩個半加器U1、U2和一個或門U3連接而成。1位全加器邏輯原理圖

2.VHDL源程序1)或門的邏輯描述LIBRARYIEEE;

--IEEE庫的使用說明

USEIEEE.STD_LOGIC_1164.ALL;--實體描述器件的輸入、輸出端口和數(shù)據(jù)類型用的程序包ENTITYor2IS

--實體or2的說明

PORT(a,b:INSTD_LOGIC;

--端口聲明,a、b是標(biāo)準(zhǔn)邏輯位類型的輸入端口

c:OUTSTD_LOGIC);

--聲明c是標(biāo)準(zhǔn)邏輯位類型的輸出端口ENDENTITYor2;ARCHITECTUREart1OFor2IS

--實體or2的結(jié)構(gòu)體art1的說明

BEGINc<=aORb;ENDARCHITECTUREart1;

2)半加器的邏輯描述

LIBRARYIEEE;

--IEEE庫的使用說明

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYh_adderIS--實體h_adder的說明PORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYh_adder;

ARCHITECTUREart2OFh_adderIS

--實體h_adder的結(jié)構(gòu)體art2的說明

BEGINso<=(aORb)AND(aNANDb);co<=NOT(aNANDb);ENDARCHITECTUREart2;3)全加器的邏輯描述LIBRARYIEEE;--IEEE庫的使用說明USEIEEE.STD_LOGIC_1164.ALL;ENTITYf_adderIS--實體f_adder的說明PORT(ain,bin,cin:INSTD_LOGIC;

--端口聲明,方向、數(shù)據(jù)類型名cout,sum:OUTSTD_LOGIC);ENDENTITYf_adder;ARCHITECTUREart3OFf_adderIS

--實體F_ADDER的結(jié)構(gòu)體ART3的說明COMPONENTh_adder

--元件調(diào)用聲明,將h_adder作為元件連接到指定端口

PORT(a,b:INSTD_LOGIC;--端口聲明co,so:OUTSTD_LOGIC);ENDCOMPONENTh_adder;COMPONENTor2PORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDCOMPONENTor2;SIGNALd,e,f:STD_LOGIC;--定義中中間信號轉(zhuǎn)轉(zhuǎn)存點BEGIN--元件連連接說明U1:h_adderPORTMAP(a=>ain,b=>bin,co=>d,so=>e);--名稱映映射法U2:h_adderPORTMAP(a=>e,b=>cin,co=>f,so=>sum);--名字關(guān)關(guān)聯(lián)方式U3:or2PORTMAP(a=>d,b=>f,c=>cout);ENDARCHITECTUREart3;3.說明明及分析(1)整整個設(shè)計包包括三個設(shè)設(shè)計實體,,分別為or2、h_adder和f_adder,其中實體體f_adder為為頂層實體體。三個設(shè)設(shè)計實體均均包括三個個組成部分分:庫、程序包包使用說明明,實體說說明和結(jié)構(gòu)構(gòu)體說明。這三個設(shè)設(shè)計實體既既可以作為為一個整體體進行編譯譯、綜合與與存檔,也也可以各自自進行獨立立編譯、獨獨立綜合與與存檔,或或被其他的的電路系統(tǒng)統(tǒng)所調(diào)用。。(2)實實體or2定義了了或門or2的引腳腳信號a、、b(輸入入)和c(輸出),,結(jié)構(gòu)體art1描描述了輸入入與輸出信信號間的邏邏輯關(guān)系,,將輸入信信號a、b相或后傳傳給輸出信信號端c,,由此實體體和結(jié)構(gòu)體體描述一個個完整的或或門元件。。(3)實實體h_adder及對應(yīng)的的結(jié)構(gòu)體art2描描述了一個個半加器。。是由一個個與非門、、一個非門門、一個或或門和一個個與門連接接而成的,,其邏輯關(guān)關(guān)系來自于于半加器真真值表。在在VHDL中,邏輯輯算符NAND、NOT、OR和AND分別代代表“與非非”、“非非”、“或或”和“與與”4種邏邏輯運算關(guān)關(guān)系。(4)在在全加器接接口邏輯VHDL描描述中,1位二進制制全加器f_adder的原原理圖,實實體f_adder定義了引引腳的端口口信號屬性性和數(shù)據(jù)類類型。其中中,ain和bin分別為兩兩個輸入的的相加位,,cin為為低位進位位輸入,cout為為進位輸輸出,sum為1位位和輸出。。其對應(yīng)的的結(jié)構(gòu)體art3的的功能是利利用COMPONENT聲明明語句和COMPONENT例化語句句將上面由由兩個實體體or2和和h_adder描描述的獨立立器件,按按照圖3.2全加器器內(nèi)部邏輯輯原理圖中中的接線方方式連接起起來。(5)在在結(jié)構(gòu)體art3中中,COMPONENT→ENDCOMPONENT語句結(jié)結(jié)構(gòu)對所要要調(diào)用的或或門和半加加器兩元件件作了聲明明(COMPONENTDECLARATION),,并由SIGNAL語句定義義了三個信信號d、e和f,作作為中間信信號轉(zhuǎn)存點點,以利于于幾個器件件間的信號號連接?!癙ORTMAP()””語句稱為為元件例化化語句(COMPONENTINSTANTIATION)。。所謂例化化,在電路路板上,相相當(dāng)于往上上裝配元器器件;在邏邏輯原理圖圖上,相當(dāng)當(dāng)于從元件件庫中取了了一個元件件符號放在在電路原理理圖上,并并對此符號號的各引腳腳進行連線線。例化也也可理解為為元件映射射或元件連連接,MAP是映映射的意思。例例如,語句句“U2::h_adderPORTMAP(a=>e,b=>cin,co=>f,so=>sum)””表示將實實體h_adder描述的元元件U2的的引腳信號號a、b、、co和so分別連連向外部信信號e、cin、f和sum。符號““=>”表表示信號連連接。(6)實實體f_adder引導(dǎo)的邏邏輯描述也也是由三個個主要部分分構(gòu)成的,,即庫、實實體和結(jié)構(gòu)構(gòu)體。從表表面上看來來,庫的部部分僅包含含一個IEEE標(biāo)準(zhǔn)準(zhǔn)庫和打開開的IEEE.STD_LOGIC_1164.ALL程序包。。但實際上上,從結(jié)構(gòu)構(gòu)體的描述述中可以看看出,其對對外部的邏邏輯有調(diào)用用的操作,,這類似于于對庫或程程序包中的的內(nèi)容作了了調(diào)用。因因此,庫結(jié)結(jié)構(gòu)部分還還應(yīng)將上面面的或門和和半加器的的VHDL描述包括括進去,作作為工作庫庫中的兩個個待調(diào)用的的元件。由由此可見,,庫結(jié)構(gòu)也也是VHDL程序的的重要組成成部分。3.2.2VHDL程序序的基本結(jié)結(jié)構(gòu)完整的VHDL程序序(設(shè)計實實體)具有有固定的結(jié)結(jié)構(gòu)。應(yīng)包包括三個基基本組成部部分:庫、程序包包使用說明明,實體說明和實體對應(yīng)的的結(jié)構(gòu)體說說明。庫、程序包包使用說明明用于打開開本設(shè)計實實體將要用用到的庫、、程序包;;實體說明用用于描述該該設(shè)計實體體與外界的的接口信號號說明,是是可視部分分;結(jié)構(gòu)體說明明用于描述述該設(shè)計實實體內(nèi)部工工作的邏輯輯關(guān)系。在一個實體體中,可以以含有一個個或一個以以上的結(jié)構(gòu)構(gòu)體,而在在每一個結(jié)結(jié)構(gòu)體中又又可以含有有一個或多多個進程以以及其他的的語句。實體還可以以有配置說說明語句。。配置說明明語句主要要用于以層層次化的方方式對特定定的設(shè)計實實體進行元元件例化,,或是為實實體選定某某個特定的的結(jié)構(gòu)體。。VHDL程程序設(shè)計基基本結(jié)構(gòu)3.2.2VHDL程序序的基本結(jié)結(jié)構(gòu)庫、程序包包根據(jù)VHDL語法規(guī)規(guī)則,在VHDL程程序中使用用的文字、、數(shù)據(jù)對象象、數(shù)據(jù)類類型都需要要預(yù)先定義義。為了方方便用VHDL編程程,IEEE將預(yù)定定義的數(shù)據(jù)據(jù)類型、元元件調(diào)用聲聲明(Declaration)及一一些常用子子程序收集集在一起,,形成程序序包,供VHDL設(shè)設(shè)計實體共共享和調(diào)用用。若干個程序序包則形成成庫,常用用的庫是IEEE標(biāo)標(biāo)準(zhǔn)庫。因因此,在每每個設(shè)計實實體開始都都有打開庫庫或程序包包的語句。。例如LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;表示設(shè)計實實體中被描描述器件的的輸入、輸輸出端口和和數(shù)據(jù)類型型將要用到到IEEE標(biāo)準(zhǔn)庫中中的STD_LOGIC_1164程序包。3.2.3實體體(ENTITY)實體(ENTITY)是設(shè)計計實體中的的重要組成成部分,是是一個完整整的、獨立立的語言模模塊。它相相當(dāng)于電路路中的一個個器件或電電路原理圖圖上的一個個元件符號號。實體由實體體聲明和結(jié)結(jié)構(gòu)體組成成。實體聲聲明部分指指定了設(shè)計計單元的輸輸入輸出端端口或引腳腳,是設(shè)計計實體經(jīng)封封裝后對外外的一個通通信界面,,是外界可可以看到的的部分。結(jié)構(gòu)體用來來描述設(shè)計計實體的邏邏輯結(jié)構(gòu)和和邏輯功能能。由VHDL語句句構(gòu)成,是是外界看不不到的部分分。一個實實體可以擁擁有一個或或多個結(jié)構(gòu)構(gòu)體。1.實體語語句結(jié)構(gòu)實體聲明部部分的常用用語句結(jié)構(gòu)構(gòu)如下:ENTITY實體名IS[GENERIC(類屬表);][PORT(端口表表);]ENDENTITY實體名;實體聲明單單元必須以以語句“ENTITY實體名IS”開始始,以語句句“ENDENTITY實體名;”結(jié)束,,實體名是設(shè)設(shè)計者自己己給設(shè)計實實體的命名名,可作為為其他設(shè)設(shè)計實體對對該設(shè)計實實體進行調(diào)調(diào)用時用。。中間在方方括號內(nèi)的的語句描述述,在特定定的情況下下并非是必必須的。2.類屬(GENERIC)說明語句句類屬(GENERIC)參數(shù)數(shù)聲明必須須放在端口口聲明之前前,用于指指定如矢量位數(shù)、、器件延遲遲時間等參數(shù)。類類屬聲明的的一般書寫寫格式如下下:GENERIC([常數(shù)名;;數(shù)據(jù)類型型[:設(shè)定定值]{;常數(shù)名名:數(shù)據(jù)類類型[:設(shè)設(shè)定值]});例:GENERIC(m:TIME=1.0ns);--m是是一一個個值值為為1.0ns的的時時間間參參數(shù)數(shù)Temp1<=d0ANDselAFTERm;--表表示示d0ANDsel經(jīng)經(jīng)1.0ns延延遲遲后后才才送送到到Temp1【例例3.2.2】】2輸輸入入與與門門的的實實體體描描述述。。ENTITYand2ISGENERIC(RISEW::TIME:=1ns;;FALLW::TIME:=1ns);;PORT(a1::INSTD_LOGIC;;a0::INSTD_LOGIC;;z0::OUTSTD_LOGIC);;ENDENTITYand2;;這是是一一個個準(zhǔn)準(zhǔn)備備作作為為2輸輸入入與與門門的的設(shè)設(shè)計計實實體體的的實實體體描描述述,,在在類類屬屬說說明明中中定定義義參參數(shù)數(shù)RISEW為為上上沿沿寬寬度度,,F(xiàn)ALLW為為下下沿沿寬寬度度,,它它們們分分別別為為1ns,,這這兩兩個個參參數(shù)數(shù)用用于于仿仿真真模模塊塊的的設(shè)設(shè)計計。。3..PORT端端口口說說明明端口口聲聲明明語語句句是是描描述述器器件件的的外外部部接接口口信信號號的的聲聲明明,,相相當(dāng)當(dāng)于于器器件件的的引引腳腳聲聲明明。。實實體體端端口口聲聲明明的的一一般般書書寫寫格格式式如如下下::PORT(端端口口名名::方方向向數(shù)數(shù)據(jù)據(jù)類類型型;;{端端口口名名::方方向向數(shù)數(shù)據(jù)據(jù)類類型型});;例如如PORT(a,b:INSTD_LOGIC;--聲聲明明a,b是是標(biāo)標(biāo)準(zhǔn)準(zhǔn)邏邏輯輯位位類類型型的的輸輸入入端端口口s:INSTD_LOGIC;--聲聲明明s是是標(biāo)標(biāo)準(zhǔn)準(zhǔn)邏邏輯輯位位類類型型的的輸輸入入端端口口y:OUTSTD_LOGIC);--聲聲明明y是是標(biāo)標(biāo)準(zhǔn)準(zhǔn)邏邏輯輯位位類類型型的的輸輸出出端端口口端口口名名是是實實體體每每一一個個對對外外通通道道的的名名字字;;端端口口方方向向模模式式是是通通道道上上數(shù)數(shù)據(jù)據(jù)流流動動的的方方式式,,如如輸輸入入或或輸輸出出等等;;數(shù)數(shù)據(jù)據(jù)類類型型是是端端口口上上流流動動數(shù)數(shù)據(jù)據(jù)的的表表達達格格式式。。VHDL對對語語句句中中的的所所有有操操作作數(shù)數(shù)的的數(shù)數(shù)據(jù)據(jù)類類型型都都有有嚴(yán)嚴(yán)格格的的規(guī)規(guī)定定。。一一個個實實體體通通常常有有一一個個或或多多個個端端口口,,端端口口類類似似于于原原理理圖圖部部件件符符號號上上的的管管腳腳。。實實體體與與外外界界交交流流的的信信息息必必須須通通過過端端口口通通道道流流入入或或流流出出。。IEEE定定義義了了4種種常常用用的的端端口口模模式式::IN--輸輸入入的的引引腳腳,,OUT--輸輸出出的的引引腳腳,,BUFFER--帶帶輸輸出出緩緩沖沖器器并并可可以以回回讀讀的的引引腳腳(與與TRI引引腳腳不不同同),,INOUT--雙雙向向引引腳腳(即即BIDIR引引腳腳)。。此此模模式式的的端端口口是是普普通通輸輸出出端端口口(OUT)加加入入三三態(tài)態(tài)輸輸出出緩緩沖沖器器和和輸輸入入緩緩沖沖器器構(gòu)構(gòu)成成的的。。端口口描描述述中中的的數(shù)數(shù)據(jù)據(jù)類類型型主主要要有有兩兩類類::位(BIT)和和位位矢矢量量(BIT_VECTOR)。。若端端口口的的數(shù)數(shù)據(jù)據(jù)類類型型定定義義為為BIT,,則則其其信信號號值值是是一一個個1位位的的二二進進制制數(shù)數(shù),,取取值值只只能能是是0或或1;;若若端端口口數(shù)數(shù)據(jù)據(jù)類類型型定定義義為為BIT_VECTOR,,則則其其信信號號值值是是一一組組二二進進制制。。端口模模式((方向向)說說明端口模模式符符號圖圖3.2.4結(jié)結(jié)構(gòu)構(gòu)體(ARCHITECTURE)結(jié)構(gòu)體體是用用于描描述設(shè)設(shè)計實實體的的內(nèi)部部結(jié)構(gòu)構(gòu)以及及實體體端口口間的的邏輯輯關(guān)系系,在在電路路上相相當(dāng)于于器件件的內(nèi)內(nèi)部電電路結(jié)結(jié)構(gòu)。。一個個完整整的結(jié)結(jié)構(gòu)體體由兩兩個基基本層層次組組成::●對對數(shù)據(jù)據(jù)類型型、常常數(shù)、、信號號、子子程序序和元元件等等元素素的信信號聲聲明部部分。?!衩杳枋鰧崒嶓w邏邏輯行行為的的,以以各種種不同同的描描述風(fēng)風(fēng)格表表達的的功能能描述述語句句。結(jié)構(gòu)體構(gòu)造圖1.結(jié)結(jié)構(gòu)構(gòu)體的的一般般語句句格式式結(jié)構(gòu)體體的語語句格格式如如下::ARCHITECTURE結(jié)結(jié)構(gòu)體體名OF實實體體名IS[信號號聲明明語句句];;--為為內(nèi)部部信號號名稱稱及類類型聲聲明BEGIN[功能能描述述語句句]ENDARCHITECTURE結(jié)結(jié)構(gòu)構(gòu)體名名;其中,,實體體名必必須是是所在在設(shè)計計實體體的名名字,,而結(jié)結(jié)構(gòu)體體名可可以由由設(shè)計計者自自己選選擇,,但當(dāng)當(dāng)一個個實體體具有有多個個結(jié)構(gòu)構(gòu)體時時,結(jié)結(jié)構(gòu)體體的取取名不不可重重復(fù)。。例如設(shè)設(shè)a、b是或或非門門的輸輸入端端口,,z是是輸出出端口口,y是結(jié)結(jié)構(gòu)體體內(nèi)部部信號號,則則用VHDL描描述的的兩輸輸入端端或非非門的的結(jié)構(gòu)構(gòu)體為為:ARCHITECTUREnor1OFtemplISSIGNALy:STD_LOGIC;BEGINy<=aORb;--結(jié)結(jié)構(gòu)體體功能能描述述語句句z<=NOTy;ENDARCHITECTUREnor1;2.結(jié)結(jié)構(gòu)體體說明明語句句結(jié)構(gòu)體體中的的說明明語句句是對對結(jié)構(gòu)構(gòu)體的的功能能描述述語句句中將將要用用到的的信號號(SIGNAL)、數(shù)數(shù)據(jù)類類型(TYPE)、常常數(shù)(CONSTANT)、元元件(COMPONENT)、函函數(shù)(FUNCTION)和過過程(PROCEDURE)等加加以說說明的的語句句。但在一一個結(jié)結(jié)構(gòu)體體中說說明和和定義義的數(shù)數(shù)據(jù)類類型、、常數(shù)數(shù)、元元件、、函數(shù)數(shù)和過過程只只能用用于這這個結(jié)結(jié)構(gòu)體體中,,若希希望其其能用用于其其他的的實體體或結(jié)結(jié)構(gòu)體體中,,則需需要將將其作作為程程序包包來處處理。。3.功功能描描述語語句結(jié)結(jié)構(gòu)功能描描述語語句結(jié)結(jié)構(gòu)含含有五五種不不同類類型,,以并并行方方式工工作。。在每每一語語句結(jié)結(jié)構(gòu)的的內(nèi)部部可能能含有有并行行運行行的邏邏輯描描述語語句或或順序序運行行的邏邏輯描描述語語句。。各語句句結(jié)構(gòu)構(gòu)的基基本組組成和和功能能分別別是::(1)塊塊語句句(BLOCK)是是由一一系列列并行行執(zhí)行行語句句構(gòu)成成的組組合體體,它它的功功能是是將結(jié)結(jié)構(gòu)體體中的的并行行語句句組成成一個個或多多個模模塊。。(2)進進程語語句(PROCESS)定義義順序序語句句模塊塊,用用以將將從外外部獲獲得的的信號號值,,或內(nèi)內(nèi)部的的運算算數(shù)據(jù)據(jù)向其其他的的信號號進行行賦值值。(3)信信號賦賦值語語句(賦值值目標(biāo)標(biāo)<=表達達式;;)將將設(shè)計計實體體內(nèi)的的處理理結(jié)果果向定定義的的信號號或界界面端端口進進行賦賦值。。(4)子子程序序調(diào)用用語句句用于于調(diào)用用一個個已設(shè)設(shè)計好好的子子程序序。子子程序序有過過程(PROCEDURE)和函函數(shù)(FUNCTION)兩兩種類類型。。(5)元元件例例化(COMPONENT)語句句對其其他的的設(shè)計計實體體作元元件調(diào)調(diào)用說說明,,并將將此元元件的的端口口與其其他的的元件件、信信號或或高層層次實實體的的界面面端口口進行行連接接。例1:半半加器的描描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;--IEEE庫使用用聲明ENTITYh_adderISPORT(a,b:INSTD_LOGIC;--實體端端口聲明so,co:OUTSTD_LOGIC);ENDh_adder;ARCHITECTUREONEOFh_adderISBEGINso<=aXORb;--結(jié)構(gòu)體體功能描述述語句co<=aANDb;ENDARCHITECTUREONE;例2:2選選1數(shù)據(jù)選選擇器的描描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux21ISPORT(a,b:INSTD_LOGIC;s:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDmux21;ARCHITECTUREONEOFmux21ISBEGINy<=aWHENs='0'ELSEb;ENDARCHITECTUREONE;例3:鎖存存器的描述述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYlatch1ISPORT(d:INSTD_LOGIC;ena:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDlatch1;ARCHITECTUREONEOFlatch1ISBEGINPROCESS(d,ena)BEGINIFena='1'THENq<=d;ENDIF;ENDPROCESS;ENDARCHITECTUREONE;例4四位位二進制加加法計數(shù)器器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcnt4evhdlISPORT(clk,ena:INSTD_LOGIC;cout:OUTSTD_LOGIC;q:BUFFERINTEGERRANGE0TO15);ENDcnt4evhdl;ARCHITECTUREoneOFcnt4evhdlISBEGINPROCESS(clk,ena)BEGINIFclk'EVENTANDCLK='1'THENIFena='1'THENIFq=15THENq<=0;cout<='0';ELSIFq=14THENq<=q+1;cout<='1';ELSEq<=q+1;ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDARCHITECTUREone;例5七段段顯示譯碼碼器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDec7svhdlISPORT(a:INBIT_VECTOR(3DOWNTO0);led7S:OUTBIT_VECTOR(7DOWNTO0));END;ARCHITECTUREoneOFDec7svhdlISBEGINPROCESS(a)BEGINCASEa(3DOWNTO0)IS--case選擇語句句WHEN"0000"=>LED7S<="00111111";WHEN"0001"=>LED7S<="00000110";WHEN"0010"=>LED7S<="01011011";WHEN"0011"=>LED7S<="01001111";WHEN"0100"=>LED7S<="01100110";WHEN"0101"=>LED7S<="01101101";WHEN"0110"=>LED7S<="01111101";WHEN"0111"=>LED7S<="00000111";WHEN"1000"=>LED7S<="01111111";WHEN"1001"=>LED7S<="01101111";WHEN"1010"=>LED7S<="01110111";WHEN"1011"=>LED7S<="01111100";WHEN"1100"=>LED7S<="00111001";WHEN"1101"=>LED7S<="01011110";WHEN"1110"=>LED7S<="01111001";WHEN"1111"=>LED7S<="01110001";WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDARCHITECTUREone;例6奇偶偶校驗器的的描述LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;ENTITYp_checkIS

PORT(a:INSTD_LOGIC_VECTOR(7DOWNTO0);y:OUTSTD_LOGIC);ENDp_check;ARCHITECTUREoneOFp_checkISBEGINPROCESS(a)VARIABLEtemp:STD_LOGIC;BEGINtemp:='0';FORnIN0TO7LOOPtemp:=tempXORa(n);ENDLOOP;y<=temp;ENDPROCESS;ENDone;例7求最最大值的函函數(shù)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;PACKAGEbpac1ISFUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)RETURNSTD_LOGIC_VECTOR;--聲明函數(shù)數(shù)首END;PACKAGEBODYbpac1ISFUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)--聲明函數(shù)數(shù)體RETURNSTD_LOGIC_VECTORISBEGINIF(a>b)THENRETURNa;ELSERETURNb;ENDIF;ENDmax;ENDbpac1;在設(shè)計實體體中聲明的的數(shù)據(jù)類型型、子程序序或數(shù)據(jù)對對象對于其其他設(shè)計實實體是不可可再利用的的。為了使使已聲明的的數(shù)據(jù)類型型、子程序序、元件能能被其他設(shè)設(shè)計實體調(diào)調(diào)用或共享享,可以把把它們匯集集在程序包包中。包中中可以有多多個元件和和函數(shù)。打開bpac1程序序包的語句句為:USEwork.bpac1.ALL放在實體聲聲明前面函數(shù)調(diào)用語語句函數(shù)名((關(guān)聯(lián)聯(lián)參數(shù)表))例如,調(diào)用用求最大值值函數(shù)的語語句為:peak<=max(data,peak);元件例化語語句第一步設(shè)設(shè)計二輸輸入與非門門LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYnd2ISPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDnd2;ARCHITECTUREnd2behvOFnd2ISBEGINc<=aNANDb;ENDnd2behv;第二步將將設(shè)計的元元件聲明裝裝入my_pkg程程序包中LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;PACKAGEmy_pkgIScomponentnd2--元件聲聲明PORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDcomponentnd2;ENDmy_pkg;第三步用用元件例化化產(chǎn)生圖示示的電路LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEwork.my_pkg.ALL;--打開程程序包ENTITYord41ISPORT(a1,b1,c1,d1:INSTD_LOGIC;z1:OUTSTD_LOGIC);ENDord41;ARCHITECTUREord41behvOFord41IS--元件例例化SIGNALx,y:STD_LOGIC;BEGINu1:nd2PORTMAP(a1,b1,x);--位置關(guān)關(guān)聯(lián)方式u2:nd2PORTMAP(a=>c1,b=>d1,c=>y);--名字關(guān)關(guān)聯(lián)方式u3:nd2PORTMAP(x,y,c=>z1);--混合關(guān)關(guān)聯(lián)方式ENDord41behv;3.2VHDL語語言要素3.2.1VHDL文字規(guī)規(guī)則1.數(shù)字型型文字(1)整數(shù)數(shù)文字整數(shù)文字由由數(shù)字和下下劃線組成成。下劃線線用來將數(shù)數(shù)字分組,,便于讀出出。例:5,678,156E2,45_234_287相相當(dāng)于(45,234,287)(2)實數(shù)數(shù)文字實數(shù)文字由由數(shù)字、小小數(shù)點和下下劃線組成成。例:188.993,88_670_551.453_909相相當(dāng)于(88,670,551.453,909)(3)以數(shù)數(shù)字基數(shù)表表示的文字字以數(shù)字基數(shù)數(shù)表示的文文字的格式式為:數(shù)制#數(shù)值值#例:10#170#;--十進制數(shù)數(shù)值16#FE#;--十六六進制數(shù)值值2#11010001#;--二進進制數(shù)值8#376#;--八八進制數(shù)字字(4)物理理量文字表示時間、、長度等物物理量。例例如,60s,100m。2.字符串串文字字符串文文字包括括字符和和字符串串。字符符是以單單引號括括起來的的數(shù)字、、字母和和符號。。包括文文字字符符串和數(shù)數(shù)值字符符串。(1)文文字字符符串文字字符符串是用用雙引號號括起來來的一維維字符數(shù)數(shù)組。例:“ABC””,“ABOY”,,“A””都是文文字字符符串。(2)數(shù)數(shù)值字符符串?dāng)?shù)值字符符串也叫叫做矢量量,格式式為數(shù)制基數(shù)數(shù)符號““數(shù)值字字符串””例:B”111011110”;--二進進制數(shù)數(shù)數(shù)組,位位矢量組組長度是是9O”15”;--八進進制數(shù)數(shù)數(shù)組,等等效B””001101”,位位矢量組組長度是是6X”AD0”;--十六六進制數(shù)數(shù)數(shù)組,,等效B”101011010000”,,位矢量量組長度度是12B、O、、X分別別是二進進制、八八進制、、十六進進制基數(shù)數(shù)符號。。3.標(biāo)識識符標(biāo)識符是是用戶給給常量、、變量、、信號、、端口、、子程序序或參數(shù)數(shù)定義的的名字。。標(biāo)識符符的命名名規(guī)則是是:以字字母開頭頭,后跟跟若干字字母、數(shù)數(shù)字或單單個下劃劃線構(gòu)成成,但最最后不能能為下劃劃線。例:h_adder,mux21,example為合合法標(biāo)識識符;2adder,_mux21,ful__adder,adder_為錯錯誤的標(biāo)標(biāo)識符。。4.下標(biāo)標(biāo)名下標(biāo)名用用于指示示數(shù)組型型變量或或信號的的某一元元素。下下標(biāo)名的的格式為為:標(biāo)識符((表達式式)例:b(3),a(m)都都是下標(biāo)標(biāo)名。5.段名名段名是多多個下標(biāo)標(biāo)名的組組合。段段名的格格式為::標(biāo)識符((表達式式方方向表表達式式)例:D(7DOWNTTO0);--可可表示數(shù)數(shù)據(jù)總線線D7—D0D(0TO7);--可表表示數(shù)據(jù)據(jù)總線D0—D73.2.2VHDL數(shù)據(jù)據(jù)對象VHDL數(shù)據(jù)對對象包括括變量、、常量和和信號。。1.變量量變量(VARIABLE)是是一個局局部量。。只能在在進程(PROCESS)、、函數(shù)(FUNCTION)和過程程(PROCEDURE)中中聲明和和使用。。變量不不能將信信息帶出出對它定定義的當(dāng)當(dāng)前設(shè)計計單元。。變量賦賦值的數(shù)數(shù)據(jù)傳輸輸是立即即發(fā)生的的,不存存在延時時。變量要聲聲明后才才能使用用,變量量聲明的的語法格格式為::VARIABLE變變量名::數(shù)據(jù)類類型[::=初始始值];;例:VARIABLEa:INTEGER;--a為整型型變量VARIABLEb:INTEGER:=2;--b賦賦初值2變量賦值值語句的的語法格格式為::目標(biāo)變量量名:=表達式式例:VARIABLEa,b:BIT_VECTOR(0TO7);VARIABLEx,y:INTEGER;x:=100;a:=““1010101”y:=15+x;a(3TO6):=(‘1’,’’1’,’0’’,’1’);a(0TO5):=b(2TO7);2.信號號信號是描描述硬件件系統(tǒng)的的基本數(shù)數(shù)據(jù)對象象。不僅僅可以容容納當(dāng)前前值,也也可以保保持歷史史值,類類似于連連線。信號聲明明語句的的語法格格式為::SIGNAL信信號名名:數(shù)據(jù)據(jù)類型[:=初初值];;SIGNALtemp:STD_LOGIC:=0;--temp為標(biāo)標(biāo)準(zhǔn)邏輯輯位信號號初值值為0SIGNALflaga,flagb:BIT;--flaga,flagb為位信信號SIGNALdata:STD_LOGIC_VECTOR(15DOWNTO0);--data為為標(biāo)準(zhǔn)邏邏輯位矢矢量,矢矢量長度度為16信號的的賦值值語句句格式式為::目標(biāo)信信號名名<=表達達式例:x<=9;z<=xAFTER5ns;--目標(biāo)標(biāo)信號號需要要一定定延遲遲時間間,設(shè)設(shè)置延延遲5ns信號與與變量量是有有區(qū)別別的。。變量量在進進程、、函數(shù)數(shù)和過過程中中聲明明,信信號在在結(jié)構(gòu)構(gòu)體中中聲明明。變變量用用“:=””號賦賦值,,無延延遲時時間,,而信信號用用“<=””賦值值,賦賦值過過程有有延遲遲時間間。信信號賦賦初值值的符符號是是“:=””。3.常常數(shù)常數(shù)的的聲明明格式式為::CONSTANT常常數(shù)數(shù)名::數(shù)據(jù)據(jù)類型型:=初值值;例:CONSTANTfbus:BIT_VECTOR:=“010111””;CONSTANTVcc:REAL:=5.0;CONSTANTdelay:TIME:25ns;3.2.3VHDL數(shù)據(jù)據(jù)類型型1.BOOLEAN(布布爾)數(shù)據(jù)據(jù)類型型FALSE(假假)和和TRUE((真)),以以枚舉舉類型型預(yù)定定義,,定義義語句句為::TYPEBOOLEANIS(FALSE,TRUE);2.BIT(位位)數(shù)數(shù)據(jù)類類型位數(shù)據(jù)據(jù)類型型包括括‘0’和和’1’,,定義義語句句為::TYPEBITIS(‘0’,’1’);3.BIT_VECTOR位矢量量是用用雙引引號括括起來來的數(shù)數(shù)字序序列,,如““0011”,,X””00FD”等等。定定義語語句為為:TYPEBIT_VECTORISARRAY(NaturalRange<>)OFBIT;其中,,<>表示示數(shù)據(jù)據(jù)范圍圍未定定界。。在使使用位位矢量量時,,必須須注明明位寬寬,例如::SIGNALa:BIT_VECTOR(7DOWNTO0);4.CHARACTER(字字符))數(shù)據(jù)據(jù)類型型字符是是用單單引號號括起起來的的ASCII碼碼字符符,如如‘A’,,‘a(chǎn)’,,定義義語句句為::ZTYPECHARACTERIS(NUL,SOH,…);5.INTEGER(整整數(shù)))數(shù)據(jù)據(jù)類型型整數(shù)包包括正正整數(shù)數(shù)、負(fù)負(fù)整數(shù)數(shù)和零零。整整數(shù)是是32位的的帶符符號數(shù)數(shù)。6.NATURAL(自自然數(shù)數(shù))和和POSITIVE(正正整數(shù)數(shù))數(shù)數(shù)據(jù)類類型自然數(shù)數(shù)是整整數(shù)的的一個個子集集,包包括0和正正整數(shù)數(shù)。7.REAL((實數(shù)數(shù))數(shù)數(shù)據(jù)類類型實數(shù)由由正、、負(fù)、、小數(shù)數(shù)點和和數(shù)字字組成成,例例如,,-1.0,+2.5,-1.0E38都都是實實數(shù)。。8.STRING((字符符串))數(shù)據(jù)據(jù)類型型字符串串是用用雙引引號括括起來來的字字符序序列,,也稱稱字符符串矢矢量或或字符符串?dāng)?shù)數(shù)組。。例如如,””ABOY.”,”1010011”等等是字字符串串。9.TIME((時間間)數(shù)數(shù)據(jù)類類型時間是是物理理量數(shù)數(shù)據(jù),,由整整數(shù)數(shù)數(shù)據(jù)和和單位位兩部部分組組成。。定義義語句句為::TYPETIMEISRANGE-2147483647TO21474836473.2.5IEEE預(yù)預(yù)定義義的標(biāo)標(biāo)準(zhǔn)邏邏輯位位和矢矢量1.STD_LOGIC(標(biāo)標(biāo)準(zhǔn)邏邏輯位位)數(shù)數(shù)據(jù)類類型在VHDL中,,標(biāo)準(zhǔn)準(zhǔn)邏輯輯位數(shù)數(shù)據(jù)有有九種種邏輯輯值::‘‘U’’(未未初始始化的的)、、‘‘X’’(強強未知知的))、‘‘0’((強0)、、‘‘1’’(強強1))、‘‘Z’((高阻阻態(tài)))、‘‘W’((弱未未知的的)、、‘‘L’’(弱弱0))、‘‘H’((弱1)和和’-’((忽略略)。。它們們在STD_LOGIC_1164程程序包包中的的定義義語句句:TYPESTD_LOGICIS(‘U’,’X’,’0’,’1’,’Z’,’W’,’L’,’H’,’-’);注意::STD_LOGIC數(shù)數(shù)據(jù)類類型中中的數(shù)數(shù)據(jù)是是用大大寫字字母定定義的的。2.STD_LOGIC_VECTOR(標(biāo)標(biāo)準(zhǔn)邏邏輯矢矢量))數(shù)據(jù)據(jù)類型型標(biāo)準(zhǔn)邏邏輯矢矢量數(shù)數(shù)據(jù)在在數(shù)字字電路路中常常用于于表示示總線線。它它們在在STD_LOGIC_1164程序序包中中的定定義語語句::TYPESTD_LOGIC_VECTORISARRAY(NaturalRange<>)OFSTD_LOGIC;3.2.6VHDL操操作符符VHDL的的操作作符包包括邏邏輯操操作符符(LogicOperator)、關(guān)關(guān)系操操作符符(RelationalOperator)、、算算術(shù)操操作符符(ArithmeticOperator)和和符號號操作作符(SignOperator)四類類。類型操作符功能操作數(shù)數(shù)據(jù)類型算術(shù)操作符+加整數(shù)-減整數(shù)&并一維數(shù)組*乘整數(shù)和實數(shù)/除整數(shù)和實數(shù)MOD取模整數(shù)REM求余整數(shù)SLL邏輯左移BIT或布爾型一維數(shù)組SRL邏輯右移BIT或布爾型一維數(shù)組SLA算術(shù)左移BIT或布爾型一維數(shù)組SRA算術(shù)右移BIT或布爾型一維數(shù)組ROL邏輯循環(huán)左移BIT或布爾型一維數(shù)組ROR邏輯循環(huán)右移BIT或布爾型一維數(shù)組**乘方整數(shù)ABS取絕對值整數(shù)類型操作符功能操作數(shù)數(shù)據(jù)類型關(guān)系操作符=等于任何數(shù)據(jù)類型/=不等于任何數(shù)據(jù)類型<小于枚舉與整數(shù)及對應(yīng)的一維數(shù)組>大于枚舉與整數(shù)及對應(yīng)的一維數(shù)組<=小于等于枚舉與整數(shù)及對應(yīng)的一維數(shù)組>=大于等于枚舉與整數(shù)及對應(yīng)的一維數(shù)組邏輯操作符AND與BIT、BOOLEAN、STD_LOGICOR或BIT、BOOLEAN、STD_LOGICNAND與非BIT、BOOLEAN、STD_LOGICNOR或非BIT、BOOLEAN、STD_LOGICXOR異或BIT、BOOLEAN、STD_LOGICNXOR異或非BIT、BOOLEAN、STD_LOGICNOT非BIT、BOOLEAN、STD_LOGIC符號操作符+正整數(shù)-負(fù)整數(shù)注意::(1))要遵遵循在在基本本操作作符間間操作作數(shù)是是同數(shù)數(shù)據(jù)類類型的的規(guī)則則。(2))要遵遵循操操作數(shù)數(shù)的數(shù)數(shù)據(jù)類類型必必須與與操作作符要要求的的數(shù)據(jù)據(jù)類型型完全全一致致。(3))包含含多種種操作作符的的表達達式中中,需需要用用括號號將這這些運運算分分組。。例如如(aORb)XORc(4))在VHDL中中有并并置運運算操操作符符“&”,,它用用來完完成一一維數(shù)數(shù)組的的位擴擴展。。例如如,將將一維維數(shù)組組s1,s2擴擴展為為二維維數(shù)組組的語語句是是:s<=s1&s2。。3.3VHDL的的順序序語句句VHDL的的基本本描述述語句句包括括順序序語句句(SequentialStatements)和和并行行語句句(ConcurrentStatements)。。順序語語句只只能出出現(xiàn)在在進程程(PROCESS)、、過程程(PROCEDURE)和和函數(shù)數(shù)(FUNCTION)中,,按照照程序序書寫寫的順順序自自上而而下、、一條條一條條地執(zhí)執(zhí)行。。順序序語句句可以以描述述數(shù)字字邏輯輯系統(tǒng)統(tǒng)中的的組合合邏輯輯電路路和時時序邏邏輯電電路。。VHDL的的順序序語句句有賦賦值語語句、、流程程控制制語句句、等等待語語句、、子程程序調(diào)調(diào)用語語句、、返回回語句句和空空操作作語句句等六六類。。3.3.1賦賦值語語句1.變變量賦賦值語語句變量賦賦值語語句的的格式式為::目標(biāo)變變量名名:=賦值值源((表達達式))例如x:=5.0。。2.信信號賦賦值語語句信號賦賦值語語句的的格式式為::目標(biāo)信信號名名<=賦值值源例如y<=‘1’。。信號賦賦值語語句可可以出出現(xiàn)在在進程程或結(jié)結(jié)構(gòu)體體中,,若出出現(xiàn)在在進程程或子子程序序中則則是順順序語語句,,若出出現(xiàn)在在結(jié)構(gòu)構(gòu)體中中則是是并行行語句句。對于數(shù)數(shù)組元元素賦賦值,,可以以采用用下列列格式式:SIGNALa,b:STD_LOGIC_VECTOR(1TO4);a<=“1101””--為為信號號a整整體賦賦值a(1TO2)<=“10””;--為為信號號a中中的部部分位位賦值值a(1TO2)<=b(2TO3);3.3.2流流程控控制語語句流程控控制語語句有有IF語句句、CASE語語句、、LOOP語句句、NEXT語語句和和EXIT語句句五種種。1.IF語語句格式1為:IF條條件件句Then順序語語句;;ENDIF;格式2為:IF條條件件句Then順序語語句;;ELSE順序語語句;;ENDIF;格式3為:IF條件件句Then順序語句;;ELSEIF條件件句Then順序語句;;…ELSE順序語句;;ENDIF;IF語句中中至少應(yīng)有有1個條件件語句,條條件句必須須由BOOLEAN表達式構(gòu)構(gòu)成。IF語句根根據(jù)條件句句產(chǎn)生的判判斷結(jié)果TRUE或或FALSE,有條條件的選擇擇執(zhí)行其后后的順序語語句。例:圖示硬硬件電路的的VHDL語言描述述:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcontrol1ISPORT(a,b,c:INBOOLEAN;y:OUTBOOLEAN);ENDcontrol1;ARCHITECTUREexample5OFcontrol1ISBEGINPROCESS(a,b,c)VARIABLEn:BOOLEAN;BEGINIFaTHENn:=b;ELSEn:=c;ENDIF;y<=n;ENDPROCESS;ENDexample5;Y=a’c+ab輸入輸出a0a1a2a3a4a5a6a7y2y1y0xxxxxxx0xxxxxx01xxxxx011xxxx0111xxx01111xx011111x011111101111111111110101100011010001000例:8線-3線優(yōu)先先編碼器的的設(shè)計。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcoderISPORT(a:INSTD_LOGIC_VECTOR(7DOWNTO0);y:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDcoder;ARCHITECTUREexample6OFcoderISBEGINPROCESS(a)BEGINIF(a(7)=‘0’)THENy<=“111”;ELSEIF(a(7)=‘0’)THENy<=“111”;ELSEIF(a(6)=‘0’)THENy<=“110”;ELSEIF(a(5)=‘0’)THENy<=“101”;ELSEIF(a(4)=‘0’)THENy<=“100”;ELSEIF(a(3)=‘0’)THENy<=“011”;ELSEIF(a(2)=‘0’)THENy<=“010”;ELSEIF(a(1)=‘0’)THENy<=“001”;ELSEIF(a(0)=‘0’)THENy<=“000”;ELSEy<=“000”;ENDIF;ENDPROCESS;ENDexample6;2.CASE語句用CASE語句描述述4選1數(shù)數(shù)據(jù)選擇器器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux41ISPORT(s1,s2:INSTD_LOGIC;a,b,c,d:INSTD_LOGIC;z:OUTSTD_LOGIC);ENDmux41;ARCHITECTUREexample7OFmux41ISSIGNALs:STD_LOGIC_VECTOR(1DOWNTO0);BEGINs<=s1&s2;--將s1和和s2合并并為sPROCESS(s1,s2,a,b,c,d)BEGINCASEsISWHEN””00”=>z<=a;WHEN””01”=>z<=b;WHEN””10”=>z<=c;WHEN””11”=>z<=d;--條件句句中的”=>”不是是操作符,,起到“THEN””的作用。。WHENOTHERS=>z<=‘‘X’;--當(dāng)s的的值不是選選擇值時,,z做未未知處理ENDCASE;ENDPROCESS;ENDexample7;s1s2z00011011abcd3.LOOP語句LOOP是是循環(huán)語句句,可以使使一組順序序語句重復(fù)復(fù)執(zhí)行,執(zhí)執(zhí)行的次數(shù)數(shù)由設(shè)定的的循環(huán)參數(shù)數(shù)確定。LOOP語句有3種格式,,每種格式式都可以用用“標(biāo)號””來給語句句定位,

溫馨提示

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

評論

0/150

提交評論