AND Gate
Intro
And gate adalah komponen elektronika digital yang paling umum dijual dan diajarkan hehe. Dinamakan komponen digital karena hanya memproses input dan output digital atau high-low, true-false, 0v-5v, 0v-3.3v dll.
And gate yang dibuat disini menggunakan 2buah input dan 1buah output. dan berikut table kebenaran dari and gate
| in1 | in2 | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Create new project
Untuk pembuatan project pada vhdl umumnya terdiri dari dua file
- module main program
- module testbench untuk main program
seperti biasa buat folder kosong untuk pembuatan project baru dan berikut penjelasan masing2 module
Main program
1 2 3 4 5 6 7 8 9 10 | |
Copas text diatas untuk pada file yang bernama andgate.vhdl samakan nama file dengan deklarasi ENTITY yang digunakan.
Gunakan perintah ghdl -a angate.vhdl untuk melakukan process analysis jika tidak ada error pada tahap ini maka akan muncul file baru dengan nama work-obj93.cf file ini merupakan struktur internal yang dihasilkan dari file .vhdl dan digunakan oleh ghdl untuk mencari lokasi file yang dibutuhkan atau disebut sebagai library.
Lanjutkan dengan process elaboration dengan cara ghdl -e andgate perhatikan disini sudah tidak lagi menggunakan akhiran .vhdl karena ghdl menggunakan file work-obj93.cf sebagai referensi, pada tahap ini akan dihasilkan object file andgate.o dari file andgate.vhdl.
Object file ini akan dirubah menjadi executable dengan menggunakan perintah ghdl -r andgate pada tahap ini desain/project yang kita buat akan dijalankan oleh GHDL namun jangan berharap akan ada sesuatu muncul di terminal hehe. Jika dijalankan project ini tidak akan muncul tulisan seperti program hello world pada umum nya namun akan langsung selesai dan kembali ke command promt jika tidak ada error, pada tahap ghdl -r andgate akan muncul file executable dengan nama andgate atau andgate.exe.
Testbech
Project kedua adalah testbench project ini digunakan untuk memvalidasi program utama, jika program utama adalah AND gate maka project ini digunakan untuk memvalidasi apakah dengan input yang diberikan akan menghasilkan output yang sesuai dengan table kebenaran?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |
copas file diatas ke file andgate_tb.vhdl ingat samakan file name dengan deklarasi ENTITY selanjutnya sama dengan Main program
1 2 3 | |
pada ghdl -r andgate_tb kali ini akan mengeluarkan pesan meski untuk sekarang pesan nya masih sederhana.
Pada directory project jalankan file andgate_tb dengan tambahan option --vcd=andgate_tb.vcd hal ini bertujuan untuk menghasilkan diagram logic state yang bisa dibuka dengan appliaksi gtkwave
1 2 | |
![]() |
|---|
| Gtkwave |
Jika gambar signal di tempatmu tidak sama dengan gambar diatas pastikan atur zoom nya untuk best-fit (tombol End). Gerakkan kursor mouse untuk memeriksa kondisi logic dari in1, in2 dan out.
The Code
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |
