Daftar Isi:

Stopwatch Dasar Menggunakan VHDL dan Basys3 Board: 9 Langkah
Stopwatch Dasar Menggunakan VHDL dan Basys3 Board: 9 Langkah

Video: Stopwatch Dasar Menggunakan VHDL dan Basys3 Board: 9 Langkah

Video: Stopwatch Dasar Menggunakan VHDL dan Basys3 Board: 9 Langkah
Video: How to Control 7-Segment Displays on Basys3 FPGA using Verilog in Vivado 2024, Juli
Anonim
Image
Image

Selamat datang di instruksi tentang cara membuat stopwatch menggunakan papan VHDL dan Basys 3 dasar. Kami sangat senang untuk berbagi proyek kami dengan Anda! Ini adalah tugas akhir untuk kursus CPE 133 (Desain Digital) di Cal Poly, SLO pada Musim Gugur 2016. Proyek yang kami buat adalah stopwatch sederhana yang memulai, mengatur ulang, dan menjeda waktu. Dibutuhkan tiga tombol tekan pada papan Basys3 sebagai input, dan waktu ditampilkan pada layar tujuh segmen empat digit papan. Waktu yang telah berlalu ditampilkan dalam format detik: centiseconds. Ini menggunakan jam sistem papan sebagai input untuk melacak waktu yang telah berlalu dan mengeluarkan waktu ke empat digit dari tampilan tujuh segmen.

Langkah 1: Bahan

Mengatur Input dan Output
Mengatur Input dan Output

Bahan yang Anda perlukan untuk proyek ini:

  • 1 komputer dengan Vivado Design Suite WebPack diinstal dari Xilinx (lebih suka versi 2016.2)
  • 1 papan Digilent Basys3 Xilinx Artix-7 FPGA
  • 1 kabel port USB

Langkah 2: Mengatur Input dan Output

Gambar di atas menunjukkan diagram blok tingkat atas dari modul stopwatch utama. Stopwatch menerima input "CLK" (jam), "S1" (tombol mulai), "S2" (tombol jeda), dan "RST" (reset) dan memiliki output 4-bit "Anoda", 7-bit keluaran "segmen", dan keluaran bit tunggal "DP" (titik desimal). Ketika input "S1" tinggi, stopwatch mulai menghitung waktu. Saat "S2" rendah, stopwatch menjeda waktu. Ketika "RST" tinggi, stopwatch berhenti dan mengatur ulang waktu. Ada empat submodul dalam rangkaian: pembagi jam, penghitung angka, driver tampilan tujuh segmen, dan enkoder tampilan tujuh segmen. Modul utama stopwatch menghubungkan semua submodul bersama-sama dan ke input dan output.

Langkah 3: Membuat Jam

Membuat Jam
Membuat Jam

Modul pembagi jam mengambil jam sistem dan menggunakan input pembagi untuk membuat jam dengan kecepatan apa pun yang tidak lebih besar dari jam sistem. Stopwatch menggunakan dua modul jam yang berbeda, satu yang menghasilkan jam 500 Hz dan yang lainnya menghasilkan jam 100 Hz. Skema untuk jam pembagi ditunjukkan pada gambar di atas. Pembagi jam menerima input bit tunggal "CLK", dan input 32-bit "Pembagi" dan output bit tunggal "CLKOUT". "CLK" adalah jam sistem dan "CLKOUT" adalah jam yang dihasilkan. Modul ini juga menyertakan gerbang NOT, yang mengaktifkan sinyal "CLKTOG" ketika hitungan mencapai nilai pembagi.

Langkah 4: Menghitung sampai Sepuluh

Menghitung sampai Sepuluh
Menghitung sampai Sepuluh

Penghitung digit menghitung setiap digit dari 0 hingga 10 dan membuat jam lain untuk digit berikutnya agar berfungsi dari yang berosilasi ketika hitungan mencapai 10. Modul menerima 3 input bit tunggal "S", "RST", dan "CLK " dan menghasilkan keluaran bit tunggal "N" dan keluaran 4 bit "D". Input "S" adalah aktifkan input. Jam menyala saat "S" tinggi dan mati saat "S" rendah. "RST" adalah input reset sehingga jam disetel ulang ketika "RST" tinggi. "CLK" adalah input jam untuk penghitung angka. "N" adalah output jam yang menjadi jam input untuk digit berikutnya. Output "D" menyajikan nilai biner dari digit penghitung.

Langkah 5: Menampilkan Angka

Menampilkan Angka
Menampilkan Angka

Encoder tampilan tujuh segmen akan mengkodekan angka biner yang diterima dari modul driver tampilan tujuh segmen dan mengubahnya menjadi aliran bit yang akan ditafsirkan sebagai nilai '1' atau '0' untuk setiap segmen tampilan. Angka biner diterima oleh modul sebagai "digit" input 4-bit dan menghasilkan "segmen" output 7-bit. Modul ini terdiri dari blok proses kasus tunggal yang menetapkan aliran 7-bit spesifik untuk setiap nilai input yang mungkin dari 0 hingga 9. Setiap bit dalam aliran tujuh-bit mewakili salah satu dari tujuh segmen digit pada tampilan. Urutan segmen dalam aliran adalah "abcdefg" dengan '0 mewakili segmen yang menyala untuk nomor yang diberikan.

Langkah 6: Cara Menampilkan Stopwatch

Cara Menampilkan Stopwatch
Cara Menampilkan Stopwatch

Dalam modul driver tampilan tujuh segmen, ada empat input 4-bit "D0", "D1", "D2", dan "D3", masing-masing mewakili empat digit yang akan ditampilkan. Input "CLK" adalah input jam dari sistem. Output bit tunggal "DP" mewakili titik desimal pada tampilan tujuh segmen. Output 4-bit "Anoda" menentukan digit mana pada tampilan tujuh segmen yang ditampilkan dan "temp" output 4-bit tergantung pada status input kontrol 2-bit "SEL". Modul ini menggunakan 4 multiplexer untuk input kontrol "SEL" dan tiga output; "Anoda", "suhu", dan "DP".

Langkah 7: Menyatukan Semuanya

Blok proses 'jika' yang berjalan pada jam 500Hz digunakan untuk membuat tombol mulai dan jeda. Kemudian hubungkan semua submodul bersama-sama dalam modul utama stopwatch dengan mendeklarasikan komponen masing-masing submodul dan menggunakan berbagai sinyal. Submodul digit mengambil output jam dari submodul digit sebelumnya dengan yang pertama mengambil jam 100Hz. Output "D" dari submodul digit kemudian menjadi input "D" dari modul driver tampilan tujuh segmen. Dan terakhir output "temp" dari modul driver tampilan tujuh segmen menjadi input "temp" dari modul encoder tujuh segmen.

Langkah 8: Kendala

Kendala
Kendala

Gunakan 3 tombol push (W19, T17, dan U18) untuk input "RST", "S1", dan "S2". W19 adalah tombol reset, T17 adalah tombol start (S1), dan U18 adalah tombol pause (S2). Batasan untuk input input clock juga diperlukan menggunakan port W5. Juga, ingatlah untuk menambahkan baris ini ke batasan jam:

create_clock -tambahkan -nama sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]

Juga hubungkan Anoda dan segmen ke papan sehingga stopwatch ditampilkan pada tampilan tujuh segmen seperti yang terlihat pada file kendala.

Langkah 9: Pengujian

Pengujian
Pengujian

Pastikan perangkat Anda berfungsi dengan memainkan tiga tombol: menekan dan menahannya dalam setiap urutan yang memungkinkan untuk menemukan kemungkinan masalah dengan kode Anda.

Direkomendasikan: