




已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章 VHDL設(shè)計(jì)初步,什么是VHDL?,Very high speed integrated Hardware Description Language (VHDL) 是IEEE、工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言 用語(yǔ)言的方式而非圖形等方式描述硬件電路 容易修改 容易保存,【例4-1】 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 s = 0 ELSE b ; END ARCHITECTURE one ;,實(shí)體,結(jié)構(gòu)體,4.1 多路選擇器VHDL描述,4.1.1 2選1多路選擇器的VHDL描述,【例4-2】 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; BEGIN d = a AND (NOT S) ; e = b AND s ; y = d OR e ; END ARCHITECTURE one ;,【例】 . . . ARCHITECTURE one OF mux21a IS BEGIN y = (a AND (NOT s) OR (b AND s) ; END one;,【例4-3】 ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT ); END 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 ;,圖4-3 mux21a功能時(shí)序波形,4.1.2 VHDL相關(guān)語(yǔ)句說(shuō)明,1. 實(shí)體表達(dá),【例4-4】 ENTITY e_name IS PORT ( p_name : port_m data_type; . 端口信號(hào)名 : 端口模式 數(shù)據(jù)類(lèi)型 ); END ENTITY e_name;,2. 實(shí)體名 不能用數(shù)字開(kāi)頭定義實(shí)體名; 不能用中文定義實(shí)體名,3. PORT語(yǔ)句(包括端口信號(hào)名:端口模式,數(shù)據(jù)類(lèi)型),4. 端口模式,IN,OUT,INOUT,BUFFER,5. 數(shù)據(jù)類(lèi)型BIT 主要包括:Integer(整數(shù));Boolean(布爾);STD_LOGIC(標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類(lèi)型);BIT(位數(shù)據(jù)類(lèi)型) BIT數(shù)據(jù)類(lèi)型的信號(hào)規(guī)定的取值范圍是邏輯位0、1。在VHDL中,邏輯位0、1 必須加單引號(hào),否則被認(rèn)定為整數(shù)數(shù)據(jù)類(lèi)型。,6. 結(jié)構(gòu)體表達(dá),ARCHITECTURE arch_name OF e_name IS (說(shuō)明語(yǔ)句) BEGIN (功能描述語(yǔ)句) END arch_name ;,7. 信號(hào)傳輸(賦值)符號(hào) 賦值操作y=a并非立即發(fā)生的,而要經(jīng)過(guò)一個(gè)模擬器的最小分辨時(shí)間后,才將a的值賦給y。 賦值符=兩邊的信號(hào)的數(shù)據(jù)類(lèi)型必須一致。,8. 邏輯操作符 AND(與);OR(或);NOT(非); NAND(與非);NOR(或非);XOR(異或); XNOR(同或),9. IF_THEN條件語(yǔ)句 IF s = 0 THEN y = a ; ELSE y = b ; END IF;,10. WHEN_ELSE條件信號(hào)賦值語(yǔ)句,賦值目標(biāo) = 表達(dá)式 WHEN 賦值條件 ELSE 表達(dá)式 WHEN 賦值條件 ELSE . 表達(dá)式 ;,11. PROCESS進(jìn)程語(yǔ)句和順序語(yǔ)句 PROCESS (a,b,s) 只要敏感信號(hào)a、b、s某一個(gè)發(fā)生變化,將啟動(dòng)此進(jìn)程; 執(zhí)行一遍后,便進(jìn)入等待狀態(tài)。,4.2 寄存器描述及其VHDL語(yǔ)言現(xiàn)象,4.2.1 D觸發(fā)器的VHDL描述,【例4-6】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END DFF1; ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC ; -定義一個(gè)數(shù)據(jù)的暫存節(jié)點(diǎn) BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; Q = Q1 ; -將內(nèi)部的暫存數(shù)據(jù)向端口輸出 END PROCESS ; END bhv;,D觸發(fā)器,4.2.2 D觸發(fā)器VHDL描述的語(yǔ)言現(xiàn)象說(shuō)明,1. 標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類(lèi)型STD_LOGIC,BIT數(shù)據(jù)類(lèi)型定義: TYPE BIT IS ( 0 , 1 ) ;,STD_LOGIC數(shù)據(jù)類(lèi)型定義: TYPE STD_LOGIC IS (U ,X ,0,1, Z,W ,L,H, - ) ;,STD_LOGIC所定義的9種數(shù)據(jù)的含義是: U表示未初始化的; X表示強(qiáng)未知的; 0表示強(qiáng)邏輯0; 1表示強(qiáng)邏輯1; Z表示高阻態(tài); W 表示弱未知的; L表示弱邏輯0; H表示弱邏輯1; -表示忽略。,可綜合的,常用,不可綜合的,不常用,2. 設(shè)計(jì)庫(kù)和標(biāo)準(zhǔn)程序包,3. SIGNAL信號(hào)定義和數(shù)據(jù)對(duì)象,SIGNAL Q1 : STD_LOGIC ; 前者:規(guī)定的數(shù)據(jù)對(duì)象是信號(hào),表示Q1的行為方式和功能特點(diǎn); 后者:表示數(shù)據(jù)類(lèi)型是STD_LOGIC ,限定了Q1的取值范圍。,使用庫(kù)和程序包的一般定義表式是: LIBRARY ; -表示打開(kāi)設(shè)計(jì)庫(kù) USE ALL ; -允許使用設(shè)計(jì)庫(kù)中程序包中的所有內(nèi)容,4. 上升沿檢測(cè)表式和信號(hào)屬性函數(shù)EVENT,關(guān)鍵詞EVENT是信號(hào)屬性,VHDL通過(guò)以下表式來(lái)測(cè)定某信號(hào)的跳變邊沿: EVENT,5. 不完整條件語(yǔ)句與時(shí)序電路,【例4-7】 ENTITY COMP_BAD IS PORT( a1 : IN BIT; b1 : IN BIT; q1 : OUT BIT ); END COMP_BAD; ARCHITECTURE one OF COMP_BAD IS BEGIN PROCESS (a1,b1) BEGIN IF a1 b1 THEN q1 = 1 ; ELSIF a1 b1 THEN q1 = 0 ; END IF; END PROCESS ; END one;,-未提及當(dāng)a1=b1時(shí),q1作何操作,【例4-8】 ENTITY COMP_GOOD IS PORT(a1 : IN BIT; b1 : IN BIT; q1 : OUT BIT ); END COMP_GOOD; ARCHITECTURE one OF COMP_GOOD IS BEGIN PROCESS (a1,b1) BEGIN IF a1 b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; END PROCESS ; END one;,修改后的條件語(yǔ)句與時(shí)序電路,4.2.3 實(shí)現(xiàn)時(shí)序電路的VHDL不同表達(dá)方式,【例4-9】 . PROCESS (CLK) BEGIN IF CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0) THEN Q = D ; -確保CLK的變化是一次上升沿的跳變 END IF; END PROCESS ;,【例4-10】 . PROCESS (CLK) BEGIN IF CLK=1 AND CLKLAST_VALUE=0 THEN Q = D ; END IF; END PROCESS ;,【例4-12】 . PROCESS BEGIN wait until CLK = 1 ; -利用wait語(yǔ)句 Q = D ; END PROCESS;,【例4-13】 PROCESS (CLK) BEGIN IF CLK = 1 THEN Q = D ; END IF; END PROCESS ;,【例4-14】PROCESS (CLK,D) BEGIN IF CLK = 1 THEN Q = D ; END IF; END PROCESS ;,-利用進(jìn)程的啟動(dòng)特性產(chǎn)生對(duì)CLK的邊沿檢測(cè),-電平觸發(fā)型寄存器,4.3 1位二進(jìn)制全加器的VHDL設(shè)計(jì),圖4-11半加器h_adder電路圖,圖4-10 全加器f_adder電路圖,25,4.3.1-4.3.2 半加器描述和CASE語(yǔ)句,a b so co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1,半加器h_adder邏輯功能真值表,1. CASE語(yǔ)句,CASE語(yǔ)句的一般表式是:,CASE IS When = ; When = ; . END CASE ;,2. 標(biāo)準(zhǔn)邏輯矢量數(shù)據(jù)類(lèi)型STD_LOGIC_VECTOR,3. 并置操作符 ,SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ; SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ; . a = 1 0 d(1) 1 ; - 元素與元素并置,并置后的數(shù)組長(zhǎng)度為4 . IF a d = “101011“ THEN . - 在IF條件句中可以使用并置符,在使用STD_LOGIC_VECTOR中,必須注明其數(shù)組寬度,即位寬,如: B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; 或 SIGNAL A :STD_LOGIC_VECTOR(1 TO 4),4.3.1-4.3.2 半加器描述和CASE語(yǔ)句,【例4-18】 LIBRARY IEEE ;-或門(mén)邏輯描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a, b :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c = a OR b ; END ARCHITECTURE one;,【例4-16】 LIBRARY IEEE; -半加器描述(1) USE IEEE.STD_LOGIC_1164.ALL; ENTITY adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY adder; ARCHITECTURE fh1 OF adder is BEGIN so = NOT(a XOR (NOT b) ; co = a AND b ; END ARCHITECTURE fh1;,【例4-17】 LIBRARY IEEE; -半加器描述(2) USE IEEE . STD_LOGIC_1164 . ALL ; ENTITY h_adder IS PORT ( a , b : IN STD_LOGIC ; co , so : OUT STD_LOGIC ) ; END ENTITY h_adder ; ARCHITECTURE fh1 OF h_adder is SIGNAL abc : STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ; BEGIN abc so so so so NULL ; END CASE ; END PROCESS ; END ARCHITECTURE fh1 ;,【例】 . -半加器描述(3) SIGNAL abc , cso : STD_LOGIC_VECTOR(1 DOWNTO 0 ); BEGIN abc cso cso cso cso = “10“ ; END CASE; END PROCESS; END ARCHITECTURE fh1;,【例4-19】 LIBRARY IEEE; -1位二進(jìn)制全加器頂層設(shè)計(jì)描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder IS PORT (ain,bin,cin : IN STD_LOGIC; cout,sum : OUT STD_LOGIC ); END ENTITY f_adder; ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder -調(diào)用半加器聲明語(yǔ)句 PORT ( a,b : IN STD_LOGIC; co,so : OUT STD_LOGIC); END COMPONENT ; COMPONENT or2a PORT (a,b : IN STD_LOGIC; c : OUT STD_LOGIC); END COMPONENT; SIGNAL d,e,f : STD_LOGIC; -定義3個(gè)信號(hào)作為內(nèi)部的連接線(xiàn) BEGIN u1 : h_adder PORT MAP(a=ain,b=bin,co=d,so=e); u2 : h_adder PORT MAP(a=e, b=cin,co=f,so=sum); u3 : or2a PORT MAP(a=d, b=f, c=cout); END ARCHITECTURE fd1;,26,19,4.3.3 全加器描述和例化語(yǔ)句,元件例化語(yǔ)句由兩部分組成: (1)第一部分是對(duì)一個(gè)現(xiàn)成的設(shè)計(jì)實(shí)體定義為一個(gè)元件,功能是對(duì)待調(diào)用的元件作出調(diào)用聲明。 COMPONENT 元件名 PORT (端口名表) ; END COMPONENT 元件名 ;,(2)元件例化語(yǔ)句的第二部分則是此元件與當(dāng)前設(shè)計(jì)實(shí)體(頂層文件)中元件間及端口的連接說(shuō)明。 例化名: 元件名 PORT MAP( 端口名 = 連接端口名,.);,25,【例4-20】 ENTITY CNT4 IS PORT(CLK:IN BIT ; Q:BUFFER INTEGER RANGE 15 DOWNTO 0); END CNT4; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = Q + 1 ; END IF; END PROCESS ; END bhv;,4.4 計(jì)數(shù)器設(shè)計(jì),4.1.1 4位二進(jìn)制加法計(jì)數(shù)器設(shè)計(jì),取整數(shù)數(shù)據(jù)類(lèi)型,整數(shù)取值范圍,端口信號(hào)模式取BUFFER,為什么?,注意整數(shù)和位的不同表達(dá)方式!,4.4.2 整數(shù)類(lèi)型,整數(shù)常量的書(shū)寫(xiě)方式示例如下: 1 十進(jìn)制整數(shù) 0 十進(jìn)制整數(shù) 35 十進(jìn)制整數(shù) 10E3 十進(jìn)制整數(shù) 16#D9# 十六進(jìn)制整數(shù) 8#720# 八進(jìn)制整數(shù) 2#11010010# 二進(jìn)制整數(shù),【例4-21】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END CNT4; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; END IF; END PROCESS ; Q = Q1 ; END bhv;,運(yùn)算符加載 (含+,-,*,=,=,/=,AND,MOD等,注意,信號(hào)端口模式和數(shù)據(jù)類(lèi)型的改變!,注意,引 進(jìn)內(nèi)部信 號(hào)矢量!,4.4.3 計(jì)數(shù)器設(shè)計(jì)的其他表述方法,圖4-12 4位加法計(jì)數(shù)器RTL電路(Synplify綜合),圖4-13 4位加法計(jì)數(shù)器工作時(shí)序,4.5 一般加法計(jì)數(shù)器設(shè)計(jì),LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10;,ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS(CLK, RST, EN) VARIABLE CQI: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST = 1 THEN CQI:= (OTHERS =0) ; -計(jì)數(shù)器復(fù)位 ELSIF CLKEVENT AND CLK=1 THEN -檢測(cè)時(shí)鐘上升沿 IF EN = 1 THEN -檢測(cè)是否允許計(jì)數(shù) IF CQI 0);-大于9,計(jì)數(shù)值清零 END IF; END IF; END IF; IF CQI = “1001“ THEN COUT = 1; -計(jì)數(shù)大于9,輸出進(jìn)位信號(hào) ELSE COUT = 0; END IF; CQ = CQI; -將計(jì)數(shù)值向端口輸出 END PROCESS; END behav;,4.5.1 相關(guān)語(yǔ)法,變量 主要用于數(shù)據(jù)的暫存。 省略賦值操作符(OTHERS=X),為了簡(jiǎn)化表達(dá)才使用短語(yǔ)“(OTHERS=X)”,這是一個(gè)省略賦值操作符,它可以在較多位的位矢量賦值中作省略化的賦值,如以下語(yǔ)句: SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0); . d1 0 ); a1 := (OTHERS =
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 太原師范學(xué)院《汽車(chē)展示設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴陽(yáng)人文科技學(xué)院《舞臺(tái)表演藝術(shù)與實(shí)踐(四)》2023-2024學(xué)年第二學(xué)期期末試卷
- 安順職業(yè)技術(shù)學(xué)院《工程招投標(biāo)與合同管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京政法職業(yè)學(xué)院《學(xué)前教育科學(xué)研究方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 哈爾濱遠(yuǎn)東理工學(xué)院《三維構(gòu)成基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 寶雞職業(yè)技術(shù)學(xué)院《高分子物理》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州商學(xué)院《節(jié)目主持藝術(shù)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東機(jī)電職業(yè)技術(shù)學(xué)院《中醫(yī)護(hù)理學(xué)基礎(chǔ)(Ⅰ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 婁底幼兒師范高等專(zhuān)科學(xué)?!陡咝阅苡?jì)算與云計(jì)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南有色金屬職業(yè)技術(shù)學(xué)院《創(chuàng)新創(chuàng)業(yè)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年大學(xué)英語(yǔ)四級(jí)詞匯表(亂序版)
- 特種設(shè)備操作人員培訓(xùn)管理制度范文(2篇)
- 2023-2024學(xué)年《軟件設(shè)計(jì)與體系結(jié)構(gòu)》模擬試卷及答案解析
- 土地政策學(xué)終結(jié)性考核-國(guó)開(kāi)(SC)-參考資料
- 《魚(yú)紋話(huà)吉祥》 課件 2024-2025學(xué)年嶺南美版(2024) 初中美術(shù)七年級(jí)上冊(cè)
- 2024年江西省高考地理真題(原卷版)
- 2024年新版全員消防安全知識(shí)培訓(xùn)
- 山東省2024年中考生物試卷七套合卷【附答案】
- 醫(yī)學(xué)影像檢查技術(shù)學(xué)智慧樹(shù)知到答案2024年浙江中醫(yī)藥大學(xué)
- 2024年福建廈門(mén)市海滄區(qū)市場(chǎng)監(jiān)督管理局招聘食品藥品協(xié)管員18人歷年高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 國(guó)開(kāi)(天津)基層安全與教育策劃與實(shí)施形考1-2試題及答案
評(píng)論
0/150
提交評(píng)論