




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、EDA技術實用教程技術實用教程第第9 9章章 VHDL結構與要素結構與要素 9.1 實實 體體 9.1.1 實體語句結構實體語句結構 9.1 9.1 實體實體 9.1.2 參數傳遞說明語句 GENERIC語句是一種常數參數的端口界面,為所說明的環境提供了一種靜態信息通道。語句是一種常數參數的端口界面,為所說明的環境提供了一種靜態信息通道。類屬與常數不同類屬與常數不同:常數只能從常數只能從設計實體的內部設計實體的內部得到賦值得到賦值,且且不能再改變不能再改變;而類屬的值而類屬的值可以由可以由設計實體外部設計實體外部提供提供。因此設計者可以從外面通過類屬參量的重新設定而容易地因此設計者可以從外面通
2、過類屬參量的重新設定而容易地改變一個設計實體或一個元件的內部電路結構和規模改變一個設計實體或一個元件的內部電路結構和規模。被傳遞的參數(又稱類屬參量)可以由設計實體外部提供,并可以重新設定。被傳遞的參數(又稱類屬參量)可以由設計實體外部提供,并可以重新設定。 GENERIC( 常數名: 數據類型 : 設定值 ;常數名: 數據類型 : 設定值 ) ;9.1 實實 體體 9.1.2 參數傳遞說明語句參數傳遞說明語句 9.1 實實 體體 9.1.2 參數傳遞說明語句參數傳遞說明語句 9.1 實體 9.1.3 參數傳遞映射語句 GENERIC MAP(類屬表)參數傳遞映射語句與端口映射語句參數傳遞映射
3、語句與端口映射語句PORT MAP()具有相似具有相似的功能和使用方法,它描述了相應元件類屬參數間的連接和的功能和使用方法,它描述了相應元件類屬參數間的連接和傳送方式。它可用于設計從外部端口改變元件內部參數或結傳送方式。它可用于設計從外部端口改變元件內部參數或結構規模的元件,又稱類屬元件。構規模的元件,又稱類屬元件。 9.1 實實 體體 9.1.3 參數傳遞映射語句參數傳遞映射語句 9.1 實實 體體 9.1.3 參數傳遞映射語句參數傳遞映射語句 9.1 實實 體體 9.1.3 參數傳遞映射語句參數傳遞映射語句 9.1 實實 體體 9.1.4 端口說明語句端口說明語句 9.2 結構體結構體 9
4、.2 結結 構構 體體 1. 結構體的一般語言格式結構體的一般語言格式 2. 結構體說明語句結構體說明語句 9.2 結結 構構 體體 3. 功能描述語句結構功能描述語句結構 進程語句進程語句 信號賦值語句信號賦值語句 子程序調用語句子程序調用語句 元件例化語句元件例化語句 9.3 VHDL子程序 子程序(SUBPROGRAM)是一個VHDL程序模塊,它只能使用順序語句順序語句。 子程序不能像進程那樣可以從本結構體的并行語句或進程結構中直接讀取信號或象信號賦值。子程序的使用方式只能通過子程序調用及與子程序的界面端口進行通信。 子程序可以在程序包、結構體和進程中定義,只有在程序包中定義過的子程序才
5、可以被其他不同的設計調用。 子程序分為兩大類:過程過程(PROCEDURE)和函數函數(FUNCTION)。9.3 子程序子程序 9.3.1 函數函數 函數參數的對象類型只能包括常量和信號,默認為常量。參數的端口模式只能是in,因此參數端口模式可以省略。函數的返回值只能有一個。9.3 子程序子程序 9.3.1 函數函數 接下頁接下頁9.3 子程序子程序 9.3.1 函數函數 接上頁接上頁9.3 子程序子程序 9.3.1 函數函數 9.3 子程序子程序 9.3.1 函數函數 9.3 子程序子程序 9.3.2 重載函數重載函數 VHDL允許同樣名稱的函數可以用不同的數據類型作為它的參數定義多次,以
6、此定義的函數稱為重載函數。接下頁接下頁9.3 子程序子程序 9.3.2 重載函數重載函數 接上頁接上頁接下頁接下頁9.3 子程序子程序 9.3.2 重載函數重載函數 接上頁接上頁9.3 子程序子程序 9.3.2 重載函數重載函數 接下頁接下頁9.3 子程序子程序 9.3.2 重載函數重載函數 接上頁接上頁9.3 子程序子程序 9.3.3 轉換函數轉換函數 9.3 子程序子程序 9.3.3 轉換函數轉換函數 9.3 子程序子程序 9.3.3 轉換函數轉換函數 9.3 子程序子程序 9.3.3 轉換函數轉換函數 接下頁接下頁9.3 子程序子程序 9.3.3 轉換函數轉換函數 接上頁接上頁9.3 子
7、程序子程序 9.3.4 決斷函數決斷函數 決斷函數不可綜合,主要用于決斷函數不可綜合,主要用于VHDL仿真中解決信號被多個驅動源仿真中解決信號被多個驅動源驅動時,驅動信號間的競爭問題。驅動時,驅動信號間的競爭問題。當多個驅動源都同時產生一個處理事項,只有其中一個驅動源的當多個驅動源都同時產生一個處理事項,只有其中一個驅動源的信號值能賦給被驅動的信號。信號值能賦給被驅動的信號。決斷函數輸入一般是單一變量,多個驅動源的信號值組成非限定決斷函數輸入一般是單一變量,多個驅動源的信號值組成非限定數組,數組,多個信號驅動源,其信號值組成的未限定數組可依次類推。多個信號驅動源,其信號值組成的未限定數組可依次
8、類推。決斷函數調用后返回的是單一信號值,稱決斷信號值。決斷函數調用后返回的是單一信號值,稱決斷信號值。 9.3 子程序子程序 9.3.5 過程過程9.3 子程序子程序 9.3.5 過程過程信號流向方向若未指定則默認為IN。只定義了IN模式而未定義目標參量的數據類型,則默認為常量CONSTANT;只定義了OUT或INOUT模式而未定義目標參量的數據類型,則默認為變量。9.3 子程序子程序 9.3.5 過程過程9.3 子程序子程序 9.3.5 過程過程9.3 子程序子程序 9.3.5 過程過程9.3 子程序子程序 9.3.6 重載過程重載過程 函數和過程的區別l函數和過程的不同在于:l函數只有一個
9、輸出,只能通過函數體內的RETURN語句來實現,函數體內不能有信號賦值語句;l而過程卻可以有不止一個輸出,而且是通過過程體內的信號賦值語句或者變量賦值語句來實現的,過程體內的RETURN語句沒有用處,因此不少過程都將其省略了。l函數的調用只能通過表達式來實現,過程的調用則是通過過程調用語句來實現的。9.4 VHDL庫庫 9.4.1 庫的種類庫的種類 1. IEEE庫庫 std_logic_1164 Numeric_BitNumeric_Std Math _Real Math _Complex 2. STD庫庫 3. WORK庫庫 4. VITAL庫庫 9.4 VHDL庫庫 9.4.2 庫的用法
10、庫的用法 9.5 程序包程序包 (其他設計實體共享)(其他設計實體共享)定義程序包的一般語句結構如下:定義程序包的一般語句結構如下: PACKAGE 程序包名程序包名 IS - 程序包首程序包首 程序包首說明部分程序包首說明部分 END 程序包名程序包名; PACKAGE BODY 程序包名程序包名 IS - 程序包體程序包體 程序包體說明部分以及包體內程序包體說明部分以及包體內 END 程序包名程序包名; 9.5 VHDL程序包程序包 9.5 VHDL程序包程序包 9.5 VHDL程序包程序包 (1)STD_LOGIC_1164程序包。程序包。(2)STD_LOGIC_ARITH程序包。程序
11、包。(3)STD_LOGIC_UNSIGNED和和STD_LOGIC_SIGNED程序包。程序包。(4)STANDARD和和TEXTIO程序包。程序包。 9.6 配置配置 9.7 VHDL文字規則文字規則 9.7.1 數字數字 整數:整數: 實數實數 : 9.7 VHDL文字規則文字規則 9.7.2 字符串字符串 “B”、 “O” 、 “X” 9.7 VHDL文字規則文字規則 9.7.3 標識符及其表述規則標識符及其表述規則 9.7 VHDL文字規則文字規則 9.7.4 下標名下標名9.8 數數 據據 類類 型型 標量型標量型(Scalar Type):包括實數類型、整數類型、枚舉類:包括實數
12、類型、整數類型、枚舉類型、時間類型。型、時間類型。 復合類型復合類型(Composite Type):可以由小的數據類型復合而:可以由小的數據類型復合而成,如可由標量型復合而成。復合類型主要有數組型成,如可由標量型復合而成。復合類型主要有數組型(Array)和記錄型和記錄型(Record)。 存取類型存取類型(Access Type):為給定的數據類型的數據對象:為給定的數據類型的數據對象提供存取方式。提供存取方式。 文件類型文件類型(Files Type):用于提供多值存取類型。:用于提供多值存取類型。9.8 數數 據據 類類 型型 9.8.1 VHDL預定義數據類型預定義數據類型 1. 布
13、爾類型布爾類型2. 位數據類型位數據類型3. 位矢量類型位矢量類型9.8 數數 據據 類類 型型 9.8.1 VHDL預定義數據類型預定義數據類型 4. 字符類型字符類型 5. 整數類型整數類型 6. 實數類型實數類型21474836472147483647 9.8 數數 據據 類類 型型 9.8.1 VHDL預定義數據類型預定義數據類型 7. 字符串類型字符串類型8. 時間類型時間類型 9.8 數數 據據 類類 型型 9.8.1 VHDL預定義數據類型預定義數據類型 9. 文件類型文件類型 9.8 數數 據據 類類 型型 9.8.2 IEEE預定義標準邏輯位與矢量預定義標準邏輯位與矢量 1.
14、 標準邏輯位數據類型標準邏輯位數據類型 2. 標準邏輯矢量數據類型標準邏輯矢量數據類型 9.8 數數 據據 類類 型型 9.8.3 其他預定義標準數據類型其他預定義標準數據類型 1. 無符號數據類型無符號數據類型 9.8 數數 據據 類類 型型 9.8.3 其他預定義標準數據類型其他預定義標準數據類型 2. 有符號數據類型有符號數據類型 9.8 數數 據據 類類 型型 9.8.4 數據類型轉換示例數據類型轉換示例 9.8 數數 據據 類類 型型 9.8.4 數據類型轉換示例數據類型轉換示例 9.8 數數 據據 類類 型型 9.8.4 數據類型轉換示例數據類型轉換示例 9.8 數數 據據 類類
15、型型 9.8.4 數據類型轉換示例數據類型轉換示例 9.8 數數 據據 類類 型型 9.8.4 數據類型轉換示例數據類型轉換示例 9.8 數數 據據 類類 型型 9.8.4 數據類型轉換示例數據類型轉換示例 9.9 VHDL操作符操作符 9.9.1 邏輯操作符邏輯操作符 邏輯操作符邏輯操作符(Logical Operator)關系操作符關系操作符(Relational Operator)算術操作符算術操作符(Arithmetic Operator)符號操作符符號操作符(Sign Operator)重載操作符重載操作符(Overloading Operator)。 9.9 VHDL操作符操作符
16、9.9.1 邏輯操作符邏輯操作符 9.9 VHDL操作符操作符 9.9.1 邏輯操作符邏輯操作符 9.9 VHDL操作符操作符 9.9.1 邏輯操作符邏輯操作符 9.9 VHDL操作符操作符 9.9.1 邏輯操作符邏輯操作符 9.9 VHDL操作符操作符 9.9.2 關系操作符關系操作符 “ = ”(等于等于)、“/=”(不等于不等于)、“ ”(大于大于)、“=”(大于等于大于等于)和和“=”(小于等于小于等于) 9.9 VHDL操作符操作符 9.9.2 關系操作符關系操作符 9.9 VHDL操作符操作符 9.9.2 關系操作符關系操作符 9.9 VHDL操作符操作符 9.9.3 算術操作符算
17、術操作符 9.9 VHDL操作符操作符 9.9.3 算術操作符算術操作符 1. 求和操作符求和操作符 9.9 VHDL操作符操作符 9.9.3 算術操作符算術操作符 1. 求和操作符求和操作符 9.9 VHDL操作符操作符 9.9.3 算術操作符算術操作符 2. 求積操作符求積操作符 *(乘乘)、 /(除除)、 MOD(取模取模) 、 RED(取余取余) 3. 符號操作符符號操作符 “+”和和“” 4. 混合操作符混合操作符 “*” “ABS” 9.9 VHDL操作符操作符 9.9.3 算術操作符算術操作符 5. 移位操作符移位操作符 SLL、SRL、SLA、SRA、ROL 、ROR 習題習題
18、 9-1 說明實體、設計實體的概念。說明實體、設計實體的概念。9-2 舉例說明舉例說明GENERIC說明語句和說明語句和GENERIC映射語句有何用處。映射語句有何用處。9-3 說明端口模式說明端口模式INOUT和和BUFFER有何異同點。有何異同點。9-4 什么是重載?重載函數有何用處?什么是重載?重載函數有何用處?9-5 在在STRING、TIME、REAL、BIT數據類型中,數據類型中,VHDL綜合器支持哪綜合器支持哪些類型?些類型?9-6 詳細說明例詳細說明例9-29中的語句作用和程序實現的功能。中的語句作用和程序實現的功能。9-7 表達式表達式C= A + B中,中,A、B和和C的數
19、據類型都是的數據類型都是STD_LOGIC_VECTOR,是否能直接進行加法運算?說明原因和解決,是否能直接進行加法運算?說明原因和解決方法。方法。9-8 VHDL中有哪三種數據對象?詳細說明它們的功能特點以及使用方中有哪三種數據對象?詳細說明它們的功能特點以及使用方法,舉例說明數據對象與數據類型的關系。法,舉例說明數據對象與數據類型的關系。9-9 能把任意一種進制的值向一整數類型的數據對象賦值嗎?如果能,能把任意一種進制的值向一整數類型的數據對象賦值嗎?如果能,怎樣做?怎樣做? 習題習題 9-10 判斷下列判斷下列VHDL標識符是否合法,如果有誤則指出原因:標識符是否合法,如果有誤則指出原因
20、:160FA, 1012F, 8789, 8356, 2010101074HC245 , 74HC574, CLR/RESET, IN 4/SCLK, D1009-11 數據類型數據類型BIT、INTEGER和和BOOLEAN分別定義在哪個庫中?哪分別定義在哪個庫中?哪些庫和程序包總是可見的?些庫和程序包總是可見的?9-12 函數與過程的設計與功能有什么區別?調用上有什么區別?函數與過程的設計與功能有什么區別?調用上有什么區別?9-13 回答有關回答有關BIT和和BOOLEAN數據類型的問題:數據類型的問題:(1)解釋)解釋BIT和和BOOLEAN類型的區別。類型的區別。(2)對于邏輯操作應使
21、用哪種類型?)對于邏輯操作應使用哪種類型?(3)關系操作的結果為哪種類型?)關系操作的結果為哪種類型?(4)IF語句測試的表達式是哪種類型?語句測試的表達式是哪種類型?習題習題 9-14 運算符重載函數通常要調用轉換函數,以便能夠利用已有的數據類型。下運算符重載函數通常要調用轉換函數,以便能夠利用已有的數據類型。下面給出一個新的數據類型面給出一個新的數據類型AGE,并且下面的轉換函數已經實現:,并且下面的轉換函數已經實現:function CONV_INTEGER(ARG: AGE)return INTEGER;仿照本章中的示例,利用此函數編寫一個仿照本章中的示例,利用此函數編寫一個“+”運算
22、符重載函數,支持下面的運運算符重載函數,支持下面的運算:算:SIGNAL a,c : AGE;.c B時時E=1;當當AB時時F=1。第一種設計方案是常規的比較器設計方法,即直接利用關系操。第一種設計方案是常規的比較器設計方法,即直接利用關系操作符進行編程設計;第二種設計方案是利用減法器來完成,通過減法運算后的作符進行編程設計;第二種設計方案是利用減法器來完成,通過減法運算后的符號和結果來判別兩個被比較值的大小。對兩種設計方案的資源耗用情況進行符號和結果來判別兩個被比較值的大小。對兩種設計方案的資源耗用情況進行比較,并給以解釋。比較,并給以解釋。9-16 利用循環語句和移位操作符實現移位相加方
23、式的純組合電路利用循環語句和移位操作符實現移位相加方式的純組合電路8位乘法器設位乘法器設計。計。實驗與設計實驗與設計 9-1 樂曲硬件演奏電路設計樂曲硬件演奏電路設計(1)實驗目的:)實驗目的:(2)實驗原理:)實驗原理: 實驗與設計實驗與設計 9-1 樂曲硬件演奏電路設計樂曲硬件演奏電路設計(1)實驗目的:)實驗目的:(2)實驗原理:)實驗原理: 實驗與設計實驗與設計 9-1 樂曲硬件演奏電路設計樂曲硬件演奏電路設計(3)實驗內容)實驗內容1:(4)實驗內容)實驗內容2:(5)實驗內容)實驗內容3:(6)實驗內容)實驗內容4:(7)實驗內容)實驗內容5:(8)實驗內容)實驗內容6:(9)實驗
24、內容)實驗內容7:(10)實驗報告:)實驗報告:5E+系統的演示文件:系統的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。 實驗與設計實驗與設計 9-1 樂曲硬件演奏電路設計樂曲硬件演奏電路設計(3)實驗內容)實驗內容1:(4)實驗內容)實驗內容2:(5)實驗內容)實驗內容3:(6)實驗內容)實驗內容4:(7)實驗內容)實驗內容5:(8)實驗內容)實驗內容6:(9)實驗內容)實驗內容7:(10)實驗報告:)實驗報告:5E+系統的演示文件:系統的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。 實驗與設計實驗與設計 9-1 樂曲硬
25、件演奏電路設計樂曲硬件演奏電路設計(3)實驗內容)實驗內容1:(4)實驗內容)實驗內容2:(5)實驗內容)實驗內容3:(6)實驗內容)實驗內容4:(7)實驗內容)實驗內容5:(8)實驗內容)實驗內容6:(9)實驗內容)實驗內容7:(10)實驗報告:)實驗報告:5E+系統的演示文件:系統的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。 實驗與設計實驗與設計 9-1 樂曲硬件演奏電路設計樂曲硬件演奏電路設計(3)實驗內容)實驗內容1:(4)實驗內容)實驗內容2:(5)實驗內容)實驗內容3:(6)實驗內容)實驗內容4:(7)實驗內容)實驗內容5:(8)實驗內容)實驗
26、內容6:(9)實驗內容)實驗內容7:(10)實驗報告:)實驗報告:5E+系統的演示文件:系統的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。 實驗與設計實驗與設計 9-2 數字彩色液晶顯示控制電路設計數字彩色液晶顯示控制電路設計(1)實驗任務)實驗任務1:基于基于5E+系統的基本控制演示示例是:系統的基本控制演示示例是:/KX_7C5EE+/ EXPERIMENTs/EXP13_COLOR_LCD/(2)實驗任務)實驗任務2:(3)實驗任務)實驗任務3:(4)實驗任務)實驗任務4:(5)實驗任務)實驗任務5:(6)實驗任務)實驗任務6:演示示例:演示示例:/K
27、X_7C5EE+/DEMOs/EXPL9_Super_Mario2/,和和/DEMOs/EXP7_LCD_light_GAME/。實驗與設計實驗與設計 9-3 GPS應用的通信電路設計應用的通信電路設計實驗任務:實驗任務:參考參考GPS模塊使用文件:模塊使用文件:/KX_7C5EE+/GPS文件。常用的文件。常用的GPS模塊是模塊是UART通通信方式。可以用兩種方式讀取信方式。可以用兩種方式讀取GPS模塊中的數據:模塊中的數據:1、軟件方式。可以根據實驗、軟件方式。可以根據實驗6-8,使用,使用FPGA中的中的8051核與核與GPS通信,并將數通信,并將數據用液晶顯示出來;據用液晶顯示出來;2
28、、硬件方式,即不使用任何、硬件方式,即不使用任何CPU。可以根據實驗。可以根據實驗7-6的原理設計的原理設計UART硬件特硬件特性模塊,讀取性模塊,讀取GPS模塊的數據,并顯示于數碼管或液晶屏上。演示示例:模塊的數據,并顯示于數碼管或液晶屏上。演示示例:/KX_7C5EE+/EXPERIMENTs/EXP16_KX8051_FTEST_RS232/和和/EXP17_KX8051_GPS_FTEST/。 實驗與設計實驗與設計 9-3 GPS應用的通信電路設計應用的通信電路設計實驗任務:實驗任務:演示示例:演示示例:/KX_7C5EE+/EXPERIMENTs/EXP16_KX8051_FTEST_RS232/和和/EXP17_KX8051_GPS_FTEST/。 9-4 VGA動畫圖像顯示控制電路設計動畫圖像顯示控制電路設計實驗任務:實驗任務:相關演示示例有:鼠標控制的相關演示示例有:鼠標控制的VGA顯示游戲:顯示游戲:/KX_7C5EE+/DEMOs/ EXPL12_PS2Mouse_VGA_G
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省遂寧蓬溪縣聯考2024-2025學年初三下學期八模考試英語試題含答案
- 遼寧省撫順市順城區重點達標名校2024-2025學年初三中考考前指導卷(1)數學試題含解析
- GRC施工監理合同52025年
- 遼寧省本溪市平山區2025屆數學三下期末學業質量監測試題含解析
- 浙江省紹興市越城區重點中學2025年初三中考全真模擬卷(七)物理試題含解析
- 石家莊市2025年初三下學期(線上)適應性測試語文試題含解析
- 寧夏中學寧縣達標名校2024-2025學年初三月考試題含答案
- 遼寧省遼陽市二中學教育協作2025年初三第二學期月考二化學試題含解析
- 公寓二房東租賃合同
- 統編版三年級語文下冊第四單元測試卷(A)(含答案)
- 建筑垃圾清運投標技術方案
- 高中地理氣候的分布規律試題及答案
- (新版)知識產權知識競賽考試題庫(含答案)
- 民宿合作協議
- 籃球裁判員手冊
- 2025年開封文化藝術職業學院單招職業技能測試題庫及參考答案
- 教師課題研究中的常見問題與解決策略
- 【滬教】期中模擬卷02【U1~U4】
- DB34-4239-2022 醫院保潔服務規范
- 2025年北師大版數學六年級下冊教學計劃(含進度表)
- 2025年海南港航控股有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論