EDA 第9章 VHDL結構與要素_第1頁
EDA 第9章 VHDL結構與要素_第2頁
EDA 第9章 VHDL結構與要素_第3頁
EDA 第9章 VHDL結構與要素_第4頁
EDA 第9章 VHDL結構與要素_第5頁
已閱讀5頁,還剩87頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

EDA技術實用教程第9章

VHDL結構與要素

9.1實體

9.1.1實體語句結構

9.1實體

9.1.2參數(shù)傳遞說明語句

GENERIC語句是一種常數(shù)參數(shù)的端口界面,為所說明的環(huán)境提供了一種靜態(tài)信息通道。

類屬與常數(shù)不同:常數(shù)只能從設計實體的內部得到賦值,且不能再改變;而類屬的值可以由設計實體外部提供。因此設計者可以從外面通過類屬參量的重新設定而容易地改變一個設計實體或一個元件的內部電路結構和規(guī)模。

被傳遞的參數(shù)(又稱類屬參量)可以由設計實體外部提供,并可以重新設定。

GENERIC([常數(shù)名:數(shù)據(jù)類型[:設定值]{;常數(shù)名:數(shù)據(jù)類型[:設定值]});9.1實體

9.1.2參數(shù)傳遞說明語句9.1實體

9.1.2參數(shù)傳遞說明語句

9.1實體

9.1.3參數(shù)傳遞映射語句

GENERICMAP(類屬表)

參數(shù)傳遞映射語句與端口映射語句PORTMAP()具有相似的功能和使用方法,它描述了相應元件類屬參數(shù)間的連接和傳送方式。它可用于設計從外部端口改變元件內部參數(shù)或結構規(guī)模的元件,又稱類屬元件。

9.1實體

9.1.3參數(shù)傳遞映射語句

9.1實體

9.1.3參數(shù)傳遞映射語句

9.1實體

9.1.3參數(shù)傳遞映射語句

9.1實體

9.1.4端口說明語句9.2結構體

對數(shù)據(jù)類型、常數(shù)、信號、子程序和元件等元素的說明部分

描述實體邏輯行為的、以各種不同的描述風格表達的功能描述語句

以元件例化語句為特征的外部元件(設計實體)端口間的連接。

結構體9.2結構體1.結構體的一般語言格式

2.結構體說明語句9.2結構體3.功能描述語句結構●進程語句●信號賦值語句●子程序調用語句●元件例化語句9.3VHDL子程序

子程序(SUBPROGRAM)是一個VHDL程序模塊,它只能使用順序語句。子程序不能像進程那樣可以從本結構體的并行語句或進程結構中直接讀取信號或象信號賦值。子程序的使用方式只能通過子程序調用及與子程序的界面端口進行通信。子程序可以在程序包、結構體和進程中定義,只有在程序包中定義過的子程序才可以被其他不同的設計調用。子程序分為兩大類:過程(PROCEDURE)和函數(shù)(FUNCTION)。9.3子程序

9.3.1函數(shù)

函數(shù)參數(shù)的對象類型只能包括常量和信號,默認為常量。參數(shù)的端口模式只能是in,因此參數(shù)端口模式可以省略。函數(shù)的返回值只能有一個。9.3子程序

9.3.1函數(shù)

接下頁9.3子程序

9.3.1函數(shù)

接上頁9.3子程序

9.3.1函數(shù)

9.3子程序

9.3.1函數(shù)

9.3子程序

9.3.2重載函數(shù)VHDL允許同樣名稱的函數(shù)可以用不同的數(shù)據(jù)類型作為它的參數(shù)定義多次,以此定義的函數(shù)稱為重載函數(shù)。接下頁9.3子程序

9.3.2重載函數(shù)接上頁接下頁9.3子程序

9.3.2重載函數(shù)接上頁9.3子程序

9.3.2重載函數(shù)接下頁9.3子程序

9.3.2重載函數(shù)接上頁9.3子程序

9.3.3轉換函數(shù)

9.3子程序

9.3.3轉換函數(shù)

9.3子程序

9.3.3轉換函數(shù)

9.3子程序

9.3.3轉換函數(shù)

接下頁9.3子程序

9.3.3轉換函數(shù)

接上頁9.3子程序

9.3.4決斷函數(shù)決斷函數(shù)不可綜合,主要用于VHDL仿真中解決信號被多個驅動源驅動時,驅動信號間的競爭問題。當多個驅動源都同時產(chǎn)生一個處理事項,只有其中一個驅動源的信號值能賦給被驅動的信號。決斷函數(shù)輸入一般是單一變量,多個驅動源的信號值組成非限定數(shù)組,多個信號驅動源,其信號值組成的未限定數(shù)組可依次類推。決斷函數(shù)調用后返回的是單一信號值,稱決斷信號值。9.3子程序

9.3.5過程9.3子程序

9.3.5過程信號流向方向若未指定則默認為IN。只定義了IN模式而未定義目標參量的數(shù)據(jù)類型,則默認為常量CONSTANT;只定義了OUT或INOUT模式而未定義目標參量的數(shù)據(jù)類型,則默認為變量。9.3子程序

9.3.5過程9.3子程序

9.3.5過程9.3子程序

9.3.5過程9.3子程序

9.3.6重載過程

函數(shù)和過程的區(qū)別函數(shù)和過程的不同在于:函數(shù)只有一個輸出,只能通過函數(shù)體內的RETURN語句來實現(xiàn),函數(shù)體內不能有信號賦值語句;而過程卻可以有不止一個輸出,而且是通過過程體內的信號賦值語句或者變量賦值語句來實現(xiàn)的,過程體內的RETURN語句沒有用處,因此不少過程都將其省略了。函數(shù)的調用只能通過表達式來實現(xiàn),過程的調用則是通過過程調用語句來實現(xiàn)的。9.4VHDL庫9.4.1庫的種類1.IEEE庫

std_logic_1164Numeric_BitNumeric_StdMath_RealMath_Complex2.STD庫3.WORK庫

4.VITAL庫9.4VHDL庫9.4.2庫的用法

9.5程序包

(其他設計實體共享)常數(shù)說明

VHDL數(shù)據(jù)類型說明元件定義子程序定義程序包的一般語句結構如下:

PACKAGE程序包名IS--程序包首

程序包首說明部分

END程序包名;PACKAGEBODY程序包名IS--程序包體

程序包體說明部分以及包體內

END程序包名;9.5VHDL程序包

9.5VHDL程序包

9.5VHDL程序包

(1)STD_LOGIC_1164程序包。(2)STD_LOGIC_ARITH程序包。(3)STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED程序包。(4)STANDARD和TEXTIO程序包。9.6配置9.7VHDL文字規(guī)則9.7.1數(shù)字整數(shù):

實數(shù)

9.7VHDL文字規(guī)則9.7.2字符串

“B”、“O”、“X”9.7VHDL文字規(guī)則9.7.3標識符及其表述規(guī)則9.7VHDL文字規(guī)則9.7.4下標名9.8數(shù)據(jù)類型●標量型(ScalarType):包括實數(shù)類型、整數(shù)類型、枚舉類型、時間類型?!駨秃项愋?CompositeType):可以由小的數(shù)據(jù)類型復合而成,如可由標量型復合而成。復合類型主要有數(shù)組型(Array)和記錄型(Record)?!翊嫒☆愋?AccessType):為給定的數(shù)據(jù)類型的數(shù)據(jù)對象提供存取方式?!裎募愋?FilesType):用于提供多值存取類型。9.8數(shù)據(jù)類型9.8.1VHDL預定義數(shù)據(jù)類型

