Cov txheej txheem:
Video: Mastermind Game hauv VHDL: 3 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:29
Rau peb txoj haujlwm, peb tsim "Mastermind" game hauv VHDL los ua si ntawm Basys3 board. Mastermind yog kev ua si txhaum cai ib txwm ua si nrog pegs thiab game board. Player ib qhov chaw pegs ntawm cov xim sib txawv hauv kab ntawm 4, zais los ntawm cov neeg ua si ob. Cov neeg uas ua ntawv ob ces muaj 'x' tus lej ntawm kev kwv yees tso cov pegs rau ntawm pawg thawj coj saib uake pom rau tus neeg uas ua ntawv. Tom qab txhua qhov kev kwv yees, tus neeg uas ua ntawv paub ob tus lej 2: pes tsawg tus pegs yog xim raug, thiab pes tsawg tus pegs nyob hauv txoj haujlwm raug nyob hauv kab. Siv cov lus qhia no, tus neeg ua si ob yuav tsum kwv yees qhov sib lawv liag ntawm tus pin uas tus neeg uas ua ntawv tso rau hauv tus lej kwv yees tau faib.
Hauv peb qhov kev siv, qhov kev ua si yog ib leeg nkaus xwb. Kev sib xyaw ua ke ntawm pegs tau tsim los ntawm txoj haujlwm, thiab cov neeg uas ua ntawv yuav tsum siv Pawg Basys3 los kwv yees qhov ua ntu zus. Muaj plaub "xim," sawv cev los ntawm tus lej binary. 7-ntu zaub qhia pom peb qhov tseem ceeb: tshuav puv, tus lej ntawm tus lej hauv txoj haujlwm raug, thiab tus lej tus lej uas yog xim raug hauv qhov tsis raug (cov txiaj ntsig no pib ntawm 9, 0, thiab 0). Tus neeg siv khoom siv cov hloov pauv ntawm lub rooj tsavxwm los xaiv tus lej binary rau nws qhov kev kwv yees, thiab tig lwm qhov hloov pauv kom xa qhov kev kwv yees. Yog tias lawv yog qhov raug, qhov kev ua si xaus thiab 7-ntu qhia pom "GG." Yog tias tsis yog, lub txee tig rov qab txo los ntawm 1 thiab tus neeg ua si tau txais cov lus tawm tswv yim raws li muaj pes tsawg tus pin hauv lawv qhov kev twv kom phim cov xim lossis txoj haujlwm ntawm tus pin hauv kev sib xyaw. Yog tias tus neeg uas ua ntawv khiav tawm ntawm qhov tsis muaj kev twv kom raug, cov duab qhia "GO" (sawv cev rau kev ua si dhau). Tus neeg ua si kuj tseem tuaj yeem tig rov pib dua kom pib dua txhua lub sijhawm.
Kauj ruam 1: Cov ntaub ntawv
Txij li tag nrho cov game tuaj yeem ua si ntawm lub rooj tsavxwm nws tus kheej, tsuas yog cov ntaub ntawv xav tau yog Basys3 Board, lub micro USB cable txuas rau lub rooj tsavxwm, thiab lub khoos phis tawj/laptop uas koj tuaj yeem siv rau tus lej!
Kauj ruam 2: Txoj Cai
Txhawm rau qhov kev ua si no ua haujlwm ntawm FPGA, txoj hauv kev yooj yim tshaj plaws los mus sau ntawv nws yuav yog tsim lub xeev lub tshuab. Muaj lub xeev lub tshuab tso cai ua ntu zus thiab sib tham sib paub tsim nyog rau kev ua si kom ua haujlwm tau zoo. Txhawm rau txhua yam kom ua haujlwm tau zoo, lub xeev lub tshuab yuav ua raws lub moos moos teeb liab ntawm FPGA, kom ntseeg tau tias txhua yam nyob ua ke. Lub ntsiab module yog lub xeev tshuab nrog plaub lub xeev; Lub Xeev Pib (Pib), Xa Lub Xeev (SubAns), Lub Xeev Tso Tawm (Dis), thiab Lub Xeev CheckEndGame (CheckEnd). Nrog rau lub xeev lub tshuab, lub ntsiab lus tseem ceeb muaj ob lub submodules, 4-digit Seven Segment Display (uas muaj nws tus kheej ClkDivider submodule), thiab Random Number Generator (qhov tseeb yog psuedo-random tus lej generator). Kuj tseem muaj cov txheej txheem txheej txheem kom muaj LED qhov siab tshaj txhua qhov kev hloov pauv thaum hloov mus raws li txoj hauv kev rau tib neeg kom pom qhov lawv nkag mus yooj yim dua. Cov txheej txheem txheej txheem ntawm cov cai tuaj yeem pom hauv daim duab qhia kev xav.
Thawj qhov khoom siv los saib yog Random Number Generator (randomgen). Txij li nws tsis muaj peev xwm ua tau kom tau txais cov lej tseeb tsim los ntawm kho vajtse, qhov kev daws teeb meem yooj yim tshaj plaws yog kom muaj qhov randomgen tiag yog Linear-feedback Shift Register (LFSR). LFSR muaj cov tswv yim ntawm clk thiab cov zis "a" (tus lej 12-ntsis). Txhua lub moos hloov pauv, tus lej 12-ntsis tshiab tau tsim los ntawm "000000000001", thaum kawg dhau los ntawm txhua qhov sib txuas ntawm 12-ntsis ntawm 1's thiab 0's ua ntej rov ua nws tus kheej. Cov zis "a" tau muab rau txhua lub moos, yog li nws txuas ntxiv mus tas li. Lub clk tau teeb tsa mus rau Clk los ntawm cov qauv tseem ceeb, thiab "a" tau teeb tsa rau lub teeb liab RandNum hauv cov qauv tseem ceeb.
Qhov thib ob submodule yog 4 tus lej Xya Segment Display. Nov yog txoj hauv kev zoo nkauj ntawm kev nthuav tawm 4-tus lej Xya Segment Display. Cov zaub tau teeb tsa ntawm Clk los ntawm cov qauv tseem ceeb, tsis tau qhov submodule nws muaj nws tus kheej submodule ntawm ClkDivider. ClkDivider (teeb tsa rau 1298 Hz) tau siv los ua kom lub sijhawm nrawm rau Xya Caum kom txhua tus lej tshwm nyob rau tib lub sijhawm (txij li tsuas muaj ib tus lej tuaj yeem ua tau ntawm ib lub sijhawm). Qhov sib txawv "tus lej" tau siv los ua voj voos ntawm cov chaw ntawm cov zaub, thiab nrog txhua tus lej los txog qhov xwm txheej ntawm qhov pib 4-ntsis cov lus tso tawm, nrog kev xaiv los qhia tus lej 0 txog 9 thiab kuj tsis muaj dab tsi. Tus lej sab laug deb tshaj plaws ntawm cov zaub tau teeb tsa tsis muaj ib yam vim nws tsis tau siv hauv qhov kev ua si no.
Lub hauv paus tseem ceeb suav nrog lub tshuab hauv xeev. Plaub lub xeev hauv tus txheej txheem yog Pib, SubAns, Dis, thiab CheckEnd. Thaum nyob hauv thawj lub xeev, yog tias SubmitBtn (hloov siv xa koj cov lus teb rau kev kuaj xyuas) tau teeb tsa rau '1', tom qab ntawd lub tshuab txav mus rau SubAns State. Txhua lub sijhawm Rbtn (hloov siv lub tshuab rov pib dua) tau teeb tsa rau '1', tom qab ntawd lub tshuab rov qab mus rau Lub Xeev Pib. Thaum nyob hauv SubAns State, thaum SubmitBtn = '0' dua, nws txav mus rau Dis State. Thaum nyob hauv Lub Xeev Dis, yog suav suav = 0 (Lub lem tig los kwv yees poob rau 0) lossis yog RSpotCount = 4 (lub ntsiab lus tus neeg uas ua ntawv zoo li txhua qhov xim hauv qhov chaw raug), lub tshuab mus rau Lub Xeev CheckEnd. Yog tias tsis muaj qhov tshwm sim, tom qab ntawd thaum SubmitBtn = '1' dua, nws rov qab mus rau SubAns xeev kom tso cai lwm qhov kev kwv yees. Thaum nyob hauv Xeev CheckEnd, qhov no yog qhov kawg ntawm qhov kev ua si, thiab tsuas yog txoj hauv kev tawm yog txhawm rau rov pib dua, xa rov qab mus rau Lub Xeev Pib. Qhov no yooj yim pom muaj peev xwm hauv lub xeev daim duab qhia chaw. Tus Cwj Pwm Thawj Lub Xeev pib ua txhua yam rov qab mus rau txoj haujlwm pib. Suav Rov Qab (lub teeb liab uas txuag pes tsawg tus tig laug tus neeg uas ua ntawv muaj) tau teeb tsa rau 9, RSpotCount (teeb liab uas txuag tau pes tsawg xim uas koj kwv yees nyob hauv qhov chaw raug) tau teeb tsa rau 0, RColorCount (teeb liab uas txuag tau pes tsawg ntawm cov xim uas koj xav tias yog lawm tab sis nyob hauv qhov chaw tsis raug) tau teeb tsa rau 0, thiab cov suav me me (lub teeb liab uas thaum kawg tau teeb tsa rau Countdown uas tau hloov pauv txhua qhov tig hauv lub xeev tom qab) tau teeb tsa rau 9. Tsis tas li, hauv Lub Xeev Pib lub RandNum (psuedo-random tsim tus lej) tau faib ua plaub qhov kev txheeb xyuas sib txawv (ib qho rau txhua 3-ntsis xim) thiab khaws tseg rau cov cim kos 1, kos 2, kos 3, kos 4. Cov tshev no yog qhov koj kwv yees tiag tiag piv rau, yog li txawm tias LFSR ib txwm ua rau RandNum hloov pauv txhua lub voj voog, thaum koj tawm ntawm Lub Xeev Thawj zaug cov tshev nyiaj nyob zoo ib yam, tso cai tus nqi khaws tseg los sib piv koj cov lus teb tawm tsam. Qhov no kuj txhais tau tias txhua lub sijhawm lub tshuab rov pib dua, tus neeg ua si muaj tus nqi tshiab los kwv yees.
Lub Xeev SubmitAnswer (SubAns) hloov pauv tus lej suav suav (teeb liab "hloov pauv") mus rau '1'. Qhov no xav tau tom qab txhawm rau txhawm rau taug qab kom ua haujlwm. Tom qab ntawd, lub xeev sib piv cov neeg siv khoom nkag los ntawm cov hloov pauv mus rau cov tshev hauv lub xeev saum toj no. Teeb liab rs1, rs2, rs3, rs4 thiab cov cim rc1, rc2, rc3, rc4 yog cov lej sib txuas uas nyob ntawm Cov Lus Yog hais tias tau teeb tsa rau 1 lossis 0. Lub teeb liab rs yog rau qhov chaw raug thiab rc rau xim raug. Piv txwv li yog tias xim 1 tus neeg twv twv sib npaug rau qhov kos 1 ntawm RandNum, tom qab ntawd rs1 = 1 vim qhov ntawd txhais tau tias xim raug yog nyob ntawm qhov chaw raug. Yog tias xim 1 tsis sib npaug kos 1, tab sis sib npaug ib qho ntawm lwm qhov tshev, ces rc = 1. Qhov no ua tiav rau txhua xim thiab txhua daim tshev.
Lub Xeev Zaub (Dis) xub nrhiav thawj tus suav suav suav. Yog tias nws yog '1', tom qab ntawv suav tsawg dua 1 (yog li thawj zaug nws mus ntawm 9 txog 8 thiab lwm yam). Txwv tsis pub lub lem tsis hloov. Txawm hais tias qhov ntawd pab tau li cas, txhua qhov rs qhov tseem ceeb los ntawm saum toj no tau ntxiv thiab muab rau teeb liab RSpotCounter. Tsis tas li txhua qhov txiaj ntsig rc tau ntxiv thiab muab rau RColorCounter. Thaum kawg Countdown tau muab tus nqi ntawm kev suav me me. Cov cim RSpotCounter, RColorCounter, thiab Countdown tau hloov pauv mus rau 4-ntsis std_logic_vectors sab nrauv ntawm tus txheej txheem, thiab thawb mus rau Xya Segment zaub submodule los ntawm daim ntawv qhia chaw nres nkoj. Txoj kev no, tso saib pom qhov raug kom txog thaum koj xa cov lus teb tshiab.
Lub Xeev CheckEnd yog rau seb koj puas tau yeej lossis poob. Yog tias koj tau yeej (tag nrho 4 xim nyob hauv qhov chaw raug, txwv tsis pub hu ua RSpotCounter = 4), tom qab ntawd "GG" (qhia tau zoo li 66) tau tshwm rau ntawm Xya Ntug los qhia tias koj yeej. Yog tias koj tau poob (Suav suav rov qab tau mus txog 0) tom qab ntawd "GO" (pom zoo li 60) tau muab tso rau ntawm cov zaub rau Game Over. Nrog ob qho txiaj ntsig, tsoo qhov hloov pauv hloov mus rau yuav txav lub tshuab rov qab mus rau Lub Xeev Pib ua si dua.
Source Code tuaj yeem pom ntawm no.
Kauj Ruam 3: Xaus
Ua kom tiav txoj haujlwm no qhia peb ntau yam txog kev tsim cov kab ke nyuaj. Peb qhov kev tsim thawj zaug tsis yog lub xeev lub tshuab ua kom tiav. Peb pom nws nyuaj rau debug, thiab rov sau dua cov lej ntau zaus siv ntau txoj hauv kev (suav nrog FSM). Raws li tus kws qhia tawm tswv yim, peb nyam nrog FSM txoj hauv kev thiab peb tuaj yeem ua tiav qhov kev ua si. Peb tau kawm paub tias nws muaj txiaj ntsig ntau dua los tsim cov cai raws li kho vajtse ntau dua nrog cov txheej txheem txheej txheem ib txwm muaj. Peb kuj tau ntsib ntau qhov kev cov nyom uas cuam tshuam nrog rau xya ntu tso saib. Ua kom nws nthuav tawm ntau tus lej yam tsis muaj "dab" yog qhov nyuaj, thiab peb yuav tsum siv lub moos faib ua kom tiav qhov no. Yog tias peb yuav txhim kho txoj haujlwm no ntxiv, peb yuav txuas cov xim LED rau Basys3 yog li tus neeg siv tuaj yeem pom xim (zoo li hauv kev ua si ib txwm muaj) ntau dua li cov lej sawv cev ntawm cov xim. Thaum kawg, peb tau txais kev nkag siab ntau dua ntawm kev tsim cov txheej txheem nyuaj, kev siv lub neej tiag tiag, thiab cov kev cov nyom ntawm kev siv kho vajtse ntau dua li kev sim sim nrog cov xwm txheej zoo meej.
Pom zoo:
Yuav Ua Li Cas Txhim Kho Plugins hauv WordPress hauv 3 Kauj Ruam: 3 Kauj Ruam
Yuav Ua Li Cas Txhim Kho Plugins hauv WordPress hauv 3 Kauj Ruam: Hauv qhov kev qhia no kuv yuav qhia koj cov kauj ruam tseem ceeb rau nruab wordpress plugin rau koj lub vev xaib. Yeej koj tuaj yeem teeb tsa plugins hauv ob txoj kev sib txawv. Thawj txoj hauv kev yog los ntawm ftp lossis hla cpanel. Tab sis kuv yuav tsis sau nws li nws yog qhov txaus siab heev
Yuav Ua Li Cas Txhim Kho Kev Tswj Xyuas AGS-001 Pem Hauv Ntej Rau Hauv Qhov Game Game Boy Advance (Tsis Muaj LOCA!): 5 Kauj Ruam (nrog Duab)
Yuav Ua Li Cas Txhim Kho Kev Tswj Xyuas AGS-001 Pem Hauv Ntej Rau Hauv Qhov Kev Ua Si Thawj Tub Ntxhais Ua Ntej (Tsis Muaj LOCA!): Koj tab tom nrhiav kom pom koj lub Game Game Boy Advance qub. Koj tsis tuaj yeem pom cov khoom siv tshiab IPS backlit IPS nyob txhua qhov chaw, thiab cov khoom siv AGS-101 qub dhau ntawm cov khoom lossis cov nqi ntau dhau. Dhau li, koj xav kom tuaj yeem pom lub vijtsam thaum koj nyob nraum zoov
Kev Tswj Dej Hauv Dej Hauv Dej Hauv Dej: 10 Kauj Ruam (nrog Duab)
Underwater Remote Control Drone: Kuv txiav txim siab los tsim ROV no rau lub hom phiaj ntawm kev tshawb fawb thiab kev qhuas ntawm lub ntiaj teb hauv qab dej vim tias tsis muaj ntau tus nqi tsim txiaj hauv cov drones hauv qab. Txawm hais tias nws siv sijhawm ntau, tshawb fawb, thiab autodidacticism, nws yog qhov kev lom zem
Ntse Suab Nkauj hauv Chav Dej thiab Da Dej Nrog Raspberry Pi - Sib Koom Ua Ke Hauv Chav, Tswb, Khawm Tswj thiab Kev Siv Tsev Hauv Tsev: 7 Kauj Ruam
Ntse Suab Nkauj hauv chav pw thiab Da Dej Nrog Raspberry Pi - Sib Koom Ua Ke Hauv Chav, Tswb, Khawm Tswj thiab Kev Siv Tsev Hauv Tsev: Niaj hnub no peb xav muab ob qho piv txwv txog yuav ua li cas koj tuaj yeem siv Raspberry Pi nrog peb Max2Play software rau hauv tsev automation: hauv chav dej thiab chav pw . Ob txoj haujlwm zoo ib yam nyob hauv cov suab paj nruag siab ncaj los ntawm ntau qhov chaw tuaj yeem rub tawm los
DIY-Rov ua dua lub kiv cua hauv pem teb rau hauv Kev Teeb Duab Teeb Duab/txhua-hauv-ib Teeb: 11 Kauj Ruam
DIY-Rov ua dua lub kiv cua hauv pem teb rau hauv Kev Hloov Kho Lub Teeb/txhua-hauv-ib lub teeb: Yog li kuv nyuam qhuav nyuam qhuav ntxuav lub caij nplooj ntoo hlav thiab tuaj hla cov kiv cua hauv pem teb uas muaj nws lub cav hlawv tawm. Thiab kuv xav tau lub teeb rooj. 2+2 thiab kuv tau ua tswv yim me ntsis thiab tuaj nrog lub tswv yim los hloov lub kiv cua mus rau hauv 20inch dav lub teeb hloov kho. Nyeem rau s