設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別_第1頁
設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別_第2頁
設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別_第3頁
設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別_第4頁
設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別原理圖輸入與

VHDL文本輸入設(shè)計的區(qū)別Graphiciswhatyoudrawiswhatyouget“tellmewhathardwareyouwantandIwillgiveittoyou”VHDLiswhatyouwriteiswhatfunctionalyouget“tellmehowyourcircuitshouldbehaveandtheVHDLcompilerwillgiveyouthehardwarethatdoesthejob”butthedesignercannotcontrolhowthecircuitimplement設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別什么是VHDL?

VeryhighspeedintegratedHardwareDescription

Language(VHDL)是IEEE、工業(yè)標準硬件描述語言用語言的方式而非圖形等方式描述硬件電路容易修改容易保存特別適合于設(shè)計的電路有:復(fù)雜組合邏輯電路,如:譯碼器、編碼器、加減法器、多路選擇器、地址譯碼器…...狀態(tài)機等等……..設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別VHDL的功能和標準

VHDL描述輸入端口輸出端口電路的行為和功能VHDL有過兩個標準:IEEEStd1076-1987(calledVHDL1987)IEEEStd1076-1993(calledVHDL1993)設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別【例5-1】ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINy<=aWHENs='0'ELSEb;ENDARCHITECTUREone;實體結(jié)構(gòu)體5.1多路選擇器VHDL描述5.1.12選1多路選擇器的VHDL描述設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.1.12選1多路選擇器的VHDL描述【例5-2】

ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISSIGNALd,e:BIT;BEGINd<=aAND(NOTS);e<=bANDs;y<=dORe;ENDARCHITECTUREone;【例5-3】...

ARCHITECTUREoneOFmux21aISBEGINy<=(aAND(NOTs))OR(bANDs);ENDARCHITECTUREone;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.1.12選1多路選擇器的VHDL描述【例5-4】

