2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49
Anda akan perlu:
1. Digilent Basys 3, FPGA Board (atau FPGA lainnya,)
2. Versi Vivado yang relatif terbaru, atau lingkungan VHDL lainnya
3. Komputer yang dapat menjalankan program tersebut.
Langkah 1: Game Itu Sendiri
Bagaimana FSM berinteraksi dengan modul.
Cara bermain
Untuk memulai, Anda menekan tombol tengah. Ini akan menyebabkan “99”, yang mewakili kesehatan pemain dua, ditampilkan pada tampilan tujuh segmen. Kemudian, LED akan menyala secara berurutan dari kanan ke kiri. Ini membentuk bar daya. Setelah bilah daya penuh, itu akan diatur ulang. Tujuan dari pemain satu adalah untuk membalik saklar mereka ketika bar setinggi mungkin. Semakin banyak LED menyala, semakin banyak kerusakan yang dilakukan pemain pada pemain dua. Setelah pemain satu membalik sakelar mereka, kerusakan yang diberikan dikurangi dari kesehatan pemain dua. Kemudian, beralih ke giliran pemain dua. Sekarang, angka yang ditampilkan mewakili kesehatan pemain, dan bilah daya terisi dari kiri ke kanan. Setelah pemain dua bergerak, kerusakan dikurangi, dan kembali ke giliran pemain satu lagi. Ini berulang hingga satu pemain mencapai 0 kesehatan. Video fungsi ini terlampir.
Langkah 2: FSM
Game ini pada dasarnya adalah satu mesin keadaan terbatas yang besar, di mana beberapa logika kompleks terjadi berdasarkan keadaan tempat FSM berada.
Status 1: Menu Status pertama adalah layar menu, yang merupakan salah satu status yang lebih sederhana. Ini termasuk tampilan tujuh segmen yang menampilkan kata "MAINKAN", dan tombol yang menyebabkan permainan dimulai. Tombolnya, BTN, membawa kita ke keadaan berikutnya, yaitu giliran pemain.
Status 2: Giliran Pemain Satu
Giliran pemain satu mengaktifkan sinyal yang menyebabkan tampilan tujuh segmen menampilkan kesehatan Pemain dua. Sinyal lain menyala untuk mengaktifkan register geser yang diimpor dari modul lain yang kita buat (Pone.vhd). Register geser ini membuat LED menyala seperti pengukur daya yang meningkat di game lain, dan kemudian akan diatur ulang ke 0 ketika mencapai jumlah maksimum LED yang bisa menyala. Ini diperbarui di tepi naik jam yang diperoleh dari barclock.vhd, yang dimodifikasi dari file lab yang dipinjam. Kami memiliki bilah pemain mulai dari kanan, dan mengisi ke kiri, karena sakelar pemain juga ada di kiri (untuk pengalaman pengguna yang intuitif). Setelah sakelar dibalik, status beralih ke pemain satu pengurangan, dan jumlah LED aktif disimpan dalam sinyal.
State 3: Player One Deduct Sinyal dengan jumlah LED yang aktif menentukan jumlah health yang akan dikurangi. Ini dilakukan dengan memiliki register geser lain (deductor1.vhd) yang alih-alih menaikkan LED, menguranginya. Ini mengurangi sisi naik dari salah satu modul div jam yang kami pinjam dan modifikasi (downcounterclock.vhd). Tepat saat satu LED dimatikan, satu poin kesehatan dikurangi dari total kesehatan pemain dua. Jika selama proses ini pemain dua mencapai 0, kami berhenti dan segera beralih ke status "Game over". Jika tidak, setelah vektor LED mencapai "0000000000000000", kami beralih ke giliran pemain dua.
Status 4: Giliran Pemain Dua Giliran pemain dua persis seperti giliran pemain satu, kecuali register geser untuknya (Ptwo.bhd) bergerak dari kiri ke kanan, dan sakelar berada di sisi kanan papan. Sebuah sinyal diaktifkan untuk menampilkan tampilan kesehatan Player 1. Setelah sakelar 2 aktif, ini beralih ke giliran pengurangan Pemain Dua.
Tahap 5: Pemain Dua Deduct Sama seperti giliran pemain dua, pemain dua mengurangi banyak bertindak seperti pemain satu mengurangi. Perbedaan utama adalah bahwa register geser yang mengontrol pematian LED berjalan ke arah yang berlawanan, yang merupakan modifikasi mudah untuk dilakukan setelah Anda membuat pengurangan pemain bekerja dengan benar.
Tahap 6: Game Over Jika pada suatu saat salah satu pemain mencapai kesehatan nol, game beralih ke status ini. Tidak ada tampilan yang mewah. Jika BTN satu ditekan, maka kesehatan diatur ulang ke 99, dan status kembali ke menu, secara efektif memulai permainan.
Langkah 3: Modul
Diagram Kotak Hitam untuk Game
Downcounterclock (berdasarkan modul clk_div.vhd oleh Bryan Mealy):
Ini adalah jam yang menangani waktu pengurang. Konstanta bernama max_count 3x lebih banyak dari konstanta max_count barclock. Ini akan membuat deduktor 3x lebih lambat dari kecepatan bar.
Barclock - (berdasarkan modul clk_div.vhd oleh Bryan Mealy):
Jam ini menangani waktu pengukur daya, yang kami buat dengan cepat untuk menambah kesulitan pada permainan. Pengaturan waktu ini dapat disesuaikan dengan keinginan Anda, meningkatkan kecepatan dengan membuat konstanta max_count menjadi angka yang lebih besar, atau menguranginya dengan membuat max_count menjadi angka yang lebih kecil. Sseg_dec - (Ditulis oleh Bryan Mealy): Modul ini mengambil angka 8 bit sebagai input, yang didekodekan, mengubah angka menjadi ekuivalen desimalnya, dan kemudian menghasilkan tampilan tujuh segmen. Agar file ini berfungsi, Anda perlu memastikan batasan Anda cocok dengan batasan kami.
Roti manis:
Ini adalah register geser yang menggeser bit ke kiri, menambahkan satu bit panas agar terlihat seperti pengukur daya meningkat. Ketika semua bit panas, semua bit diatur ulang ke '0', dan siklus dimulai kembali.
Kedua:
Ini adalah versi terbalik dari modul P1.
Pengurang1:
Ini adalah kombinasi dari register geser dan subtraktor. Register geser bergerak ke arah yang berlawanan dengan register geser P1, menunjukkan pengurangan. Ini juga mengurangi 1 dari kesehatan Pemain 2 untuk setiap siklus jam, jadi dengan kombinasi kedua fungsi ini, akan terlihat seperti kesehatan lawan berkurang 1 untuk setiap led dari bilah kesehatan yang turun.
Deductor2: Ini adalah versi terbalik dari modul Deductor1.
PlayDecoder (dipinjam dan sedikit dimodifikasi dari ekchen35649 instruksinya 133): Ini digunakan dalam status menu untuk menampilkan kata "MAINKAN" pada dekoder tujuh segmen.
Langkah 4: Uji
Game ini awalnya terinspirasi dari salah satu minigame dari Kirby. Ini adalah permainan dua pemain sederhana yang dapat dimainkan di Basys 3 Board, atau FPGA apa pun.
Langkah 1: Bahan yang Diperlukan
Anda memerlukan: Digilent Basys 3, FPGA Board (atau lainnya) Versi Vivado yang relatif terbaru, atau lingkungan vhdl lainnya Komputer yang dapat menjalankan program yang disebutkan Otak
Langkah 2: Game Itu Sendiri
Cara bermain
Untuk memulai, Anda menekan tombol tengah. Ini akan menyebabkan “99”, yang mewakili kesehatan pemain dua, ditampilkan pada tampilan tujuh segmen. Kemudian, LED akan menyala secara berurutan dari kanan ke kiri. Ini membentuk bar daya. Setelah bilah daya penuh, itu akan diatur ulang. Tujuan dari pemain satu adalah untuk membalik saklar mereka ketika bar setinggi mungkin. Semakin banyak LED menyala, semakin banyak kerusakan yang dilakukan pemain pada pemain dua. Setelah pemain satu membalik sakelar mereka, kerusakan yang diberikan dikurangi dari kesehatan pemain dua. Kemudian, beralih ke giliran pemain dua. Sekarang, angka yang ditampilkan mewakili kesehatan pemain, dan bilah daya terisi dari kiri ke kanan. Setelah pemain dua bergerak, kerusakan dikurangi, dan kembali ke giliran pemain satu lagi. Ini berulang hingga satu pemain mencapai 0 kesehatan. Video fungsi ini terlampir.
Untuk memainkan game, muat di papan basys, dan tekan tombol tengah. Cobalah untuk membalik sakelar dengan sebanyak mungkin LED aktif, lalu tunggu dan perhatikan saat papan mengurangi poin tersebut dari kesehatan lawan Anda. Kemudian, berikan kepada temanmu, dan
Langkah 3: FSM
Game ini pada dasarnya adalah satu mesin keadaan terbatas yang besar, di mana beberapa logika kompleks terjadi berdasarkan keadaan tempat FSM berada.
(Diagram Negara Bagian)
Status 1: Menu
Status pertama adalah layar menu, yang merupakan salah satu status yang lebih sederhana. Ini termasuk tampilan tujuh segmen yang menampilkan kata "MAINKAN", dan tombol yang menyebabkan permainan dimulai. Tombolnya, BTN, membawa kita ke keadaan berikutnya, yaitu giliran pemain.
Status 2: Giliran Pemain Satu
Giliran pemain satu mengaktifkan sinyal yang menyebabkan tampilan tujuh segmen menampilkan kesehatan Pemain dua. Sinyal lain menyala untuk mengaktifkan register geser yang diimpor dari modul lain yang kita buat (Pone.vhd). Register geser ini membuat LED menyala seperti pengukur daya yang meningkat di game lain, dan kemudian akan diatur ulang ke 0 ketika mencapai jumlah maksimum LED yang bisa menyala. Ini diperbarui di tepi naik jam yang diperoleh dari barclock.vhd, yang dimodifikasi dari file lab yang dipinjam. Kami memiliki bilah pemain mulai dari kanan, dan mengisi ke kiri, karena sakelar pemain juga ada di kiri (untuk pengalaman pengguna yang intuitif). Setelah sakelar dibalik, status beralih ke pemain satu pengurangan, dan jumlah LED aktif disimpan dalam sinyal.
Negara 3: Pemain Satu dikurangi
Sinyal dengan jumlah LED yang aktif menentukan jumlah kesehatan yang dikurangi. Ini dilakukan dengan memiliki register geser lain (deductor1.vhd) yang alih-alih menaikkan LED, menguranginya. Ini mengurangi sisi naik dari salah satu modul div jam yang kami pinjam dan modifikasi (downcounterclock.vhd). Tepat saat satu LED dimatikan, satu poin kesehatan dikurangi dari total kesehatan pemain dua. Jika selama proses ini pemain dua mencapai 0, kami berhenti dan segera beralih ke status "Game over". Jika tidak, setelah vektor LED mencapai "0000000000000000", kami beralih ke giliran pemain dua.
Status 4: Giliran Pemain Dua
Giliran pemain dua persis seperti giliran pemain satu, kecuali register geser untuk itu (Ptwo.bhd) bergerak dari kiri ke kanan, dan sakelar ada di sisi kanan papan. Sinyal diaktifkan untuk menampilkan tampilan kesehatan Pemain 1. Setelah sakelar 2 aktif, ini beralih ke giliran pengurangan Pemain Dua.
Tahap 5: Pemain Dua Dikurangi
Sama seperti giliran pemain dua, pemain dua pengurangan sangat mirip dengan pemain satu. Perbedaan utama adalah bahwa register geser yang mengontrol pematian LED berjalan ke arah yang berlawanan, yang merupakan modifikasi mudah untuk dilakukan setelah Anda membuat pengurangan pemain bekerja dengan benar.
Tahap 6: Game Over Jika pada suatu saat salah satu pemain mencapai kesehatan nol, game beralih ke status ini. Tidak ada tampilan yang mewah. Jika BTN satu ditekan, maka kesehatan diatur ulang ke 99, dan status kembali ke menu, secara efektif memulai permainan.
Kotak hitam
Langkah 4: Modul
Downcounterclock (berdasarkan modul clk_div.vhd oleh Bryan Mealy):
Ini adalah jam yang menangani waktu pengurang. Konstanta bernama max_count 3x lebih banyak dari konstanta max_count barclock. Ini akan membuat deduktor 3x lebih lambat dari kecepatan bar.
Barclock - (berdasarkan modul clk_div.vhd oleh Bryan Mealy): Jam ini menangani waktu pengukur daya, yang kami buat dengan cepat untuk menambah kesulitan permainan. Pengaturan waktu ini dapat disesuaikan dengan keinginan Anda, meningkatkan kecepatan dengan membuat konstanta max_count menjadi angka yang lebih besar, atau menguranginya dengan membuat max_count menjadi angka yang lebih kecil. Sseg_dec - (Ditulis oleh Bryan Mealy): Modul ini mengambil angka 8 bit sebagai input, yang didekodekannya, mengubah angka menjadi ekuivalen desimalnya, dan kemudian mengeluarkannya ke tampilan tujuh segmen. Agar file ini berfungsi, Anda perlu memastikan batasan Anda cocok dengan batasan kami.
Pone: Ini adalah register geser yang menggeser bit ke kiri, menambahkan satu bit panas agar terlihat seperti pengukur daya meningkat. Ketika semua bit panas, semua bit diatur ulang ke '0', dan siklus dimulai kembali.
Pdua: Ini adalah versi terbalik dari modul P1.
Deductor1: Ini adalah kombinasi dari register geser dan subtractor. Register geser bergerak ke arah yang berlawanan dengan register geser P1, menunjukkan pengurangan. Ini juga mengurangi 1 dari kesehatan Pemain 2 untuk setiap siklus jam, jadi dengan kombinasi kedua fungsi ini, akan terlihat seperti kesehatan lawan berkurang 1 untuk setiap led dari bilah kesehatan yang turun.
Deductor2: Ini adalah versi terbalik dari modul Deductor1.
PlayDecoder (dipinjam dan sedikit dimodifikasi dari ekchen35649 instruksinya 133):
Ini digunakan dalam status menu untuk menampilkan kata "MAINKAN" pada dekoder tujuh segmen.
Yang Harus Dilakukan: gambar, video
Direkomendasikan:
Sistem Buzzer Kompetitif: 5 Langkah
Sistem Buzzer Kompetitif: Sistem buzzer kompetitif yang dirancang dalam proyek ini beroperasi serupa dengan sistem buzzer yang digunakan dalam Kompetisi Science Bowl Regional dan Nasional. Proyek ini terinspirasi oleh keterlibatan saya dengan tim mangkuk sains sekolah menengah saya selama tiga
Game LED Aruduino Mengklik Cepat Game Dua Pemain: 8 Langkah
Aruduino LED Game Fast Clicking Two Player Game: Proyek ini terinspirasi oleh @HassonAlkeim. Jika Anda ingin melihat lebih dalam di sini adalah tautan yang dapat Anda lihat https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Game ini adalah versi perbaikan dari Alkeim. Ini adalah sebuah
Cara Membuat Game Komputer Nyata. Menyenangkan dan Hanya Memakan Waktu Sekitar Satu Jam: 10 Langkah
Cara Membuat Game Komputer Nyata. Menyenangkan dan Hanya Membutuhkan Waktu Sekitar Satu Jam: Hai, proyek ini akan menunjukkan cara membuat game!!! permainan nyata untuk komputer dan itu tidak mengharuskan Anda untuk mengetahui kode yang membingungkan. ketika Anda menyelesaikan proyek ini, Anda akan mengetahui beberapa dasar pembuatan game dan Anda dapat membuat sebanyak yang Anda inginkan
Cara Menjinakkan Game Bom Waktu: 6 Langkah
Cara Menjinakkan Game Bom Waktu: Ide ini muncul begitu saja. Saya benar-benar tidak dapat menemukan sesuatu yang seperti itu. Ide aslinya jauh lebih terlibat, jadi ini adalah versi permainan yang disederhanakan. Ini adalah "bom waktu". Anda harus menjinakkannya sebelum jam
Game Waktu Reaksi LED Fischertechnik: 7 Langkah
Game Waktu Reaksi LED Fischertechnik: Cara membuat GAME WAKTU REAKSI LED fischertechnik Saya bermain dengan berbagai manipulatif pendidikan untuk mencari nafkah. (Kunjungi www.weirdrichard.com). Aplikasi yang mudah dibuat adalah GAME WAKTU REAKSI LED. Pengontrol robot (dalam hal ini