(好)初步設計_第1頁
(好)初步設計_第2頁
(好)初步設計_第3頁
(好)初步設計_第4頁
(好)初步設計_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、v原理圖輸入與 VHDL文本輸入設計的區(qū)別Graphic is what you draw is what you getv“ tell me what hardware you want and I will give it to you”VHDL is what you write is what functional you getv“ tell me how your circuit should behave and the VHDL compiler will give you the hardware that does the job”v but the designer ca

2、n not control how the circuit implement什么是VHDL? Very high speed integrated Hardware Description Language (VHDL)是IEEE、工業(yè)標準硬件描述語言用語言的方式而非圖形等方式描述硬件電路v容易修改v容易保存特別適合于設計的電路有:v復雜組合邏輯電路,如: 譯碼器、編碼器、加減法器、多路選擇器、地址譯碼器.v狀態(tài)機v等等.VHDL的功能和標準的功能和標準v VHDL 描述輸入端口輸出端口電路的行為和功能vVHDL有過兩個標準:IEEE Std 1076-1987 (called VHDL 1

3、987)IEEE Std 1076-1993 (called VHDL 1993)【例5-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 ;實體結構體5.1 多路選擇器多路選擇器VHDL描述描述5.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述5.1.1 2選選1多路選擇器的多路選擇器的VHDL描述

