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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論