VHDL與數(shù)字電路設(shè)計-第一章VHDL程序的基本結(jié)構(gòu)ppt課件_第1頁
VHDL與數(shù)字電路設(shè)計-第一章VHDL程序的基本結(jié)構(gòu)ppt課件_第2頁
VHDL與數(shù)字電路設(shè)計-第一章VHDL程序的基本結(jié)構(gòu)ppt課件_第3頁
VHDL與數(shù)字電路設(shè)計-第一章VHDL程序的基本結(jié)構(gòu)ppt課件_第4頁
VHDL與數(shù)字電路設(shè)計-第一章VHDL程序的基本結(jié)構(gòu)ppt課件_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 VHDL VHDL與數(shù)字電路設(shè)計與數(shù)字電路設(shè)計 目 錄根本構(gòu)造根本構(gòu)造一實體實體二二三三四四構(gòu)造體構(gòu)造體庫和程序包庫和程序包配置配置五五1、根本構(gòu)造如圖代表的是一個芯片的內(nèi)部俯視圖,下面范例引見如何運用VHDL程序設(shè)計該芯片電路。Pin48Pin7LIBRARY IEEE;-USE定義區(qū)定義區(qū)USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_arith.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY ch1 IS-ENTITY定義區(qū)定義區(qū) PORT(pin48: IN std_logic; pin7 : OUT

2、 std_logic);END ch1;ARCHITECTURE rtl OF ch1 IS-ARCHITECTURE定義區(qū)定義區(qū)BEGIN pin7=pin48;-程序程序END rtl;描畫輸入/輸出端口描畫電路的行為和功能Input portOutput portFunctionsINOUTInputOutputVHDL的功能并非一切VHDL程序都具備上述的語法構(gòu)造。實際上,只需ENTITY和ARCHITECTURE是程序必備的;而在實踐運用中,經(jīng)常需求在定義ENTITY之前調(diào)用庫和庫中的程序包只是“調(diào)用,不是“編寫。以下圖所示的VHDL程序構(gòu)造是實踐運用中最根本、最常見的程序構(gòu)造。US

3、E定義區(qū)定義區(qū)ENTITY定義區(qū)定義區(qū)ARCHITECTURE定義區(qū)定義區(qū)根本構(gòu)造-eqcomp4 is a four bit equality comparatorLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY eqcomp4 IS PORT(a, b:IN std_logic_vector(3 DOWNTO 0); equal :OUT std_logic);END eqcomp4;ARCHITECTURE dataflow OF eqcomp4 ISBEGIN equal = 1 WHEN a=b ELSE 0;END dataflow;V

4、HDL 對大小寫不敏感對大小寫不敏感eqcomp4.vhd包實體構(gòu)造體文件名和實體名一致每行;結(jié)尾關(guān)鍵字BEGIN關(guān)鍵字END后跟實體名關(guān)鍵字END后跟構(gòu)造體名庫2、庫和程序包LIBRARYLIBRARY庫是用于存放預(yù)先編譯好的設(shè)計單元實體庫是用于存放預(yù)先編譯好的設(shè)計單元實體闡明、構(gòu)造體、配置闡明、程序包闡明和程序包體等。闡明、構(gòu)造體、配置闡明、程序包闡明和程序包體等。PACKAGE PACKAGE 程序包中定義了根本的常數(shù),數(shù)據(jù)類型,元程序包中定義了根本的常數(shù),數(shù)據(jù)類型,元件及子程序等。件及子程序等。 作用:作用:聲明在實體和構(gòu)造體定義中將用到的數(shù)據(jù)類型、聲明在實體和構(gòu)造體定義中將用到的數(shù)據(jù)

5、類型、元件或子程序等。元件或子程序等。聲明格式聲明格式: :LIBRARY LIBRARY ;USE USE .ALL;.ALL;USE USE .;VHDL言語的庫分為兩類:設(shè)計庫:包括std和work庫,設(shè)計庫對當前工程是可見默許的,無需用LIBRARY和USE語句聲明。資源庫:包括IEEE庫等,設(shè)計庫是常規(guī)元件和規(guī)范模塊存放的庫,運用哪個資源庫需求預(yù)先聲明。VHDL規(guī)范中提供了一些預(yù)定義的規(guī)范程序包,常用的有:Standardstd庫Textiostd庫Std_logic_1164IEEE庫庫和程序包由于VHDL已是IEEE規(guī)定的規(guī)范,所以只需是CPLD、FPGA等器件公司,他們都會提供

6、規(guī)范的IEEE資源庫,而且由于這里面包含許許多多的定義和參數(shù),初學(xué)者一時之間也不容易全部了解,所以可以全部寫上以減輕負擔(dān),如下所示:LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_arith.ALL;USE IEEE.std_logic_unsigned.ALL;庫和程序包作用:作用:ENTITYENTITY實體用于定義電路的外觀,即實體用于定義電路的外觀,即I/OI/O端口和數(shù)量。端口和數(shù)量。定義格式:定義格式:ENTITY ENTITY IS IS 類屬參數(shù)闡明類屬參數(shù)闡明; ; 實體闡明部分實體闡明部分;END EN

7、TITY END ENTITY ;3、實體放在端口闡明之前,用來為設(shè)計實體和其外部環(huán)境通訊的靜態(tài)信息提供通道,可以用來定義端口寬度、實體中元件的數(shù)目以及器件延遲時間等參數(shù)??梢允筕HDL更加具有通用性。在開場設(shè)計VHDL言語程序時,難免會有一些參數(shù)的值不能確定或待定,可以運用GENERIC語句編制通用程序,仿真時只需將待定參數(shù)初始化即可。定義格式:GENERIC(參數(shù)稱號:數(shù)據(jù)類型:=靜態(tài)表達式;);例:GENERIC(delay_time:time:=5ns);3.1 類屬參數(shù)闡明端口闡明是對設(shè)計實體與外部接口的描畫,端口對應(yīng)于電路圖上的一個引腳,一個端口就是一個數(shù)據(jù)對象。端口闡明部分用于為

8、設(shè)計實體和其外部環(huán)境通訊的動態(tài)信息提供通道。 定義格式:PORT (端口稱號: 端口方式 數(shù)據(jù)類型 :=表達式;);例:PORT( a: IN bit; b: IN bit; c: OUT bit);端口名端口名數(shù)據(jù)類型數(shù)據(jù)類型端口方式端口方式3.2 端口闡明端口闡明必需包括端口稱號、端口方式和數(shù)據(jù)類型的描畫。端口稱號就是指定端口的標識符;端口方式用來闡明數(shù)據(jù)、信號經(jīng)過該端口時的流動方向,即數(shù)據(jù)傳輸方向;數(shù)據(jù)類型用來闡明經(jīng)過信號端口的數(shù)據(jù)或者信號的數(shù)據(jù)類型。端口方式:端口模式端口模式含義含義IN輸入輸入OUT輸出輸出INOUT雙向雙向BUFFER緩沖緩沖LINKAGE鏈接(不指定方向)鏈接(不

9、指定方向)3.2 端口闡明ININ輸入方式:輸入方式:OUTOUT輸出方式:輸出方式:INOUTINOUT雙向方式:雙向方式:BUFFERBUFFER緩沖方式:緩沖方式:BUFFERBUFFER方式和方式和INOUTINOUT方式的區(qū)別就在于方式的區(qū)別就在于INOUTINOUT方方式不能用于實體內(nèi)部的反響。式不能用于實體內(nèi)部的反響。LINKAGELINKAGE鏈接方式:鏈接方式:3.2 端口闡明ENTITY test1 ISPORT(a: IN std_logic; b, c: OUT std_logic);END test1;ARCHITECTURE rtl OF test1 ISBEGIN

10、 b = NOT(a); c = b;-ErrorEND rtl;ENTITY test2 IS PORT(a: IN std_logic; b: BUFFER std_logic; c: OUT std_logic);END test2;ARCHITECTURE rtl OF test2 ISBEGIN b = NOT(a); c = b;END rtl;OUT與與BUFFER的區(qū)別的區(qū)別實體闡明部分應(yīng)放在端口闡明的下面,由實體聲明語句和實體語句兩部分構(gòu)成。實體聲明語句的功能是用來定義設(shè)計實體接口中的一些公共信息,如數(shù)據(jù)類型的定義。實體語句是每一個設(shè)計實體接口的公共部分。實體語句只能由以下并

11、行語句組成:并行斷言語句、并行過程調(diào)用語句和被動進程語句。這些實體語句部分必需是被動語句,即在語句中不含有賦值語句。3.3 實體闡明部分ENTITY ram ISGENERIC(delay_time: time:=5ns);PORT(addr: IN std_logic_vector(15 DOWNTO 0); sel: IN std_logic; data: OUT std_logic_vector(31 DOWNTO 0);TYPE instruction IS ARRAY(0 TO 7) OF natural;TYPE program IS ARRAY(natural RANGE) OF

12、 instruction;END ram;一個完好的ENTITY實例作用:作用:實體的實現(xiàn)。即闡明電路執(zhí)行什么動作實體的實現(xiàn)。即闡明電路執(zhí)行什么動作或?qū)崿F(xiàn)功能?;?qū)崿F(xiàn)功能。定義格式:定義格式:ARCHITECTURE ARCHITECTURE OF OF IS IS 構(gòu)造體聲明語句構(gòu)造體聲明語句;BEGINBEGIN ;END ARCHITECTURE END ARCHITECTURE ;4、構(gòu)造體位于實體之后。實體和構(gòu)造體的編譯是有先后順序的,只需編譯了實體闡明以后,才干對構(gòu)造體進展編譯。假照實體闡明需求重新編譯,那么相應(yīng)的構(gòu)造體也需求重新編譯。每個實體闡明可以對應(yīng)多個構(gòu)造體,每個構(gòu)造體對應(yīng)

13、著設(shè)計實體不同的構(gòu)造和算法實現(xiàn)方案。普通來說,每個實體對應(yīng)的各個構(gòu)造體的位置是同等的,都用來完好地實現(xiàn)構(gòu)造體的詳細功能。同一個構(gòu)造體不能被不同的設(shè)計實體所共有。構(gòu)造體構(gòu)造體命名:構(gòu)造體命名:遵照標識符的命名規(guī)那么,普通建議按遵照標識符的命名規(guī)那么,普通建議按照一定的慣例進展命名:照一定的慣例進展命名: behavioral/behave behavioral/behave-行為描畫方式行為描畫方式dataflow/rtldataflow/rtl-數(shù)據(jù)流描畫方數(shù)據(jù)流描畫方式式structural/structurestructural/structure-構(gòu)造化描畫方構(gòu)造化描畫方式式boolbo

14、ol-用數(shù)學(xué)表達方式用數(shù)學(xué)表達方式latchlatch-功能功能構(gòu)造體聲明語句:構(gòu)造體聲明語句:對構(gòu)造體內(nèi)部所運用的信號、變量、常對構(gòu)造體內(nèi)部所運用的信號、變量、常數(shù)、元件、子程序聲明等進展定義。和實體中端數(shù)、元件、子程序聲明等進展定義。和實體中端口闡明一樣,也應(yīng)該含有信號稱號和數(shù)據(jù)類型的口闡明一樣,也應(yīng)該含有信號稱號和數(shù)據(jù)類型的闡明,但由于所定義的信號是構(gòu)造體內(nèi)部運用的闡明,但由于所定義的信號是構(gòu)造體內(nèi)部運用的信號,因此不需求進展端口方式的闡明。定義格信號,因此不需求進展端口方式的闡明。定義格式如下:式如下:SIGNAL neslSIGNAL nesl: bit; bit;并行描畫語句:并行

