2 選1 多路選擇器.doc_第1頁
2 選1 多路選擇器.doc_第2頁
2 選1 多路選擇器.doc_第3頁
2 選1 多路選擇器.doc_第4頁
2 選1 多路選擇器.doc_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2 選1 多路選擇器LIBRARY IEEE;-IEEE 庫使用說明 USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS-器件mux21 的外部接口信號說明-PORT相當于器件的引腳,這一部分稱為實體 PORT ( a b : IN STD_LOGIC;s : IN STD_LOGIC;y : OUT STD_LOGIC );END ENTITY mux21;-器件mux21 的內(nèi)部工作邏輯描述即-為實體描述的器件功能結構稱為結構體ARCHITECTURE one OF mux21 IS BEGINy = a WHEN s = 0 ELSE b WHEN s = 1 ;END ARCHITECTURE one;1位鎖存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;-鎖存器的實體 定義了此器件的 -輸入輸出引腳及其信號屬性ENTITY Latch ISPORT(D : IN STD_LOGIC; ENA : IN STD_LOGIC;Q : OUT STD_LOGIC); END ENTITY Latch-結構體 ARCHITECTURE one OF Latch IS-定義信號 SIGNAL sig_save : STD_LOGIC;-進程語句結構描述邏輯的時序方式 BEGIN PROCESS (D, ENA)BEGIN IF ENA = 1 THEN sig_save = D ;END IF ;Q = sig_save ;END PROCESS ;END ARCHITECTURE one;1位全加器-或門邏輯描述LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2 ISPORT (a,b :IN STD_LOGIC; c : OUT STD_LOGIC );END ENTITY or2ARCHITECTURE fu1 OF or2 ISBEGINc = a OR b;END ARCHITECTURE fu1;-半加器描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder ISPORT (a b : IN STD_LOGIC; co, so : OUT STD_LOGIC);END ENTITY h_adderARCHITECTURE fh1 OF h_adder ISBEGINso = (a OR b)AND(a NAND b);co ain b =bin co=d so =e); u2 : h_adder PORT MAP( a =e b =cin co =f so =sum); u3 : or2 PORT MAP(a =d b =f c =cout);END ARCHITECTURE fd1 ;1. 實體語句結構以下是實體說明單元的常用語句結構ENTITY 實體名 ISGENERIC ( 類屬表) PORT ( 端口表 ) END ENTITY 實體名實體說明單元必須按照這一結構來編寫實體應以語句ENTITY 實體名 IS 開始以語句END ENTITY 實體名結束 其中的實體名可以由設計者自己添加。COMPONENT h_adder - 元件調(diào)用說明PORT ( a b : IN STD_LOGIC ;co so : OUT STD_LOGIC );END COMPONENT;。GENERIC 類屬說明語句GENERIC( 常數(shù)名數(shù)據(jù)類型 : 設定值 常數(shù)名 數(shù)據(jù)類型 : 設定值 )類屬參量以關鍵詞GENERIC 引導一個類屬參量表,在表中提供時間參數(shù)或總線寬度等靜態(tài)信息。將類屬說明放在其中且放在端口說明,語句的前面在一個實體中定義的來自外部賦入。ENTITY mcu1 ISGENERIC (addrwidth : INTEGER := 16);PORT(add_bus : OUT STD_LOGIC_VECTOR(addrwidth-1 DOWNTO 0) );.ENTITY PGAND2 ISGENERIC ( trise : TIME := 1 ns;tfall : TIME := 1 ns ) ;PORT ( a1 : IN STD_LOGIC ;a0 : IN STD_LOGIC ;z0 : OUT STD_LOGIC );END ENTITY PGAND2;PORT 端口說明PORT ( 端口名 : 端口模式數(shù)據(jù)類型 端口名 : 端口模式數(shù)據(jù)類型 ) ;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY nand2 ISPORT(a : IN STD_LOGIC ;b : IN STD_LOGIC ;c : OUT STD_LOGIC ) ;END nand2 ;結構體結構體的語句格式如下ARCHITECTURE 結構體名 OF 實體名 IS說明語句BEGIN功能描述語句END ARCHITECTURE 結構體名;結構體中的說明語句,是對結構體的功能描述語句中將要用到的信號(SIGNAL) 數(shù)據(jù)類型(TYPE) 常數(shù)(CONSTANT) 元件(COMPONENT) 函數(shù)(FUNCTION) 和過程(PROCEDURE)等加以說明。需要注意的是在一個結構體中,說明和定義的數(shù)據(jù)類型常數(shù)元件函數(shù)和過程只能用于這個結構體中。功能描述語句結構h塊語句是由一系列并行執(zhí)行語句構成的組合體,它的功能是將結構體中的并行語句組成一個或多個子模塊h進程語句定義順序語句模塊 用以將從外部獲得的信號值或內(nèi)部的運算數(shù)據(jù)向其它的信號進行賦值h信號賦值語句將設計實體內(nèi)的處理結果向定義的信號或界面端口進行賦值h子程序調(diào)用語句用以調(diào)用過程或函數(shù) 并將獲得的結果賦值于信號h元件例化語句對其它的設計實體作元件調(diào)用說明 并將此元件的端與其它的元件信號或高層次實體的界面端口進行連接塊語句結構BLOCKBLOCK 語句的表達格式如下塊標號BLOCK 塊保護表達式接口說明類屬說明BEGIN并行語句END BLOCK 塊標號接口說明部分有點類似于實體的定義部分,它可包含由關鍵詞PORT GENERIC PORTMAP 和GENERIC MAP 引導的接口說明等語句。對BLOCK 的接口設置以及與外界信號的連接狀況加以說明,這類似于原理圖間的圖示接口說明,塊的類屬說明部分和接口說明部分的適用范圍僅限于當前BLOCK ,所以所有這些在BLOCK 內(nèi)部的說明對于這個塊的外部來說是完全不透明的,即不能適用于外部環(huán)境或由外部環(huán)境所調(diào)用,但對于嵌套于更內(nèi)層的塊卻是透明的即可將信息向內(nèi)部傳遞塊的說明部分可以定義的項目主要有h 定義 USE 語句h 定義子程序h 定義數(shù)據(jù)類型h 定義子類型h 定義常數(shù)h 定義信號h 定義元件程序 3-13a1 : out1 = 1 after 3 ns ;blk1 : BLOCKBEGINA2 : out2 = 1 AFTER 3 ns ;A3 : out3 = 0 AFTER 2 ns ;END BLOCK blk1 ;程序 3-14a1 : out1 = 1 AFTER 3 ns ;a2 : out2 = 1 AFTER 3 ns ;a3 : out3 = 0 AFTER 2 ns ;進程PROCESSPROCESS 語句的表達格式如下進程標號 PROCESS ( 敏感信號參數(shù)表 ) IS進程說明部分BEGIN順序描述語句END PROCESS 進程標號2. PROCESS 組成如上所述PROCESS 語句結構是由三個部分組成的即進程說明部分順序描述語句部分和敏感信號參數(shù)表(1) 進程說明部分主要定義一些局部量 可包括數(shù)據(jù)類型常數(shù)變量屬性子程序等但需注意在進程說明部分中不允許定義信號和共享變量(2) 順序描述語句部分可分為賦值語句 進程啟動語句子程序調(diào)用語句順序描述語句和進程跳出語句等它們包括h 信號賦值語句 即在進程中將計算或處理的結果向信號SIGNAL 賦值h 變量賦值語句 即在進程中以變量VARIABLE 的形式存儲計算的中間值h 進程啟動語句 當PROCESS 的敏感信號參數(shù)表中沒有列出任何敏感量時進程的啟動只能通過進程啟動語句WAIT 語句這時可以利用WAIT 語句監(jiān)視信號的變化情況以便決定是否啟動進程WAIT 語句可以看成是一種隱式的敏感信號表h 子程序調(diào)用語句 對已定義的過程和函數(shù)進行調(diào)用并參與計算h 順序描述語句 包括IF 語句CASE 語句LOOP 語句NULL 語句等h 進程跳出語句 包括NEXT 語句EXIT 語句用于控制進程的運行方向(3) 敏感信號參數(shù)表需列出用于啟動本進程可讀入的信號名當有WAIT 語句時例外但VHLD 程序特別是進程結構設計者應當從三個方面去判斷它的功能和執(zhí)行情況1 基于CPU 的純軟件的行為仿真運行方式2 基于VHDL 綜合器的綜合結果所可能實現(xiàn)的運行方式3 基于最終實現(xiàn)的硬件電路的運行方式(1) 在同一結構體中的任一進程是一個獨立的無限循環(huán)程序結構 但進程中卻不必放置諸如軟件語言中的返回語句它的返回是自動的進程只有兩種運行狀態(tài)即執(zhí)行狀態(tài)和等待狀態(tài)(2) 必須注意 PROCESS 中的順序語句的執(zhí)行方式與通常的軟件語言中的語句的順序執(zhí)行方式有很大的不同軟(3) 雖然同一結構體中的不同進程是并行運行的但同一進程中的邏輯描述語句則是順序運行的因而在進程中只能設置順序語句(4) 進程的激活必須由敏感信號表中定義的任一敏感信號的變化來啟動否則必須有一個顯式的WAIT 語句來激勵(5) 結構體中多個進程之所以能并行同步運行 一個很重要的原因是進程之間的通信是通過傳遞信號和共享變量值來實現(xiàn)的所(6) 進程是 VHDL 重要的建模工具(7) 進程有組合進程和時序進程兩種類型 組合進程只產(chǎn)生組合電路時序進程產(chǎn)生時序和相配合的組合電路這兩種類型的進程設計必須密切注意VHDL 語句應用的特殊方面這在多進程的狀態(tài)機的設計中各進程有明確分工子程序(SUBPROGRAM)VHDL 子程序具有可重載性的特點即允許有許多重名的子程序但這些子程序的參數(shù)類型及返回值數(shù)據(jù)類型是不同的子程序的可重載性是一個非常有用的特性3.5.1 函數(shù)FUNCTION函數(shù)的語言表達格式如下FUNCTION 函數(shù)名參數(shù)表RETURN 數(shù)據(jù)類型-函數(shù)首FUNCTION 函數(shù)名參數(shù)表RETURN 數(shù)據(jù)類型 IS - 函數(shù)體 說明部分 BEGIN順序語句END FUNCTION 函數(shù)名1. 函數(shù)首函數(shù)首是由函數(shù)名參數(shù)表和返回值的數(shù)據(jù)類型三部分組成的2 函數(shù)體函數(shù)體包含一個對數(shù)據(jù)類型常數(shù)變量等的局部說明以及用以完成規(guī)定算法或轉(zhuǎn)換的順序語句部分一旦函數(shù)被調(diào)用就將執(zhí)行這部分語句在函數(shù)體結尾需以關鍵詞END FUNCTION 以及函數(shù)名結尾重載函數(shù) OVERLOADED FUNCTIONVHDL 允許以相同的函數(shù)名定義函數(shù)但要求函數(shù)中定義的操作數(shù)具有不同的數(shù)據(jù)類型以便調(diào)用時用以分辨不同功能的同名函數(shù)即同樣名稱的函數(shù)可以用不同的數(shù)據(jù)類型作為此函數(shù)的參數(shù)定義多次以此定義的函數(shù)稱為重載函數(shù)過程 PROCEDUREVHDL 中子程序的另外一種形式是過程PROCEDURE 過程的語句格式是PROCEDURE 過程名參數(shù)表- 過程首PROCEDURE 過程名 參數(shù)表IS說明部分BIGIN - 過程體順序語句END PROCEDURE 過程名與函數(shù)一樣過程也由兩部分組成即由過程首和過程體構成過程首也不是必需的過程體可以獨立存在和使用即在進程或結構體中不必定義過程首而在程序包中必須定義過程首過程首由過程名和參數(shù)表組成參數(shù)表可以對常數(shù)變量和信號三類數(shù)據(jù)對象目標作出說明并用關鍵詞IN OUT 和INOUT 定義這些參數(shù)的工作模式即信息的流向如重載過程OVERLOADED PROCEDURE庫LIBRARY庫LIBRARY 的語句格式如下LIBRARY 庫名IEEE 庫是VHDL 設計中最為常見的庫它包含有IEEE 標準的程序包和其它一些支持工業(yè)標準的程序STD_LOGIC_1164NUMERIC_BIT 和NUMERIC_STD 等程序STD 庫VHDL 語言標準定義了兩個標準程序包即STANDARD 和TEXTIO 程序包文件輸入/輸出程序包它們都被收入在STD 庫中只要在VHDL 應用環(huán)境中即可隨時調(diào)用這兩個程序包中的所有內(nèi)容即在編譯和綜合過程中VHDL 的每一項設計都自動地將其包含進去了由于STD 庫符合VHDL 語言標準在應用中不必如IEEE 庫那樣以顯式表達出來如在程序中以下的庫使用語句是不必要的WORK 庫WORK 庫是用戶的VHDL 設計的現(xiàn)行工作庫用于存放用戶設計和定義的一些設計單元和程序包因而是用戶的臨時倉庫用戶設計項目的成品半成品模塊以及先期已設計好的元件都放在其中VITAL 庫使用VITAL 庫可以提高VHDL 門級時序模擬的精度因而只在VHDL 仿真器中使用USE 語句的使用將使所說明的程序包對本設計實體部分或全部開放即是可視的USE語句的使用有兩種常用格式USE 庫名.程序包名.項目名USE 庫名.程序包名.ALL程序包PACKAGE程序包的內(nèi)容主要由如下四種基本結構組成因此一個程序包中至少應包含以下結構中的一種h 常數(shù)說明 在程序包中的常數(shù)說明結構主要用于預定義系統(tǒng)的寬度如數(shù)據(jù)總線通道的寬度h VHDL 數(shù)據(jù)類型說明主要用于在整個設

溫馨提示

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

評論

0/150

提交評論