2024年EDA技術(shù)實驗報告_第1頁
2024年EDA技術(shù)實驗報告_第2頁
2024年EDA技術(shù)實驗報告_第3頁
2024年EDA技術(shù)實驗報告_第4頁
2024年EDA技術(shù)實驗報告_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

試驗一運用原理圖輸入法設(shè)計4位全加器一、試驗?zāi)康模赫莆者\用原理圖輸入法設(shè)計簡樸組合電路的措施,掌握MAX+plusII的層次化設(shè)計措施。通過一種4位全加器的設(shè)計,熟悉用EDA軟件進行電路設(shè)計的詳細流程。二、試驗原理:一種4位全加器可以由4個一位全加器構(gòu)成,全加器的進位以串行方式實現(xiàn),即將低位加法器的進位輸出cout與相鄰的高位加法器的低位進位輸入信號cin相接。1位全加器f-adder由2個半加器h-adder和一種或門按照下列電路來實現(xiàn)。AABCOSOABCOSO≥1ainbincincoutsumh_adderh_adder半加器h-adder由與門、同或門和非門構(gòu)成。&&⊙&1ABCOSOf-adderainbinf-adderainbincincoutsumainbincincoutsumainbincincoutsumf-adderf-adderf-adderA1B1A2B2A3B3A4B4ainbincincoutsumCICOS1S2S3S4三、試驗內(nèi)容:1.熟悉QuartusII軟件界面,掌握運用原理圖進行電路模塊設(shè)計的措施。QuartusII設(shè)計流程見教材第五章:QuartusII應(yīng)用向?qū)А?.設(shè)計1位全加器原理圖(1)生成一種新的圖形文獻(file->new->graphiceditor)(2)按照給定的原理圖輸入邏輯門(symbol->entersymbol)(3)根據(jù)原理圖連接所有邏輯門的端口,并添加輸入/輸出端口(4)為管腳和節(jié)點命名:在管腳上的PIN_NAME處雙擊鼠標左鍵,然後輸入名字;選中需命名的線,然後輸入名字。(5)創(chuàng)立缺?。―efault)符號:在File菜單中選擇CreateSymbolFilesforCurrentFile項,即可創(chuàng)立一種設(shè)計的符號,該符號可被高層設(shè)計調(diào)用。3.運用層次化原理圖措施設(shè)計4位全加器(1)生成新的空白原理圖,作為4位全加器設(shè)計輸入(2)運用已經(jīng)生成的1位全加器的缺省符號作為電路單元,設(shè)計4位全加器的原理圖.4.新建波形文獻(file->new->OtherFiles->VectorWaveformFile),保留後進行仿真(Processing->StartSimulation),對4位全加器進行時序仿真。給出波形圖,并分析仿真成果與否對的。1位半加器:原理圖:仿真波形:1位全加器:原理圖:仿真波形:4位全加器:原理圖:仿真波形:4位全加器仿真成果對的:例:0011(A)+0111(B)+0(CI)成果為1010(S),進位CO為0。5.思索 怎樣在原理圖中輸入一種總線,并與其他總線連接? 先選中細線,然後右擊,選”busline”,總線是以粗線條表達。與其他總線連接:例如一根8位的總線bus1[7..0]欲與另三根分別為1、3、4個位寬的連線相接,則它們的標號可分別表達為bus1[0],bus1[3..1],bus1[7..4]。試驗二簡樸組合電路的設(shè)計一、試驗?zāi)康模菏煜uartusIIVHDL文本設(shè)計流程全過程。學習簡樸組合電路的設(shè)計、多層次電路設(shè)計、仿真和硬件測試。二、試驗原理 VHDL硬件描述語言是一種可以從多種層次上對數(shù)字邏輯電路進行建模的國際原則(IEEE),本次試驗是用VHDL設(shè)計一種簡樸的數(shù)字組合邏輯電路,并結(jié)合QuartusII環(huán)境和試驗電路進行硬件測試。三、試驗內(nèi)容:根據(jù)試驗一中一位全加器的電路原理圖,改用VHDL語言文本輸入措施,設(shè)計一位全加器,規(guī)定采用構(gòu)造化的描述措施。設(shè)計完畢後,運用QuartusII集成環(huán)境進行時序分析、仿真,記錄仿真波形和時序分析數(shù)據(jù)。用VHDL語言設(shè)計一種四選一數(shù)據(jù)選擇器電路。規(guī)定先設(shè)計一種二選一數(shù)據(jù)選擇器mux21,然後運用元件例化語句設(shè)計四選一數(shù)據(jù)選擇器mux41,同樣請給出時序分析數(shù)據(jù)和仿真成果。3)硬件測試(選用器件EPF10K10Pin84)管腳鎖定:1)一位全加器aPIO23(I/O19)30SW1bPIO24(I/O20)35SW2ciPIO25(I/O21)36SW3sPIO21(I/O16)27LED10coPIO19(I/O8)29LED122)四選一數(shù)據(jù)選擇器a1PIO2330SW1 a0PIO2435SW2d3PIO2738SW5d2PIO2839SW6d1PIO2947SW7d0PIO3042SW8yout29LED12四、思索題 比較原理圖輸入法和文本輸入法的優(yōu)缺陷。試驗成果:一位全加器的VHDL描述:半加器的VHDL描述:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYh_adderISPORT(a,b:INSTD_LOGIC;co,so:OUTSTD_LOGIC);ENDENTITYh_adder;ARCHITECTUREfh1OFh_adderISBEGINso<=NOT(aXOR(NOTb));co<=aANDb;ENDARCHITECTUREfh1;或門的VHDL描述:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYor2aISPORT(a,b:INSTD_LOGIC;c:OUTSTD_LOGIC);ENDENTITYor2a;ARCHITECTUREoneOFor2aISBEGINc<=aORb;ENDARCHITECTUREone;一位全加器的VHDL描述:LINRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYf_adderISPORT(ain,bin,cin:INSTD_LOGIC;cout,sum:outSTD_LOGIC);ENDENTITYf_adder;ARCHITECTUREfd1OFf_adderISCOMPUTERh_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;仿真波形:硬件測試成果及分析:ain PIN_233SW1bin PIN_234SW2cin PIN_235SW3cout PIN_1LED1sum PIN_2LED2SW1SW2SW3LED1LED2000暗暗001暗亮010暗亮011亮暗100暗亮101亮暗110亮暗111亮亮得成果對的。四選一數(shù)據(jù)選擇器的VHDL描述:二選一數(shù)據(jù)選擇器的VHDL描述:ENTITYmux21aISPORT(a,b:INBIT;s:INBIT;y:OUTBIT);ENDENTITYmux21a;ARCHITECTUREoneOFmux21aISBEGINy<=aWHENs='0'ELSEb;ENDARCHITECTUREone;四選一數(shù)據(jù)選擇器的VHDL描述:libraryieee;useieee.std_logic_1164.all;entitymux41aisport(d0,d1,d2,d3,a0,a1:instd_logic;yout:outstd_logic);endentitymux41a;architecturefd1ofmux41aiscomponentmux21aport(a,b,s:instd_logic;y:outstd_logic);endcomponent;signale,f:std_logic;beginu1:mux21aportmap(a=>d0,b=>d2,s=>a1,y=>e);u2:mux21aportmap(a=>d1,b=>d3,s=>a1,y=>f);u3:mux21aportmap(a=>e,b=>f,s=>a0,y=>yout);endarchitecturefd1;仿真波形:硬件測試成果及分析:a1PIN_233SW1a0PIN_234SW2d0PIN_235SW3d1PIN_236SW4d2PIN_237SW5d3PIN_238SW6youtPIN_1LED1SW1SW2SW3SW4SW5SW6LED1001000亮010100亮100100暗110001亮此成果對的?;卮饐栴}:原理圖輸入法的長處:設(shè)計者進行電子線路設(shè)計不需要增長新的有關(guān)知識;設(shè)計過程形象直觀;由于設(shè)計方式靠近于底層電路布局,因此易于控制邏輯資源的耗用。原理圖輸入法的缺陷:圖形文獻兼容性差;伴隨電路設(shè)計規(guī)模的擴大,原理圖輸入描述方式必然引起一系列難以克服的困難,如電路功能原理的易讀性下降,錯誤排查困難,整體調(diào)整和構(gòu)造升級困難等;由于圖形文獻的不兼容性,性能優(yōu)秀的電路模塊的移植和再運用拾分困難;由于在原理圖中已確定了設(shè)計系統(tǒng)的基本電路構(gòu)造和元件,留給綜合器和適配器的優(yōu)化選擇的空間已拾分有限,因此難以實現(xiàn)顧客所但愿的面積,速度以及不一樣風格的綜合優(yōu)化;在設(shè)計中,由于必須直接面對硬件模塊的選用,因此行為模型的建立將無從談起,從而無法實現(xiàn)真實意義上的自頂向下的設(shè)計方案。不過HDL文本輸入的設(shè)計措施,基本上克服了用原理圖輸入法存在的所有弊端,因此HDL輸入設(shè)計仍然是最基本、最有效和通用的輸入措施。試驗三 簡樸時序電路的設(shè)計一、試驗?zāi)康模?熟悉QuartusII的VHDL文本設(shè)計過程,學習簡樸時序電路的設(shè)計、仿真和硬件測試。二、試驗原理 時序邏輯電路是現(xiàn)代復(fù)雜數(shù)字電路的重要構(gòu)成部分,往往占到整個設(shè)計的90%以上。觸發(fā)器是時序電路的基本單元,本試驗中將波及到邊緣觸發(fā)和電平觸發(fā)兩種電路構(gòu)造,其中邊緣觸發(fā)是實際電路實現(xiàn)的重要方式。試驗內(nèi)容設(shè)計一種上升沿觸發(fā)的D觸發(fā)器 輸入:D 輸出:Q 觸發(fā)時鐘:CLK設(shè)計同步/異步清零D觸發(fā)器觸發(fā)器有兩種清零方式:同步——當觸發(fā)沿到來時,若清零信號有效,則實現(xiàn)清零;異步——任何時候清零信號一旦有效,觸發(fā)器立即清零,而不管觸發(fā)沿與否到來。在以上設(shè)計的D觸發(fā)器基礎(chǔ)上,加入清零端rst,分別實現(xiàn)同步和異步清零方式。設(shè)計一種高電平有效的鎖存器 輸入:D 輸出:Q 觸發(fā):E 電平觸發(fā)的鎖存器與沿觸發(fā)的觸發(fā)器不一樣之處在于當觸發(fā)端處在有效電平時,輸出等于輸出,隨輸入變化;觸發(fā)端無效時輸出保持不變。4)在QuartusII環(huán)境下對以上設(shè)計的模塊進行編譯,記錄時序分析數(shù)據(jù)和仿真波形,并在試驗電路上進行硬件測試。 管腳鎖定: D PIO2330SW1 CLK CLK143頻率源(35SW2) Q PIO1929LED12問題1)在本次試驗中你使用的VHDL描述方式是和試驗二中同樣的構(gòu)造化描述還是行為級描述?這兩種方式描述的編譯出來的仿真成果與否相似?2)請在試驗匯報中分析和比較1)和3)的仿真和實測成果,闡明兩者之間的異同點。試驗成果:上升沿觸發(fā)的D觸發(fā)器的VHDL描述:libraryieee;useieee.std_logic_1164.all;entitydisport(CLK:instd_logic;D:instd_logic;Q:outstd_logic);end;architecturebhvofdissignalq1:std_logic;beginprocess(CLK,q1)beginifCLK'eventandCLK='1'thenq1<=D;endif;endprocess;Q<=q1;endbhv;仿真波形:硬件測試成果及分析:CLKPIN_233SW1DPIN_234SW2QPIN_1LED1若SW2為1,當按下SW1時,LED1亮,此時若讓SW2為0,再按下SW1,則LED1滅??芍寒擟LK上升沿到來時,輸出Q就是D值。故成果對的。設(shè)計同步/異步清零D觸發(fā)器的VHDL描述:同步清零D觸發(fā)器的VHDL描述:libraryieee;useieee.std_logic_1164.all;entityDTisport(clk,rst:instd_logic;D:instd_logic;Q:outstd_logic);end;architectureoneofDTissignalQ1:std_logic;beginprocess(clk,rst,Q1)beginifclk'eventandclk='1'thenifrst='0'thenQ1<=D;elseQ1<='0';endif;endif;endprocess;Q<=Q1;endone;仿真波形:硬件測試成果及分析:CLKPIN_233SW1DPIN_234SW2rstPIN_235SW3QPIN_1LED1若SW3為1,只有在按下SW1時,輸出才復(fù)位。成果對的。異步清零D觸發(fā)器的VHDL描述:libraryieee;useieee.std_logic_1164.all;entityDYisport(CLK:instd_logic;D,RST:instd_logic;Q:outstd_logic);end;architecturebhvofDYissignalq1:std_logic;beginprocess(CLK,q1)beginifRST='1'thenq1<='0';elsifCLK'eventandCLK='1'thenq1<=D;endif;endprocess;Q<=q1;endbhv;仿真波形:硬件測試成果及分析:CLKPIN_233SW1DPIN_234SW2RSTPIN_235SW3QPIN_1LED1一旦當SW3為1時,輸出就復(fù)位。成果對的。高電平有效的鎖存器的VHDL描述:libraryieee;useieee.std_logic_1164.all;entitySD1isport(d,clk:instd_logic;q:outstd_logic);endentitySD1;architectureoneofSD1isbeginprocess(clk,d)beginifclk='1'thenq<=d;endif;endprocess;endarchitectureone;仿真波形:硬件測試成果及分析:clkPIN_233SW1dPIN_234SW2qPIN_1LED1僅當clk為1時,輸出q才隨輸入d變化。驗證成果對的。回答問題:,本次試驗中采用的VHDL描述方式是行為級描述。2),1)和3)仿真和實測成果相似點是:兩者均能在CLK高電平上升沿抵達時輸出等于輸入,且在CLK處在低電平時輸出保持低電平之前的一種高電平時的輸出狀態(tài);不一樣點是:前者直到下一種CLK高電平抵達前均保持相似輸出,而後者在CLK保持高電平期間,若輸入D發(fā)生變化,則輸出Q也隨之變化。試驗四 設(shè)計一種異步清零和同步時鐘使能的4位加法計數(shù)器一、試驗?zāi)康模?學習計數(shù)器的設(shè)計、仿真和硬件測試,深入熟悉VHDL設(shè)計技術(shù)。二、試驗原理 本試驗中所要設(shè)計的計數(shù)器,由4位帶異步清零的加法計數(shù)器和一種4位鎖存器構(gòu)成。其中,rst是異步清零信號,高電平有效;clk是計數(shù)時鐘,同步也是鎖存信號;ENA為計數(shù)器輸出使能控制。當ENA為‘1’時,加法計數(shù)器的輸出值加載于鎖存器的數(shù)據(jù)端,;當ENA為‘0’時鎖存器輸出為高阻態(tài)。當計數(shù)器輸出“1111”時,進位信號COUT為試驗內(nèi)容1)畫出該計數(shù)器的原理框圖。2)用VHDL語言完畢上述計數(shù)器的行為級設(shè)計??梢圆捎梅謱用枋龅姆绞剑謩e設(shè)計計數(shù)器和輸出鎖存器模塊,然後將兩個模塊組合成一種頂層模塊。注意鎖存器輸出高阻時的描述的方式。3)用QuartusII對上述設(shè)計進行編譯、綜合、仿真,給出其所有信號的仿真波形和時序分析數(shù)據(jù)。4)通過QuartusII集成環(huán)境,將設(shè)計下載到試驗電路上進行硬件測試。引腳鎖定:clk:clk143clk1rst:PIO2435SW2ena:PIO2330SW1outy(3)PIO1929LED12outy(2)PIO2028LED11outy(1)PIO2127LED10outy(0)PIO2225LED9coutPIO1223LED7思索題:假如需要設(shè)計帶并行預(yù)置初始值的計數(shù)器,用VHDL應(yīng)怎樣描述?試驗成果:計數(shù)器的原理框圖:計數(shù)器的VHDL描述:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT4ISPORT(RST,CLK,ENA:INSTD_LOGIC;COUT:OUTSTD_LOGIC;OUTY:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCNT4;ARCHITECTUREbehvOFCNT4ISBEGINPROCESS(RST,ENA,CLK)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='1'THENCQI:=(OTHERS=>'0');ELSIFCLK'EVENTANDCLK='1'THENIFENA='1'THENIFCQI<15THENCQI:=CQI+1;ELSECQI:=(OTHERS=>'0');ENDIF;ENDIF;ENDIF;IFCQI=15THENCOUT<='1';ELSECOUT<='0';ENDIF;OUTY<=CQI;ENDPROCESS;ENDbehv; 仿真波形:硬件測試成果及分析:CLK PIN_233ENA PIN_234 RSTPIN_235 COUT PIN_1 OUTY[0] PIN_2 OUTY[1] PIN_3 OUTY[2] PIN_4 OUTY[3] PIN_6 當ENA=1且RST=0時計數(shù)器開始計數(shù),當ENA=0時停止計數(shù)。若RST=1則計數(shù)器清零。當計數(shù)器輸出OUTY=1111時,進位信號COUT=1。成果對的?;卮饐栴}:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT4AIS PORT(CLK:INSTD_LOGIC;RST:INSTD_LOGIC;ENA:INSTD_LOGIC;OUTY:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT4A;ARCHITECTUREbehavOFCNT4AISSIGNALCQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINP_REG:PROCESS(CLK,RST,ENA)BEGINIFRST='1'THENCQI<="0000";ELSIFCLK'EVENTANDCLK='1'THENIFENA='1'THENCQI<=CQI+1;ENDIF;ENDIF; OUTY<=CQI;ENDPROCESSP_REG;COUT<=CQI(0)ANDCQI(1)ANDCQI(2)ANDCQI(3);ENDbehav;試驗五七段數(shù)碼顯示譯碼器設(shè)計試驗?zāi)康模簩W習7段數(shù)碼顯示譯碼器設(shè)計,學習VHDL的多層次設(shè)計措施。二、試驗原理: 七段數(shù)碼管由8個(a,b,c,d,e,f,g,dp)按照一定位置排列的發(fā)光二極管構(gòu)成,一般采用共陰極或者共陽極的設(shè)計,將8個二極管的同一極接在一起,通過度別控制此外的8個電極的電平,使二極管導(dǎo)通(發(fā)光)或截止(不發(fā)光)。 七段數(shù)碼顯示譯碼器的功能就是根據(jù)需要顯示的字符,輸出可以控制七段數(shù)碼管顯示出該字符的編碼。試驗內(nèi)容:用VHDL設(shè)計7段數(shù)碼管顯示譯碼電路,并在VHDL描述的測試平臺下對譯碼器進行功能仿真,給出仿真的波形。數(shù)碼管顯示電路設(shè)計 運用以上設(shè)計的譯碼器模塊,設(shè)計一種可以在8個數(shù)碼管上同步顯示字符的電路。迅速輪番點亮8個數(shù)碼管,這樣就可以實現(xiàn)同步顯示8個字符的效果(盡管實際上同一時間只有一種數(shù)碼管被點亮)。 要實現(xiàn)以上功能,就必須按照一定期鐘節(jié)拍,輪番使譯碼器輸出所需要字符的編碼;同步控制數(shù)碼管的公共電極電平,輪番點亮數(shù)碼管(可以使用上個試驗設(shè)計的計數(shù)器,加試驗板上的74ls138來實現(xiàn))。用QuartusII對2)中的設(shè)計進行編譯、綜合、仿真,給出其所有信號的仿真波形和時序分析數(shù)據(jù)。通過QuartusII集成環(huán)境,將設(shè)計下載到試驗電路上進行硬件測試。管腳鎖定: *clk:clk143clk1 D(3):PIO3030SW1D(2):PIO2435SW2D(1):PIO2536SW3D(0):PIO2637SW4A(6):PIO611SEGgLED1 A(5):PIO510SEGfA(4):PIO49SEGe A(3):PIO38SEGdA(2):PIO27SEGcA(1):PIO16SEGbA(0):PIO05SEGa*S(2): 80*S(1): 79*S(0): 78思索題:嘗試將74ls138的功能也用VHDL來實現(xiàn),將所有邏輯功能都集成到FPGA裏面。試驗成果:數(shù)碼管顯示電路的原理框圖:VHDL描述:7段數(shù)碼管顯示譯碼電路VHDL描述: libraryieee;useieee.std_logic_1164.all;entitydecl7sisport(a:instd_logic_vector(3downto0);led7s:outstd_logic_vector(6downto0));end;architectureoneofdecl7sisbeginprocess(a)begincaseaiswhen"0000"=>led7s<="0111111";when"0001"=>led7s<="0000110";when"0010"=>led7s<="1011011";when"0011"=>led7s<="1001111";when"0100"=>led7s<="1100110";when"0101"=>led7s<="1101101";when"0110"=>led7s<="1111101";when"0111"=>led7s<="0000111";when"1000"=>led7s<="1111111";when"1001"=>led7s<="1101111";when"1010"=>led7s<="1110111";when"1011"=>led7s<="1111100";when"1100"=>led7s<="0111001";when"1101"=>led7s<="1011110";when"1110"=>led7s<="1111001";when"1111"=>led7s<="1110001";whenothers=>null;endcase;endprocess;end;仿真波形:數(shù)碼管顯示電路VHDL描述:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;entitySCAN_LEDisport(CLK:instd_logic;S:OUTSTD_LOGIC_VECTOR(2DOWNTO0);D:INSTD_LOGIC_VECTOR(3DOWNTO0);A:OUTSTD_LOGIC_VECTOR(6DOWNTO0));endSCAN_LED;architectureONEofSCAN_LEDisSIGNALC:STD_LOGIC_VECTOR(2DOWNTO0);BEGINP1:PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENIFC<"111"THENC<=C+1;ELSEC<="000";ENDIF;ENDIF;S<=C;ENDPROCESSP1;P2:PROCESS(D)BEGINCASEDISWHEN"0000"=>A<="0111111";WHEN"0001"=>A<="0000110";WHEN"0010"=>A<="1011011";WHEN"0011"=>A<="1001111";WHEN"0100"=>A<="1100110";WHEN"0101"=>A<="1101101";WHEN"0110"=>A<="1111101";WHEN"0111"=>A<="0000111";WHEN"1000"=>A<="1111111";WHEN"1001"=>A<="1101111";WHEN"1010"=>A<="1110111";WHEN"1011"=>A<="1111100";WHEN"1100"=>A<="0111001";WHEN"1101"=>A<="1011110";WHEN"1110"=>A<="1111001";WHEN"1111"=>A<="1110001";WHENOTHERS=>NULL;ENDCASE;ENDPROCESSP2;END;仿真波形:硬件測試成果及分析:CLK頻率不一樣,輪番點亮8個數(shù)碼管的速率也不一樣,當CLK頻率足夠大時,可實現(xiàn)同步顯示8個字符的效果。回答問題:libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitydecoder38is

port(Q0:outstd_logic_vector(7downto0);

Q1:instd_logic_vector(2downto0);

en:instd_logic);

endentitydecoder38;

architecturecode1ofdecoder38is

begin

process(Q1,en)

variabletemp:std_logic_vector(7downto0);

begin

ifen='1'thentemp:="ZZZZZZZZ";

else

caseQ1is

when"000"=>temp:="00000001";

when"001"=>temp:="00000010";

when"010"=>temp:="00000100";

when"011"=>temp:="00001000";

when"100"=>temp:="00010000";

when"101"=>temp:="00100000";

when"110"=>temp:="01000000";

when"111"=>temp:="10000000";

endcase;

endif;

Q0<=temp;

endprocess;

endarchitecturecode1;試驗六數(shù)控分頻器的設(shè)計試驗?zāi)康模簩W習數(shù)控分頻器的設(shè)計和測試措施。二、試驗原理: 數(shù)控分頻器的功能為在不一樣輸入信號時,對時鐘信號進行不一樣的分頻,在輸出端輸出不一樣頻率的信號。該電路可以用品有并行預(yù)置功能的加法計數(shù)器實現(xiàn),措施是對應(yīng)不一樣的輸入信號,預(yù)置數(shù)(初始計數(shù)值)設(shè)定不一樣的值,計數(shù)器以此預(yù)置數(shù)為初始狀態(tài)進行不一樣模值的計數(shù),當計數(shù)器的狀態(tài)全為1時,計數(shù)器輸出溢出信號。用計數(shù)器的溢出信號作為輸出信號或輸出信號的控制值,使輸出信號的頻率受控于輸入的預(yù)置數(shù)。電路輸出波形圖:三、試驗內(nèi)容:1)根據(jù)試驗原理畫出電路框圖,并計算在不一樣預(yù)置數(shù)時輸出信號的頻率與時鐘頻率的比值。2)編寫實現(xiàn)數(shù)控分頻器的VHDL程序。規(guī)定輸出信號的占空比盡量為50%。提醒:可以將計數(shù)器溢出信號輸出給一種翻轉(zhuǎn)觸發(fā)器,溢出信號的邊緣作為觸發(fā)器的觸發(fā)信號,觸發(fā)器的輸出就是分頻器的輸出(注意計數(shù)器初始計數(shù)值與輸出頻率之間的關(guān)系)。3)用QuartusII對設(shè)計進行編譯、綜合、仿真,給出仿真波形和時序分析數(shù)據(jù)。4)通過QuartusII集成環(huán)境,將設(shè)計下載到試驗電路上進行硬件測試。 輸入不一樣的clk信號和不一樣的輸入控制信號,測試輸出波形。管腳鎖定: clkclk143D(3)PIO2330SW1D(2)PIO2435SW2D(1)Pio2536SW3D(0)PIO2637SW4FoutPIO1929LED12四、思索題:假如需要進行奇數(shù)分頻(如3分頻),能否夠保持輸出波形的占空比為50%?假如不能,怎樣使占空比盡量靠近50%;假如可以,應(yīng)怎樣做?試驗成果:數(shù)控分頻器的原理框圖:數(shù)控分頻器輸出頻率與輸入時鐘的關(guān)系:當輸入端給定不一樣輸入數(shù)據(jù)時,將對輸入的時鐘信號有不一樣的分頻比。任意小數(shù)都可以表到達形式,其中a<b。設(shè)分頻器輸入脈沖數(shù)為M,輸出脈沖數(shù)為P,則有如下關(guān)系:上式表明分頻器進行b次n分頻時,設(shè)法多輸入a個脈沖?;蛘哒f在b個脈沖輸入周期中,進行b-a次n分頻和a次n+1分頻。這就是小數(shù)分頻的基本原理。n和n+1也稱為分頻模式。運用上述小數(shù)分頻的措施,同樣也可以實現(xiàn)整數(shù)分頻,即令a=0,就可以完畢整數(shù)N分頻。數(shù)控分頻器的VHDL描述:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDVFISPORT(CLK:INSTD_LOGIC;D:STD_LOGIC_VECTOR(7DOWNTO0);FOUT:OUTSTD_LOGIC);END;ARCHITECTUREoneOFDVFISSIGNALFULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLECNT8:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFCLK'EVENTANDCLK='1'THENIFCNT8="11111111"THENCNT8:=D;FULL<='1';ELSECNT8:=CNT8+1;FULL<='0';ENDIF;ENDIF;ENDPROCESSP_REG;P_DIV:PROCESS(FULL)VARIABLECNT2:STD_LOGIC;BEGINIFFULL'EVENTANDFULL='1'THENCNT2:=NOTCNT2;IFCNT2='1'THENFOUT<='1';ELSEFOUT<='0';ENDIF;ENDIF;ENDPROCESSP_DIV;END;仿真波形:硬件測試成果及分析:通過變化輸入頻率,可以聽到不一樣頻率的聲音。硬件測試成果對的:回答問題:libraryIEEE;