1.布爾類型2.位數(shù)據(jù)類型3.位矢量類型9.8數(shù)據(jù)類型9.8.1VHDL預定義數(shù)據(jù)類型

4.字符類型

5.整數(shù)類型

6.實數(shù)類型-2147483647~+21474836479.8數(shù)據(jù)類型9.8.1VHDL預定義數(shù)據(jù)類型

7.字符串類型8.時間類型9.8數(shù)據(jù)類型9.8.1VHDL預定義數(shù)據(jù)類型

9.文件類型

9.8數(shù)據(jù)類型9.8.2IEEE預定義標準邏輯位與矢量1.標準邏輯位數(shù)據(jù)類型2.標準邏輯矢量數(shù)據(jù)類型

9.8數(shù)據(jù)類型9.8.3其他預定義標準數(shù)據(jù)類型

1.無符號數(shù)據(jù)類型9.8數(shù)據(jù)類型9.8.3其他預定義標準數(shù)據(jù)類型

2.有符號數(shù)據(jù)類型

9.8數(shù)據(jù)類型9.8.4數(shù)據(jù)類型轉換示例9.8數(shù)據(jù)類型9.8.4數(shù)據(jù)類型轉換示例9.8數(shù)據(jù)類型9.8.4數(shù)據(jù)類型轉換示例9.8數(shù)據(jù)類型9.8.4數(shù)據(jù)類型轉換示例9.8數(shù)據(jù)類型9.8.4數(shù)據(jù)類型轉換示例9.8數(shù)據(jù)類型9.8.4數(shù)據(jù)類型轉換示例9.9VHDL操作符