ENTITYmux21aISPORT(a,b,s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINPROCESS(a,b,s)BEGINIFs='0'THENy<=a;ELSEy<=b;ENDIF;ENDPROCESS;ENDARCHITECTUREone;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.1.12選1多路選擇器的VHDL描述圖5-3mux21a功能時序波形設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.1.2VHDL相關(guān)語句說明1.實體表達ENTITYe_nameISPORT(p_name:port_mdata_type;...p_namei:port_midata_type);ENDENTITYe_name;或:ENTITYe_nameISPORT(p_name:port_mdata_type;...p_namei:port_midata_type);ENDe_name;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.1.2VHDL相關(guān)語句說明2.實體名3.PORT語句和端口信號名4.端口模式5.數(shù)據(jù)類型BITINOUTINOUTBUFFER設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.1.2VHDL相關(guān)語句說明6.結(jié)構(gòu)體表達ARCHITECTUREarch_nameOFe_nameIS(說明語句)BEGIN(功能描述語句)ENDARCHITECTUREarch_name;或:ARCHITECTUREarch_nameOFe_nameIS(說明語句)BEGIN(功能描述語句)ENDarch_name;7.信號傳輸(賦值)符號和數(shù)據(jù)比較符號設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別8.邏輯操作符AND、OR、NOT9.IF_THEN條件語句10.WHEN_ELSE條件信號賦值語句賦值目標<=表達式WHEN賦值條件ELSE

表達式WHEN賦值條件ELSE...

表達式;11.PROCESS進程語句和順序語句12.文件取名和存盤設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.1.3VHDL設(shè)計的基本概念和語句小節(jié)數(shù)據(jù)類型信號賦值符條件比較符延時實體結(jié)構(gòu)體端口定義端口模式邏輯操作符IF條件語句并行條件語句進程語句順序語句并行語句文件取名文件存盤設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.2寄存器描述及其VHDL語言現(xiàn)象5.2.1D觸發(fā)器的VHDL描述【例5-9】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF1ISPORT(CLK:INSTD_LOGIC;D:INSTD_LOGIC;Q:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF1IS

SIGNALQ1:STD_LOGIC;--類似于在芯片內(nèi)部定義一個數(shù)據(jù)的暫存節(jié)點

BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ1<=D;ENDIF;Q<=Q1;--將內(nèi)部的暫存數(shù)據(jù)向端口輸出

ENDPROCESS;ENDbhv;D觸發(fā)器設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別比較用4種不同語句的D觸發(fā)器VHDL程序Entitytest1isport(clk,d:inbit;q:outbit);endtest1;architecturebodyoftest1issignalq1:bit;beginprocess(clk)beginifclk='1'ANDclk’last_value='0'thenq1<=d;endif;q<=q1;endprocess;endtest1_body;LIBRARYIEEE;USEIEEE.std_logic_1164.all;Entitytest1isport(clk,d:inbit;q:outbit);endtest1;architecturebodyoftest1isbeginprocess(clk,d)beginifrising_edge(clk)thenq<=d;endif;endprocess;endtest1_body;Entitytest1isport(clk:inbit;d:inbit;q:outbit);endtest1;architecturebodyoftest1issignalq1:bit;beginprocess(clk,d)beginif(clk=‘1’)thenq1<=d;endif;q<=q1;endprocess;endbody;Entitytest1isport(clk:inbit;d:inbit;q:outbit);endtest1;architecturebodyoftest1issignalq1:bit;beginprocess(clk)beginif(clk=‘1’)thenq1<=d;endif;q<=q1;endprocess;endbody;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別用VHDL設(shè)計4位計數(shù)器AB01010101取整數(shù)數(shù)據(jù)類型,為什么?整數(shù)取值范圍端口信號模式取BUFFER,為什么?注意整數(shù)和位的不同表達方式!設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別修改后的程序注意,信號端口模式和數(shù)據(jù)類型的改變!注意,引進內(nèi)部信號矢量!設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別4位鎖存器鎖存信號綜合后的計數(shù)器電路RTL圖設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別用VHDL設(shè)計7段16進制譯碼器用CASE語句完成真值表的功能向7段數(shù)碼管輸出信號,最高位控制小數(shù)點設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別注意,此語句必須加入4位加法計數(shù)器7段譯碼器8位總線輸出信號輸出設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別數(shù)據(jù)對象:信號Signal和變量VariableSignalAssignmentreceivetheassignvalueafteraperiodoftimeVariableAssignmenthappensimmediatelywhenthestatementisexecuted,nodelayRepresentCircuit RepresentlocalstorageInterconnect GlobalScope(anywhere) LocalScope (insideprocess)UpdatedatendofPROCESS UpdatedImmediately(newvaluenotavailable) (newvalueavailable)

SIGNALS VARIABLES

UTILITY:

SCOPE:BEHAVIOR:設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別例1四選一多路選擇器設(shè)計LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux4ISPORT(i0,i1,i2,i3,a,b:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDmux4;ARCHITECTUREbody_mux4OFmux4ISsignalmuxval:integer;BEGINprocess(i0,i1,i2,i3,a,b)beginmuxval<=0;if(a='1')thenmuxval<=muxval+1;endif;if(b='1')thenmuxval<=muxval+2;endif;casemuxvaliswhen0=>q<=i0;when1=>q<=i1;when2=>q<=i2;when3=>q<=i3;whenothers=>null;endcase;endprocess;ENDbody_mux4;Why????設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux4ISPORT(i0,i1,i2,i3,a,b:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDmux4;ARCHITECTUREbody_mux4OFmux4ISBEGINprocess(i0,i1,i2,i3,a,b)variablemuxval:integerrange0to3;beginmuxval:=0;if(a='1')thenmuxval:=muxval+1;endif;if(b='1')thenmuxval:=muxval+2;endif;casemuxvaliswhen0=>q<=i0;when1=>q<=i1;when2=>q<=i2;when3=>q<=i3;whenothers=>null;endcase;endprocess;ENDbody_mux4;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderIS PORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREfh1OFh_adderIBEGIN so<=(aORb)AND(aNANDb); co<=NOT(aNANDb);ENDARCHITECTUREfh1;例2一位全加器設(shè)計1位二進制半加器設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別1位二進制全加器外部端口設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.2.2D觸發(fā)器VHDL描述的語言現(xiàn)象說明1.標準邏輯位數(shù)據(jù)類型STD_LOGICBIT數(shù)據(jù)類型定義:

TYPEBITIS('0','1');STD_LOGIC數(shù)據(jù)類型定義:TYPESTD_LOGICIS('U','X','0','1','Z','W','L','H','-');STD_LOGIC所定義的9種數(shù)據(jù)的含義是:‘U’表示未初始化的;‘X’表示強未知的;‘0’表示強邏輯0;‘1’表示強邏輯1;‘Z’表示高阻態(tài);‘W’表示弱未知的;‘L’表示弱邏輯0;‘H’表示弱邏輯1;‘-’表示忽略。設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別2.設(shè)計庫和標準程序包3.SIGNAL信號定義和數(shù)據(jù)對象【例5-10】ARCHITECTUREbhvOFDFF1ISBEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ<=D;ENDIF;ENDPROCESS;END;使用庫和程序包的一般定義表式是:

LIBRARY<設(shè)計庫名>;

USE<設(shè)計庫名>.<程序包名>.ALL;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.2.2D觸發(fā)器VHDL描述的語言現(xiàn)象說明4.上升沿檢測表式和信號屬性函數(shù)EVENT關(guān)鍵詞EVENT是信號屬性,VHDL通過以下表式來測定某信號的跳變邊沿:

<信號名>'EVENT5.不完整條件語句與時序電路【例5-11】ENTITYCOMP_BADISPORT(a1:INBIT;b1:INBIT;q1:OUTBIT);END;ARCHITECTUREoneOFCOMP_BADISBEGINPROCESS(a1,b1)BEGINIFa1>b1THENq1<='1';ELSIFa1<b1THENq1<='0';--未提及當a1=b1時,q1作何操作ENDIF;ENDPROCESS;END;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別RTL級電路結(jié)構(gòu)圖5-6例5-12的電路圖設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別【例5-12】ENTITYCOMP_GOODISPORT(a1:INBIT;b1:INBIT;q1:OUTBIT);END;ARCHITECTUREoneOFCOMP_GOODISBEGINPROCESS(a1,b1)BEGINIFa1>b1THENq1<='1';ELSEq1<='0';ENDIF;ENDPROCESS;END設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.2.3實現(xiàn)時序電路的VHDL不同表達方式【例5-13】...PROCESS(CLK)BEGINIFCLK'EVENTAND(CLK='1')AND(CLK'LAST_VALUE='0')THENQ<=D;--確保CLK的變化是一次上升沿的跳變

ENDIF;ENDPROCESS;【例5-14】...PROCESS(CLK)BEGINIFCLK='1'ANDCLK'LAST_VALUE='0'--同例5-13

THENQ<=D;ENDIF;ENDPROCESS;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別【例5-15】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF3ISPORT(CLK:INSTD_LOGIC;D:INSTD_LOGIC;Q:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF3ISSIGNALQ1:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFrising_edge(CLK)--CLK的數(shù)據(jù)類型必須是STD_LOGICTHENQ1<=D;ENDIF;Q<=Q1;ENDPROCESS;END;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別【例5-16】...

PROCESSBEGINwaituntilCLK='1';--利用wait語句

Q<=D;ENDPROCESS;【例5-17】...

PROCESS(CLK)BEGINIFCLK='1'THENQ<=D;--利用進程的啟動特性產(chǎn)生對CLK的邊沿檢測

ENDIF;ENDPROCESS;【例5-18】...

PROCESS(CLK,D)BEGINIFCLK='1'--電平觸發(fā)型寄存器

THENQ<=D;ENDIF;ENDPROCESS;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別圖5-7邊沿型觸發(fā)器時序波形圖5-8電平觸發(fā)型寄存器的時序波形設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.2.4異步時序電路設(shè)計【例5-19】...ARCHITECTUREbhvOFMULTI_DFFISSIGNALQ1,Q2:STD_LOGIC;BEGINPRO1:PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ1<=NOT(Q2ORA);ENDIF;ENDPROCESS;PRO2:PROCESS(Q1)BEGINIFQ1'EVENTANDQ1='1'THENQ2<=D;ENDIF;<=Q2;ENDPROCESS;圖5-9例5-19綜合的電路設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.2.5VHDL設(shè)計基本概念和語言現(xiàn)象小節(jié)數(shù)據(jù)類型數(shù)據(jù)對象信號屬性時鐘檢測VHDL庫程序包時序電路異步時序設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.31位二進制全加器的VHDL設(shè)計圖5-10半加器h_adder電路圖圖5-11全加器f_adder電路圖設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別5.3.1半加器描述和CASE語句a b so co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1表5-1半加器h_adder邏輯功能真值表1.CASE語句CASE語句的一般表式是:CASE<表達式>ISWhen<選擇值或標識符>=><順序語句>;...;<順序語句>;When<選擇值或標識符>=><順序語句>;...;<順序語句>;...ENDCASE;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別2.標準邏輯矢量數(shù)據(jù)類型STD_LOGIC_VECTOR3.并置操作符以下是一些并置操作示例:SIGNALa:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALd:STD_LOGIC_VECTOR(1DOWNTO0);...a<='1''0'd(1)'1';--元素與元素并置,并置后的數(shù)組長度為4...IFad="101011"THEN...–-在IF條件句中可以使用并置符在使用STD_LOGIC_VECTOR中,必須注明其數(shù)組寬度,即位寬,如:

B:OUTSTD_LOGIC_VECTOR(7DOWNTO0);或

SIGNALA:STD_LOGIC_VECTOR(1TO4)設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別【例5-20】

LIBRARYIEEE;--或門邏輯描述

USEIEEE.STD_LOGIC_1164.ALL;ENTITYor2aISPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDENTITYor2a;ARCHITECTUREoneOFor2aISBEGINc<=aORb;ENDARCHITECTUREfu1;【例5-21】LIBRARYIEEE;--半加器描述(1)USEIEEE.STD_LOGIC_1164.ALL;ENTITYadderISPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYadder;ARCHITECTUREfh1OFadderisBEGINso<=NOT(aXOR(NOTb));co<=aANDb;ENDARCHITECTUREfh1;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別【例5-22】LIBRARYIEEE;--半加器描述(2)USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREfh1OFh_adderisSIGNALabc:STD_LOGIC_VECTOR(1DOWNTO0);BEGINabc<=a&b;PROCESS(abc)BEGINCASEabcISWHEN"00"=>so<='0';co<='0';WHEN"01"=>so<='1';co<='0';WHEN"10"=>so<='1';co<='0';WHEN"11"=>so<='0';co<='1';WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDARCHITECTUREfh1;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別【例5-22】...--半加器描述(3)

SIGNALabc,cso:STD_LOGIC_VECTOR(1DOWNTO0);BEGINabc<=a&b;co<=cso(1);so<=cso(0);PROCESS(abc)BEGINCASEabcISWHEN"00"=>cso<="00";WHEN"01"=>cso<="01";WHEN"10"=>cso<="01";WHEN"11"=>cso<="10";ENDCASE;ENDPROCESS;ENDARCHITECTUREfh1;設(shè)計初步原理圖輸入和文本輸入設(shè)計區(qū)別【例5-23】

LIBRARYIEEE;--1位二進制全加器頂層設(shè)計描述

USEIEEE.STD_LOGIC_1164.ALL;ENTITYf_adderISPORT(ain,bin,cin:INSTD_LOGIC;cout,sum:OUTSTD_LOGIC);ENDENTITYf_adder;ARCHITECTUREfd1OFf_adderISCOMPONENTh_adderPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTor2aPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALd,e,f:STD_LOGIC;BEGINu1:h_adderPORTMAP(a=>ain,b=>bin,co=>d,so=>e);u2:h_adderPORTMAP(a=>e,b=>cin,co=>f,so=>sum);u3:or2aPORTMAP(a=>d,b=>f,c=>cout);ENDARCHITECTUREfd1;設(shè)計初步原理

溫馨提示

  • 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

提交評論