![vhdl 可移植性設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view/47bec288f70a482de8659108e84fa3fc/47bec288f70a482de8659108e84fa3fc1.gif)
![vhdl 可移植性設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view/47bec288f70a482de8659108e84fa3fc/47bec288f70a482de8659108e84fa3fc2.gif)
![vhdl 可移植性設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view/47bec288f70a482de8659108e84fa3fc/47bec288f70a482de8659108e84fa3fc3.gif)
![vhdl 可移植性設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view/47bec288f70a482de8659108e84fa3fc/47bec288f70a482de8659108e84fa3fc4.gif)
![vhdl 可移植性設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view/47bec288f70a482de8659108e84fa3fc/47bec288f70a482de8659108e84fa3fc5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第六章VHDL設(shè)計(jì)共享1主要內(nèi)容VHDL設(shè)計(jì)庫VHDL程序包VHDL子程序與并行過程調(diào)用26.1 VHDL設(shè)計(jì)庫6.1.1 庫的種類IEEE庫 IEEE標(biāo)準(zhǔn)的程序包主要有STD_LOGIC_1164、NUMERIC_STD和NUMERIC_BIT 3個標(biāo)準(zhǔn)程序包,尤其是STD_LOGIC_1164是最重要的數(shù)字系統(tǒng)標(biāo)準(zhǔn)程序包,大部分基于數(shù)字系統(tǒng)設(shè)計(jì)的程序包都是以此程序包中設(shè)定的標(biāo)準(zhǔn)為基礎(chǔ)的。STD庫 包含了兩個標(biāo)準(zhǔn)程序包STANDARD和TEXTIO程序包。WORK庫 WORK庫只是一個邏輯名,不存在WORK庫的實(shí)名。 WORK庫是用戶的VHDL設(shè)計(jì)的現(xiàn)行工作庫,用于存放用戶設(shè)計(jì)和定義的一些設(shè)
2、計(jì)單元和程序包。VITAL庫 VITAL程序包已經(jīng)成為IEEE標(biāo)準(zhǔn),并且已經(jīng)并到IEEE庫中,庫中包含有VITAL_TIMING和VITAL_PRIMITIVES兩個時序程序包。36.1 VHDL設(shè)計(jì)庫(續(xù))6.1.2 庫的使用方法 庫使用聲明語句由關(guān)鍵詞LIBRARY引導(dǎo),指明所使用的庫名;程序包使用語句由關(guān)鍵詞USE引導(dǎo),指明使用庫中的哪一個程序包。 程序包使用語句USE的使用將其所說明的程序包對本設(shè)計(jì)實(shí)體可以部分開放或者全部開放,相應(yīng)的也有兩種使用格式:USE 庫名.程序包名.項(xiàng)目名;USE 庫名.程序包名.ALL;庫和程序包正確使用的示例:LIBRARY IEEE;USE IEEE.S
3、TD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;46.2 VHDL程序包PACKAGE 程序包名- Type Declaration (optional)- Subtype Declaration (optional)- Constant Declaration (optional)- Signal Declaration (optional)- Component Declaration (optional)- Subprogram Declaration (optional)END 程序包名;PACKAGE BODY 程序包名 IS -
4、Type Declaration (optional)- Subtype Declaration (optional)- Constant Declaration (optional)- Function Declaration (optional)- Procedure Declaration (optional)- Function Body (optional)- Procedure Body (optional)END 程序包名; 程序包的結(jié)構(gòu)中少要包含數(shù)據(jù)類型聲明、子類型聲明、常數(shù)聲明、信號聲明、元件聲明、子程序聲明其中的一種。 程序包結(jié)構(gòu)中,程序包體并非總是必須的,程序包首可以獨(dú)立
5、定義和使用。但是,當(dāng)程序包首中作了子程序(函數(shù)和過程)或部件等聲明后,程序包體是必須的。 程序包的結(jié)構(gòu)由程序包的說明部分,即程序包首,和程序包的具體內(nèi)容,即程序包體,兩部分組成。一個完整的程序包中,程序包首和程序包體是同一個名字。56.2 VHDL程序包(續(xù)1) LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.NUMERIC_STD.ALL;PACKAGE my_pkg IS -程序包首聲明TYPE byte IS INTEGER RANGE 0 TO 255;SUBTYPE helf_byte IS byte RANGE 0 TO 15;C
6、ONSTANT byte_max: byte:= 255;FUNCTION min (left, right: INTEGER) RETURN INTEGER;COMPONENT signed_adder -假定實(shí)體和結(jié)構(gòu)體在WORK庫中GENERIC(data_width : NATURAL := 8);PORT(a : IN SIGNED(data_width-1) DOWNTO 0);b : IN SIGNED(data_width-1) DOWNTO 0);result : OUT SIGNED (data_width-1) DOWNTO 0);END COMPONENT;END my
7、_pkg;PACKAGE BODY my_pkg IS -程序包體聲明FUNCTION min (left, right: INTEGER) RETURN INTEGER ISBEGINIF left right THEN RETURN left;ELSE RETURN right;END IF;END min;END my_pkg;例6.1 程序包定義示例。66.2 VHDL程序包(續(xù)2)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;PACKAGE seg7 ISTYPE bcd IS INTEGER RANGE 0 TO 9;SUBTYPE segmen
8、ts IS STD_LOGIC_VECTOR(0 TO 6);END seg7;USE WORK.seg7.ALL;ENTITY bcd_to_segments ISPORT(input: IN bcd;drive: OUT segments);END bcd_to_segments;例6.2 在設(shè)計(jì)實(shí)體前定義并立即使用的程序包示例。76.2 VHDL程序包(續(xù)3)ARCHITECTURE bev OF bcd_to_segments ISBEGIN WITH input SELECTdrive b THENRETURN a; -使用了返回語句ELSE RETURN b;END IF;END
9、FUNCTION C;END pack_exam;例6.3 程序包中定義函數(shù)的示例。106.3.1 VHDL函數(shù)(續(xù)2)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE WORK.pack_exam.ALL;ENTITY func_exam IS PORT(data1, data2: IN STD_LOGIC_VECTOR(3 DOWNTO 0); data3, data4: IN STD_LOGIC_VECTOR(3 DOWNTO 0); out1, out2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END func_exa
10、m;ARCHITECTURE behavioral OF func_exam ISBEGIN out1 = max( data1, data2 );PROCESS(data3, data4)BEGIN out2 = max( data3, data4 );END PROCESS;END behavioral;例6.4 函數(shù)調(diào)用的應(yīng)用示例。116.3.1 VHDL函數(shù)(續(xù)3)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE WORK.pack_exam.ALL;ENTITY func_exam IS PORT(data1, data2: IN STD_LO
11、GIC_VECTOR(3 DOWNTO 0); data3, data4: IN STD_LOGIC_VECTOR(3 DOWNTO 0); out1, out2: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END func_exam;ARCHITECTURE behavioral OF func_exam ISBEGIN out1 = max( data1, data2 );PROCESS(data3, data4)BEGIN out2 = max( data3, data4 );END PROCESS;END behavioral;例6.4 函數(shù)調(diào)用的應(yīng)用示例。12
12、6.3.2 VHDL重載函數(shù)PACKAGE STD_LOGIC_UNSIGNED ISFUNCTION +(L: STD_LOGIC_VECTOR; R: STD_LOGIC_VECTOR)RETURN STD_LOGIC_VECTOR;PACKAGE BODY STD_LOGIC_UNSIGNED ISFUNCTION +(L: STD_LOGIC_VECTOR; R: STD_LOGIC_VECTOR) RETURN STD_LOGIC_VECTOR IS CONSTANT length: INTEGER := maximum(Llength, Rlength); VARIABLE res
13、ult : STD_LOGIC_VECTOR (LENGTH-1 DOWNTO 0); BEGIN result := UNSIGNED(L) + UNSIGNED(R); RETURN STD_LOGIC_VECTOR(result); END; VHDL中,可以對已經(jīng)使用過的函數(shù)(表現(xiàn)形式當(dāng)然是函數(shù)名),進(jìn)行多次重新定義,這樣的函數(shù)被稱之為重載函數(shù)(Overloaded Function)。例6.5 運(yùn)算符重載示例。136.3.3 VHDL過程 過程與函數(shù)一樣,都是VHDL中的子程序,也分為過程首和過程體,分別放置在程序包首和程序包體中供VHDL程序共享。過程是一種語句結(jié)構(gòu)而函數(shù)是表達(dá)式的
14、一部分;過程可以單獨(dú)存在,而函數(shù)只是作為語句的一部分;過程有輸入?yún)?shù)、輸出參數(shù)和雙向參數(shù),而函數(shù)入口處的所有參數(shù)都是輸入?yún)?shù);過程通過調(diào)用可以從其端口界面獲得多個返回值,而函數(shù)調(diào)用后只能返回一個值。146.3.3 VHDL過程(續(xù)1)1. 過程首 PROCEDURE 過程名 ( 參數(shù)表 );2.過程體PROCEDURE 過程名 ( 參數(shù)表 ) IS說明部分BEGIN順序語句END PROCEDURE 過程名; 進(jìn)程或結(jié)構(gòu)體中不必定義過程首,可直接定義過程體并使用。如: PROCEDURE produ1 ( VARIABLE a, b: INOUT STD_LOGIC );3. 過程的調(diào)用過程名
15、 ( 參數(shù)表 ); 156.3.3 VHDL過程(續(xù)2)例6.6 過程體的聲明示例。PROCEDURE count_zeros (A: IN BIT_VECTOR; SIGNAL Q: OUT INTEGER) ISVARIABLE zeros : INTEGER;BEGINzeros := 0;FOR i IN ARANGE LOOPIF A(i) = 0 THENzeros := zeros +1;END IF;END LOOP;Q = zeros;END count_zeros;166.3.3 VHDL過程(續(xù)3)例6.7 過程定義和調(diào)用的示例。LIBRARY IEEE;USE IEEE
16、.STD_LOGIC_1164.ALL;PACKAGE pkg ISPROCEDURE nand_4 (SIGNAL s1, s2, s3, s4: IN STD_LOGIC;SIGNAL y : OUT STD_LOGIC);END pkg;PACKAGE BODY pkg ISPROCEDURE nand_4 (SIGNAL s1, s2, s3, s4: IN STD_LOGIC;SIGNAL y : OUT STD_LOGIC) ISBEGINy = NOT( s1 AND s2 AND s3 AND s4 );RETURN;END nand_4;END pkg;176.3.3 VHD
17、L過程(續(xù)4)例6.7 過程定義和調(diào)用的示例。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE WORK.pkg.ALL;ENTITY nand_8 ISPORT( a1, a2, a3, a4: IN STD_LOGIC; a5, a6, a7, a8: IN STD_LOGIC; f : OUT STD_LOGIC);END;ARCHITECTURE data_flow OF nand_8 ISSIGNAL middle1, middle2: STD_LOGIC;BEGINnand_4( a1, a2, a3, a4, middle1); -并行過程
18、調(diào)用nand_4( a5, a6, a7, a8, middle2); -并行過程調(diào)用f = middle1 OR middle2;END data_flow;186.3.3 VHDL過程(續(xù)5)例6.7 過程定義和調(diào)用的示例。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE WORK.pkg.ALL;ENTITY nand_8 ISPORT( a1, a2, a3, a4: IN STD_LOGIC; a5, a6, a7, a8: IN STD_LOGIC; f : OUT STD_LOGIC);END;ARCHITECTURE data_flow OF nand_8 ISSIGNAL middle1, middle2: STD_LOGIC;BEGINnand_4( a1, a2, a3, a4, middle1); -并行過程調(diào)用nand_4( a5, a6, a7, a8, middle2); -并行過程調(diào)用f = middle1 OR middle2;END data_flow;196.3.3 VHDL過程重載 與函數(shù)重載一樣,兩個或兩個以上具有相同的過程名但參數(shù)數(shù)量及數(shù)據(jù)類型互不相同的過程稱為重載過程,重載過程也是靠參量類型來辨別究竟調(dià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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國汽車空調(diào)鼓風(fēng)電機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國高速銅纜行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球虛擬首席信息安全官(VCISO)服務(wù)行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國充電保護(hù)裝置行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球矯形外科行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球機(jī)器人滾柱絲杠行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國機(jī)器人地板洗干一體機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國LLDPE纏繞膜行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國AKD中性施膠劑行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球數(shù)字創(chuàng)意展覽服務(wù)行業(yè)調(diào)研及趨勢分析報告
- 電力溝施工組織設(shè)計(jì)-電纜溝
- 《法律援助》課件
- 小兒肺炎治療與護(hù)理
- 《高處作業(yè)安全》課件
- 春節(jié)后收心安全培訓(xùn)
- 小學(xué)教師法制培訓(xùn)課件
- 電梯操作證及電梯維修人員資格(特種作業(yè))考試題及答案
- 市政綠化養(yǎng)護(hù)及市政設(shè)施養(yǎng)護(hù)服務(wù)方案(技術(shù)方案)
- SLT824-2024 水利工程建設(shè)項(xiàng)目文件收集與歸檔規(guī)范
- 鍋爐本體安裝單位工程驗(yàn)收表格
- 報價單(產(chǎn)品報價單)
評論
0/150
提交評論