Encoder
Ini merupakan program
Encoder menggunakan if. Module-module yang digunakan ada binary_out (output
biner 4 bit), encoder_in (input 16 bit), dan enable (untuk mengaktifkan
encoder). Port yang digunakan ada binary_out dengan array 0-3, encoder_in
dengan array 0-15, dan juga enable sebagai input. Si enable ini biasanya
menggunakan switch. Kalau output biasanya LED. Output berupa binary_out
disimpan di register.
Masuk ke program diawali dengan begin. Sebelum begin
ada perintah always seperti fungsi looping. Karena tidak ada inputan maka
output biner pertama kali adalah 0. Jika encoder di-enable / diaktifkan maka
inputan berupa nilai h0002 akan di-encoding dan menghasilkan output biner = 1.
Input h0004 di-encoding menghasilkan biner = 2. Begitu seterusnya sampai input
terakhir yaitu h8000 yang menghasilkan output biner = 15. Jadi menurut saya
encoder ini akan melakukan looping karena perintah always dari input pertama
sampai input terakhir dan kemudian berhenti karena kondisi sudah terpenuhi.
Decoder
Ini merupakan program
Decoder menggunakan if dan case. Module-module yang digunakan ada binary_in
(input biner 4 bit), decoder_out (output 16 bit), dan enable (untuk mengaktifkan
decoder). Port yang digunakan ada binary_in dengan array 0-3, decoder_out
dengan array 0-15, dan enable sebagai input. Sama seperti yang di atas, enable
biasanya menggunakan switch dan untuk output biasanya menggunakan LED. Output
berupa decoder_out disimpan di register.
Masuk ke program diawali dengan begin. Sebelum begin
ada perintah always seperti fungsi looping. Ini merupakan kebalikan dari
encoder. Karena tidak ada inputan maka output decoding pertama kali adalah 0.
Jika decoder di-enable / diaktifkan maka masuk ke case, inputan biner h0
didecoding menghasilkan output h0001. Jika inputnya h1 maka menghasilkan output
h0002 dan seterusnya sampai input hF menghasilkan output h8000. Program ini
akan looping dari input pertama sampai terakhir dan berhenti karena kondisi
sudah terpenuhi.
Multiplekser (Mux)
Ini merupakan program
Multiplekser (Mux) menggunakan if. Module-module yang digunakan ada din_0
sebagai input pertama, din_1 sebagai input kedua, sel sebagai selector, mux_out
sebagai output. Port inputnya yaitu din_0, din_1, dan selector (biasanya
selector itu switch), sedangkan port outputnya yaitu mux_out. Seperti biasa,
untuk outputnya disimpan di register.
Jika selector-nya itu
nilainya 0 bit (switchnya keadaan low) maka yang akan menjadi outputnya adalah
input yang pertama (din_0). Kalau switchnya dinaikkan ke high maka outputnya
adalah input yang kedua (din_1).
D Flip-flop
Ini merupakan program Synchronous
D Flip-flop. Module-module yang digunakan ada data, clk (clock), reset, dan q (output).
Port inputnya yaitu data, clk, dan reset. Sedangkan port outputnya adalah q (berupa LED). Output selalu disimpan di register.
Jika kita tidak menekan button reset maka LED akan
mati (0 bit), ini dikarenakan ada tanda negasi pada reset. Sedangkan jika
ditekan button resetnya maka LED akan nyala. Inputannya bernilai 1. Menurut saya cara kerjanya hanya
ditekan dan dilepas saja button reset-nya untuk menghasilkan output.
Counter
Ini merupakan program Up
Counter Simple 8 Bit. Module-module yang digunakan pada program ini ada out
(output), enable, clk (clock), dan reset. Port outputnya yaitu variabel out
dengan array 0-7 (8 bit) dan port inputnya yaitu enable, reset, dan clock.
Untuk outputnya disimpan di register.
Jika kita me-reset seperti menekan pushbotton untuk
reset maka output akan kembali ke 0 bit. Outputnya ini biasanya berupa LED. Jadi kalau di-reset, LED-nya akan kembali ke awal. Jika kita mengaktifkan counter
dengan merubah switch-nya ke posisi high maka outputnya akan bertambah satu,
yaitu LED akan hidup satu per satu karena ada perintah always terhadap clock.
Memori
Ini merupakan program ROM / EPROM Loading from File. Module-module yang digunakan ada address, data, read_en (read enable), dan ce (chip enable). Port input yaitu address dengan array 0-7, read_en, dan ce. Port output yaitu data dengan array 0-7. Data disimpan di dalam memori yang array-nya 0-255.
Data dihasilkan dari chip enable dan read enable yang alamatnya disimpan dalam memori dengan data output awal 0 bit. Data akan diakses dari memory file dengan perintah $readmemb dan data tersebut merupakan output dari program ini.
Parity
Ini merupakan program
Parity menggunakan assign. Module-module yang digunakan ada data_in (8 bit) dan parity_out (1 bit). Port input yaitu data_in dengan array 0-7 (berupa switch) dan port output yaitu parity_out (berupa LED). Wire parity_out untuk menghubungkan 2 data input yang akan dijumlahkan.
Kita akan memasangkan tiap data input, yaitu data_in[0] dengan data_in[1] sampai data_in[6] dengan data_in[7]. Nilai inputnya hanya ada 0 dan 1. Data input yang dipasangkan akan dijumlahkan. Karena ini adalah Parity Ganjil (Gerbang Logika XOR) maka jika hasilnya ganjil, LED akan nyala. Sedangkan jika hasilnya genap maka LED tetap mati.