9.9.1邏輯操作符

邏輯操作符(LogicalOperator)關系操作符(RelationalOperator)算術操作符(ArithmeticOperator)符號操作符(SignOperator)重載操作符(OverloadingOperator)。9.9VHDL操作符

9.9.1邏輯操作符

9.9VHDL操作符

9.9.1邏輯操作符

9.9VHDL操作符

9.9.1邏輯操作符

9.9VHDL操作符

9.9.1邏輯操作符

9.9VHDL操作符

9.9.2關系操作符“=”(等于)、“/=”(不等于)、“>”(大于)、“<”(小于)、“>=”(大于等于)和“<=”(小于等于)9.9VHDL操作符

9.9.2關系操作符9.9VHDL操作符

9.9.2關系操作符9.9VHDL操作符

9.9.3算術操作符

9.9VHDL操作符

9.9.3算術操作符

1.求和操作符9.9VHDL操作符

9.9.3算術操作符

1.求和操作符9.9VHDL操作符

9.9.3算術操作符

2.求積操作符

*(乘)、/(除)、MOD(取模)、RED(取余)3.符號操作符“+”和“-”

4.混合操作符

“**”“ABS”9.9VHDL操作符

9.9.3算術操作符

5.移位操作符SLL、SRL、SLA、SRA、ROL、ROR習題9-1說明實體、設計實體的概念。9-2舉例說明GENERIC說明語句和GENERIC映射語句有何用處。9-3說明端口模式INOUT和BUFFER有何異同點。9-4什么是重載?重載函數(shù)有何用處?9-5在STRING、TIME、REAL、BIT數(shù)據(jù)類型中,VHDL綜合器支持哪些類型?9-6詳細說明例9-29中的語句作用和程序實現(xiàn)的功能。9-7表達式C<=A+B中,A、B和C的數(shù)據(jù)類型都是STD_LOGIC_VECTOR,是否能直接進行加法運算?說明原因和解決方法。9-8VHDL中有哪三種數(shù)據(jù)對象?詳細說明它們的功能特點以及使用方法,舉例說明數(shù)據(jù)對象與數(shù)據(jù)類型的關系。9-9能把任意一種進制的值向一整數(shù)類型的數(shù)據(jù)對象賦值嗎?如果能,怎樣做?習題9-10判斷下列VHDL標識符是否合法,如果有誤則指出原因:16#0FA#,10#12F#,8#789#,8#356#,2#0101010#74HC245,\74HC574\,CLR/RESET,\IN4/SCLK\,D100%9-11數(shù)據(jù)類型BIT、INTEGER和BOOLEAN分別定義在哪個庫中?哪些庫和程序包總是可見的?9-12函數(shù)與過程的設計與功能有什么區(qū)別?調用上有什么區(qū)別?9-13回答有關BIT和BOOLEAN數(shù)據(jù)類型的問題:(1)解釋BIT和BOOLEAN類型的區(qū)別。(2)對于邏輯操作應使用哪種類型?(3)關系操作的結果為哪種類型?(4)IF語句測試的表達式是哪種類型?習題9-14運算符重載函數(shù)通常要調用轉換函數(shù),以便能夠利用已有的數(shù)據(jù)類型。下面給出一個新的數(shù)據(jù)類型AGE,并且下面的轉換函數(shù)已經(jīng)實現(xiàn):functionCONV_INTEGER(ARG:AGE)returnINTEGER;仿照本章中的示例,利用此函數(shù)編寫一個“+”運算符重載函數(shù),支持下面的運算:SIGNALa,c:AGE;...c<=a+20;9-15用兩種方法設計8位比較器,比較器的輸入是兩個待比較的8位數(shù)A=[A7..A0]和B=[B7..B0],輸出是D、E、F。當A=B時D=1;當A>B時E=1;當A<B時F=1。第一種設計方案是常規(guī)的比較器設計方法,即直接利用關系操作符進行編程設計;第二種設計方案是利用減法器來完成,通過減法運算后的符號和結果來判別兩個被比較值的大小。對兩種設計方案的資源耗用情況進行比較,并給以解釋。9-16利用循環(huán)語句和移位操作符實現(xiàn)移位相加方式的純組合電路8位乘法器設計。實驗與設計

