




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課程設計名稱乒乓球游戲程序姓名 專業班級 目錄摘要 1第一部分緒論 21.1課題設計背景 21.1.1FPGA簡介 21.1.2硬件描述語言VHDL 21.1.3QuartusⅡ簡介 21.2課題主要內容 3第二部分系統設計 42.1整體設計圖 42.2設計思路 52.3具體功能對應等 6第三部分模塊設計 93.1控制模塊 93.1.1引腳功能 93.1.2核心代碼及解釋 103.1.3RTL圖 133.2分頻模塊 143.2.1引腳功能 143.2.2核心代碼及解釋 143.2.3RTL圖 153.3按鍵處理模塊 153.3.1引腳功能 153.3.2核心代碼及解釋 153.3.3RTL圖 163.4鎖樓層模塊 173.4.1引腳功能 173.4.2核心代碼及解釋 173.4.3RTL圖 18第四部分操作配圖 19第五部分結論 234.1遇到的問題和改進 234.2工作分配比例 23第六部分附錄 24基于FPGA的乒乓球游戲程序的設計摘要VHDL是高速集成電路硬件描述語言,目前已成為許多設計自動化工具普遍采用的標準化硬件描述語言.VHDL語言功能性強、覆蓋面廣、靈活性高,具有很好的實用。本文設計一個基于VHDL的乒乓游戲機模擬乒乓球比賽。用VHDL編程模擬乒乓球比賽,電路模塊由分頻、狀態機等部分組成,對各部分編寫VHDL算法,進行編譯及程序下載。通過驗證,乒乓游戲機能模擬乒乓球比賽的基本過程和規則,并能自動裁判和記分,還能根據接球快慢改變球運行的速度。實現乒乓游戲機的功能。關鍵詞:乒乓游戲機、VHDL、狀態機第一部分緒論1.1課題設計背景1.1.1FPGA簡介FPGA(Field-ProgrammableGateArray),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。1.1.2硬件描述語言VHDLVHDL的英文全名是VHSICHardwareDescriptionLanguage(VHSIC硬件描述語言)。VHSIC是VeryHighSpeedIntegratedCircuit的縮寫,是20世紀80年代在美國國防部的資助下始創的,并最終導致了VHDL語言的出現。1987年底,VHDL被IEEE和美國國防部確認為標準硬件描述語言。VHDL主要用于描述數字系統的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統)分成外部(或稱可視部分,及端口)和內部(或稱不可視部分),既涉及實體的內部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內部開發完成后,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是VHDL系統設計的基本點。1.1.3QuartusⅡ簡介AlteraQuartusII作為一種可編程邏輯的設計環境,由于其強大的設計能力和直觀易用的接口,越來越受到數字系統設計者的歡迎。AlteraQuartusII(3.0和更高版本)設計軟件是業界唯一提供FPGA和固定功能HardCopy器件統一設計流程的設計工具。
Quartus
IIdesign是最高級和復雜的,用于system-on-a-programmable-chip(SOPC)的設計環境。QuartusIIdesign提供完善的timingclosure和LogicLock?基于塊的設計流程。QuartusIIdesign是唯逐一個包括以timingclosure和基于塊的設計流為基本特征的programmablelogicdevice(PLD)的軟件。QuartusII設計軟件改進了性能、提升了功能性、解決了潛伏的設計延遲等,在產業領域率先提供FPGA與mask-programmeddevices開發的同一工作流程。
1.2課題主要內容隨著可編程邏輯電路和EDA技術的發展,在邏輯電路設計和嵌入式系統設計方面,以CPLD/FPGA為代表的可編程邏輯器件已經逐步代替了傳統的標準邏輯器件;本次論文的乒乓球游戲所有的程序可以集成在一個FPGA開發芯片上面,不用在用其他功能的分立邏輯元件,達到集成度高、響應快、功耗低的特點。本次論文主要是基于FPGA的乒乓球游戲的設計,模擬乒乓球比賽的基本過程和規則,自動裁判和記分,比局為7局,每局11分。而本次論文采用模塊化設計,主要分為兩大模塊:時鐘分頻模塊、狀態機控制模塊。
第二部分系統設計2.1整體設計圖圖SEQ圖表\*ARABIC1乒乓球游戲程序BDF圖2.2設計思路1.控制模塊狀態圖圖2乒乓球游戲程序控制模塊狀態圖2.總體思路SW0開關(EN)控制功能使能與比賽清零。SW0關閉(EN=0),顯示學號后六位,打開時允許運行,比分比局清零。利用狀態機,設初始狀態處于start狀態,key3為復位鍵,按下key3可以回到start狀態。通過各種請求信號實現狀態的相互轉換,進而實現發球和乒乓球左右移動、擊球的相互轉換,并在球未擊中、提前擊中、發球失敗時顯示相應比分、比局情況。通過設計control的反饋控制頻率方式,利用不同鍵擊球的快慢控制球運行的速度。并在整個游戲結束時有一個end標記與比分比局切換顯示。2.3具體功能對應等1.乒乓球控制模塊控制乒乓球的運行狀態的轉換,比分、比局的顯示。反饋信號信號的設置和輸出,為分頻模塊提供指令信號,控制球運行的速度。圖3乒乓球運行控制模塊BDF2.時鐘分頻模塊為狀態機產生3種不同的時鐘信號。圖4時鐘分頻模塊BDF 第三部分模塊設計3.1控制模塊3.1.1引腳功能表SEQ表格\*ARABIC1控制模塊的引腳功能表定義類型外設引腳功能instd_logicENSW0關閉顯示學號后6位并對比分清零,打開則開始游戲CLK分頻模塊送入3種不同頻率的速度RSTKEY3按一次重新開始新的一球HIT[17..13]SW17~SW13選手甲接發球開關HIT[5..2]SW5~SW2選手乙接發球開關HIT[12..6]SW12~SW6禁止觸球區outstdlogicHEX7HEX7選手甲獲勝局數HEX6HEX6選手乙獲勝局數HEX5HEX5顯示無意義HEX4HEX4顯示無意義HEX3HEX3選手甲獲勝比分HEX2HEX2選手甲獲勝比分HEX1HEX1選手乙獲勝比分HEX0HEX0選手乙獲勝比分CONTROL[1..0]輸出反饋給分頻模塊LIGHT[17..2]LEDR17~LEDR2乒乓球位置顯示3.1.2核心代碼及解釋模塊主要分狀態轉換,狀態譯碼,LED燈的譯碼,和輔助變量temp,輔助判斷信號control的計數進程。利用temp判斷是否分出勝負即游戲是否結束,結束之后顯示閃爍輔助標志End并且清零比分。利用control判斷接球快慢,反饋到分頻器,分頻器根據接球快慢控制球的運行速度,共快中慢三種速度,分別為50Hz,10Hz,5.556Hz。為方便檢查結果,SW1直接控制速度開關,共快慢兩種速度,分別為50Hz,5.556Hz。中間變量的初始化:SIGNALST,NST: STATE:=start;SIGNALreg: STD_LOGIC_VECTOR(17DOWNTO2);--燈的內部變量SIGNALBIFEN1,BIFEN2: integerrange0to11;--選手甲乙的比分記錄變量SIGNALBIJUONE,BIJUTWO: integerrange0to4;--選手甲乙的比局記錄變量SIGNALTEMP: integerrange0to1;--比局數的內部計數變量SIGNALBIJU1,BIJU2: STD_LOGIC_VECTOR(6DOWNTO0);--選手甲乙的比局譯碼輸出變量SIGNAL BIFENOUT11,BIFENOUT12,BIFENOUT21,BIFENOUT22:STD_LOGIC_VECTOR(6DOWNTO0);--選手甲乙的比分譯碼輸出變量SIGNALREG_1: STD_LOGIC_VECTOR(6DOWNTO0); --數碼管的內部變量SIGNALREG_5: STD_LOGIC_VECTOR(6DOWNTO0); SIGNALREG_3: STD_LOGIC_VECTOR(6DOWNTO0); SIGNALREG_8: STD_LOGIC_VECTOR(6DOWNTO0); SIGNALREG_4: STD_LOGIC_VECTOR(6DOWNTO0); SIGNALREG_2: STD_LOGIC_VECTOR(6DOWNTO0); 2.主控組合進程:通過判斷球的位置信號及開關鍵信號執行相應的狀態轉換。EN=1時游戲開始,進入狀態start,temp開始計數,進入狀態wait1檢測發球選手并點亮相應的球所代表的LED,之后進入狀態send,之后選擇進入狀態,movatoright或movetoleft,球開始向對方選手移動,當球到達可接球區域時,若對方及時擊打并及時關閉開關,則進入狀態movetoleft或movatoright球向回移動,如此反復。若發球方或接球方未及時關閉開關,則視為擊打失敗,返回狀態start,對方加一分。每局為11分制,共設七局。每結束一局temp就會相應加1,當temp加到5,即分出勝負之后顯示閃爍輔助標志End。以選手甲發球為例:(1)進入狀態start,統計比分及比局。(2)進入狀態send,判斷選手甲(假設甲為左邊一方)是否發球,若發球則進入狀態wait1,否則停留在狀態start。(3)進入狀態wait1,判斷選手甲發球端球代表的燈REG17是否亮起,若是則進入狀態movetoright,反之返回狀態start。。(4)進入狀態movetoright,燈右移,并判斷是否有無關按鍵按下(SW17~SW14),若無則繼續右移,反之返回狀態start并且對方得一分。當球移至REG6~REG2,進入選手乙可接球區域:當球移至REG6時選手乙及時擊打相應開關SW6,則進入狀態movetoleft,并調整球運行速度為快。若提前擊打或未及時關閉開關,則擊球失敗并且對方得一分,進入狀態start。REG5條件下類似。當球移至REG4時選手乙及時擊打開關SW4,則進入狀態movetoleft,并調整球運行速度為中。若提前擊打或未及時關閉開關,則擊球失敗并且對方得一分,進入狀態start。REG4,REG3條件下類似。(5)進入狀態movetoleft,燈左移,并判斷是否有無關按鍵按下(SW2~SW5),若無則繼續右移,反之返回狀態start并且對方得一分。當球移至REG17~REG13,進入選手甲可接球區域:當球移至REG13時選手乙及時擊打相應開關SW6,則進入狀態movetoright,并調整球運行速度為快。若提前擊打或未及時關閉開關,則擊球失敗并且對方得一分,進入狀態start。REG14條件下類似。當球移至REG15時選手乙及時擊打開關SW4,則進入狀態movetoright,并調整球運行速度為中。若提前擊打或未及時關閉開關,則擊球失敗并且對方得一分,進入狀態start。REG16,REG17條件下類似。附movetoright代碼:WHENmovetoright=>REG<='0'®(17DOWNTO3);- -右移狀態 CASEREGIS WHEN"10000"=>NST<=movetoright; WHEN"00000"=> IFHIT="00000"THEN --開關及時關上 NST<=movetoright; ELSE BIFEN2<=BIFEN2+1;NST<=start; --若未及時關上,對方加分 ENDIF; WHEN"00000"=>NST<=movetoright; WHEN"00000"=> IFHIT="00000"THEN NST<=movetoright; ELSE BIFEN2<=BIFEN2+1;NST<=start; ENDIF; WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"10000"=> IFHIT="10000"THENCONTROL<="01";NST<=movetoleft; ELSIFHIT(5)='1'THEN BIFEN1<=BIFEN1+1; NST<=start; ENDIF; WHEN"01000"=> IFHIT(4)='1'THEN BIFEN1<=BIFEN1+1; NST<=start; ELSIFHIT="01000"THENCONTROL<="01";NST<=movetoleft; ENDIF; WHEN"00100"=> IFHIT(3)='1'THEN BIFEN1<=BIFEN1+1; NST<=start; ELSIFHIT="00100"THENCONTROL<="10";NST<=movetoleft; ENDIF; WHEN"00010"=> IFHIT(2)='1'THEN BIFEN1<=BIFEN1+1; NST<=start; ELSIFHIT="00010"THENCONTROL<="10";NST<=movetoleft; ENDIF; WHEN"00001"=> IFHIT="00001"THENCONTROL<="10";NST<=movetoleft; ELSEBIFEN1<=BIFEN1+1; NST<=start; ENDIF; WHENOTHERS=>NST<=start; ENDCASE;3.主控時序進程:控制游戲使能及狀態轉換,具有異步清零功能。附代碼:PROCESS(EN,RST,CLK) BEGIN IFEN='1'THEN IFRST='0'THENST<=start; ELSIFCLK'EVENTandCLK='1'THENST<=NST; ENDIF; ENDIF;ENDPROCESS;4.譯碼進程:EN=0時顯示學號;EN=1時將選手甲、乙的比分及比局變量譯碼轉為七段數碼管顯示。并且當TEMP=0時,在數碼管上顯示游戲結束標志End。代碼見附錄。3.1.3RTL圖圖5控制模塊RTL圖圖5控制模塊RTL圖
3.2分頻模塊3.2.1引腳功能表SEQ表格\*ARABIC2分頻模塊引腳功能表FD定義類型外設引腳功能instd_logicCLK內部50MHz時鐘ENKEY3總使能開關SW1SW1頻率直接選擇信號CONTROL速度控制頻率選擇信號outstd_logicCLKOUT提供頻率給GAME3.2.2核心代碼及解釋1.核心代碼PROCESS(CLK,EN) VARIABLEtemp1: integerrange999999downto0:=0; --50Hz VARIABLEtemp2: integerrange4999999downto0:=0; --10Hz VARIABLEtemp3: integerrange8999999downto0:=0; --5.556Hz BEGIN IFEN='1'THEN ifCLK'EVENTANDCLK='1'THEN IFtemp1=999999 THEN temp1:=0;Q1<=NOTQ1; ELSE temp1:=temp1+1; ENDif; IFtemp2=4999999 THEN temp2:=0;Q2<=NOTQ2; ELSE temp2:=temp2+1; ENDif; IFtemp3=8999999 THEN temp3:=0;Q3<=NOTQ3; ELSE temp3:=temp3+1; ENDif; endif; ELSE temp1:=0;Q1<='0'; temp2:=0;Q2<='0'; temp3:=0;Q3<='0'; ENDIF;CASECONTROLISWHEN"00"=> IFSW1='1'THEN CLKOUT<=Q1; ELSIFSW1='0'THEN CLKOUT<=Q3; ENDIF;WHEN"01"=>CLKOUT<=Q2;WHEN"10"=>CLKOUT<=Q3;WHENOTHERS=>CLKOUT<=Q1;ENDCASE;ENDPROCESS;2.解釋該模塊將內部時鐘的50MHz信號,變為50Hz,10Hz,5.556Hz。內部變量分別為Q1、Q2、Q3,將根據GAME模塊反饋的CONTROL選擇輸出到CLKOUT。初始條件下可直接通過SW1控制Q1、Q3輸出到CLKOUT。3.2.3RTL圖圖6分頻模塊RTL圖
第四部分操作配圖1、EN=0,顯示學號圖7顯示學號153835、1538422、EN=1,初始狀態,甲和乙比局和比分均為0。圖8初始狀態3、EN=1,甲發球,SW17亮。圖94、EN=1,右移狀態。圖105、EN=1,乙接球失敗,乙發球情況。圖116、甲乙比局2:1,比分2:5情況顯示如下。圖177、游戲結束輔助顯示如下。圖12
第五部分結論4.1遇到的問題和改進問題1:在比賽結束時,比分比局迅速清零,無法使比分比局按我們的意志在某時刻清零。解決辦法:增設輔助信號,當比賽結束時,使數碼管在結束標志與比局之間切換顯示,最后由人為的控制使能開關清零。問題2:無法按照在不同鍵接球改變球運行的速度。解決辦法:設一個反饋控制信號,將不同鍵接球信息反饋回分頻模塊里從而控制速度。4.2工作分配比例邢可馨:分頻模塊,按鍵擊球以及比賽記分譯碼代碼的設計與開發(55%)陳聲琴:速度控制處理、狀態機代碼的設計與開發(45%)
第六部分附錄分頻模塊代碼:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.all;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYFDIS PORT( EN: INSTD_LOGIC; CLK:INSTD_LOGIC; CLKOUT:OUTSTD_LOGIC; SW1:INSTD_LOGIC; CONTROL:INSTD_LOGIC_VECTOR(1DOWNTO0));ENDFD;ARCHITECTUREbehavOFFDISsignalQ1: STD_LOGIC;signalQ2: STD_LOGIC;signalQ3: STD_LOGIC;BEGIN PROCESS(CLK,EN) VARIABLEtemp1: integerrange999999downto0:=0;最快使比賽結束的速度 VARIABLEtemp2: integerrange4999999downto0:=0;接球加速后的速度 VARIABLEtemp3: integerrange8999999downto0:=0;正常發球速度 BEGIN IFEN='1'THEN ifCLK'EVENTANDCLK='1'THEN IFtemp1=999999 THEN temp1:=0;Q1<=NOTQ1; ELSE temp1:=temp1+1; ENDif; IFtemp2=4999999 THEN temp2:=0;Q2<=NOTQ2; ELSE temp2:=temp2+1; ENDif; IFtemp3=8999999 THEN temp3:=0;Q3<=NOTQ3; ELSE temp3:=temp3+1; ENDif; endif; ELSE temp1:=0;Q1<='0'; temp2:=0;Q2<='0'; temp3:=0;Q3<='0'; ENDIF;CASECONTROLIS使用反饋信號控制速度WHEN"00"=> IFSW1='1'THEN CLKOUT<=Q1; ELSIFSW1='0'THEN CLKOUT<=Q3; ENDIF;WHEN"01"=>CLKOUT<=Q2;WHEN"10"=>CLKOUT<=Q3;WHENOTHERS=>CLKOUT<=Q1;ENDCASE; ENDPROCESS;ENDbehav;狀態機、擊球、比賽計分、譯碼控制模塊LIBRARYieee;USEieee.std_logic_1164.all;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYGAMEIS PORT( EN: INSTD_LOGIC; CLK: INSTD_LOGIC; 速度控制時鐘 RST: INSTD_LOGIC; HIT: INSTD_LOGIC_VECTOR(17DOWNTO2); CONTROL:OUTSTD_LOGIC_VECTOR(1DOWNTO0);反饋信號控制球速 LIGHT: OUTSTD_LOGIC_VECTOR(17DOWNTO2); HEX_7:OUTSTD_LOGIC_VECTOR(6DOWNTO0); HEX_6:OUTSTD_LOGIC_VECTOR(6DOWNTO0); HEX_5:OUTSTD_LOGIC_VECTOR(6DOWNTO0); HEX_4:OUTSTD_LOGIC_VECTOR(6DOWNTO0); HEX_3:OUTSTD_LOGIC_VECTOR(6DOWNTO0); HEX_2:OUTSTD_LOGIC_VECTOR(6DOWNTO0); HEX_1:OUTSTD_LOGIC_VECTOR(6DOWNTO0); HEX_0:OUTSTD_LOGIC_VECTOR(6DOWNTO0) );ENDENTITYGAME;ARCHITECTUREbehavOFGAMEISTYPESTATEIS(start,wait1,send,movetoright,movetoleft);五種狀態SIGNALST,NST:STATE:=start;SIGNALreg: STD_LOGIC_VECTOR(17DOWNTO2);SIGNALBIFEN1,BIFEN2: integerrange0to11;SIGNALBIJUONE,BIJUTWO: integerrange0to4;SIGNALTEMP: integerrange0to1;SIGNALBIJU1,BIJU2: STD_LOGIC_VECTOR(6DOWNTO0);SIGNALBIFENOUT11,BIFENOUT12,BIFENOUT21,BIFENOUT22:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALREG_1: STD_LOGIC_VECTOR(6DOWNTO0); SIGNALREG_5: STD_LOGIC_VECTOR(6DOWNTO0); SIGNALREG_3: STD_LOGIC_VECTOR(6DOWNTO0); SIGNALREG_8: STD_LOGIC_VECTOR(6DOWNTO0); SIGNALREG_4: STD_LOGIC_VECTOR(6DOWNTO0); SIGNALREG_2: STD_LOGIC_VECTOR(6DOWNTO0); BEGIN REG_1<="1111001"; REG_5<="0010010"; REG_3<="0110000"; REG_8<="0000000"; REG_4<="0011001"; REG_2<="0100100"; PROCESS(EN,RST,CLK) BEGIN IFEN='1'THEN IFRST='0'THENST<=start; ELSIFCLK'EVENTandCLK='1'THENST<=NST; ENDIF; ENDIF;ENDPROCESS;PROCESS(ST,HIT,REG,CLK,EN) BEGIN IFEN='1'THEN IFCLK'EVENTANDCLK='1'THEN CASESTIS WHENstart=>REG<="00000"; IFBIFEN2=11THEN BIJUTWO<=BIJUTWO+1; BIFEN1<=0; BIFEN2<=0; ENDIF; IFBIFEN1=11THEN BIJUONE<=BIJUONE+1; BIFEN1<=0; BIFEN2<=0; ENDIF; IFBIJUONE=4ORBIJUTWO=4THEN 判斷比賽結束 TEMP<=TEMP+1; ENDIF; NST<=wait1; WHENwait1=>發球 CASEHITIS WHEN"10000"=>REG<="10000"; NST<=send; WHEN"00001"=>REG<="00001"; NST<=send; WHENOTHERS=>NST<=start; ENDCASE; WHENsend=>CONTROL<="00"; CASEREGIS WHEN"10000"=>NST<=movetoright; WHEN"00001"=>NST<=movetoleft; WHENOTHERS=>NST<=start; ENDCASE; WHENmovetoright=>REG<='0'®(17DOWNTO3);球右移 CASEREGIS WHEN"10000"=>NST<=movetoright; WHEN"00000"=> IFHIT="00000"THEN根據按鍵是否及時關上判斷是否發球成功 NST<=movetoright; ELSE BIFEN2<=BIFEN2+1;NST<=start; ENDIF; WHEN"00000"=>NST<=movetoright; WHEN"00000"=> IFHIT="00000"THEN NST<=movetoright; ELSE BIFEN2<=BIFEN2+1;NST<=start; ENDIF; WHEN"00000"=>NST<=movetoright; 不允許接球區域 WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"00000"=>NST<=movetoright; WHEN"10000"=>允許接球區域 IFHIT="10000"THENCONTROL<="01";NST<=movetoleft;接球成功左移 ELSIFHIT(5)='1'THEN判斷是否提前擊球 BIFEN1<=BIFEN1+1; NST<=start; ENDIF; WHEN"01000"=> IFHIT(4)='1'THEN BIFEN1<=BIFEN1+1; NST<=start; ELSIFHIT="01000"THENCONTROL<="01"; NST<=movetoleft; ENDIF; WHEN"00100"=> IFHIT(3)='1'THEN BIFEN1<=BIFEN1+1; NST<=start; ELSIFHIT="00100"THEN CONTROL<="10";NST<=movetoleft; ENDIF; WHEN"00010"=> IFHIT(2)='1'THEN BIFEN1<=BIFEN1+1; NST<=start; ELSIFHIT="00010"THENCONTROL<="10";NST<=movetoleft; ENDIF; WHEN"00001"=> IFHIT="00001"THENCONTROL<="10";NST<=movetoleft; ELSEBIFEN1<=BIFEN1+1; NST<=start; ENDIF; WHENOTHERS=>NST<=start; ENDCASE; WHENmovetoleft=>REG<=REG(16DOWNTO2)&'0'; CASEREGIS WHEN"00001"=>NST<=movetoleft; WHEN"00010"=> IFHIT="00000"THEN NST<=movetoleft; ELSE BIFEN1<=BIFEN1+1;NST<=start; ENDIF; WHEN"00100"=> NST<=movetoleft; WHEN"01000"=> IFHIT="00000"THEN NST<=movetoleft; ELSE BIFEN1<=BIFEN1+1;NST<=start; ENDIF; WHEN"10000"=>NST<=movetoleft; WHEN"00000"=>NST<=movetoleft; WHEN"00000"=>NST<=movetoleft; WHEN"00000"=>NST<=movetoleft; WHEN"00000"=>NST<=movetoleft; WHEN"00000"=>NST<=movetoleft; WHEN"00000"=>NST<=movetoleft; WHEN"00000"=> IFHIT(14)='1'THEN BIFEN2<=BIFEN2+1; NST<=start; ELSIFHIT="00000"THENCONTROL<="01";NST<=movetoright; ENDIF; WHEN"00000"=> IFHIT(15)='1'THEN BIFEN2<=BIFEN2+1; NST<=start; ELSIFHIT="00000"THENCONTROL<="01";NST<=movetoright; ENDIF; WHEN"00000"=> IFHIT(16)='1'THEN BIFEN2<=BIFEN2+1; NST<=start; ELSIFHIT="00000"THENCONTROL<="10";NST<=movetoright; ENDIF; WHEN"00000"=> IFHIT(17)='1'THEN BIFEN2<=BIFEN2+1; NST<=start; ELSIFHIT="00000"THENCONTROL<="10";NST<=movetoright; ENDIF; WHEN"10000"=> IFHIT="10000"THENCONTROL<="10";NST<=movetoright; ELSEBIFEN2<=BIFEN2+1;NST<=start; ENDIF; WHENOTHERS=>NST<=start; ENDCASE; ENDCASE; ENDIF; ELSE不使能 BIFEN1<=0; BIFEN2<=0; BIJUTWO<=0; BIJUONE<=0;ENDIF;ENDPROCESS; PROCESS(EN,BIFEN1,BIFEN2,BIJUONE,BIJUTWO,TEMP)譯碼區域BEGIN IFEN='0'THEN HEX_7<="1111111"; HEX_6<="1111111"; HEX_5<=REG_1; HEX_4<=REG_5; HEX_3<=REG_3; HEX_2<=REG_8; HEX_1<=REG_3; HEX_0<=REG_5; ELSE CASEBIFEN1IS WHEN0=>BIFENOUT11<="1000000";BIFENOUT12<="1000000"; WHEN1=>BIFENOUT11<="1000000";BIFENOUT12<="1111001"; WHEN2=>BIFENOUT11<="1000000";BIFENOUT12<="0100100"; WHEN3=>BIFENOUT11<="1000000";BIFENOUT12<="0110000"; WHEN4=>BIFENOUT11<="1000000";BIFENOUT12<="0011001"; WHEN5=>BIFENOUT11<="1000000";BIFENOUT12<="0010010"; WHEN6=>BIFENOUT11<="1000000";BIFENOUT12<="
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司節能降耗活動方案
- 公司組織KTV唱歌活動方案
- 公司網絡經營活動方案
- 公司福利旅行活動方案
- 公司每月團聚活動方案
- 公司節日互動活動方案
- 公司組織娛樂活動方案
- 公司每日員工活動方案
- 公司組織去爬山活動方案
- 公司班組趣味活動方案
- 2023風光互補路燈設計方案
- 2023年山東省夏季普通高中學業水平合格考試會考生物試題及參考答案
- 2024年山東省青島市中考英語試卷附答案
- 2023-2024學年山東省臨沂市蘭山區八年級(下)期末數學試卷(含答案)
- 材料力學(山東聯盟-中國石油大學(華東))智慧樹知到期末考試答案章節答案2024年中國石油大學(華東)
- 江西省南昌二中心遠教育集團九灣學校2023-2024學年八年級下學期期末考試物理試題
- 深入理解Nginx(模塊開發與架構解析)
- MOOC 中國文化概論-華南師范大學 中國大學慕課答案
- 初中人教版八年級下冊期末物理真題模擬試卷經典套題
- JBT 11699-2013 高處作業吊籃安裝、拆卸、使用技術規程
- 家長會課件:初中七年級家長會課件
評論
0/150
提交評論