




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章硬件(yn jin)描述語(yǔ)言基礎(chǔ)7/20/20221共一百五十四頁(yè)章節(jié)(zhngji)目錄3.1 硬件描述語(yǔ)言概述3.2 VHDL語(yǔ)言(yyn)程序結(jié)構(gòu)3.3 VHDL語(yǔ)法基礎(chǔ)3.4 VHDL常用語(yǔ)句3.5 組合電路的VHDL描述3.6 時(shí)序電路的VHDL描述調(diào)換7/20/20222共一百五十四頁(yè)3.1 硬件(yn jin)描述語(yǔ)言概述可編程邏輯器件(qjin)、電子設(shè)計(jì)自動(dòng)化(EDA)與硬件描述語(yǔ)言可編程邏輯器件是一種功能可變的集成器件可通過(guò)編程的方法設(shè)計(jì)完成不同的邏輯功能設(shè)計(jì)需借助軟件工具,即采用電子設(shè)計(jì)自動(dòng)化的方式設(shè)計(jì)形式有原理圖和硬件描述語(yǔ)言兩種硬件描述語(yǔ)言是用來(lái)描述數(shù)字電路系統(tǒng)
2、的一種語(yǔ)言7/20/20223共一百五十四頁(yè)3.1 硬件(yn jin)描述語(yǔ)言概述目前常用(chn yn)的硬件描述語(yǔ)言有兩種VHDLVerilog HDLVery High Speed Integrated Circuit Hardware Description Language超高速集成電路硬件描述語(yǔ)言Verilog Hardware Description LanguageVerilog硬件描述語(yǔ)言VHDL語(yǔ)言發(fā)展較早,從使用者數(shù)量來(lái)看,目前兩種語(yǔ)言平分秋色,VHDL語(yǔ)言更嚴(yán)謹(jǐn)、更適合設(shè)計(jì)大型數(shù)字系統(tǒng)。兩種語(yǔ)言相似的地方很多,學(xué)會(huì)一種可自學(xué)另一種。7/20/20224共一百五十四頁(yè)3
3、.1 硬件(yn jin)描述語(yǔ)言概述VHDL語(yǔ)言(yyn)的IEEE標(biāo)準(zhǔn) VHDL IEEE 1076-1987 VHDL IEEE 1076-1993 早在1980年,因?yàn)槊绹?guó)軍事工業(yè)需要描述電子系統(tǒng)的方法,美國(guó)國(guó)防部開(kāi)始進(jìn)行VHDL的開(kāi)發(fā) 1987年,由IEEE(Institute of Electrical and Electronics Engineers,電氣和電子工程師協(xié)會(huì) )將VHDL制定為標(biāo)準(zhǔn),稱為IEEE1076-1987 1993年制定了第二個(gè)IEEE標(biāo)準(zhǔn)版本,稱為IEEE1076-1993,增加了一些新的命令和屬性7/20/20225共一百五十四頁(yè)章節(jié)(zhngji)目
4、錄3.1 硬件描述語(yǔ)言概述3.2 VHDL語(yǔ)言程序結(jié)構(gòu)3.3 VHDL語(yǔ)法基礎(chǔ)3.4 VHDL常用語(yǔ)句3.5 組合(zh)電路的VHDL描述3.6 時(shí)序電路的VHDL描述7/20/20226共一百五十四頁(yè)3.2 VHDL語(yǔ)言(yyn)程序結(jié)構(gòu)五個(gè)基本(jbn)組成部分庫(kù)(Library)程序包(Package)實(shí)體說(shuō)明(Entity Declaration)結(jié)構(gòu)體(Architecture)配置(Configuration)主要部分注意:程序擴(kuò)展名為.vhd7/20/20227共一百五十四頁(yè)3.2 VHDL語(yǔ)言(yyn)程序結(jié)構(gòu)【例3-1】2選1數(shù)據(jù)選擇器的VHDL語(yǔ)言(yyn)描述d0d1s
5、elftemp3temp1temp2功能:2選1數(shù)據(jù)選擇器Sel=0時(shí),f=d0;Sel=1時(shí),f=d1;7/20/20228共一百五十四頁(yè)- 2 to 1 mux VHDLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux IS PORT (d0,d1,sel: IN STD_LOGIC; f: OUT STD_LOGIC); END mux;庫(kù)程序包實(shí)體(sht)說(shuō)明VHDL語(yǔ)言(yyn)程序注釋d0d1selfmux3.2 VHDL語(yǔ)言程序結(jié)構(gòu)7/20/20229共一百五十四頁(yè)ARCHITECTURE structure OF mux
6、ISSIGNAL temp: STD_LOGIC; -內(nèi)部(nib)信號(hào)BEGINp0:PROCESS(d0,d1,sel) -進(jìn)程 VARIABLE temp1,temp2,temp3: STD_LOGIC; BEGIN -進(jìn)程內(nèi)的局部變量 temp1:=d0 AND(NOT sel);-變量間的邏輯關(guān)系 temp2:=d1 AND sel; temp3:=temp1 OR temp2; temp=temp3; f=temp;END PROCESS p0; -進(jìn)程結(jié)束END structure; -結(jié)構(gòu)體結(jié)束結(jié)構(gòu)(jigu)體3.2 VHDL語(yǔ)言程序結(jié)構(gòu)7/20/202210共一百五十四頁(yè)E
7、DA工具軟件QuartusII綜合(zngh)出來(lái)的電路3.2 VHDL語(yǔ)言(yyn)程序結(jié)構(gòu)7/20/202211共一百五十四頁(yè)3.2 VHDL語(yǔ)言(yyn)程序結(jié)構(gòu)1行是注釋,用 “-”引頭23行是庫(kù)說(shuō)明部分(b fen),打開(kāi)庫(kù)及庫(kù)中的程序包47行是實(shí)體說(shuō)明部分,描述電路的端口信號(hào)8最后是結(jié)構(gòu)體部分,描述電路的邏輯功能VHDL語(yǔ)言不區(qū)分大小寫,為閱讀方便,關(guān)鍵字用大寫,用戶自定義部分用小寫。說(shuō)明7/20/202212共一百五十四頁(yè)三方面(fngmin)內(nèi)容3.2.1 實(shí)體(sht)說(shuō)明3.2.2 結(jié)構(gòu)體3.2.3 程序包、庫(kù)及配置3.2 VHDL語(yǔ)言程序結(jié)構(gòu)7/20/202213共一百五
8、十四頁(yè)3.2.1 實(shí)體(sht)說(shuō)明【格式(g shi)】ENTITY ISGENERIC (類屬說(shuō)明);PORT (端口說(shuō)明);實(shí)體語(yǔ)句部分;END ENTITY ; 主要部分表示必選項(xiàng), 表示可選項(xiàng)【主要功能】說(shuō)明電路的名字、輸入輸出信號(hào)。7/20/202214共一百五十四頁(yè)3.2.1 實(shí)體(sht)說(shuō)明【例】4位串行進(jìn)位加法器的實(shí)體(sht)說(shuō)明。ENTITY adder_ripple ISGENERIC (m: TIME :=5ns);PORT (a, b: IN STD_LOGIC_VECTOR(3 DOWNTO 0); q: OUT STD_LOGIC_VECTOR(3 DOWNT
9、O 0); cout: OUT STD_LOGIC);END adder_ripple;abqcoutadder_ripple7/20/202215共一百五十四頁(yè)3.2.1 實(shí)體(sht)說(shuō)明實(shí)體名由用戶自定義,必須和主文件名一致必須以ENTITY IS開(kāi)始,以END 結(jié)束(jish)在端口說(shuō)明部分說(shuō)明輸入輸出信號(hào)的情況在類屬說(shuō)明部分說(shuō)明類屬常數(shù)的情況通常電路中的常數(shù)可在設(shè)計(jì)實(shí)體的內(nèi)部進(jìn)行賦值,且一旦賦值就不能再改變。如果電路中某個(gè)常數(shù)值需要在實(shí)體外部進(jìn)行修改,則在實(shí)體說(shuō)明部分的類屬說(shuō)明中加以說(shuō)明,這樣的常數(shù)可稱為類屬常數(shù),以與普通常數(shù)區(qū)別。VHDL語(yǔ)言程序的擴(kuò)展名是vhd,即*.vhd。說(shuō)明
10、:7/20/202216共一百五十四頁(yè)3.2.1 實(shí)體(sht)說(shuō)明1.類屬說(shuō)明(shumng)語(yǔ)句GENERIC (m: TIME :=5ns);【格式】GENERIC (常數(shù)名: 數(shù)據(jù)類型 :=設(shè)定值; 常數(shù)名: 數(shù)據(jù)類型 :=設(shè)定值);【功能】說(shuō)明類屬常數(shù)的名字,數(shù)據(jù)類型,設(shè)定值。【例】7/20/202217共一百五十四頁(yè)3.2.1 實(shí)體(sht)說(shuō)明2.端口說(shuō)明(shumng)語(yǔ)句【格式】PORT (端口名,端口名: 模式 數(shù)據(jù)類型; 端口名,端口名: 模式 數(shù)據(jù)類型);PORT (a,b: IN STD_LOGIC_VECTOR(3 DOWNTO 0); q: OUT STD_LOG
11、IC_VECTOR(3 DOWNTO 0); cout: OUT STD_LOGIC);【功能】 說(shuō)明輸入輸出信號(hào)的名字,輸入輸出模式,數(shù)據(jù)類型?!纠?/20/202218共一百五十四頁(yè)3.2.1 實(shí)體(sht)說(shuō)明端口名是輸入輸出信號(hào)的名字。模式是指輸入輸出信號(hào)的方向(fngxing)。數(shù)據(jù)類型是指輸入輸出信號(hào)的取值類型。表3-1端口方向說(shuō)明方向定義含義IN輸入OUT輸出INOUT雙向BUFFER輸出(可反饋使用)LINKAGE不指定方向BITBIT_VECTORSTD_LOGICINTEGERBOOLEANSTD_LOGIC_VECTOR常用數(shù)據(jù)類型數(shù)據(jù)類型在3.3節(jié)詳細(xì)介紹說(shuō)明:7/2
12、0/202219共一百五十四頁(yè)3.2.2 結(jié)構(gòu)(jigu)體【格式(g shi)】ARCHITECTURE OF IS 定義語(yǔ)句;BEGIN END ;【功能】描述電路的具體結(jié)構(gòu)、功能。主要部分7/20/202220共一百五十四頁(yè)3.2.2 結(jié)構(gòu)(jigu)體ARCHITECTURE是關(guān)鍵字。結(jié)構(gòu)體名可隨意起,實(shí)體名必須和實(shí)體說(shuō)明中的實(shí)體名一致。定義語(yǔ)句是指對(duì)內(nèi)部信號(hào)、變量等的說(shuō)明。并行處理語(yǔ)句部分是結(jié)構(gòu)體的主要部分,描述(mio sh)電路的結(jié)構(gòu)、功能等。BEGIN后開(kāi)始結(jié)構(gòu)和功能的描述。說(shuō)明:7/20/202221共一百五十四頁(yè)3.2.2 結(jié)構(gòu)(jigu)體【例3-2】一個(gè)RS觸發(fā)器的結(jié)構(gòu)
13、(jigu)體(數(shù)據(jù)流描述方式)resetsetqqb該電路中并行語(yǔ)句部分使用的是并行信號(hào)賦值語(yǔ)句,描述了兩個(gè)與非門的連接關(guān)系。7/20/202222共一百五十四頁(yè)3.2.2 結(jié)構(gòu)(jigu)體【例3-3】一個(gè)RS觸發(fā)器的結(jié)構(gòu)體(結(jié)構(gòu)描述(mio sh)方式)本例是RS觸發(fā)器的另一種描述方式,并行處理語(yǔ)句采用的是元件例化語(yǔ)句,后面3.4.1介紹。7/20/202223共一百五十四頁(yè)3.2.2 結(jié)構(gòu)(jigu)體【例3-4】一個(gè)全加器的VHDL程序(chngx)(數(shù)據(jù)流描述方式)本例結(jié)構(gòu)體中的并行處理部分采用的也是并發(fā)信號(hào)賦值語(yǔ)句。描述了兩個(gè)異或門和一個(gè)與或門。本例中的類屬說(shuō)明語(yǔ)句說(shuō)明了一個(gè)時(shí)間
14、常數(shù)tpd是5ns,后面的賦值語(yǔ)句使用了該延時(shí)參數(shù)。7/20/202224共一百五十四頁(yè)3.2.2 結(jié)構(gòu)(jigu)體結(jié)構(gòu)體中常用(chn yn)以下3種子結(jié)構(gòu)描述方式進(jìn)程語(yǔ)句結(jié)構(gòu)塊語(yǔ)句結(jié)構(gòu)子程序語(yǔ)句結(jié)構(gòu)主要講解7/20/202225共一百五十四頁(yè)3.2.3 包集合(jh)、庫(kù)及配置1. 包集合(jh)(Package)包集合中存放供多個(gè)實(shí)體公用的數(shù)據(jù)類型、常量、子程序。包集合又存放在庫(kù)中。一般情況下,要使用某個(gè)包集合中的資源時(shí),必須對(duì)該包集合進(jìn)行使用說(shuō)明。一般情況下,要使用某個(gè)庫(kù)中的包集合時(shí),也必須對(duì)該庫(kù)進(jìn)行說(shuō)明。【格式】LIBRARY ;USE ;LIBRARY IEEE;USE IEEE
15、.STD_LOGIC_1164.ALL;【例】7/20/202226共一百五十四頁(yè)3.2.3 包集合(jh)、庫(kù)及配置VHDL提供(tgng)的標(biāo)準(zhǔn)包集合:STANDARDSTD_LOGIC_1164STANDARD包中定義了若干數(shù)據(jù)類型、子類型、函數(shù);該包已預(yù)先在STD庫(kù)中編譯好,并且自動(dòng)與所有模型連接,使用時(shí)無(wú)須說(shuō)明;STD_LOGIC_1164包中也定義了若干數(shù)據(jù)類型和函數(shù); 該包已預(yù)先在IEEE庫(kù)中編譯好,但是在使用時(shí)須加以使用說(shuō)明;LIBRARYIEEE;USE IEEE.STD_LOGIC_1164.ALL;在STD 庫(kù)中在IEEE庫(kù)中用時(shí)不須說(shuō)明用時(shí)須說(shuō)明7/20/202227共
16、一百五十四頁(yè)3.2.3 包集合(jh)、庫(kù)及配置常用的數(shù)據(jù)類型(整數(shù)、實(shí)數(shù)、BIT、BIT_VECTOR、布爾量、字符、字符串、物理(wl)型、錯(cuò)誤等級(jí)、自然數(shù)和正整數(shù))均在STANDARD程序包中常用的數(shù)據(jù)類型(STD_LOGIC、STD_LOGIC_VECTOR)在STD_LOGIC_1164程序包中7/20/202228共一百五十四頁(yè)3.2.3 包集合(jh)、庫(kù)及配置【包集合結(jié)構(gòu)(jigu)格式】PACKAGE IS說(shuō)明語(yǔ)句;END 包集合名;PACKAGE BODY IS說(shuō)明語(yǔ)句;END 包集合名;包首包體用戶可自定義包集合。7/20/202229共一百五十四頁(yè)3.2.3 包集合(j
17、h)、庫(kù)及配置【例3-10】自定義包集合(jh)的例子。-包集合說(shuō)明(包首)PACKAGE example ISTYPE alu_op IS (add,sub,mul,div,eq,gt,lt);CONSTANT pi: REAL :=3.1415926; delay1:TIME;COMPONENT nand2PORT (a,b: IN BIT; c:OUT BIT);END COMPONENT;FUNCTION mean(a,b,c:REAL) RETURN REAL;END example;說(shuō)明了一個(gè)枚舉類型的數(shù)據(jù)alu_op兩個(gè)常數(shù)pi、delay1一個(gè)元件nand2一個(gè)函數(shù)mean7/
18、20/202230共一百五十四頁(yè)3.2.3 包集合(jh)、庫(kù)及配置-包集合體PACKAGE BODY example ISCONSTANT delay1:TIME=15ns; FUNCTION mean(a,b,c:REAL) RETURN REAL;BEGINRETURN(a+b+c)/3.0;END mean; END example; 包集合體中具體說(shuō)明了時(shí)間常數(shù)(sh jin chn sh)delay1的值、函數(shù)mean的功能7/20/202231共一百五十四頁(yè)3.2.3 包集合(jh)、庫(kù)及配置USE WORK. example. ALL;自定義的包集合存放在WORK庫(kù)中。自定義的
19、包集合在使用時(shí)也必須進(jìn)行(jnxng)使用說(shuō)明?!纠縒ORK庫(kù)不需要說(shuō)明。7/20/202232共一百五十四頁(yè)3.2.3 包集合(jh)、庫(kù)及配置2. 庫(kù)(Library)【格式(g shi)】庫(kù)中存放已編譯過(guò)的設(shè)計(jì)單元(如實(shí)體、程序包等);庫(kù)中內(nèi)容可以用作其它VHDL描述的資源。使用庫(kù)時(shí)需要說(shuō)明。LIBRARY ;5種庫(kù)IEEESTDASICWORK用戶定義庫(kù)LIBRARYIEEE;【例】7/20/202233共一百五十四頁(yè)3.2.3 包集合(jh)、庫(kù)及配置IEEESTD_LOGIC_1164NUMERIC_BITNUMERIC_STDSTD_LOGIC_ARITHSTD_LOGIC_S
20、IGNEDSTD_LOGIC_UNSIGNEDSTDSTANDARDTEXTIOVATIL(面向(min xin)ASIC的庫(kù))VATIL_TIMINGVATIL_PRIMITIVEWORK(現(xiàn)行工作庫(kù))用戶定義庫(kù)無(wú)須說(shuō)明不但要說(shuō)明庫(kù),還要說(shuō)明庫(kù)中的程序包。例:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;最常用例:LIBRARY STD;USE STD._STANDAR.ALL;7/20/202234共一百五十四頁(yè)3.2.3 包集合(jh)、庫(kù)及配置3. 配置(pizh)語(yǔ)句(Configration)【格式】CONFIGURATION OF 實(shí)體名 IS
21、說(shuō)明語(yǔ)句;END 配置名;配置語(yǔ)句描述層與層之間的連接關(guān)系,以及實(shí)體與結(jié)構(gòu)體之間的連接關(guān)系;可利用配置語(yǔ)句來(lái)選擇不同的結(jié)構(gòu)體,使其與要設(shè)計(jì)的實(shí)體相對(duì)應(yīng)?!纠緾ONFIGURATION confr OF rsff ISFOR rs_behav;END FOR;END confr ;7/20/202235共一百五十四頁(yè)章節(jié)(zhngji)目錄3.1 硬件描述語(yǔ)言概述3.2 VHDL語(yǔ)言程序結(jié)構(gòu)3.3 VHDL語(yǔ)法基礎(chǔ)3.4 VHDL常用語(yǔ)句3.5 組合(zh)電路的VHDL描述3.6 時(shí)序電路的VHDL描述7/20/202236共一百五十四頁(yè)3.3 VHDL語(yǔ)法(yf)基礎(chǔ)3.3.1 標(biāo)識(shí)符和保
22、留字3.2.2 數(shù)據(jù)對(duì)象(duxing)3.2.3 數(shù)據(jù)類型3.3.4 數(shù)據(jù)類型的轉(zhuǎn)換3.3.5 運(yùn)算操作符五方面內(nèi)容7/20/202237共一百五十四頁(yè)3.3.1 標(biāo)識(shí)符和保留字規(guī)則:由字母數(shù)字下劃線組成(z chn)必須以英文字母開(kāi)頭最后一個(gè)字符不能是下劃線不允許出現(xiàn)連續(xù)兩個(gè)下劃線保留字不能作一般的標(biāo)識(shí)符不區(qū)別大小寫1. 標(biāo)識(shí)符即由用戶起的實(shí)體名、結(jié)構(gòu)(jigu)體名、信號(hào)名、變量名.7/20/202238共一百五十四頁(yè)3.3.1 標(biāo)識(shí)符和保留字2. 保留字表3-3 常用(chn yn)保留字見(jiàn)P.109保留字即VHDL語(yǔ)言(yyn)中已使用的關(guān)鍵字。保留字不能用作標(biāo)識(shí)符。7/20/202
23、239共一百五十四頁(yè)3.3.2 數(shù)據(jù)(shj)對(duì)象對(duì)象有四種(s zhn)類型:常數(shù)信號(hào)變量文件最常用7/20/202240共一百五十四頁(yè)3.3.2 數(shù)據(jù)(shj)對(duì)象1. 常數(shù)(chngsh)CONSTANT 常數(shù)名 : 數(shù)據(jù)類型 := 表達(dá)式 ;【常數(shù)聲明格式】使用前必須聲明CONSTANT toler : DISTANCE := 1.5 nm;CONSTANT pi : REAL := 3.141592 ;CONSTANT cycle_time : TIME := 100 ns;CONSTANT Propagation_Delay : DELAY_LENGTH;【例】常數(shù)值7/20/20
24、2241共一百五十四頁(yè)3.3.2 數(shù)據(jù)(shj)對(duì)象2. 變量(binling)variable 變量名 : 數(shù)據(jù)類型 約束條件 := 表達(dá)式 ;【變量聲明格式】使用前必須聲明【例】VARIABLE result:STD_LOGIC :=0;VARIABLE x, y, z:INTEGER;VARIABLE count:INTEGER RANGE 0 TO 255 :=10;初始值聲明時(shí)可付初始值約束條件7/20/202242共一百五十四頁(yè)3.3.2 數(shù)據(jù)(shj)對(duì)象【變量(binling)賦值格式】變量名 :=表達(dá)式;【例】result := 1;x :=y+3;注意賦值符號(hào) :=表達(dá)式的
25、數(shù)據(jù)類型和變量的類型必須一致。表達(dá)式可以是運(yùn)算表達(dá)式也可以是具體數(shù)值。7/20/202243共一百五十四頁(yè)3.3.2 數(shù)據(jù)(shj)對(duì)象3. 信號(hào)(xnho)SIGNAL 信號(hào)名 : 數(shù)據(jù)類型 約束條件 := 表達(dá)式 ;【信號(hào)聲明格式】使用前必須聲明【例】SIGNAL first_sig: INTEGER;SIGNAL sys_clk:BIT :=0;SIGNAL second_fig, third_sig:INTEGER :=10; SIGNAL s:INTEGER RANGE 0 TO 20 :=15; 初值聲明時(shí)可付初始值約束條件7/20/202244共一百五十四頁(yè)3.3.2 數(shù)據(jù)(sh
26、j)對(duì)象【信號(hào)(xnho)賦值格式】信號(hào)名 =表達(dá)式;【例】a = b AFTER 10ns;a = expression_b;a = expression_b AFTER 10ns;注意信號(hào)說(shuō)明中的賦初值符號(hào)是 :=,而信號(hào)賦值語(yǔ)句中的賦值符號(hào)為=。表達(dá)式的數(shù)據(jù)類型和信號(hào)的類型必須一致。表達(dá)式可以是運(yùn)算表達(dá)式也可以是具體數(shù)值。信號(hào)賦值可以添加延時(shí)信息。7/20/202245共一百五十四頁(yè)3.3.2 數(shù)據(jù)(shj)對(duì)象變量是局部的,信號(hào)是全局的;變量只能用在進(jìn)程內(nèi),信號(hào)沒(méi)有此限制。若變量用于進(jìn)程之外,必須將該變量先賦給一個(gè)相同類型的信號(hào),用信號(hào)在進(jìn)程之間傳遞數(shù)據(jù)。信號(hào)可以(ky)延遲,變量不能
27、。變量不能用于硬件連線,常用在高層次建模的計(jì)算中。進(jìn)程對(duì)信號(hào)敏感而對(duì)變量不敏感。賦值符號(hào)不一樣;信號(hào)和變量的區(qū)別7/20/202246共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型Scalar types 標(biāo)量(bioling)型Composite 復(fù)合型 Access 存取型 File 文件型 Protected 保護(hù)型5種類型(lixng)每一種中又有若干子類型和具體數(shù)據(jù)類型。7/20/202247共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型已經(jīng)在標(biāo)準(zhǔn)(biozhn)數(shù)據(jù)包STANDARD和STD_LOGIC_1164中定義好的常用的數(shù)據(jù)類型如下:整數(shù)(zhngsh)、實(shí)數(shù)、BIT、BIT_VECTOR、布爾量
28、、 字符、字符串、物理型、錯(cuò)誤等級(jí)、自然數(shù)和正整數(shù)(zhngsh)本節(jié)介紹以上數(shù)據(jù)類型的特點(diǎn)。STD_LOGIC、 STD_LOGIC_VECTORSTANDARDSTD_LOGIC_11647/20/202248共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型整數(shù)(INTEGER)(屬于(shy):標(biāo)量型整數(shù)型,在STANDARD程序包中 )整數(shù)的表示(biosh)范圍為- (231-1) (231-1)?!纠縑ARIABLE a:INTEGER :=15; SIGNAL s:INTEGER RANGE 0 TO 20 :=15; INTEGER型數(shù)據(jù)值不用引號(hào)括起來(lái)7/20/202249共一百五十四頁(yè)
29、3.3.3 數(shù)據(jù)類型2. 實(shí)數(shù)(shsh)(REAL)(屬于:標(biāo)量型浮點(diǎn)型, 在STANDARD程序包中 )實(shí)數(shù)的表示(biosh)范圍為- 1.0E38 +1.0E38。實(shí)數(shù)的書寫方式舉例:1.0666.66636.5e-4某些數(shù)即可以用整數(shù)表示,也可以用實(shí)數(shù)表示,如1.0是實(shí)數(shù),1是整數(shù),兩者數(shù)值相同但類型不同。REAL型數(shù)據(jù)值不用引號(hào)括起來(lái)7/20/202250共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型3. BIT(屬于:標(biāo)量(bioling)型枚舉型)和 BIT_VECTOR(屬于(shy):復(fù)合型數(shù)組型)在STANDARD程序包中BIT又稱位型,其值僅有2個(gè),0 和1;BIT_VECTOR又
30、稱位矢量,是BIT的數(shù)組。例:BIT型數(shù)值要用單引號(hào)括起來(lái), BIT_VECTOR型數(shù)值要用雙引號(hào)括起來(lái)。SIGNAL a : BIT;SIGNAL low_byte : BIT_VECTOR (0 to 7) ; a = 1; Low_byte = “00000101”;7/20/202251共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型4. 布爾型(BOOLEAN)(屬于:標(biāo)量(bioling)型枚舉型,在STANDARD程序包中)BOOLEAN的值僅有2個(gè),TRUE 和FALSE。7/20/202252共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型5. STD_LOGIC和 STD_LOGIC_VECTOR在S
31、TD_LOGIC_1164程序包中STD_LOGIC又稱標(biāo)準(zhǔn)邏輯變量,其值有9個(gè),U,X,0,1,Z,W,L,H,-。常用(chn yn)的是0,1,Z。STD_LOGIC_VECTOR稱標(biāo)準(zhǔn)邏輯向量,是STD_LOGIC的數(shù)組。STD_LOGIC型數(shù)值(shz)要用單引號(hào)括起來(lái), STD_LOGIC_VECTOR型數(shù)值要用雙引號(hào)括起來(lái)。例:SIGNAL a : STD_LOGIC;a = 1; 7/20/202253共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型6. 字符(CHARACTER)(屬于:標(biāo)量(bioling)型枚舉型)和 字符串(STRING)(屬于(shy):復(fù)合型數(shù)組型)在STANDA
32、RD程序包中CHARACTER型數(shù)值要用單引號(hào)括起來(lái)。STRING型數(shù)值要用雙引號(hào)括起來(lái)。例:A,a,1,2 。“ABC”,“HELLO”。7/20/202254共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型7. 時(shí)間型(TIME)(屬于:標(biāo)量(bioling)型物理型,在STANDARD程序包中 )7/20/202255共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型8. 錯(cuò)誤(cuw)等級(jí)(SEVERITY_LEVEL)(屬于:標(biāo)量型枚舉型,在STANDARD程序包中 )SEVERITY_LEVEL的值有4個(gè),NOTE, WARNING, ERROR, FAILURE。注意(zh y),警告,錯(cuò)誤,失敗。7/20/
33、202256共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型9. 自然數(shù)(NATURAL)(標(biāo)量(bioling)型整數(shù)型整數(shù))和 正整數(shù)(POSITIVE)(標(biāo)量(bioling)型整數(shù)型整數(shù))在STANDARD程序包中NATURAL 和POSITIVE是INTEGER 的子類型。7/20/202257共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型以上是已經(jīng)在標(biāo)準(zhǔn)(biozhn)數(shù)據(jù)包STANDARD和Std_logic_1164中定義好的常用的數(shù)據(jù)類型。除此之外,還可以(ky)由用戶自定義數(shù)據(jù)類型。可以由用戶自定義的數(shù)據(jù)類型:枚舉類型 整數(shù)類型 數(shù)組類型 記錄類型 存取類型 文件類型 時(shí)間類型 實(shí)數(shù)類型SUBTYP
34、E 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 ;TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義;【格式】7/20/202258共一百五十四頁(yè)3.3.3 數(shù)據(jù)類型TYPE alu_op IS (add,sub,mul,div,eq,gt,lt);type BIT is (0, 1);type BIT_VECTOR is array (NATURAL range ) of BIT;subtype POSITIVE is INTEGER range 1 to INTEGERHIGH;定義一個(gè)數(shù)據(jù)類型alu_op,是枚舉型,取值為add,sub,mul,div,eq,gt,lt中的一個(gè)聲明(shn
35、gmng)變量a是alu_op型的。Variable a : alu_op例下例為標(biāo)準(zhǔn)(biozhn)程序包中的某些數(shù)據(jù)類型定義7/20/202259共一百五十四頁(yè)3.3.4 數(shù)據(jù)類型的轉(zhuǎn)換(zhunhun)自學(xué)(zxu)7/20/202260共一百五十四頁(yè)3.3.5 運(yùn)算(yn sun)操作符5類運(yùn)算(yn sun)操作符邏輯運(yùn)算關(guān)系運(yùn)算算術(shù)運(yùn)算并置運(yùn)算移位運(yùn)算7/20/202261共一百五十四頁(yè)3.3.5 運(yùn)算(yn sun)操作符可以對(duì) BIT, BOOLEAN,STD_LOGIC,STD_LOGIC_VECTOR等類型數(shù)據(jù)(shj)進(jìn)行邏輯運(yùn)算。1. 邏輯運(yùn)算符andornandnor
36、xorxnornot與或與非或非異或同或非7/20/202262共一百五十四頁(yè)3.3.5 運(yùn)算(yn sun)操作符2. 算術(shù)(sunsh)運(yùn)算符+*/modremabs*加減正號(hào)負(fù)號(hào)乘除取模取余取絕對(duì)值平方7/20/202263共一百五十四頁(yè)3.3.5 運(yùn)算(yn sun)操作符3. 關(guān)系(gun x)運(yùn)算符=/=等于不等于小于小于等于大于大于等于7/20/202264共一百五十四頁(yè)3.3.5 運(yùn)算(yn sun)操作符4. 并置運(yùn)算符& 并置sel=b & a;例:若b=1,a=0,則sel=“10”Y =H & e & l & l & oY =“Hello”7/20/202265共一百五
37、十四頁(yè)3.3.5 運(yùn)算(yn sun)操作符5. 移位(y wi)運(yùn)算符sllsrlslasrarolror邏輯左移邏輯右移算術(shù)左移算術(shù)右移循環(huán)左移循環(huán)右移7/20/202266共一百五十四頁(yè)3.3.5 運(yùn)算(yn sun)操作符運(yùn)算符的優(yōu)先級(jí)見(jiàn)P.1157/20/202267共一百五十四頁(yè)章節(jié)(zhngji)目錄3.1 硬件描述語(yǔ)言概述(i sh)3.2 VHDL語(yǔ)言程序結(jié)構(gòu)3.3 VHDL語(yǔ)法基礎(chǔ)3.4 VHDL常用語(yǔ)句3.5 組合電路的VHDL描述3.6 時(shí)序電路的VHDL描述7/20/202268共一百五十四頁(yè)3.4 VHDL常用(chn yn)語(yǔ)句仿真(fn zhn)時(shí):兩大類:并行
38、語(yǔ)句順序語(yǔ)句并行語(yǔ)句同時(shí)并行執(zhí)行,順序語(yǔ)句按先后次序執(zhí)行。7/20/202269共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句ARCHITECTURE OF IS 定義語(yǔ)句;BEGIN END ;并行語(yǔ)句用在結(jié)構(gòu)體的并行處理語(yǔ)句部分7/20/202270共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句進(jìn)程語(yǔ)句并行(bngxng)信號(hào)賦值語(yǔ)句元件例化語(yǔ)句塊語(yǔ)句過(guò)程調(diào)用語(yǔ)句參數(shù)傳遞語(yǔ)句生成語(yǔ)句并行斷言語(yǔ)句常用7/20/202271共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句1. 進(jìn)程(jnchng)語(yǔ)句【格式】進(jìn)程標(biāo)號(hào): PROCESS 敏感信號(hào)表 IS進(jìn)程語(yǔ)句說(shuō)明部分;BEGINEN
39、D PROCESS 進(jìn)程標(biāo)號(hào);進(jìn)程語(yǔ)句是最主要的并行語(yǔ)句,它在VDHL程序設(shè)計(jì)中使用頻率最高,也是最能體現(xiàn)硬件描述語(yǔ)言的一條語(yǔ)句。7/20/202272共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句【例3-7】帶異步復(fù)位(f wi)功能的D觸發(fā)器的VHDL描述。7/20/202273共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句當(dāng)敏感(mngn)信號(hào)發(fā)生變化時(shí),執(zhí)行進(jìn)程。當(dāng)執(zhí)行完最后一個(gè)語(yǔ)句時(shí),回到第一個(gè)語(yǔ)句,等待下一次敏感信號(hào)變化。一個(gè)結(jié)構(gòu)體中可以有多個(gè)進(jìn)程,進(jìn)程之間是并行的。進(jìn)程內(nèi)部各條語(yǔ)句是順序執(zhí)行的。進(jìn)程語(yǔ)句說(shuō)明部分可以說(shuō)明需要的局部變量?!菊f(shuō)明】7/20/202274共一百五
40、十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句2. 并行信號(hào)(xnho)賦值語(yǔ)句并發(fā)信號(hào)賦值語(yǔ)句條件信號(hào)賦值語(yǔ)句選擇信號(hào)賦值語(yǔ)句并發(fā)信號(hào)賦值語(yǔ)句例:q1=a+b;q2=a*b;當(dāng)a或b有變化時(shí),兩條語(yǔ)句同時(shí)執(zhí)行。模擬了兩個(gè)加法器和乘法器電路。+*abq1q2注意前提是信號(hào)賦值語(yǔ)句放在進(jìn)程外;若放在進(jìn)程中,則變成了順序執(zhí)行的語(yǔ)句。當(dāng)信號(hào)賦值語(yǔ)句放在進(jìn)程外時(shí),就是并發(fā)信號(hào)賦值語(yǔ)句。7/20/202275共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句條件信號(hào)(xnho)賦值語(yǔ)句【格式】目標(biāo)信號(hào)=表達(dá)式1 WHEN 條件1 ELSE 表達(dá)式2 WHEN 條件2 ELSE 表達(dá)式3 WHEN 條件3 E
41、LSE 表達(dá)式n-1 WHEN 條件n-1 ELSE 表達(dá)式n;當(dāng)條件1滿足時(shí),目標(biāo)信號(hào)=表達(dá)式1當(dāng)條件2滿足時(shí),目標(biāo)信號(hào)=表達(dá)式2【功能】條件判斷是并行的,不是先判斷條件1滿足否,再判斷條件2滿足否,而是同時(shí)判斷7/20/202276共一百五十四頁(yè)3.3.1 并行(bngxng)語(yǔ)句【例3-11】用條件信號(hào)(xnho)賦值語(yǔ)句設(shè)計(jì)4選1數(shù)據(jù)選擇器。語(yǔ)句之間是并行的7/20/202277共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句選擇信號(hào)(xnho)賦值語(yǔ)句【格式】WITH 選擇條件表達(dá)式 SELECT目標(biāo)信號(hào)=表達(dá)式1 WHEN 選擇條件1 表達(dá)式2 WHEN 選擇條件2 表達(dá)式3 W
42、HEN 選擇條件3 表達(dá)式n WHEN 選擇條件n; 表達(dá)式n+1 WHEN OTHERS;當(dāng)選擇條件表達(dá)式值=條件1時(shí),目標(biāo)信號(hào)=表達(dá)式1當(dāng)選擇條件表達(dá)式值=條件2時(shí),目標(biāo)信號(hào)=表達(dá)式2【功能】7/20/202278共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句【例3-12】用選擇信號(hào)賦值語(yǔ)句(yj)設(shè)計(jì)4選1數(shù)據(jù)選擇器。語(yǔ)句之間是并行的該例既使用了條件信號(hào)賦值語(yǔ)句也使用了選擇信號(hào)賦值語(yǔ)句7/20/202279共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句3. 元件(yunjin)例化語(yǔ)句元件例化語(yǔ)句是最能體現(xiàn)層次化設(shè)計(jì)思想的語(yǔ)句。例如設(shè)計(jì)由D觸發(fā)器構(gòu)成的移位寄存器,可以將設(shè)計(jì)分成2
43、層,底層描述D觸發(fā)器,頂層調(diào)用底層描述的D觸發(fā)器。在頂層中調(diào)用底層設(shè)計(jì)時(shí),就要用到元件例化語(yǔ)句。層次化設(shè)計(jì)簡(jiǎn)單說(shuō)即將整個(gè)系統(tǒng)分成不同的層次,頂層設(shè)計(jì)可以調(diào)用底層設(shè)計(jì)。7/20/202280共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句【格式(g shi)】COMPONENT GENERIC 類屬說(shuō)明; PORT ;END COMPONENT; GENERIC MAP(參數(shù)映射) PORT MAP (端口映射);定義元件:底層設(shè)計(jì)定義成一個(gè)元件元件例化:調(diào)用定義好的元件,并說(shuō)明該元件與其他信號(hào)的連接關(guān)系。7/20/202281共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句【例3-14】用
44、元件例化語(yǔ)句描述由D觸發(fā)器構(gòu)成(guchng)的移位寄存器。dff是另一個(gè)程序?qū)?yīng)的電路,這里將其定義成一個(gè)元件,并用其構(gòu)成一個(gè)移位寄存器。dffdqclk語(yǔ)句之間是并行的7/20/202282共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句dffs0s1clkdff1dffs1s2clkdff2dffs2s3clkdff3dffs3s4clkdff4dff as1dffs2dffs3dffbclks0s47/20/202283共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句元件名必須與底層文件的實(shí)體名一致。端口映射部分要指明元件內(nèi)部信號(hào)與外部信號(hào)的連接關(guān)系,其順序必須與端口說(shuō)明部分的順序
45、一致。一個(gè)元件定義部分可以(ky)對(duì)應(yīng)多個(gè)元件例化部分,相當(dāng)于調(diào)用了多個(gè)元件而已。元件標(biāo)號(hào)名可以幫助標(biāo)示不同的元件?!菊f(shuō)明】7/20/202284共一百五十四頁(yè)3.4.1 并行(bngxng)語(yǔ)句ARCHITECTURE COMPONENT END COMPONENT;BEGIN PROCESS END PROCESS dff1: dff PORT MAP(S(0),clk,S(1); q1=a+b; q2=a*b; q=d0 WHEN sel=00 ELSE d1 WHEN sel=01 ELSE Z;WITH sel SELECTq=d0 WHEN 0, d1 WHEN 1, Z WHEN
46、 OTHERS;END ;各部分之間是并行的7/20/202285共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句順序語(yǔ)句是相對(duì)于并行語(yǔ)句而言的。順序語(yǔ)句的特點(diǎn)是:每一條(y tio)順序語(yǔ)句的執(zhí)行順序是與它們的書寫順序相一致的。順序語(yǔ)句只能出現(xiàn)在進(jìn)程和子程序中。進(jìn)程標(biāo)號(hào): PROCESS 敏感信號(hào)表 IS進(jìn)程語(yǔ)句說(shuō)明部分;BEGINEND PROCESS 進(jìn)程標(biāo)號(hào);7/20/202286共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句順序(shnx)賦值語(yǔ)句WAIT語(yǔ)句IF語(yǔ)句CASE語(yǔ)句LOOP語(yǔ)句EXIT語(yǔ)句RETURN語(yǔ)句NULL語(yǔ)句REPORT語(yǔ)句斷言語(yǔ)句常用7/20/202287共一百
47、五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句1.順序(shnx)賦值語(yǔ)句變量賦值語(yǔ)句信號(hào)賦值語(yǔ)句變量賦值語(yǔ)句【格式】目標(biāo)變量 := 表達(dá)式;注意賦值符號(hào) :=表達(dá)式的數(shù)據(jù)類型和變量的類型必須一致。表達(dá)式可以是運(yùn)算表達(dá)式也可以是具體數(shù)值。變量賦值限定在進(jìn)程、函數(shù)、過(guò)程等順序區(qū)域內(nèi)。變量賦值無(wú)時(shí)間特性。變量值具有局部性。只在進(jìn)程內(nèi)有效。count :=count+1;【例】7/20/202288共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句 信號(hào)(xnho)賦值語(yǔ)句【格式】目標(biāo)信號(hào) = 表達(dá)式;信號(hào)賦值語(yǔ)句中的賦值符號(hào)為=。表達(dá)式的數(shù)據(jù)類型和信號(hào)的類型必須一致。表達(dá)式可以是運(yùn)算表達(dá)式也可以是具體數(shù)值。
48、信號(hào)賦值可以添加延時(shí)信息。用在進(jìn)程中才是順序語(yǔ)句S=a XOR b XOR c;【例】當(dāng)信號(hào)賦值語(yǔ)句放在進(jìn)程內(nèi)時(shí),就是順序語(yǔ)句。放在進(jìn)程外時(shí)就是并行語(yǔ)句。7/20/202289共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句2.WAIT語(yǔ)句(yj)【格式】WAIT-無(wú)限等待WAIT ON-敏感信號(hào)變化WAIT UNTIL-條件滿足WAIT FOR-時(shí)間到7/20/202290共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句3.IF語(yǔ)句(yj)IF語(yǔ)句是一種條件控制語(yǔ)句,是常用語(yǔ)句之一。IF語(yǔ)句只能用在進(jìn)程中。三種形式IF THEN 語(yǔ)句IF THEN ELSE語(yǔ)句IF THEN ELSIFELSE
49、語(yǔ)句網(wǎng)上有一句話:IF、CASE打天下7/20/202291共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句【格式(g shi)】IF THEN;END IF; IF THEN 語(yǔ)句當(dāng)條件滿足時(shí),執(zhí)行THEN后的語(yǔ)句,否則,不執(zhí)行【功能】條件滿足?順序處理語(yǔ)句YN7/20/202292共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句順序處理(chl)語(yǔ)句dClkq當(dāng)條件滿足時(shí),d的值賦給q,否則,q值不變【例3-17】用IF THEN語(yǔ)句描述D觸發(fā)器功能。7/20/202293共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句【格式(g shi)】IF THEN;ELSE;END IF;兩分支 IF
50、THEN ELSE語(yǔ)句當(dāng)條件滿足時(shí),執(zhí)行THEN后的語(yǔ)句,否則,執(zhí)行ELSE后的語(yǔ)句。【功能】條件滿足?順序處理語(yǔ)句2順序處理語(yǔ)句1YN7/20/202294共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句【例】用IF THEN ELSE語(yǔ)句(yj)描述二選一數(shù)據(jù)選擇器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux IS PORT (d0,d1,sel: IN STD_LOGIC; f: OUT STD_LOGIC); END mux;7/20/202295共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句ARCHITECTURE beha O
51、F mux ISBEGINPROCESS(d0,d1,sel) BEGIN IF (sel=0) THEN f=d0; ELSE f=d1; END IF;END PROCESS; END beha; Sel=0時(shí),f=d0;Sel=1時(shí),f=d1;7/20/202296共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句【格式(g shi)】IF THEN;ELSIF THEN;ELSE;END IF;多分支 IF THEN ELSIFELSE語(yǔ)句當(dāng)條件1滿足時(shí),執(zhí)行THEN后的順序語(yǔ)句1,否則,當(dāng)條件2滿足時(shí),執(zhí)行THEN后的順序語(yǔ)句2,否則執(zhí)行ELSE后的順序語(yǔ)句3【功能】7/20/20229
52、7共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句條件(tiojin)1優(yōu)先級(jí)高條件2優(yōu)先級(jí)低還可以再分支條件1滿足?順序處理語(yǔ)句2順序處理語(yǔ)句1YN條件2滿足?順序處理語(yǔ)句3YN7/20/202298共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句【例】數(shù)據(jù)(shj)選擇器的VHDL程序。(P137)注意: 條件要完整,最后必須加ELSE f 順序處理語(yǔ)句1;WHEN 表達(dá)式的取值2 = 順序處理語(yǔ)句2;.WHEN OTHERS = 順序處理語(yǔ)句n;ENDCASE;CASE語(yǔ)句也是常用語(yǔ)句之一,具有條件控制功能。也只能用在進(jìn)程中。7/20/2022100共一百五十四頁(yè)3.4.2 順序(shnx)
53、語(yǔ)句順序處理語(yǔ)句1滿足條件1順序處理語(yǔ)句2滿足條件2順序處理語(yǔ)句4都不滿足滿足條件3順序處理語(yǔ)句3順序處理語(yǔ)句1滿足條件1幾個(gè)(j )條件是同等級(jí)的7/20/2022101共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句【例3-19】用CASE語(yǔ)句(yj)實(shí)現(xiàn)3-8線譯碼器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_3to8 IS PORT (a,b,c,g1,g2,g3: IN STD_LOGIC; y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END decoder_3to8;ARCHITECT
54、URE beha OF decoder_3to8 ISSIGNAL indata: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINIndata y y y y y y y y y=“XXXXXXXX”; END CASE; END IF;END PROCESS; END beha; 7/20/2022103共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句CASE語(yǔ)句的各條件表達(dá)式是同時(shí)執(zhí)行的。條件表達(dá)式的所有情況(qngkung)都要列舉到??捎肳HEN OTHERS 描述。【說(shuō)明】7/20/2022104共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句5.LOOP語(yǔ)句(yj
55、)【格式】FOR 循環(huán)變量 IN 取值范圍 LOOP;ENDLOOP;LOOP是循環(huán)語(yǔ)句,有兩種FORLOOPWHILELOOPFORLOOP若循環(huán)變量在取值范圍內(nèi)則執(zhí)行循環(huán),否則結(jié)束循環(huán)?!竟δ堋?/20/2022105共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句【例3-20 】用FORLOOP語(yǔ)句描述(mio sh)的偶校驗(yàn)發(fā)生器。設(shè)a=11001110,則tmp=1,奇數(shù)個(gè)1;設(shè)a=11001100,則tmp=0,偶數(shù)個(gè)1。7/20/2022106共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句【格式(g shi)】WHILE 條件 LOOP;ENDLOOP;若條件為真則執(zhí)行循環(huán),若為假
56、則結(jié)束循環(huán)。WHILELOOP【功能】7/20/2022107共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句【例3-21】用WHILELOOP語(yǔ)句描述(mio sh)的偶校驗(yàn)發(fā)生器。功能和例3-20相同7/20/2022108共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句歸納一下前面介紹的IF語(yǔ)句、CASE語(yǔ)句、LOOP語(yǔ)句,有一個(gè)共同的特點(diǎn),即不是對(duì)電路(dinl)的具體結(jié)構(gòu)進(jìn)行描述,而是對(duì)電路(dinl)的功能和行為進(jìn)行了描述,采用的是類似C語(yǔ)言的高級(jí)描述語(yǔ)言,我們把這種描述方式稱為行為描述方式。VHDL語(yǔ)言的三種描述方式數(shù)據(jù)流描述方式結(jié)構(gòu)描述方式行為描述方式后面介紹7/20/202210
57、9共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句VHDL語(yǔ)言的三種描述(mio sh)方式數(shù)據(jù)流描述方式(RTL級(jí)描述方式)結(jié)構(gòu)描述方式行為描述方式主要采用邏輯關(guān)系式的描述方式,說(shuō)明了數(shù)據(jù)的流向主要采用元件例化語(yǔ)句,說(shuō)明元件之間的連接關(guān)系主要采用IF、CASE、WAIT、LOOP等高級(jí)語(yǔ)言,說(shuō)明電路的功能和行為7/20/2022110共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句數(shù)據(jù)流描述(mio sh)方式的2選1數(shù)據(jù)選擇器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux IS PORT (d0,d1,sel: IN STD_LOGIC;
58、 f: OUT STD_LOGIC); END mux;ARCHITECTURE mux_1 OF mux ISBEGINp0:PROCESS(d0,d1,sel) VARIABLE temp1,temp2: STD_LOGIC; BEGIN temp1:=d0 AND(NOT sel); temp2:=d1 AND sel; f=temp1 OR temp2;END PROCESS p0; END mux_1; 主要采用邏輯關(guān)系式的描述方式,說(shuō)明了數(shù)據(jù)的流向7/20/2022111共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句結(jié)構(gòu)(jigu)描述方式的2選1數(shù)據(jù)選擇器LIBRARY IEEE
59、;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux IS PORT (d0,d1,sel: IN STD_LOGIC; f: OUT STD_LOGIC); END mux;ARCHITECTURE mux_2 OF mux ISSIGNAL y1,y2,y3 :STD_LOGICCOMPONENT NOT1 PORT(a:IN STD_LOGIC, y:OUT STD_LOGIC);END COMPONENT;7/20/2022112共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句主要采用元件例化語(yǔ)句,說(shuō)明元件之間的連接(linji)關(guān)系COMPONENT AND2
60、 PORT(a,b:IN STD_LOGIC, y:OUT STD_LOGIC);END COMPONENT;COMPONENT OR2PORT(a,b:IN STD_LOGIC, y:OUT STD_LOGIC);END COMPONENT;BEGINU1: NOT1 PORT MAP (sel,y1)U2: AND2 PORT MAP (d0,y1,y2)U3: AND2 PORT MAP (d1,sel,y3)U4: OR2 PORT MAP (y2,y3,y)END mux_2; 7/20/2022113共一百五十四頁(yè)3.4.2 順序(shnx)語(yǔ)句LIBRARY IEEE;USE I
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通行業(yè)發(fā)展與策略
- 谷雨季綠色營(yíng)銷
- 國(guó)際企業(yè)外貿(mào)合同范例
- 商業(yè)用電改為居民用電申請(qǐng)書范文大全
- 入盟申請(qǐng)書及個(gè)人簡(jiǎn)歷
- 營(yíng)養(yǎng)配餐練習(xí)測(cè)試卷
- 打造綠色旅游
- 號(hào)碼過(guò)戶合同范本
- 土地撂荒復(fù)耕合同范本
- 廠房照明出租合同范本
- 2024年世界職業(yè)院校技能大賽高職組“市政管線(道)數(shù)字化施工組”賽項(xiàng)考試題庫(kù)
- 2024年職工普法教育宣講培訓(xùn)課件
- 自編冷庫(kù)庫(kù)容制冷量設(shè)備對(duì)照表
- “全員安全風(fēng)險(xiǎn)辨識(shí)”活動(dòng)實(shí)施方案
- 追覓科技在線測(cè)評(píng)邏輯題
- 凝中國(guó)心鑄中華魂鑄牢中華民族共同體意識(shí)-小學(xué)民族團(tuán)結(jié)愛(ài)國(guó)主題班會(huì)課件
- 第一編第3章 古希臘教育的興衰
- 女性更年期科普-健康科普課件
- 全過(guò)程工程咨詢管理服務(wù)方案投標(biāo)方案(技術(shù)方案)
- 2024年中考物理實(shí)驗(yàn)(全國(guó)版):探究光的反射定律(解析版)
- 四川省遂寧市2023-2024學(xué)年高二下學(xué)期期末考試地理試題
評(píng)論
0/150
提交評(píng)論