4、描述【例例5-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; BEGINd = a AND (NOT S) ;e = b AND s ;y = d OR e ; END ARCHITECTURE one ;【例【例5-3】 . . . ARCHITECTURE one OF mux21a IS BEGIN y = (a AND (NOT s) OR (b AND s) ; E

5、ND ARCHITECTURE one;5.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述【例【例5-4】 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 ;5.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述圖圖5-

6、3 mux21a功能時序波形功能時序波形5.1.2 VHDL相關語句說明相關語句說明1. 1. 實體表達實體表達ENTITY e_name IS PORT ( p_name : port_m data_type; . p_namei : port_mi data_type );END ENTITY e_name;或:或:ENTITY e_name IS PORT ( p_name : port_m data_type; . p_namei : port_mi data_type );END e_name;5.1.2 VHDL相關語句說明相關語句說明2. 2. 實體名實體名3. 3. PORT語

7、句和端口信號名語句和端口信號名4. 4. 端口模式端口模式5. 5. 數(shù)據(jù)類型數(shù)據(jù)類型BITINOUTINOUTBUFFER5.1.2 VHDL相關語句說明相關語句說明6. 6. 結構體表達結構體表達ARCHITECTURE arch_name OF e_name IS (說明語句說明語句)BEGIN (功能描述語句功能描述語句)END ARCHITECTURE arch_name ;或:或:ARCHITECTURE arch_name OF e_name IS (說明語句說明語句)BEGIN (功能描述語句功能描述語句)END arch_name ;7. 7. 信號傳輸信號傳輸( (賦值賦值

8、) )符號和數(shù)據(jù)比較符號符號和數(shù)據(jù)比較符號8. 邏輯操作符邏輯操作符AND、OR、NOT9. IF_THEN條件語句條件語句10. WHEN_ELSE條件信號賦值語句條件信號賦值語句賦值目標賦值目標 = 表達式表達式 WHEN 賦值條件賦值條件 ELSE 表達式表達式 WHEN 賦值條件賦值條件 ELSE . 表達式表達式 ;11. PROCESS進程語句和順序語句進程語句和順序語句12. 12. 文件取名和存盤文件取名和存盤5.1.3 VHDL設計的基本概念和語句小節(jié)設計的基本概念和語句小節(jié)數(shù)據(jù)類型信號賦值符條件比較符 延時實體結構體端口定義端口模式邏輯操作符IF條件語句并行條件語句進程語句

9、順序語句并行語句文件取名文件存盤5.2 寄存器描述及其寄存器描述及其VHDL語言現(xiàn)象語言現(xiàn)象5.2.1 D觸發(fā)器的觸發(fā)器的VHDL描述描述【例5-9】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 ; ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC ; -類似于在芯片內部定義一個數(shù)據(jù)的暫存節(jié)點 BEGIN PROCESS (CLK)

10、BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; Q = Q1 ; -將內部的暫存數(shù)據(jù)向端口輸出 END PROCESS ; END bhv;D觸發(fā)器觸發(fā)器運算符加載注意,信號注意,信號端口模式和端口模式和數(shù)據(jù)類型的數(shù)據(jù)類型的改變!改變!注意,引注意,引進內部信進內部信號矢量!號矢量!用用VHDL設計設計4位計數(shù)器位計數(shù)器4位鎖存器位鎖存器組合電路加組合電路加1器器鎖存信號鎖存信號輸出反饋輸出反饋用用VHDL設計設計7段段16進制譯碼器進制譯碼器用用CASE語句完成真值表的功能語句完成真值表的功能向向7段數(shù)碼段數(shù)碼管輸出信號,管輸出信號,最

11、高位控制最高位控制小數(shù)點小數(shù)點注意,此語句必須加入注意,此語句必須加入4位加法位加法計數(shù)器計數(shù)器7段譯碼器段譯碼器8位總線輸出位總線輸出信信號號輸輸出出數(shù)據(jù)對象:信號Signal 和變量 VariablevSignal Assignmentreceive the assign value after a period of timevVariable Assignmenthappens immediately when the statement is executed, no delayRepresent CircuitRepresent local storageInterconnectG

12、lobal Scope (anywhere)Local Scope(inside process)Updated at end of PROCESSUpdated Immediately(new value not available)(new value available) SIGNALSVARIABLES UTILITY: SCOPE:BEHAVIOR:例例1 四選一多路選擇器設計四選一多路選擇器設計LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT (i0, i1, i2, i3, a, b : IN STD_LOGI

13、C; q : OUT STD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 ISsignal muxval : integer;BEGINprocess(i0,i1,i2,i3,a,b)beginmuxval = 0;if (a = 1) then muxval = muxval + 1;end if;if (b = 1) then muxval q q q q null;end case;end process; END body_mux4;Why ?LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY

14、 mux4 ISPORT (i0, i1, i2, i3, a, b : IN STD_LOGIC; q : OUT STD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 ISBEGINprocess(i0,i1,i2,i3,a,b)variable muxval : integer range 0 to 3;beginmuxval := 0;if (a = 1) then muxval := muxval + 1;end if;if (b = 1) then muxval := muxval + 2;end if;case muxval is

15、when 0 = q q q q null;end case;end process; END body_mux4;LIBRARY IEEE; 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 IBEGIN so = (a OR b)AND(a NAND b); co = NOT( a NAND b); END ARCHITECTURE fh1;例例2 一

16、位全加器設計一位全加器設計1位二進制半加器位二進制半加器1位二進制全加器位二進制全加器內部端口外部端口端口連線5.2.2 D觸發(fā)器觸發(fā)器VHDL描述的語言現(xiàn)象說明描述的語言現(xiàn)象說明1. 1. 標準邏輯位數(shù)據(jù)類型標準邏輯位數(shù)據(jù)類型STD_LOGICBIT數(shù)據(jù)類型定義: TYPE BIT IS(0,1);STD_LOGIC數(shù)據(jù)類型定義:TYPE STD_LOGICIS(U,X,0,1,Z,W,L,H,-);TYPE STD_LOGICIS(U,X,0,1,Z,W,L,H,-);STD_LOGIC所定義的9種數(shù)據(jù)的含義是:U表示未初始化的;表示未初始化的; X表示強未知的;表示強未知的; 0表示強邏

17、輯表示強邏輯0; 1表示強邏輯表示強邏輯1; Z表示高阻態(tài);表示高阻態(tài); W 表示弱未知的;表示弱未知的; L表示弱邏輯表示弱邏輯0; H表示弱邏輯表示弱邏輯1; -表示忽略表示忽略。2. 2. 設計庫和標準程序包設計庫和標準程序包3. SIGNAL信號定義和數(shù)據(jù)對象信號定義和數(shù)據(jù)對象【例【例5-10】ARCHITECTURE bhv OF DFF1 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = D ; END IF; END PROCESS ;END ;使用庫和程序包的一般定義表式是: LIBRARY LIBRAR

18、Y ; USE USE .ALL ; ALL ; 5.2.2 D觸發(fā)器觸發(fā)器VHDL描述的語言現(xiàn)象說明描述的語言現(xiàn)象說明4. 4. 上升沿檢測表式和信號屬性函數(shù)上升沿檢測表式和信號屬性函數(shù)EVENTEVENT 關鍵詞EVENT是信號屬性,VHDL通過以下表式來測定某信號的跳變邊沿: EVENTEVENT5. 5. 不完整條件語句與時序電路不完整條件語句與時序電路【例【例5-11】ENTITY COMP_BAD IS PORT( a1 : IN BIT;b1 : IN BIT;q1 : OUT BIT ); END ; ARCHITECTURE one OF COMP_BAD IS BEGIN

19、PROCESS (a1,b1) BEGIN IF a1 b1 THEN q1 = 1 ; ELSIF a1 b1 THEN q1 b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; END PROCESS ; END 5.2.3 實現(xiàn)時序電路的實現(xiàn)時序電路的VHDL不同表達方式不同表達方式【例【例5-13】.PROCESS (CLK) BEGINIF CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0) THEN Q = D ; -確保確保CLK的變化是一次上升沿的跳變的變化是一次上升沿的跳變 END IF; END PROCESS ;

20、【例【例5-14】.PROCESS (CLK) BEGINIF CLK=1 AND CLKLAST_VALUE=0 -同例同例5-13 THEN Q = D ; END IF; END PROCESS ;【例【例5-15】LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF3 IS PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1 : STD_LOGIC; BEGIN P

21、ROCESS (CLK) BEGIN IF rising_edge(CLK) - CLK的數(shù)據(jù)類型必須是的數(shù)據(jù)類型必須是STD_LOGIC THEN Q1 = D ; END IF; Q = Q1 ; END PROCESS ; END ;【例5-16】 . PROCESS BEGIN wait until CLK = 1 ; -利用利用wait語句語句 Q = D ; END PROCESS;【例5-17】. PROCESS (CLK) BEGIN IF CLK = 1 THEN Q = D ;-利用進程的啟動特性產(chǎn)生對利用進程的啟動特性產(chǎn)生對CLK的邊沿檢測的邊沿檢測 END IF; EN

22、D PROCESS ;【例5-18】. PROCESS (CLK,D) BEGIN IF CLK = 1 -電平觸發(fā)型寄存器電平觸發(fā)型寄存器 THEN Q = D ; END IF; END PROCESS ;圖圖5-7 邊沿型觸發(fā)器時序波形邊沿型觸發(fā)器時序波形圖圖5-8 電平觸發(fā)型寄存器的時序波形電平觸發(fā)型寄存器的時序波形5.2.4 異步時序電路設計異步時序電路設計【例例5-19】. ARCHITECTURE bhv OF MULTI_DFF IS SIGNAL Q1,Q2 : STD_LOGIC; BEGINPRO1: PROCESS (CLK) BEGIN IF CLKEVENT AND

23、 CLK=1 THEN Q1 = NOT (Q2 OR A); END IF; END PROCESS ;PRO2:PROCESS (Q1) BEGIN IF Q1EVENT AND Q1=1 THEN Q2 = D; END IF; QQ = Q2 ; END PROCESS ; 圖圖5-9 例例5-19綜合的電路綜合的電路5.2.5 VHDL設計基本概念和語言現(xiàn)象小節(jié)設計基本概念和語言現(xiàn)象小節(jié)數(shù)據(jù)類型數(shù)據(jù)對象信號屬性時鐘檢測VHDL庫程序包時序電路異步時序5.3 1位二進制全加器的位二進制全加器的VHDL設計設計圖圖5-10半加器半加器h_adder電路圖電路圖圖圖5-11 全加器全加器f

24、_adder電路圖電路圖5.3.1 半加器描述和半加器描述和CASE語句語句absoco0000011010101101表表5-1 半加器半加器h_adder邏輯功能真值表邏輯功能真值表1. 1. CASE語句語句CASE語句的一般表式是:語句的一般表式是:CASE ISWhen = ; . ; ;When = ; . ; ;.END CASE ;2. 標準邏輯矢量數(shù)據(jù)類型標準邏輯矢量數(shù)據(jù)類型STD_LOGIC_VECTOR3. 3. 并置操作符并置操作符 以下是一些并置操作示例:以下是一些并置操作示例:SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ;SIG

25、NAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ; .a = 1 0 d(1) 1 ; - 元素與元素并置,并置后的數(shù)組長度為元素與元素并置,并置后的數(shù)組長度為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)【例【例5-20】 LIBRARY IEEE ;-或門邏輯描述或門邏輯描述

26、 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 fu1;【例【例5-21】LIBRARY IEEE; -半加器描述半加器描述(1)USE IEEE.STD_LOGIC_1164.ALL; ENTITY adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT S

27、TD_LOGIC); END ENTITY adder; ARCHITECTURE fh1 OF adder is BEGIN so = NOT(a XOR (NOT b) ; co = a AND b ; END ARCHITECTURE fh1; 【例5-22】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

28、h_adder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ;BEGIN abc so=0; co so=1; co so=1; co so=0; co NULL ; END CASE; END PROCESS;END ARCHITECTURE fh1 ;【例【例5-22】 . -半加器描述半加器描述(3) SIGNAL abc,cso : STD_LOGIC_VECTOR(1 DOWNTO 0 ); BEGIN abc = a&b ; co = cso(1) ; so cso cso cso csoain,b=bin,co=d,so=e)

