Daftar Isi:

VHDL Stopwatch Satu Menit: 5 Langkah
VHDL Stopwatch Satu Menit: 5 Langkah

Video: VHDL Stopwatch Satu Menit: 5 Langkah

Video: VHDL Stopwatch Satu Menit: 5 Langkah
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, November
Anonim
Image
Image

Ini adalah tutorial tentang cara membuat stopwatch satu menit menggunakan VHDL dan papan Basys 3. Perangkat semacam itu sangat ideal untuk permainan di mana setiap pemain memiliki waktu maksimal satu menit untuk bergerak. Stopwatch secara akurat menampilkan detik dan milidetik pada tampilan tujuh segmen, mulai dari 0 detik dan 0 milidetik, hingga 60 detik dan 0 milidetik. Dua tombol juga digunakan: tombol tengah, digunakan untuk memulai, menghentikan, dan melanjutkan timer, dan tombol kanan, digunakan untuk memulai ulang timer. Ketika perangkat dibandingkan secara berdampingan dengan stopwatch built-in dari ponsel pintar, akurasi jam terlihat.

Langkah 1: Dapatkan Perangkat Keras/Perangkat Lunak

Diagram Blok
Diagram Blok

1. Basys 3 Artix-7 FPGA Trainer Board dari Digilent dengan Kabel Micro-USB ke USB

2. Suite Desain Vivado 2016.2 dari Xilinx

Langkah 2: Blok Diagram

Sirkuit ini dibangun secara perilaku dan menggunakan komponen Xilinx bawaan, tetapi juga dapat dijelaskan secara struktural, seperti yang ditunjukkan oleh diagram struktural umum di atas. Dari diagram, dapat dilihat bahwa rangkaian digerakkan oleh dua pembagi frekuensi. Salah satu pembagi frekuensi bekerja pada 1 centisecond dan menggerakkan pencacah katoda yang digunakan sebagai angka yang ditampilkan pada layar tujuh segmen. Pembagi frekuensi kedua berjalan pada 240Hz dan digunakan untuk menggerakkan pencacah anoda yang berputar melalui anoda sehingga semua angka ditampilkan dengan benar pada tampilan tujuh segmen. Encoder mengambil logika katoda dari pencacah katoda dan logika anoda dari pencacah anoda, dan mengkodekannya ke katoda keluaran dan anoda yang menjalankan tampilan tujuh segmen. Fungsi dari encoder ini adalah agar keluaran katoda berubah setiap kali keluaran anoda berubah. Keluaran katoda tidak dapat dijalankan secara independen dari pencacah karena anoda harus berputar melalui 4 digit terpisah.

Langkah 3: Modul Proyek

Pertama, blok proses untuk CEN dibuat sehingga ketika Button Press terdeteksi, ENABLE akan beralih. Ini berfungsi sebagai stop/start pencacah katoda.

Pada blok proses berikutnya, sinyal clock centisecond dan 240Hz diatur sehingga counter masing-masing meningkat 1 setiap kali clock internal 100MHz mencapai tepi naik. Setelah pencacah centisecond mencapai 500000, pencacah akan direset kembali ke 0. Sedangkan pencacah 240Hz akan direset setelah pencacahan mencapai 41667.

Untuk kode bagian katoda, jika ENABLE adalah '0' penghitungan katoda akan berhenti. Jika tombol reset ditekan selama waktu ini, maka semua hitungan direset ke "0000". Sedangkan jika ENABLE adalah '1', pencacahan katoda akan berlanjut hingga jumlah katoda mencapai 60,00, yang memicu sinyal stop menjadi '1'. Sinyal stop merutekan kembali ke blok proses CEN dan menyebabkan ENABLE menjadi '0' sedangkan sinyal stop adalah '1' dan tidak akan berubah sampai tombol reset ditekan.

Akhirnya, tampilan tujuh segmen diatur dengan membuat 4 anoda terhubung dengan benar dengan masing-masing dari 8 katodanya untuk menampilkan angka masing-masing 0-9 secara bersamaan.

Langkah 4: Kendala

Kendala
Kendala

File kendala ini menghubungkan input dan output yang ditentukan dari VHDL ke bagian fisik papan Basys yang diperlukan. Untuk proyek ini, komponen mencakup empat anoda dan masing-masing dari delapan katoda untuk tampilan tujuh segmen, jam internal 100 mHz, tombol tengah, dan tombol kanan.

Langkah 5: Uji

Setelah Anda menyelesaikan kode, Anda sekarang dapat memprogram FPGA melalui kabel USB. Tampilan tujuh segmen harus menunjukkan 0,00. Uji untuk melihat apakah tombol berfungsi dengan menekan tombol tengah untuk memulai penghitung waktu hingga mencapai 60.00 dan berhenti; kapan saja di antaranya, Anda dapat menekan tombol tengah lagi untuk menjedanya. Setelah dijeda, Anda dapat menekan tombol kanan untuk mengatur ulang timer kembali ke 0,00. Jika semuanya bekerja dengan benar, selamat Anda baru saja membuat timer satu menit!

Direkomendasikan: