硬件描述語言及器件(侯伯亨版)_第1頁
硬件描述語言及器件(侯伯亨版)_第2頁
硬件描述語言及器件(侯伯亨版)_第3頁
硬件描述語言及器件(侯伯亨版)_第4頁
硬件描述語言及器件(侯伯亨版)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、適合班級(jí):11060441 11060442 教學(xué)(jio xu)東區(qū)15610H第二課VHDL語言(yyn)程序基本結(jié)構(gòu)共三十八頁VHDL標(biāo)識(shí)符(Identifiers)基本標(biāo)識(shí)符由字母、數(shù)字和下劃線組成第一個(gè)字符(z f)必須是字母最后一個(gè)字符不能是下劃線不允許連續(xù)2個(gè)下劃線保留字(關(guān)鍵字)不能用于標(biāo)識(shí)符大小寫是等效的共三十八頁VHDL 大小寫不敏感(mngn)eqcomp4.vhd包實(shí)體(sht)構(gòu)造體文件名和實(shí)體名一致每行;結(jié)尾關(guān)鍵字begin關(guān)鍵字end后跟實(shí)體名關(guān)鍵字end后跟構(gòu)造體名庫-eqcomp4 is a four bit equality comparatorLibrar

2、y IEEE;use IEEE.std_logic_1164.all;entity eqcomp4 isport(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;共三十八頁VHDL語言(yyn)的五個(gè)部分實(shí)體(Entity):描述所設(shè)計(jì)的系統(tǒng)的外部接口信號(hào);構(gòu)造體或構(gòu)造體(Architecture):描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為;配置(Confi

3、guration):從庫中選取(xunq)所需單元組成系統(tǒng)設(shè)計(jì)的不同版本;包(Package):存放各設(shè)計(jì)模塊都能共享的數(shù)據(jù)類型、常數(shù)和子程序;庫(Library):存放已經(jīng)編譯的實(shí)體、構(gòu)造體、包、配置。共三十八頁VHDL 程序(chngx)的基本結(jié)構(gòu)實(shí)體(sht):VHDL語言的硬件抽象。它表示具有明確的輸入、輸出的硬件設(shè)計(jì)的一部分。 構(gòu)造體:指定設(shè)計(jì)實(shí)體輸入和輸出之間的行為、邏輯關(guān)系或功能 。共三十八頁VHDL 程序的基本(jbn)結(jié)構(gòu)多次使用(shyng)低層次實(shí)體多個(gè)頂層結(jié)構(gòu)體使用同一個(gè)實(shí)體共三十八頁實(shí)體(sht)(Entity)描述此設(shè)計(jì)功能輸入輸出端口(Port)在層次化設(shè)計(jì)時(shí),P

4、ort為模塊(m kui)之間的接口在芯片級(jí),則代表具體芯片的管腳abscoEntity addr1 isport(a, b: in bit ; s,co:out bit );end addr1;共三十八頁實(shí)體說明的語法(yf)示格式 entity 實(shí)體名 is【generic(類型說明)】-定義端口大小,IO引腳分配(fnpi)port(信號(hào)名:模式信號(hào)類型;信號(hào)名:模式信號(hào)類型;信號(hào)名:模式信號(hào)類型);end 實(shí)體名;共三十八頁實(shí)體(sht)端口的模式輸入(Input):clk、reset、en、addr等輸出(Output):輸出信號(hào),不能內(nèi)部引用雙向(Inout):可代替(dit)所有

5、其他模式,用于設(shè)計(jì)雙向總線緩沖(Buffer):與Output類似,但允許該管腳名作為一些邏輯的輸入信號(hào)不定(Linkage):不定方向,哪個(gè)方向都可連接共三十八頁Out與Buffer的區(qū)別(qbi)Entity test1 is port(a: in std_logic; b,c: out std_logic ); end test1; architecture a of test1 is begin b = not(a); c = b;-Error end a;Entity test2 is port(a: in std_logic; b : buffer std_logic; c: ou

6、t std_logic ); end test2; architecture a of test2 is begin b = not(a); c = b; end a;共三十八頁使用(shyng) out還是使用 bufferout允許對應(yīng)(duyng)多個(gè)信號(hào): addr:out std_logic_vector(3 downto 0);buffer只允許對應(yīng)一個(gè)信號(hào):addr(0) : buffer std_logic; addr(1) : buffer std_logic; addr(2) : buffer std_logic; addr(3) : buffer std_logic;當(dāng)一

7、個(gè)構(gòu)造體用buffer說明輸出端口時(shí),與其連接的另一個(gè)構(gòu)造體端口也使用buffer;對于out,沒有上述要求共三十八頁信號(hào)(xnho)數(shù)據(jù)類型 數(shù)據(jù)類型是內(nèi)部的或用戶定義的信號(hào)類型 。常用數(shù)據(jù)類型:bit 、bit_vector、 boolean 、integer、枚舉型兩類重要的數(shù)據(jù)類型(實(shí)際工程應(yīng)用(yngyng)): std_logic、std_logic_vector。信號(hào)之間賦值,必須首先保證信號(hào)的數(shù)據(jù)類型相同。共三十八頁例3-2 不同(b tn)的數(shù)據(jù)類型說明library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_AR

8、ITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity mu isport( d0,d1,sel:in std_logic;q:out std_logic;bus:out std_logic_vector(7 downto 0);end mu;例3-1 較完整的端口說明(shumng)port( d0,d1,sel:in bit; q:out bit; bus:out bit _vector(7 downto 0);共三十八頁構(gòu)造(guzo)體(Architecture)描述實(shí)體的行為(xngwi)或結(jié)構(gòu)構(gòu)造體有三種描述方式行為描述(behavioral)

9、數(shù)據(jù)流描述或寄存器傳輸描述(dataflow)結(jié)構(gòu)化描述(structural)共三十八頁構(gòu)造體行為(xngwi)描述Architecture behavioral of eqcomp4 is begincomp: process (a,b) beginif a=b then equal = 1; else equal =0;end if; end process comp;end behavioral ;高層次的功能描述(mio sh),不必考慮在電路中到底是怎樣實(shí)現(xiàn)的。共三十八頁構(gòu)造體定義的語法(yf)格式 architecture 構(gòu)造體名 of 實(shí)體名 is類型說明信號(hào)(xnho)說明

10、函數(shù)定義進(jìn)程定義元件說明begin并行語句并行語句end 構(gòu)造體名;并發(fā)語句同時(shí)執(zhí)行 共三十八頁構(gòu)造(guzo)體命名任意命名對應(yīng)三種描述風(fēng)格(fngg)可將構(gòu)造體命名為behavioral, dataflow, structural三種方式。直接命名為a,簡單明了。共三十八頁構(gòu)造(guzo)體描述語句塊語句(yj)(Block)進(jìn)程語句(Process)信號(hào)賦值語句(=)子程序調(diào)用語句(Subprogram)元件例示語句(Component)共三十八頁Blcok語句(yj)的使用在進(jìn)行電路原理圖設(shè)計(jì)時(shí),往往將一個(gè)(y )大規(guī)模電路分割成多張子原理圖,進(jìn)行輸入和存檔。在VHDL語言中同樣可使用

11、Block語句對應(yīng)電原理圖。共三十八頁Block語句(yj)Block語句(yj)結(jié)構(gòu)塊結(jié)構(gòu)名Block begin并行語句并行語句End Block 塊結(jié)構(gòu)名;共三十八頁二選一電路Block語句(yj)示例例3-4Entity mux isport(d0,d1,sel:in bit;q:out bit);end mux;architecture connect of mux is signal tmp1,tmp2,tmp3:bit;begin cale:blockbegintmp1=d0 and sel;tmp2=d1 and (not sel) tmp3= tmp1 and tmp2;q=

12、tmp3; end block cale;end connect;共三十八頁衛(wèi)式Block語句(yj)Block語句(yj)并發(fā)執(zhí)行,若想對其進(jìn)行條件觸發(fā)判斷,則需使用衛(wèi)式Block語句。例如:一個(gè)D觸發(fā)器,具有一個(gè)數(shù)據(jù)輸入端d,一個(gè)時(shí)鐘輸入端clk,一個(gè)輸出端q和一個(gè)反向輸出端qb。共三十八頁例3-5Entity latch isport(d,clk: in bit;q: out bit);end latch;architecture latch_guard of latch isbegin g1:block ( clk =1 )beginq=guarded d after 5 ns;qb=

13、guarded not (d) after 7 ns;end block g1;end latch_guard;布爾表達(dá)式前衛(wèi)(qinwi)關(guān)鍵詞,只有在布爾表達(dá)式為真時(shí),語句才被執(zhí)行共三十八頁進(jìn)程(jnchng)(process)語句 進(jìn)程語句在VHDL程序中用來描述硬件的行為,進(jìn)程中的語句按順序執(zhí)行。一個(gè)構(gòu)造體中可以有多個(gè)進(jìn)程語句,各個(gè)進(jìn)程是并發(fā)執(zhí)行的。進(jìn)程語句是設(shè)計(jì)(shj)人員描述構(gòu)造體時(shí)使用最為頻繁的語句。它有如下特點(diǎn):(1)它可以與其它進(jìn)程并發(fā)執(zhí)行,并可存取構(gòu)造體或?qū)嶓w中所定義的信號(hào);(2)進(jìn)程結(jié)構(gòu)中的所有語句都是按順序執(zhí)行的;(3)為了啟動(dòng)進(jìn)程,在進(jìn)程結(jié)構(gòu)中必須包含一個(gè)顯式的敏感

14、信號(hào)量表或者包含一個(gè)wait語句;(4)進(jìn)程之間的通信是通過信號(hào)量的傳遞來實(shí)現(xiàn)的。共三十八頁進(jìn)程(jnchng)(process)語句的語法格式【進(jìn)程名:】process(敏感(mngn)信號(hào)1,敏感信號(hào)2)【說明區(qū)】 begin順序語句;順序語句; end process 【進(jìn)程名】;共三十八頁帶清零端的(dund)D觸發(fā)器的VHDL程序 敏感(mngn)信號(hào)順序語句共三十八頁進(jìn)程中使用wait語句(yj)的VHDL程序 architecture a of waityuju issignal q:std_logic_vector(3 downto 0);beginprocessbeginwa

15、it until (clkevent and clk=1);q=q+1;end process;y=q;end a; 無敏感(mngn)信號(hào)使用wait語句定義q為信號(hào)共三十八頁庫和程序包庫是經(jīng)編譯后的數(shù)據(jù)集合,它存放實(shí)體說明(shumng)、構(gòu)造體、程序包和配置說明(shumng)等。包括用于分析、仿真和綜合的中間文件。程序包用來存放VHDL語言中所要用到的信號(hào)定義、常量定義、數(shù)據(jù)類型、元件語句等,它是一個(gè)可以編譯的設(shè)計(jì)單元,也是庫結(jié)構(gòu)中的一個(gè)層次。共三十八頁庫和程序包語句(yj)格式library 庫名;use 庫名.程序包名.all; -all指使用所有(suyu)項(xiàng)目use 庫名.程序

16、包名.項(xiàng)目名;-只使用庫中的 某個(gè)項(xiàng)目共三十八頁library IEEE; -使用IEEE庫use IEEE.std_logic_1164.all; -打開IEEE庫中的程序包std_logic_ 1164 .all的所有項(xiàng)目use IEEE .std_logic_1164.std_logic; -打開程序包std_logic_1164中的std_ logic(標(biāo)準(zhǔn)(biozhn)邏輯)數(shù)據(jù)類型共三十八頁庫的類型(lixng)IEEE庫std庫work庫ASIC庫用戶(yngh)自定義的庫 共三十八頁程序包1.std_logic_1164程序包2.numeric_std程序包共三十八頁庫和程序

17、包的常用(chn yn)寫法library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;共三十八頁配置(pizh)(configuration)語句配置(configuration)語句描述層與層之間的連接關(guān)系以及實(shí)體與構(gòu)造體之間的連接關(guān)系。在仿真時(shí),可以利用配置來選擇不同的構(gòu)造體,進(jìn)行對比驗(yàn)證以得到性能最佳(zu ji)的構(gòu)造體。配置根據(jù)不同的使用情況,大體分為四種類型:默認(rèn)配置、元件配置、塊配置和構(gòu)造體配置。共三十八頁配置語句的語法(yf)格式 Configuration 配置名 of 實(shí)體名 is【語句(yj)說明】;end 配置名;Configuration 配置名 of 實(shí)體名 isfor 選配構(gòu)造體名end for;end 配置名;默認(rèn)配置語句 共三十八頁VHDL程序(chngx)結(jié)構(gòu)圖共三十八頁作業(yè)(zuy):將例3-4畫出時(shí)序仿真圖,要求畫出輸入d0,d1,sel,輸出tmp1,tmp2,tmp3,q,其中(qzhng)輸入條件自己設(shè)置。共三十八頁內(nèi)容摘要適合班級(jí):。實(shí)體端口的模式

溫馨提示

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

評論

0/150

提交評論