15、描畫語句:構(gòu)造體中主要包括進程語句、信號賦值構(gòu)造體中主要包括進程語句、信號賦值語句、塊語句、子程序調(diào)用語句和元件例化語句語句、塊語句、子程序調(diào)用語句和元件例化語句等。等。行為描畫方式:行為描畫方式:對設(shè)計實體的數(shù)學(xué)模型的描畫,是一種對設(shè)計實體的數(shù)學(xué)模型的描畫,是一種籠統(tǒng)描畫不針對器件,不思索實體的電路組織籠統(tǒng)描畫不針對器件,不思索實體的電路組織和門級實現(xiàn),是整體設(shè)計功能的定義,高層次和門級實現(xiàn),是整體設(shè)計功能的定義,高層次描畫。只需留意正確的實體行為,準確的數(shù)學(xué)模描畫。只需留意正確的實體行為,準確的數(shù)學(xué)模型和準確的輸出結(jié)果。型和準確的輸出結(jié)果。存放器傳輸數(shù)據(jù)流描畫方式:存放器傳輸數(shù)據(jù)流描畫方式

16、:按照從信號到信號的存放器傳輸途徑行按照從信號到信號的存放器傳輸途徑行使進展描畫的方式。優(yōu)點在于很容易進展邏輯綜使進展描畫的方式。優(yōu)點在于很容易進展邏輯綜合,缺陷是硬件程度要求較高。合,缺陷是硬件程度要求較高。構(gòu)造描畫方式:構(gòu)造描畫方式:在層次化構(gòu)造設(shè)計中,高層次的設(shè)計模在層次化構(gòu)造設(shè)計中,高層次的設(shè)計模塊調(diào)用低層次的設(shè)計模塊,或者直接用門電路設(shè)塊調(diào)用低層次的設(shè)計模塊,或者直接用門電路設(shè)計單元來構(gòu)成一個復(fù)雜的邏輯電路的描畫方法。計單元來構(gòu)成一個復(fù)雜的邏輯電路的描畫方法。采用構(gòu)造描畫方式時,假設(shè)想要援用庫中不存在采用構(gòu)造描畫方式時,假設(shè)想要援用庫中不存在的模塊或元件時,必需先創(chuàng)建。的模塊或元件時

17、,必需先創(chuàng)建。構(gòu)造體的三種描畫方式一個完好VHDL電路設(shè)計必需有一個實體和對應(yīng)的構(gòu)造體,即實體和構(gòu)造體對構(gòu)成一個完好的VHDL設(shè)計一個實體可對應(yīng)一個構(gòu)造體或多個構(gòu)造體,即一個實體可以有不同的描畫方式。作用:當實體有多個構(gòu)造體時,系統(tǒng)默許實體選用最后一個構(gòu)造體,利用配置語句可以恣意選擇采用哪一個構(gòu)造體。定義格式:CONFIGURATION OF ISFOR END FOR;END 配置名;5、配置LIBRARY std; LIBRARY std; USE std.standard.ALL;USE std.standard.ALL;-庫和程序包庫和程序包ENTITY and2 IS ENTITY

18、and2 IS PORT(a : IN bit;PORT(a : IN bit; b : IN bit; b : IN bit; c : OUT bit); c : OUT bit);END and2;END and2;-實體定義實體定義ARCHITECTURE Na OF and2 IS ARCHITECTURE Na OF and2 IS BEGINBEGINc = 0 WHEN a=0 AND b = 0 ELSEc = 0 WHEN a=0 AND b = 0 ELSE 0 WHEN a=1 AND b = 0 ELSE 0 WHEN a=1 AND b = 0 ELSE 0 WHEN

19、 a=0 AND b = 1 ELSE 0 WHEN a=0 AND b = 1 ELSE 1; 1; END Na; END Na; -構(gòu)造體構(gòu)造體Na Na 輸入與門輸入與門abcVHDL程序舉例1ARCHITECTURE Nb OF and2 IS ARCHITECTURE Nb OF and2 IS BEGINBEGIN c = a AND b; c = a AND b; END Nb; END Nb; -構(gòu)造體構(gòu)造體NbNbCONFIGURATION s1 OF and2 ISCONFIGURATION s1 OF and2 ISFOR NaFOR NaEND FOR;END FOR;END CONFIGURATION s1;END CONFIGURATION s1;-構(gòu)造體配置終了構(gòu)造體配置終了VHDL程序舉例2全加器cbasbcacabcoLIBRARY IEEE;USE IEEE.std_logic_1164.all;ENTITY fa IS PORT (a,b,ci: IN std_logic; s,co : OUT s

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論