資源描述:
《實驗五 用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、電子設(shè)計自動化實驗報告實驗五用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計一、實驗?zāi)康?.熟悉QuartusⅡ軟件應(yīng)用環(huán)境,了解實驗流程。2.編寫簡單的Verilog代碼,并在QuartusⅡ中進行調(diào)試和驗證,并在EDA6000中下載代碼和驗證。3.掌握用狀態(tài)機(StateMachine)實現(xiàn)序列檢測器的設(shè)計。二、實驗原理假設(shè)檢測器預(yù)先已經(jīng)設(shè)定一個8位序列d,那么當(dāng)由din端口串行輸入的一個8位序列,與d完全相同時,檢測器輸出代碼1010,即在試驗箱上的LED上顯示一個“A”;否則,檢測器輸出1110,即在試驗箱上的LED上顯示一個“E”。
2、同時,當(dāng)清零信號clr有效時,輸出為1110。由清零信號clr和輸入信號din共同控制狀態(tài)機的狀態(tài)變化。三、實驗內(nèi)容1、檢測一組二進制序列信號,當(dāng)連續(xù)的脈沖信號和預(yù)先設(shè)定的序列d相同時,顯示字符“A”,否則顯示“E”。2、使用工具為譯碼器建立一個元件符號3、設(shè)計仿真文件,進行驗證。4、編程下載并在實驗箱上進行驗證。四、實驗步驟1.新建Verilog工程項目,編寫代碼并保存至與模塊名對應(yīng)的項目文件夾。2.編譯程序,編譯無誤后,在【tools】>【netlistviewers】里面選擇RTLViewer,觀察電路結(jié)構(gòu);在【to
3、ols】>【netlistviewers】里面選擇StateMachineViewer,查看狀態(tài)機轉(zhuǎn)換圖。3.新建波形文件進行仿真。保存時要和源程序存放在同一目錄下。設(shè)置好輸入波形參數(shù)后,開始仿真。在仿真后輸入輸出波形中觀察邏輯關(guān)系是否正確。4.將實驗箱和PC合理連接起來。打開EDA6000軟件,設(shè)置好芯片類型為ACEX1K(EP1K30TC144-3),載入模式12。5.根據(jù)EDA6000界面內(nèi)管腳對應(yīng)芯片的實際管腳在QUARTUSⅡ里面設(shè)定管腳號并檢查無誤。6.將程序下載至FPGA內(nèi),并在EDA6000軟件界面內(nèi)進行驗
4、證測試。程序代碼moduleSCHK(clk,din,clr,d,err);inputclk,din,clr;input[7:0]d;output[3:0]err;parameters0=0,s1=1,s2=2,s3=3,s4=4,s5=5,s6=6,s7=7,s8=8;reg[8:0]cs,ns;reg[3:0]err;always@(posedgeclkorposedgeclr)beginif(clr)cs<=s0;elsecs<=ns;case(cs)s0:if(din==d[0])ns<=s1;elsens<=s0
5、;電子設(shè)計自動化實驗報告s1:if(din==d[1])ns<=s2;elsens<=s0;s2:if(din==d[2])ns<=s3;elsens<=s0;s3:if(din==d[3])ns<=s4;elsens<=s0;s4:if(din==d[4])ns<=s5;elsens<=s0;s5:if(din==d[5])ns<=s6;elsens<=s0;s6:if(din==d[6])ns<=s7;elsens<=s0;s7:if(din==d[7])ns<=s8;elsens<=s0;s8:ns<=s8;defa
6、ultns<=s0;endcaseendalways@(ns)beginif(ns==s8)err<=4'b1010;elseerr<=4'b1110;endendmodule電子設(shè)計自動化實驗報告編譯:選擇processing---startcompilation命令,開始編譯。也可直接點擊面板上編譯按鈕。結(jié)果如圖:RTLViewer:選擇Tools---netlistviewers---RTLviewer命令,查看寄存器電路結(jié)構(gòu)圖,結(jié)果如圖:電子設(shè)計自動化實驗報告StateMachineViewer:選擇Tools--
7、-netlistviewers---StateMachineViewer,查看狀態(tài)機轉(zhuǎn)換圖。仿真結(jié)果:當(dāng)輸入信號din與預(yù)先設(shè)定好的序列d完全相同時,仿真結(jié)果:當(dāng)輸入信號din與預(yù)先設(shè)定好的序列d不完全相同時,仿真結(jié)果:設(shè)置引腳,試驗箱驗證:啟動EDA6000,連接試驗箱。裝入模式12。根據(jù)右側(cè)管腳提示進行管腳鎖定。在QuartusⅡ界面中選擇assignment—pins命令。可以用拖放的方式指定管腳,也可以在location中輸入管腳號。然后在QuartusⅡ界面中選擇tools---programmer命令。在彈出的
8、界面中Mode選為passiveserial。點擊add電子設(shè)計自動化實驗報告hardware,選擇byteblasterMV,添加驅(qū)動成功后,勾選program/configure,點擊start,下載文件到試驗箱。點擊EDA6000start,開始測試。結(jié)果如圖:五、實驗總結(jié)通過本次實驗掌握了如何用