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 |
|