版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、硬件描述語(yǔ)言第二章 VHDL語(yǔ)言代碼結(jié)構(gòu)物電學(xué)院 陶昌 標(biāo)識(shí)符 標(biāo)識(shí)符(Identifiers)由英文字母“a”到“z”、“A”到“Z”、數(shù)字“0”到“9”以及下劃線“_”組成使用時(shí)注意:1、VHDL不區(qū)分大小寫(xiě)2、標(biāo)識(shí)符一定要以字母開(kāi)頭3、下劃線不能放在結(jié)尾4、下劃線不能連用5、保留字(關(guān)鍵字)不能做標(biāo)識(shí)符1 建議將 VHDL 的標(biāo)識(shí)符或基本語(yǔ)句關(guān)鍵詞以大寫(xiě)方式表示, 而添加的內(nèi)容以小寫(xiě)方式來(lái);2 要求文件名必須與實(shí)體名一致。一般地 將 VHDL 程序的文件名取為此程序的實(shí)體名。附注:附注:文法格式關(guān)鍵字、標(biāo)識(shí)符:不區(qū)分大小寫(xiě);注釋?zhuān)?,且只在該文本行有效;分隔:;為行分隔,VHDL的語(yǔ)句行
2、可寫(xiě)在不同文本行中 ;空格:除關(guān)鍵字、標(biāo)識(shí)符自身中間不能插入空格外,其他地方可插入任意數(shù)目的空格 ;2.1 如何使用VHDL描述硬件實(shí)體?-eqcomp4 is a four bit equality omparatorLibrary 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
3、 a=b else 0;End dataflow;VHDL 大小寫(xiě)不敏感大小寫(xiě)不敏感eqcomp4.vhd包實(shí)體構(gòu)造體文件名和實(shí)體名一致每行;結(jié)尾關(guān)鍵字begin關(guān)鍵字end后跟實(shí)體名關(guān)鍵字end后跟構(gòu)造體名庫(kù)一般意義的VHDL結(jié)構(gòu)模式實(shí)體與結(jié)構(gòu)體實(shí)體與結(jié)構(gòu)體實(shí)體結(jié)構(gòu)體VHDL描述描述1 1 VHDL描述描述2 2 VHDL描述描述3 3 ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN
4、 s = 0 ELSE b;END ARCHITECTURE one ; ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGINd = a AND (NOT S) ;e = b AND s ;y = d OR e ; END ARCHITECTURE one ; ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT );END
5、 ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ;END IF; END PROCESS;END ARCHITECTURE one ; 如何才算一個(gè)完整的 VHDL 代碼? 一個(gè)完整的設(shè)計(jì)實(shí)體的最低要求應(yīng)該能為VHDL 綜合器所接受, 并能作為一個(gè)獨(dú)立設(shè)計(jì)單元 ,即元件的形式而存在的 VHDL 程序。 在 VHDL 程序中: LIBRARY、PACKAGE ENTITYARCHITECTURE 2.2 庫(kù) (LIBRARY)、程序包
6、(PACKAGE)定義:預(yù)先定義好的數(shù)據(jù)類(lèi)型 、子程序等設(shè)計(jì)單元的集合體、程序包、或預(yù)先設(shè)計(jì)好的各種設(shè)計(jì)實(shí)體、元件庫(kù)程序包。2.2. 1 庫(kù)的種類(lèi)(常用庫(kù))1. IEEE庫(kù):STD_LOGIC_1164、STD_LOGIC_ARITH、 STD_LOGIC_SIGNED、 STD_LOGIC_UNSIGNED;(必須顯式表達(dá))2. STD庫(kù):STANDARD 、 TEXTIO;(不必顯式表達(dá))3. WORK庫(kù):WORK 庫(kù)是用戶(hù)的 VHDL 設(shè)計(jì)的現(xiàn)行工作庫(kù) 用于存放用戶(hù)設(shè)計(jì)和定義的一些設(shè)計(jì)單元和程序包,因而是用戶(hù)的臨時(shí)倉(cāng)庫(kù),用戶(hù)設(shè)計(jì)項(xiàng)目的成品、半成品模塊以及先期已設(shè)計(jì)好的元件都放在其中。(不
7、必顯式表達(dá)) 常用包集PACKAGE :1 Ieee.std_logic_1164;(ieee庫(kù))2 Standard;(std庫(kù))3 Wok;(work庫(kù))2. 2.2 庫(kù)的用法 VHDL 語(yǔ)言中 庫(kù)的說(shuō)明語(yǔ)句總是放在實(shí)體單元,允許在一個(gè)設(shè)計(jì)實(shí)體中同時(shí)打開(kāi)多個(gè)不同的庫(kù) 但庫(kù)之間必須是相互獨(dú)立的例如: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ;USE語(yǔ)句常用格式:USE 庫(kù)名.程序包名.項(xiàng)目名 ;USE 庫(kù)名.程序包名.ALL ;2.3 實(shí) 體 (ENTITY) 實(shí)體是 VHDL的
8、基本設(shè)計(jì)單元,它可以對(duì)一個(gè)門(mén)電路、一個(gè)芯片、 一塊電路板乃至整個(gè)系統(tǒng)進(jìn)行接口描述。a 描述此設(shè)計(jì)功能輸入輸出端口(Port)b 在層次化設(shè)計(jì)時(shí),Port為模塊之間的接口c 在芯片級(jí),則代表具體芯片的管腳Entity eqcomp4 isport(a, b: in std_logic_vector(3 downto 0); equal:out std_logic );end eqcomp4;2.3.1實(shí)體語(yǔ)句結(jié)構(gòu)實(shí)體語(yǔ)句結(jié)構(gòu)實(shí)體說(shuō)明單元的常用語(yǔ)句結(jié)構(gòu):ENTITY 實(shí)體名 IS GENERIC ( 類(lèi)屬表 ) ; PORT ( 端口表 ) ;END ENTITY 實(shí)體名;GENERIC類(lèi)屬說(shuō)明語(yǔ)
9、句類(lèi)屬說(shuō)明語(yǔ)句 類(lèi)屬 GENERIC 參量是一種端口界面常數(shù) 常以一種說(shuō)明的形式放在實(shí)體或塊結(jié)構(gòu)體前的說(shuō)明部分, 類(lèi)屬為所說(shuō)明環(huán)境提供了一種靜態(tài)信息通道 。書(shū)寫(xiě)格式如下書(shū)寫(xiě)格式如下:GENERIC( 常數(shù)名 數(shù)據(jù)類(lèi)型 : 設(shè)定值 常數(shù)名 數(shù)據(jù)類(lèi)型 : 設(shè)定值 ) 其中的常數(shù)名常數(shù)名是由設(shè)計(jì)者確定的類(lèi)屬常數(shù)名,數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型通常取 INTEGER 或TIME 等類(lèi)型, 設(shè)定值設(shè)定值即為常數(shù)名所代表的數(shù)值 ,但需注意 VHDL 綜合器僅支持?jǐn)?shù)據(jù)類(lèi)型為整數(shù)的類(lèi)屬值。例如:例如:1 程序ENTITY mcu1 IS GENERIC (addrwidth : INTEGER := 16); PORT(
10、 add_bus : OUT STD_LOGIC_VECTOR(addrwidth-1 DOWNTO 0) );2 程序ENTITY PGAND2 IS GENERIC ( trise : TIME := 1 ns; tfall : TIME := 1 ns ) ; PORT ( a1 : IN STD_LOGIC ; a0 : IN STD_LOGIC ; z0 : OUT STD_LOGIC );END ENTITY PGAND2; 2.3.2 PORT 端口說(shuō)明PORT 引導(dǎo)的端口說(shuō)明語(yǔ)句是對(duì)一個(gè)設(shè)計(jì)實(shí)體界面的說(shuō)明。其端口表部分對(duì)設(shè)計(jì)實(shí)體與外部電路的接口通道進(jìn)行了說(shuō)明 ,其中包括對(duì)每一接
11、口的輸入輸出模式( MODE或稱(chēng)端口模式) 和數(shù)據(jù)類(lèi)型( TYPE) 進(jìn)行了定義。一般書(shū)寫(xiě)格式如下:PORT ( 端口名 : 端口模式 數(shù)據(jù)類(lèi)型 端口名 : 端口模式 數(shù)據(jù)類(lèi)型 ) ; 端口名端口名是設(shè)計(jì)者為實(shí)體的每一個(gè)對(duì)外通道所取的名字; 端口模式端口模式是指這些通道上的數(shù)據(jù)流動(dòng)方式 (輸入或輸出等);數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型是指端口上流動(dòng)的數(shù)據(jù)的表達(dá)格式或取值類(lèi)型。端口信號(hào)、內(nèi)部信號(hào)和操作數(shù)的數(shù)據(jù)類(lèi)型有嚴(yán)格的規(guī)定,只有相同數(shù)據(jù)類(lèi)型的端口信號(hào)和操作數(shù)才能相互作用。例如:3程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL ;-ENTITY nand2 IS PORT
12、(a : IN STD_LOGIC ; b : IN STD_LOGIC ; c : OUT STD_LOGIC ) ;END nand2 ;.常用端口模式:常用端口模式:IN、OUT、INOUT、BUFFER IN:IN 定義的通道確定為輸入端口,并規(guī)定為單向只讀模式, 可以通過(guò)此端口將變量(Variable)信息或信號(hào) (Signal)信息讀入設(shè)計(jì)實(shí)體中;常用端口模式常用端口模式 OUT: OUT 定義的通道確定為輸出端口,并規(guī)定為單向輸出模式,可以通過(guò)端口將信號(hào)輸出設(shè)計(jì)實(shí)體, 或者說(shuō)可以將設(shè)計(jì)實(shí)體中的信號(hào)向此端口賦值。entity常用端口模式常用端口模式 INOUT:定義的通道確定為輸入
13、輸出雙向端口,:定義的通道確定為輸入輸出雙向端口,可以對(duì)此端口進(jìn)行賦值可以對(duì)此端口進(jìn)行賦值 ,也可以通過(guò)此端口讀入,也可以通過(guò)此端口讀入外部的數(shù)據(jù)信息。外部的數(shù)據(jù)信息。常用端口模式常用端口模式 BUFFER:BUFFER 模式從本質(zhì)上將仍是模式從本質(zhì)上將仍是 OUT 模式模式 ,只是在內(nèi)部結(jié)構(gòu)中具有將輸出至外端口的信號(hào)回讀的功只是在內(nèi)部結(jié)構(gòu)中具有將輸出至外端口的信號(hào)回讀的功能能 ,即允許內(nèi)部回讀輸出的信號(hào),即允許內(nèi)部回讀輸出的信號(hào),即允許反饋。即允許反饋。 可以從實(shí)體輸出至外部;可以從實(shí)體輸出至外部;外部;外部; 也可以從端口回讀該輸出值至實(shí)體;也可以從端口回讀該輸出值至實(shí)體; 不可以從外部輸
14、入至實(shí)體;不可以從外部輸入至實(shí)體; 單向端口(偽雙向端口);單向端口(偽雙向端口);Out與Buffer的區(qū)別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: out std_logic ); end test2; architecture a of t
15、est2 is begin b = not(a); c = b; end a;端口描述數(shù)據(jù)類(lèi)型端口描述數(shù)據(jù)類(lèi)型位( BIT)和位矢量 (BIT_VECTOR)位( BIT):其信號(hào)值是一個(gè) 1 位的二進(jìn)制數(shù) 取值只能是 0 或 1; 例如:PORT(a : IN STD_LOGIC ;位矢量 (BIT_VECTOR):其信號(hào)值是一組二進(jìn)制數(shù); 例如:PORT( add_bus : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) )2.4 結(jié)構(gòu)體 (構(gòu)造體)(ARCHITECTURE)結(jié)構(gòu)體描述設(shè)計(jì)實(shí)體的內(nèi)部結(jié)構(gòu)和結(jié)構(gòu)體描述設(shè)計(jì)實(shí)體的內(nèi)部結(jié)構(gòu)和/或外部設(shè)計(jì)實(shí)體端口或外部設(shè)計(jì)實(shí)
16、體端口間的邏輯關(guān)系。間的邏輯關(guān)系。結(jié)構(gòu)體是實(shí)體所定義的設(shè)計(jì)實(shí)體中的一個(gè)組成部分。結(jié)構(gòu)體基本層次組成2.4.1 結(jié)構(gòu)體的一般語(yǔ)言格式ARCHITECTURE 結(jié)構(gòu)體名 OF 實(shí)體名 IS 說(shuō)明語(yǔ)句;BEGIN 功能描述語(yǔ)句;END ARCHITECTURE 結(jié)構(gòu)體名; 實(shí)體名實(shí)體名必須是所在設(shè)計(jì)實(shí)體的名字,而結(jié)構(gòu)體名結(jié)構(gòu)體名可以由設(shè)計(jì)者自己選擇。 當(dāng)一個(gè)實(shí)體具有多個(gè)結(jié)構(gòu)體時(shí),結(jié)構(gòu)體的取名不可相重; 結(jié)構(gòu)體的說(shuō)明語(yǔ)句部分必須放在關(guān)鍵詞“ ARCHITECTURE ”和“ BEGIN” 之間; 結(jié)構(gòu)體必須以 “END ARCHITECTURE 結(jié)構(gòu)體名” 作為結(jié)束句。結(jié)構(gòu)體的結(jié)構(gòu)體的結(jié)構(gòu)描述結(jié)構(gòu)描述
17、方式方式(1位全加器)位全加器)ARCHITECTURE structure OF adder ISCOMPONENT and_2PORT( i1, i2 : IN BIT; y1: OUTBIT);END COMPONENT; COMPONENT or_2 PORT( i3, i4: INBIT; y2: OUTBIT);END COMPONENT; COMPONENT xor_2 PORT( a, b: INBIT; c: OUTBIT);END COMPONENT; SIGNAL tmp1,tmp2,tmp3 : BIT; BEGINu1: xor_2 PORT MAP (a,b,tmp1);u2: xor_2 PORT MAP (tmp1,cin); u3: and_2 PORT MAP (tmp1,cin,tmp2);u4: and_2 PORT MAP (a,b,tmp3);u5:or_2 PORT MAP (tmp2,tmp3,co); END structure; 元件模塊ENTITY or_2 ISPORT( i3, i4: INBIT; y2 : OUTBIT);E
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 5《協(xié)商決定班級(jí)事務(wù)》(說(shuō)課稿)-部編版道德與法治五年級(jí)上冊(cè)
- 基于2025年度業(yè)績(jī)目標(biāo)的餐飲店面館飯店管理合同3篇
- 24 延安我把你追尋說(shuō)課稿-2024-2025學(xué)年四年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- 二零二五年汽車(chē)維修連鎖品牌代理商合同范本2篇
- 2025年度智能巡更系統(tǒng)安防施工工程協(xié)議3篇
- 二零二五年度民辦學(xué)校教師教育教學(xué)改革合作協(xié)議4篇
- Unit 4 Section A 2a-2f 說(shuō)課稿 2024-2025學(xué)年人教版英語(yǔ)七年級(jí)上冊(cè)001
- 二零二五版高端餐飲連鎖加盟合作協(xié)議書(shū)模板3篇
- 8 安全記心上-《119的警示》(說(shuō)課稿)統(tǒng)編版道德與法治六年級(jí)下冊(cè)
- 2021-2026年中國(guó)四季豆市場(chǎng)競(jìng)爭(zhēng)態(tài)勢(shì)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- MT/T 199-1996煤礦用液壓鉆車(chē)通用技術(shù)條件
- GB/T 6144-1985合成切削液
- GB/T 10357.1-2013家具力學(xué)性能試驗(yàn)第1部分:桌類(lèi)強(qiáng)度和耐久性
- 第三方在線糾紛解決機(jī)制(ODR)述評(píng),國(guó)際商法論文
- 第5章-群體-團(tuán)隊(duì)溝通-管理溝通
- 腎臟病飲食依從行為量表(RABQ)附有答案
- 深基坑-安全教育課件
- 園林施工管理大型園林集團(tuán)南部區(qū)域養(yǎng)護(hù)標(biāo)準(zhǔn)圖例
- 排水許可申請(qǐng)表
- 低血糖的觀察和護(hù)理課件
- 計(jì)量檢定校準(zhǔn)技術(shù)服務(wù)合同協(xié)議書(shū)
評(píng)論
0/150
提交評(píng)論