29、; 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;5.3.2 全加器描述和例化語句全加器描述和例化語句 元件例化語句由兩部分組成,第一部分是對一個現(xiàn)成的設計實體定元件例化語句由兩部分組成,第一部分是對一個現(xiàn)成的設計實體定義為一個元件,語句的功能是對待調用的元件作出調用聲明,它的最義為一個元件,語句的功能是對待調用的元件作出調用聲明,它的最簡表達式如下所示:簡表達式如下所示: COMPONENT 元件名元件名 IS PORT (端

30、口名表端口名表) ; END COMPONENT 文件名文件名 ; 元件例化語句的第二部分則是此元件與當前設計實體元件例化語句的第二部分則是此元件與當前設計實體(頂層文件頂層文件)中中元件間及端口的連接說明。語句的表達式如下:元件間及端口的連接說明。語句的表達式如下: 例化名例化名 : 元件名元件名 PORT MAP( 端口名端口名 = 連接端口名連接端口名,.);STEP1:建立 工作庫文件夾STEP2:輸入設計項目原理圖/VHDL文本代碼STEP3:存盤,注意 原理圖/文本取名STEP4:將設計項目設置成Project STEP11: 硬件測試STEP8:仿真測 試和波形分析STEP7:建立仿真波形文件STEP6:啟動編譯STEP5:選擇目標器件STEP10:編程 下載/配置STEP9:引腳鎖定并編譯VHDL文本輸入設計流程 5.4 VHDL文本輸入設計方法初步文本輸入設計方法初步為設計全加器新建一個文件夾作工作庫文件夾名取為My_prjct注意,不可用中文!編輯輸入并保存編輯輸入并保存VHDL源文件源文件新建一個設計文件使用文本輸入方法設計,必須選擇打開文本編輯器在文本編輯窗中輸入在文本編輯窗中輸入VHDL文件并存盤文件并存盤文本編輯窗用鍵盤輸入設計文件:多路選擇器存盤文件名必須取為:mux21a.vhd注意,要存在自己建

溫馨提示

  • 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

提交評論