9-1樂曲硬件演奏電路設計(1)實驗目的:(2)實驗原理:

實驗與設計

9-1樂曲硬件演奏電路設計(1)實驗目的:(2)實驗原理:

實驗與設計

9-1樂曲硬件演奏電路設計(3)實驗內容1:(4)實驗內容2:(5)實驗內容3:(6)實驗內容4:(7)實驗內容5:(8)實驗內容6:(9)實驗內容7:(10)實驗報告:5E+系統(tǒng)的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。

實驗與設計

9-1樂曲硬件演奏電路設計(3)實驗內容1:(4)實驗內容2:(5)實驗內容3:(6)實驗內容4:(7)實驗內容5:(8)實驗內容6:(9)實驗內容7:(10)實驗報告:5E+系統(tǒng)的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。

實驗與設計

9-1樂曲硬件演奏電路設計(3)實驗內容1:(4)實驗內容2:(5)實驗內容3:(6)實驗內容4:(7)實驗內容5:(8)實驗內容6:(9)實驗內容7:(10)實驗報告:5E+系統(tǒng)的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。

實驗與設計

9-1樂曲硬件演奏電路設計(3)實驗內容1:(4)實驗內容2:(5)實驗內容3:(6)實驗內容4:(7)實驗內容5:(8)實驗內容6:(9)實驗內容7:(10)實驗報告:5E+系統(tǒng)的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。

實驗與設計

9-2數(shù)字彩色液晶顯示控制電路設計(1)實驗任務1:基于5E+系統(tǒng)的基本控制演示示例是:/KX_7C5EE+/EXPERIMENTs/EXP13_COLOR_LCD/(2)實驗任務2:(3)實驗任務3:(4)實驗任務4:(5)實驗任務5:(6)實驗任務6:演示示例:/KX_7C5EE+/DEMOs/EXPL9_Super_Mario2/,和/DEMOs/EXP7_LCD_light_GAME/。實驗與設計

9-3GPS應用的通信電路設計實驗任務:參考GPS模塊使用文件:/KX_7C5EE+/GPS文件。常用的GPS模塊是UART通信方式??梢杂脙煞N方式讀取GPS模塊中的數(shù)據(jù):1、軟件方式??梢愿鶕?jù)實驗6-8,使用FPGA中的8051核與GPS通信,并將數(shù)據(jù)用液晶顯示出來;2、硬件方式,即不使用任何CPU??梢愿鶕?jù)實驗7-6的原理設計UART硬件特性模塊,讀取GPS模塊的數(shù)據(jù),并顯示于數(shù)碼管或液晶屏上。演示示例:/KX_7C5EE+/EXPERIMENTs/EXP16_KX8051_FTEST_RS232/和/EXP17_KX8051_GPS_FTEST/。

實驗與設計

9-3GPS應用的通信電路設計實驗任務:演示示例:/KX_7C5EE+/EXPERIMENTs/EXP16_KX8051_FTEST_RS232/和/EXP17_KX8051_GPS_FTEST/。

9-4VGA動畫圖像顯示控制電路設計實

溫馨提示

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

評論

0/150

提交評論