



版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、3DOP-DecoderVHDL語言的基本知識點羅列1 VHDL語言的標識符VHDL 中的標識符可以是常數(shù)、變量、信號、端口、子程序或參數(shù)的名字。使用標識符要遵守如下法則:a ) 標識符由字母(AZ; a 、z數(shù))字和下劃線字符組成。任何標識符必須以英文字母開頭。末字符不能為下劃線。b ) 不允許出現(xiàn)兩個連續(xù)下劃線。標識符中不區(qū)分大小寫字母。VHDL定義的保留子或稱關鍵字,不能用作標識符。c )VHDL中的注釋由兩個連續(xù)的短線(- )開始,直到行尾。以下是非法標識符:起始不能為非英文字母起始不能為數(shù)字Large#number“ #”不能成為標識符的構成符號Data_bus不能有雙下劃線Copp
2、er_最后字符不能為下劃線On關鍵字不能用作標識符。注:在 AHDL語言中標識符要區(qū)分大小寫,但在VHDL語言中不區(qū)分大小寫。所以寫程序時,一定要養(yǎng)成良好的書寫習慣,應用關鍵字時用大寫,自己定義的標識符用小寫。標識符表示的幾種數(shù)據(jù)對象的詳細說明如下:1)常數(shù)( Constant)常數(shù)是一個固定的值,主要是為了使設計實體中的常數(shù)更容易閱讀和修改。常數(shù)一被賦值就不能在改變。一般格式: CONSTANT 常數(shù)名:數(shù)據(jù)類型: =表達式;例: CONSTANT Vcc: REAL: =5.0;-WORD格式 - 可編輯 -設計實體的電源電壓指定常數(shù)所賦得值應與定義的數(shù)據(jù)類型一致。常量的使用范圍取決于它被
3、定義的位置。程序包中定義的常量具有最大的全局化特性,可以用在調用此程序包的所有設計實體中;設計實體中某一結構體中定義的常量只能用于此結構體;結構體中某一單元定義的常量,如一個進程中,這個常量只能用在這一進程中。2) 變量( Variable )變量是一個局部變量,它只能在進程語句、函數(shù)語句和進程語句結構中使用。用作局部數(shù)據(jù)存儲。在仿真過程中。它不像信號那樣,到了規(guī)定的仿真時間才進行賦值,變量的賦值是立即生效的。變量常用在實現(xiàn)某種算法的賦值語句中。一般格式:VARIABLE變量名數(shù)據(jù)類型約束條件: = 表達式;例: VARIABLE x,y:INTEGER;定義 x,y 為整數(shù)變量VARIABL
4、E count: INTEGER RANGE0 TO255:=10;定義計數(shù)變量范圍變量的適用范圍僅限于定義了變量的進程或子程序中。若將變量用于進程之外,必須該值賦給一個相同的類型的信號,即進程之間傳遞數(shù)據(jù)靠的信號。變量賦值語句的語法格式如下:目標變量: = 表達式;變量賦值符號是“: =”。賦值語句右方的表達式必須是一個與目標變量有相同數(shù)據(jù)類型的數(shù)值。變量不能用于硬件連線和存儲元件。3) 信號( Signal )信號是描述硬件系統(tǒng)的基本數(shù)據(jù)對象,它類似于連接線,它除了沒有數(shù)據(jù)流動方向說明以外,其它性質與實體的端口(Port )概念一致。變量的值可以傳遞給信號,而信號的值-WORD格式 - 可
5、編輯 -不能傳遞給變量。 信號通常在構造體、 包集合和實體中說明。信號說明格式為:SIGNAL信號名:數(shù)據(jù)類型;信號初始值的設置不是必需的, 而且初始值僅在 VHDL 的行為仿真中有效。1變量變量只能在進程、函數(shù)和過程中使用,一旦賦值立即生效。例: VARIABLE x, y: INTEGER;VARIABLE count: INTEGER RANGE 0 TO 255:=10;2信號信號除了沒有方向的概念以外幾乎和端口概念一致。例: SIGNAL sys_clk: BIT:= 0;SIGNAL ground: BIT:= 0在程序中,信號值輸入信號時采用代入符” 而<=不”是,賦值符“
6、: =”,同時信號可以附加延時。信號傳送語句:s1<=s2 AFTER 10ns信號是一個全局量,可以用來進行進程之間的通信3信號與變量的區(qū)別:信號賦值可以有延遲時間,變量賦值無時間延遲;信號除當前值外還有許多相關值,如歷史信息等,變量只有當前值;進程對信號敏感,對變量不敏感;信號可以是多個進程的全局信號,但變量只在定義它之后的順序域可見;信號可以看作硬件的一根連線,但變量無此對應關系。2 VHDL語言的數(shù)據(jù)類型VHDL語言提供了許多標準的數(shù)據(jù)類型,用戶也可自定義數(shù)-WORD格式 - 可編輯 -據(jù)類型,這樣使 VHDL 語言的描述能力和自由度進一步提高。但 VHDL 語言的數(shù)據(jù)類型的定義
7、相當嚴格, 不同類型之間的數(shù)據(jù)不能直接代入。而且相同數(shù)據(jù)類型,但位長不同的也不能直接代入,否則 EDA 工具在編譯綜合時會報告類型錯。因此,為了熟練地使用 VHDL 語言編寫程序,必須很好的理解各種數(shù)據(jù)意義。2.1.VHDL 標準的數(shù)據(jù)類型1)整數(shù)( Integer)整數(shù)類型的數(shù)代表正整數(shù)、負整數(shù)和零,表示的范圍-(231-1 )( 231-1),它與算術整數(shù)相似,可進行“+”,“- ”,“ * ”,“/ ”等算術運算,不能用于邏輯運算。2) 實數(shù)( Real )實數(shù)類型也類似于數(shù)學上的實數(shù),或稱浮點數(shù),表示范圍為-1.0E38 1.0E38.3)位( Bit )在數(shù)字系統(tǒng)中信號通常采用一個位
8、來表示,取值值能是1 獲0。4) 位矢量( Bit_Vector )位矢量是用雙引號括起來的一組位數(shù)據(jù),使用位矢量必須注明位寬。例如: SIGNAL:()信號被定義為一個具有位位寬的矢量,最左位為(),最右位為() 。5) 布爾量( Boolean )一個布爾量具有兩個狀態(tài):“真”或“假”。布爾量不屬于數(shù)值,因此不能用于運算,它只能通過關系運算符獲得。一般這一類型的數(shù)據(jù)初始值總為 FALSE.6) 字符( Character )字符也是一種數(shù)據(jù)類型,字符類型通常用單引號引起來,如-WORD格式 - 可編輯 - A。字符類型區(qū)分大小寫,如B不同于b。7) 字符串( String )字符串是由雙引
9、號括起來的一個字符序列,也稱字符矢量或字符串數(shù)組。 常用于程序的提示和說明, 如“ STRING ”等。8) 時間( Time )時間是一個物理數(shù)據(jù)。完整的時間類型包括整數(shù)和單位兩部分;整數(shù)與單位之間至少留一個空格,如55 ms ,2 ns 。在包集合 STANDARD中給除了時間的預定義,其單位為fs ,ps , ns , us , ms , sec ,min , hr 。在系統(tǒng)仿真時,時間數(shù)據(jù)很有用,可用它表示信號延時,從而使模型系統(tǒng)能更逼近實際系統(tǒng)的運行環(huán)境。9) 錯誤等級( Severity Level )在 VHDL 仿真器中,錯誤等級用來指示設計系統(tǒng)的工作狀態(tài),它有四種: NOTE
10、(注意)、WARNING (警告)、 ERROR(出錯)、 FAILURE (失?。?。在仿真過程中,可輸出這四種狀態(tài)以提示系統(tǒng)當前的工作狀態(tài)。10) 自然數(shù)( Natural )和正整數(shù)( Positive )自然數(shù)是整數(shù)的一個子類型, 非負的整數(shù), 即為零和正整數(shù)。而 Positive 只能為正整數(shù)。2.2.IEEE預定義標準邏輯位與矢量在 IEEE 庫的程序包 STD_LOGIC1164中,定義了兩個重要的數(shù)據(jù)類型, 即標準邏輯位 STD_LOGIC 和標準邏輯矢量 STD_LOGIC_VECTOR ,使得 STD_LOGIC 數(shù)據(jù)可以具有如下的 9 種不同的值:“ U”初始值 “ 0”0
11、“ Z”高阻“ L”弱信號 0-WORD格式 - 可編輯 -“ X ”不定 “ 1”1“ W”弱信號不定 “ H”弱信號 1“ _”不可能情況注意在使用該類型數(shù)據(jù)時,在程序中必須寫出庫說明語句和使用包集合的說明語句。3 VHDL語言的運算操作符在 VHDL語言中共用4 類操作符,可以分別進行邏輯運算(Logic )、關系運算( Relational )、算術運算( Arithmetic)和并置運算( Concatenation)。被操作符所操作的對象是操作數(shù),且操作數(shù)的類型應該和操作符所要求的類型相一致。需要注意的是,各家EDA綜合軟件對運算操作符支持程序各不相同,使用時應參考綜合工具說明。1
12、)邏輯運算符運算符在 VHDL語言中邏輯運算符有6 種,他們分別為:NOT( 非)OR (或)AND (與)NOR (或非)NAND (與非)XOR (異或)2) 關系運算符關系運算符它們分別是:-WORD格式 - 可編輯 -=(等于)/= (不等于)<(小于)<= (小于等于)>(大于)>= (大于等于)3) 算術運算符+(加 )/ (除)SLL (邏輯左移)ROR (邏輯循環(huán)右移)- (減)MOD (求模)SRL (邏輯右移)ABS (取絕對值)*(乘)REM (取余)SLA (算術左移)4) 其他運算符<= (信號賦值):= (信號賦值)- (負)+ (正)
13、&(并置運算符,用于位的連接)=> (并聯(lián)運算符,在元件例化時可用于形參倒實參的映射)-WORD格式 - 可編輯 -4 VHDL語言的結構VHDL語言主要組成構件有設計實體(Entity)、結構體( Architecture )、子程序( Function Procedure )、集合包( Package )和庫( Library ),前四種稱為可編譯的設計單元。 一個 VHDL 設計就是有這四種構件的組成, 編譯之后將它們放在制定的庫中共享。其中,實體用于描述設計的接口界面信號,它規(guī)定端口數(shù)目,端口方向和端口類型。它與硬件電路設計中的符號相對應。 而結構體指定設計的真實行為,
14、性能和結構,與硬件電路設計中的原理圖相對應。子程序是可被調用的執(zhí)行某一特定功能算法的集合。集合包則是為了使常用的數(shù)據(jù)類型、常數(shù)和子程序對于其他設計塊可用而集中充放的一批設計單元和約定。4.1設計實體實體的定義語法為:ENTITY實體名IS端口說明 ;END實體名;端口說明書寫格式如下:PORT (端口名 ,端口名 :方向數(shù)據(jù)類型名;端口名 ,端口名 :方向數(shù)據(jù)類型名);例如,一個二選一路數(shù)據(jù)選擇器的設計實體可描述如下:ENTITY selection ISPORT ( a, b, sel: IN BIT;C: OUT BIT );-WORD格式 - 可編輯 -END selection;4.2
15、構造體用于描述系統(tǒng)內(nèi)部的結構和行為。構造體部分定義了設計單元的具體功能(行為) 。1. 構造體句法如下:ARCHITECTURE構造體名OF實體名IS定義語句 內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;BEGIN并行處理語句 ;END構造體名;例如: ARCHITECTURE dataflow OFselectionISBEGINq<=(a AND set) OR (NOT sel AND d1);END dataflow;構造體的子結構描述在規(guī)模較大的電路設計中,全部電路都用唯一的一個模塊來描述是非常不方便的。為此,電路設計者總希望將整個電路分成若干個相對比較大的模塊來進行電路的描述。這
16、樣,一個構造體可以用幾個子結構,既相對比較獨立的幾個模塊來構成。 VHDL 語言可以有以下三種形式的子結構描述語句:1)子程序:VHDL提供兩種子程序:函數(shù)(FUNCTION)和過程(PROCEDURE)函數(shù)函數(shù)的定義形式如下:FUNCTION<函數(shù)名稱 >< 接口表 >RETURN<數(shù)據(jù)類型 >IS定義語句 ;BEGIN-WORD格式 - 可編輯 -<函數(shù)語句部分 >;END函數(shù)名稱;. 下 面 是 一 個 比 較 器 的 例 子 : FUNCTIONmax(a,b:INTEGER) RETURN INTEGER ISBEGINIF (a>
17、;=b)THEN RETURN a;ELSE RETURN b;END IF;END max;一個函數(shù)定義好后,可以在其它地方調用。過程過程的定義形式如下:PROCEDURE< 過程名稱 >< 接口表 > IS BEGIN<過程語句部分 >;END過程名稱;.下面是一個比較器的例子:FUNCTION max(a, b, c: INTEGER) ISBEGINIF (a>=b)THEN c<= a;ELSE c<=b;END IF;END max;2) BLOCK 語句采用 BLOCK語句描述局部電路的書寫格式如下:塊結構名:BLOCKBEG
18、IN-WORD格式 - 可編輯 -END BLOCK塊結構名;3) 進程語句( PROCESS )采用 PROCESS語句描述局部電路的書寫格式如下:進程名 :PROCESS :(信號 1 ,信號 2 )BEGINEND PROCESS4.3包集合、庫及配置除實體和構造體外,包集合、庫及配置是 VHDL 語言和另外 3 個可以各自獨立進行編譯的源設計單元。1. 庫( LIBRARY )一個庫中可以包含包集合,公用的設計實體和公用的機構體等。當需要引用一個庫時,首先需要對庫名進行說明,其格式為:LIBRARY 庫名這時就可以使用庫中已經(jīng)編譯好的設計。對庫中集合包的訪問必須再經(jīng)由 USE 語句才能
19、打開。其格式為:USE程序包名IEEE庫是 IEEE制定的一個VHDL的最常用標準庫, 其中包括標準邏輯程序包Sed_logic_1164,標準數(shù)學程序包Math等。我們可以使用它的數(shù)據(jù)類型和函數(shù)。用法:LIBRARY IEEE。STD 庫也是 VHDL的標準庫。2. 包集合( Package )包集合( Package )說明像C 語言中的include語句一樣,-WORD格式 - 可編輯 -用來單純的羅列 VHDL 語言中所要用到的信號定義、 常數(shù)定義、數(shù)據(jù)類型、元件語句、函數(shù)定義和過程定義等。使用包集合時用 USE 語句說明。如3.配置( Configuration)配置語句描述層于層之
20、間的連接關系以及實體與結構之間的連接關系。設計者可以利用這種配置語句來選擇不同的構造體,使其與要設計的實體相對應。配置語句的格式:CONFIGURATION配置名 OF實體名 IS語句說明 ;END配置名;5 VHDL常用順序語句VHDL 語句是并發(fā)語言,大部分語句是并發(fā)執(zhí)行的。但在進程、過程、塊語句和子程序(包括函數(shù))中,還有許多順序執(zhí)行語句,按出現(xiàn)的次序執(zhí)行各條語句。下面以常用的兩種語句為例,其他的語句請參考其他書。1. IF 語句IF 語句是根據(jù)所制定的條件來確定執(zhí)行那些語句的,其格式由三種:第一種IF條件 THEN順序語句END IF第二種IF 語句二選擇控制,其書寫格式為:IF條件
21、THEN順序處理語句;ELSE順序處理語句;-WORD格式 - 可編輯 -END IF ;第三種IF 語句的多選擇控制又稱IF 語句的嵌套, 其書寫格式為:IF條件 THEN順序處理語句;ELSE順序處理語句;ELSEIF條件THEN順序處理語句;ELSE順序處理語句;END IF ;2. CASE 語句CASE 語句常用來描寫總線行為、編碼器和譯碼器的結構。與 IF 語句表可讀性好,非常簡潔。其書寫格式為:CASE表達式ISWHEN條件表達式 => 順序處理語句;END CASE;條件句中的“=> ”不是操作符,只相當于“THEN”作用。6 VHDL中的一些重要信號6.1.時鐘信
22、號和復位信號1) 時鐘信號的描述*若進程的敏感信號是時鐘信號, 這時時鐘信號出現(xiàn)在PROCESS后的括號中 .例: process (clock_signal)beginif (clock_edge_condition) thensignal_out<=signal_in-WORD格式 - 可編輯 -:其它語句:end if;end process;* 在進程中用 WAIT ON 語句等待時鐘這樣的電路沒有敏感信號 , 進程通常停留在 WAIT ON 語句上 ,只有時鐘信號到來且滿足一定條件時,其余語句才能執(zhí)行.例: processbeginwait on (clock_signal)
23、until (clock_edge_condition)signal_out<=signal_in;其它語句end process;* 敏感表中只能有一個時鐘信號* wait on 語句只能放在進程的最前面或者最后面* 時鐘的邊沿描述描述時鐘一定要指明是上升沿還是下降沿上升沿到來的條件 :IF clk= 1 AND clk LAST_VALUE= 0 AND clk EVENT下降沿到來的條件:IFclk= 0 ANDclk LAST_VALUE= 1ANDclk EVENT關于時鐘信號的總結:IF clock_signal=current_value ANDclock_signal LAST AND-WORD格式 - 可編輯 -clock_siganl EVENT可以簡單寫為 :IFclock_signal=clock_siganl EVENTANDcurrent_value6.2.復
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國枸杞果數(shù)據(jù)監(jiān)測研究報告
- 2025至2031年中國蒸壓磚機行業(yè)投資前景及策略咨詢研究報告
- 2025年安徽審計職業(yè)學院單招職業(yè)適應性考試題庫匯編
- 2025年安徽中澳科技職業(yè)學院單招職業(yè)適應性考試題庫及參考答案
- 2025年巴音郭楞職業(yè)技術學院單招職業(yè)傾向性考試題庫附答案
- 2025年安徽工業(yè)經(jīng)濟職業(yè)技術學院單招職業(yè)技能考試題庫往年題考
- 2025年阿壩職業(yè)學院單招職業(yè)適應性考試題庫審定版
- 2025年包頭輕工職業(yè)技術學院單招職業(yè)技能考試題庫匯編
- 2025年寶雞職業(yè)技術學院單招職業(yè)適應性測試題庫學生專用
- 2025年家具供應鏈合作合同
- 煤礦應急救援培訓教案
- 《圖書館資源利用》課件
- 2024-2030年中國光伏建筑一體化(BIPV)行業(yè)發(fā)展模式規(guī)劃分析報告
- 設備工程師招聘面試題與參考回答
- 部編版小學道德與法治五年級下冊《不甘屈辱-奮勇抗爭》第一課時課件
- 《贏利》精讀圖解
- 讀書分享讀書交流會《你當像鳥飛往你的山》課件
- 大學生職業(yè)素養(yǎng)訓練(第六版)教案 第二單元 學習職業(yè)禮儀
- 2022年中華護理學會輸液連接裝置安全管理專家共識解讀
- 內(nèi)鏡下ESD護理配合
- DB34∕T 1644-2012 南方紅豆杉用材林栽培技術規(guī)程
評論
0/150
提交評論