useIEEE.STD_LOGIC_1164.ALL;

useIEEE.STD_LOGIC_ARITH.ALL;

useIEEE.STD_LOGIC_UNSIGNED.ALL;entityDIV3is

port(clk:instd_logic;

out1:outstd_logic);

endDIV3;architectureBehavioralofDIV3is

signaldivision2,division4:std_logic:='0';

signaltemp1,temp2:integerrange0to10;

begin

p1:process(clk)

begin

ifrising_edge(clk)then

temp1<=temp1+1;iftemp1=1then

division2<='1';

elsiftemp1=2then

division2<='0';

temp1<=0;

endif;

endif;

endprocessp1;p2:process(clk)

begin

ifclk'eventandclk='0'then

temp2<=temp2+1;

iftemp2=1then

division4<='1';

elsiftemp2=2then

division4<='0';

temp2<=0;

endif;

endif;

endprocessp2;p3:process(division2,division4)

begin

out1<=division2ordivision4;

endprocessp3;

endBehavioral;試驗七4位拾進制頻率計的設(shè)計試驗?zāi)康模?設(shè)計一種4位拾進制頻率計,學習復(fù)雜數(shù)字系統(tǒng)的設(shè)計措施。試驗原理:根據(jù)頻率的定義和頻率測量的基本原理,測定信號的頻率必須有一種脈寬為1秒的脈沖計數(shù)容許信號,1秒計數(shù)結(jié)束後,計數(shù)值(即所測信號頻率)鎖入鎖存器,并為下一次測頻作準備,即將計數(shù)器清零。試驗內(nèi)容:1、根據(jù)頻率計的工作原理,將電路劃提成控制器、計數(shù)器、鎖存器和LED顯示幾種模塊,控制器——產(chǎn)生1秒脈寬的計數(shù)容許信號、鎖存信號和計數(shù)器清零信號計數(shù)器——對輸入信號的脈沖數(shù)進行合計鎖存器——鎖存測得的頻率值LED顯示——將頻率值顯示在數(shù)碼管上頂層文獻框圖如下:2、用元件例化語句寫出頻率計的頂層文獻。3、用VHDL硬件描述語言進行模塊電路的設(shè)計。本試驗中不少模塊在之前的試驗中已經(jīng)有所波及,只需要對此前的設(shè)計做部分修改即可用于這次試驗。提醒:拾進制計數(shù)器輸出的應(yīng)是4位拾進制數(shù)的BCD碼,因此輸出一共是4×4bit。4、用QuartusII對設(shè)計進行編譯、綜合、仿真,給出仿真波形和時序分析數(shù)據(jù)(不包括數(shù)碼管顯示部分)。5、通過QuartusII集成環(huán)境,將設(shè)計下載到試驗電路上進行硬件測試。管腳鎖定: Clk clk143 fx (頻率任選)A(7):81SEGdpA(6):PIO611SEGgA(5):PIO510SEGfA(4):PIO49SEGeA(3):PIO38SEGdA(2):PIO27SEGcA(1):PIO16SEGbA(0):PIO05SEGaS(1): 79S(0): 78四、思索題: 本試驗中的控制器部分可以用此前試驗中的哪個電路來實現(xiàn),其輸出的rst和ena信號與否可以合并為一種信號?試驗成果:各模塊電路的VHDL描述:測試控制電路:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.all;USEIEEE.STD_LOGIC_UNSIGNED.all;ENTITYCNT10ISPORT(en,clk,rst:INSTD_LOGIC;cq:OUTSTD_LOGIC_VECTOR(3DOWNTO0);cout:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGINprocess(clk,en)variablecqi:STD_LOGIC_VECTOR(3downto0):="0000";beginif(rst='1')thenCQI:=(others=>'0');elsif(clk'eventandclk='1')thenifen='1'thenifcqi<9thencqi:=cqi+1;elsecqi:=(others=>'0');endif;endif;endif;ifcqi=9thencout<='1';elsecout<='0';endif;cq<=cqi;endprocess;ENDbehav;16位鎖存器:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.all;ENTITYREG16DISPORT(lk:INSTD_LOGIC;din:inSTD_LOGIC_VECTOR(15downto0);dout:OUTSTD_LOGIC_VECTOR(15downto0));ENDENTITYREG16D;ARCHITECTUREfd1OFREG16DISBEGINprocess(lk,din)beginif(lk'eventa

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論