Anda di halaman 1dari 2

Nama : Anhar

NIM : 21120119120012
Kelas : Sistem Digital Lanjut A
ASSIGNMENT 1
Tugas : Membuat gerbang NAND 2 input (A dan B) dan output Y menggunakan EDA
Playground :

Hasil generate waveformnya :


Coding untuk NAND Gate :
// A simple NAND gate
module nandgate (a, b, y); /*membuat modul dengan nama nandgate yang
terdapat 3 variabel a, b, dan y */
input a, b; //penetapan variabel a dan b sebagai input
output y; //penetapan variabel y sebagai output
assign y = ~(a & b); /*pernyataan nilai y adalah output dari a and b yang
diinversikan */
endmodule //penutup dari suatu modul yang dibuat

Coding untuk test-bench :


// testbench for NAND gate

module nandgate_tb; //membuat modul dengan nama nandgate_tb


wire Y; //variabel Y sebagai wire untuk mendapatkan nilai output
reg A, B; //pendeklarasian A dan A sebagai register

nandgate my_gate( .a(A), .b(B), .y(Y) ); /*memanggil instatiancing nandgate


yang telah dibuat pada design.v kedalam my_gate berdasarkan nama yang
sesuai */

initial begin //program testbench dimulai.


$dumpfile("dump.vcd"); /* dumpfile adalah file yang berisi bentuk gelombang
yang dibuang. digunakan untuk dapat melihat rekaman perubahan yang terjadi
pada variabel */
$dumpvars; /*digunakan untuk menentukan ruang lingkup dumpfile yaitu semua
variabel yang ada pada program ini */
$monitor(A, B, Y); /* system task yang digunakan untuk menampilkan nilai
dalam variabel setiap kali nilai salah satu argumennya berubah.*/

A = 1'b0; //A menunjukan sinyal rendah 0


B = 1'b0; //B menunjukan sinyal rendah 0

#5 //penundaan 5s
A = 1'b0; //A menunjukan sinyal rendah 0
B = 1'b1; //B menunjukan sinyal tinggi 1

#5 //penundaan 5s
A = 1'b1; //A menunjukan sinyal tinggi 1
B = 1'b0; //B menunjukan sinyal rendah 0

#5 //penundaan 5s
A = 1'b1; //A menunjukan sinyal tinggi 1
B = 1'b1; //B menunjukan sinyal tinggi 1

end //akhir program


endmodule //akhir modul

Anda mungkin juga menyukai