EDA實驗報告序列檢測器的VHDL設(shè)計_第1頁
EDA實驗報告序列檢測器的VHDL設(shè)計_第2頁
EDA實驗報告序列檢測器的VHDL設(shè)計_第3頁
EDA實驗報告序列檢測器的VHDL設(shè)計_第4頁
EDA實驗報告序列檢測器的VHDL設(shè)計_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、X IANGTAM UN IVEfI'MTtwaCollegeofInfomiftlon|Enqlncerin口srfXhangftBfiUniTErprtT#實驗七序列檢測器的VHDL設(shè)計、實驗?zāi)康挠脿顟B(tài)機實現(xiàn)序列檢測器的設(shè)計,了解一般狀態(tài)機的設(shè)計與應(yīng)用。二、實驗設(shè)計原理序列檢測器可用于檢測一組或多組由二進制碼組成的脈沖序列信號,當(dāng)序列檢測器連續(xù)收到一組串行二進制碼后,如果這組碼與檢測器中預(yù)先設(shè)置的碼相同,則輸出1,否則輸出0。由于這種檢測的關(guān)鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測中所收到的每一位碼都與預(yù)置數(shù)的對應(yīng)碼相同。在檢

2、測過程中,任何一位不相等都將回到初始狀態(tài)重新開始檢測。書上P168例5-11描述的電路完成對序列數(shù)“11100101”的檢測,當(dāng)這一串序列數(shù)高位在前(左移)串行進入檢測器后,若此數(shù)與預(yù)置的密碼數(shù)相同,則輸出“A”,否則仍然輸出“B”。、實驗內(nèi)容用VHDL狀態(tài)機設(shè)計一個8位序列信號檢測器。要求:利用QuartusII進行文本編輯輸入、仿真測試并給出仿真波形,了解控制信號的時序,最后進行引腳鎖定并完成硬件測試實驗。程序設(shè)計及程序分析如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSCHKISPORT(DIN,CLK,CLR:INSTD_LOGIC;A

3、B:OUTSTD_LOGIC_VECTOR(3DOWNTO0);ENDSCHK;ARCHITECTUREbehavOFSCHKISSIGNALQ:INTEGERRANGE0TO8;SIGNALD:STD_LOGIC_VECTOR(7DOWNTO0);BEGIND<="11100101”;PROCESS(CLK,CLR)BEGINIFCLR='1'THENQ<=0;ELSIFCLK'EVENTANDCLK='1'THENCASEQISWHEN0=>IFDIN=D(7)THENQ<=1;ELSEQ<=0;ENDIF;W

4、HEN1=>IFDIN=D(6)THENQ<=2;ELSEQ<=0;ENDIF;WHEN2=>IFDIN=D(5)THENQ<=3;ELSEQ<=0;ENDIF;WHEN3=>IFDIN=D(4)THENQ<=4;ELSEQ<=0;ENDIF;WHEN4=>IFDIN=D(3)THENQ<=5;ELSEQ<=0;ENDIF;WHEN5=>IFDIN=D(2)THENQ<=6;ELSEQ<=0;ENDIF;| Th« CJolleoie- of lfrforni«tion r | Eny

5、lneiBrlnQi of XJmntftMi UniTErprtTWHEN6=>IFDIN=DTHENQ<=7;ELSEQ<=0;ENDIF;WHEN7=>IFDIN=D(0)THENQ<=8;ELSEQ<=0;ENDIF;WHENOTHERS=>Q<=0;ENDCASE;ENDIF;ENDPROCESS;PROCESS(Q)BEGINIFQ=8THENAB<="1010”;ELSEAB<="1011”;ENDIF;ENDPROCESS;ENDbehav;四、仿真分析編譯仿真后的波形如下所示:由仿真結(jié)果可以看到,

6、由于預(yù)置的密碼數(shù)是“11100101”,當(dāng)輸入的序列數(shù)與上述的數(shù)字相同,輸出才由B變成A。五、硬件測試過程 .按實驗板“系統(tǒng)復(fù)位”鍵; .用鍵2和鍵1輸入2位十六進制待測序列數(shù)“11100101”; .按鍵7復(fù)位(平時數(shù)碼6指示顯"B'); .按鍵6(CLK)8次,這時若串行輸入的8位二進制序列碼(分別顯示于數(shù)碼管2和數(shù)碼管1以及發(fā)光管D8D0)與預(yù)置碼“11100101”相同,則數(shù)碼6應(yīng)從原來的B變成A,表示序列檢測正確,否則仍為B。六、實驗內(nèi)容將8位待測預(yù)置數(shù)作為外部輸入信號,即可以隨時改變序列檢測器中的比較數(shù)據(jù)。寫出此程序的符號化單進程有限狀態(tài)機。程序設(shè)計如下:LIBR

7、ARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSCHK2ISPORT(DIN,CLK,CLR:INSTD_LOGIC;一僻大學(xué)信息工程學(xué)院% XIANGTAN UN IVERSI片Th*Cjoliegeofluforni-rtJon|EngineerlngofXlmngtB«iUniTErvitfSHR:INSTD_LOGIC_VECTOR(7DOWNTO0);AB:OUTSTD_LOGIC_VECTOR(3DOWNTO0);ENDENTITYSCHK2;ARCHITECTUREbeha

8、vOFSCHK2ISSIGNALQ:INTEGERRANGE0TO8;SIGNALD:STD_LOGIC_VECTOR(7DOWNTO0);BEGIND<=SHR;PROCESS(CLK,CLR)BEGINIFCLR='1'THENQ<=0;ELSIFCLK'EVENTANDCLK='1'THENCASEQISWHEN0=>IFDIN=D(7)THENQ<=1;ELSEQ<=0;ENDIF;WHEN1=>IFDIN=D(6)THENQ<=2;ELSEQ<=0;ENDIF;WHEN2=>IFDIN=D(

9、5)THENQ<=3;ELSEQ<=0;ENDIF;WHEN3=>IFDIN=D(4)THENQ<=4;ELSEQ<=0;ENDIF;WHEN4=>IFDIN=D(3)THENQ<=5;ELSEQ<=0;ENDIF;WHEN5=>IFDIN=D(2)THENQ<=6;ELSEQ<=0;ENDIF;WHEN6=>IFDIN=D(1)THENQ<=7;ELSEQ<=0;ENDIF;WHEN7=>IFDIN=D(0)THENQ<=8;ELSEQ<=0;ENDIF;WHENOTHERS=>Q&l

10、t;=0;ENDCASE;ENDIF;ENDPROCESS;PROCESS(Q)BEGINIFQ=8THENAB<="1010"ELSEAB<="1011"ENDIF;ENDPROCESS;ENDARCHITECTUREbehav;七、仿真分析編譯仿真后的波形如下所示:待檢測預(yù)置數(shù)為“00110011I The College of Ipforni-rtionEnqlneerina of XkintftMi UfiItet僧草 a皿】 際 U3 cu01DIVQ酒 網(wǎng)城 EMUI SBUJ 曲國 制qSMffl 施胤IdTLrLrLrLrLr

11、LrLrLrLrLrLTLrLrLrLrLrLrLrLrLnOOUW1L待檢測預(yù)置數(shù)為“11010011絲色烏里絲史上里里ewffl-史£ 一 MMwwiaxattni題舊5#f«3sntJ53(STime工ibi7融囿R由仿真結(jié)果可以看到,只有當(dāng)輸入的序列數(shù)與由外部輸入的預(yù)置數(shù)字相同,輸出才由B變成A。5Th*Cjoliegeofluforni-rtJon|EngineerlngofXlmngtB«iUniTErvitf實驗八用QuartusII設(shè)計正弦信號發(fā)生器、實驗?zāi)康倪M一步熟悉QuartusII及其LPM_ROM<FPGA硬件資源的使用方法。、實驗設(shè)

12、計原理正弦信號發(fā)生器的結(jié)構(gòu)由4個部分組成:計數(shù)器或地址發(fā)生器(這里選擇6位);正弦信號數(shù)據(jù)ROM6位地址線,8位數(shù)據(jù)線),含有64個8位數(shù)據(jù)(一個周期);VHDL®層設(shè)計、8位D/A(實驗中用DAC0832代替)。頂層文件singt.vhd在FPGA中實現(xiàn),包含兩個部分:ROM勺地址信號發(fā)生器,由6位計數(shù)器擔(dān)任;正弦數(shù)據(jù)ROM由LPM-ROMI塊組成。LPM-RO嘛層是FPGA中白EAB或M4K等模塊。地址發(fā)生器的時鐘CLK的輸入頻率fo三、實驗內(nèi)容要求:在QuartusII上完成正弦信號發(fā)生器設(shè)計,包括時序仿真和資源利用情況了解。最后在實驗系統(tǒng)上進行硬件測試。程序設(shè)計如下:LIBR

13、ARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSINGTISPORT(CLK:INSTD_LOGIC;DOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0);END;ARCHITECTUREDACCOFSINGTISCOMPONENTdata_romPORT(address:INSTD_LOGIC_VECTOR(5DOWNTO0);inclock:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDCOMPONENT;SIGNALQ1:STD

14、_LOGIC_VECTOR(5DOWNTO0);BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQ1<=Q1+1;ENDIF;ENDPROCESS;u1:data_romPORTMAP(address=>Q1,q=>DOUT,inclock=>CLK);END;四、實驗過程定制初始化波形數(shù)據(jù)文件:建立.mif格式文件。Filenewotherfiles,選擇MemoryInitializationFile選項,選才i64點8位的正弦數(shù)據(jù),彈出表格后輸入教材圖4-38中的數(shù)據(jù)。然后以romd.mif的名

15、字保存至新建的文件夾中。定制LPM_RO流件:利用MegaWizardPlug-InManager定制正弦信號數(shù)據(jù)ROMg功能塊,并將以上的波形數(shù)據(jù)加載于此ROMfr。并以data_rom.vhd名字將生成的用于例化的波形數(shù)據(jù)ROMt件保存至上述文件夾中。用VHD用言完成正弦信號發(fā)生器的頂層設(shè)計:此過程與實驗七的步驟類似。五、仿真分析 EIB融電I L_,rTTTTT_rL_rL_rL_rL_rL_rL_rL_rL_rTJ_L_r_rT_r_T_L_r_rL_L_rT_rL 阿 h粕 f還¥言如西丫廠犬昨飛干女再飛M ¥近 ”4父君 ”!丫飛而丫育丫玩Eiii F而?

16、9; :£ g蟀 m 加畢 512因 6L5. 3產(chǎn)破 仃.窣生 20軍電工 23.Q1 ns由仿真波形可以看到,隨著每一個時鐘上升沿的到來,輸出端口將正弦波數(shù)據(jù)依次輸出。將這些數(shù)據(jù)與圖4-38和圖4-39所示的加載與LPM_ROMJ數(shù)據(jù)比較,可以看出,設(shè)計是正確的。編譯仿真后的波形如下所示:年 H占蜘T M Bai. | 正西丁 一土 蟻 |29.9 nt IrMeiv-Bi. |13.63 M§4如上 |Ehd.五、硬件測試過程.選擇電路模式No.5,時鐘接實驗箱上的CLOCK0將DOUT(0)、DOUT(1、DOUT(7汾別鎖定于實驗系統(tǒng)上與DAC0832t目接的I/

17、O口:PIO24、PIO25、PIO26、PIO27、PIO28、PIO29、PIO30、PIO31。編譯下載后,打開+/-12V電壓開關(guān),選擇CLOCK0勺頻率為750KHz,再將示波器接于實驗箱A/D、D/A板上的兩個掛鉤上觀察正弦波形。.從示波器上可看到輸出正弦波符合實驗要求,由此證明設(shè)計是正確的。#僻大學(xué)信息工程學(xué)院TtwaCollegeofInfomiftlon|Enqlncerin口srfXhangftBfiUniTErprtT7本學(xué)期實驗心得通過四次實驗下來,我覺得對學(xué)EDA有了濃厚的興趣。期間每一次的實驗我都認真的對待了,收獲頗多,慢慢引導(dǎo)了我改怎樣去學(xué)好這門EDA課程。第一次

18、實驗。實驗做的是組合邏輯電路的VHDL設(shè)計和時序電路的VHDL設(shè)計,我記得我是比較早做完的。因為在上課的吳老師就要我們裝好quartusII軟件,所以我在很有準備的對quartusII軟件有了一定熟悉。開始我還在網(wǎng)上搜索怎么使用quartusII軟件,而且還下載了quartusII視頻教程,然后一步一步慢慢的學(xué)會了使用quartusII軟件。當(dāng)我獨自在設(shè)計組合邏輯電路的VHDL設(shè)計時,我翻閱了書籍全加器的那一節(jié),仔細看了例題3-18,因為這里也利用到了怎么樣使用例化語句。而且在我編好了程序的時候,自我感覺良好覺得程序沒有什么錯誤??墒且划?dāng)運行的時候,就出來了很多的錯誤,什么沒有定義的,什么賦值

19、符號出錯的,第一次修改自己的程序真的是傷透了腦經(jīng),畢竟是第一次編寫VHDL程序,而且還有這么多的錯誤。然后設(shè)計時序電路的VHDL代碼時,這個就簡單的多了,因為我們只要將其中進程中添加D進去,在把其他剩下的殘枝落葉添加好,D鎖存器就設(shè)計好了。在仿真測試的時候,由于我事先做好了充分的準備,在幾乎不到半個小時的樣子我的實驗就做完了。然后我就在幫助其他的同學(xué)調(diào)試出錯什么的。但是我碰到最多的問題就是他們在做“雙2選1多路選擇器”的時候,都忘記將底層文件添加進去,所以導(dǎo)致后面的程序頻繁出錯。其他注意事項,比如實體名要和VHDL文本名一樣,賦值符號別弄錯了,程序包調(diào)用設(shè)置等等。第二次實驗。使我印象最深刻的是

20、,我在編寫10進制加減可控計數(shù)器的時候費了好大的心思。因為我記得老師布置給我們的作業(yè)里面有個設(shè)計“含有異步清零和計數(shù)使能的16位二進制加減可控計數(shù)器”,我想起了那個程序,然后我就努力的把那個程序改成10進制加減可控計數(shù)器。但是我在調(diào)試了N遍之后,老是顯示什么“=”附近出錯,我改了很久,仍»冽作女浮僻梏BSIT程券/月-yxIANGIANurjIVERSII'Y而贏罰育嬴;1-|EnqlmringofMkantftofiUnlTervrtT然沒有改正確。然后我又找了我們班的同學(xué),我把我設(shè)計此程序的意思講解給他們聽了,但是他們也費了很大的盡還是沒有改出來。最后沒有辦法,只能求救吳

21、老師幫忙了,我把我設(shè)計此程序的意思和附加我設(shè)計的程序通過郵箱發(fā)給了吳老師。等看到吳老師回復(fù)給我的郵件時,我才恍然大悟,我把if各種語句的使用全部弄混淆了,最后把我自己也弄的稀里糊涂了,就這樣經(jīng)過老師的幫忙,我才得以設(shè)計出用CHOOSE高低電平來控制,高電平控制計數(shù)器的加法,低電平控制計數(shù)器的減法。然后在對應(yīng)的將其他的地方編寫好,費了我很大心思的10進制加減可控計數(shù)器就這樣誕生了。第三次實驗。我認真做好事先的預(yù)習(xí)準備,因為我感覺這里的實驗和我們學(xué)單片機的實驗有點相像,都是利用數(shù)碼管掃描來顯示數(shù)據(jù)。于是我就把我們學(xué)的單片機上的程序和VHDL的程序?qū)?yīng)起來,只是單片機用的是匯編語言,VHD叫的硬件描述語言,雖然兩者的語言不同,但是大體的思路還是相同的,只不過單片機要設(shè)置延時程序,而VHDL要設(shè)置延時程序,系統(tǒng)已經(jīng)幫我們調(diào)好了,只要我們把程序編好,放到機器里面用就OK了。兩者的對比之下,我學(xué)會了硬件掃描顯示電路的設(shè)計思路。然后后面的程序還好做一些,經(jīng)過吳老師實驗前的講解,使得我們在實驗操作過程中少走了彎路,才得以使得我們有充分的時間在研究程序,不斷的發(fā)現(xiàn)問題。第四次實驗。由于聽說老師考試的時候不考狀態(tài)機,所以我這次的實驗就沒有充分的預(yù)習(xí)好。但是在得到同學(xué)們的程序后還是能迅速的將實驗做出來。因為我認真做了前面三次的實驗,也積累了不少的經(jīng)驗,拿著程

溫馨提示

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

最新文檔

評論

0/150

提交評論