Anda di halaman 1dari 3

Nama : Anhar

NIM : 21120119120012
Kelas : Sistem Digital Lanjut A

ASSIGNMENT 5
Karena angka NIM terakhir 2 maka membuat 4-2 encoder menggunakan behavioral model.
Dengan menggunakan behavior model, 4-2 encoder dapat dibuat hanya berdasarkan tabel
kebenarannya.

Coding dengan EDA Playground :

Berikut adalah code program :


Design.sv
module encoder4to2(Y, X); //membuat module dengan variabel Y dan X
input [3:0]X; //X sebagai input
output reg [1:0]Y; //Y sebagai output

always @(X)
begin
//menggunakan switch case
case(X)
4'b0001 : Y = 2'b00;
4'b0010 : Y = 2'b01;
4'b0100 : Y = 2'b10;
4'b1000 : Y = 2'b11;
default : $display("Error!"); /*menampilkan pesan Error! jika nilai masukan
tidak masukan tidak sesuai dengan case*/
endcase
end
endmodule

Testbench.sv
module encoder4to2_tb; //membuat modul untuk testbench

reg [3:0] X; //variabel X sebagai register


wire [1:0] Y; //variabel Y sebagai wire

encoder4to2 inst0 (.X(X), .Y(Y)); /*memanggil instansiansi pada module


encoder4to2 yang telah dibuat pada design.sv berdasarkan nama yg sesuai */
initial begin
$monitor("time=",$time,, "Y=%b : X=%b",Y,X); /* system task yang digunakan
untuk menampilkan nilai dalam variabel setiap kali nilai salah satu
argumennya berubah.*/
$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 */

//deklarasi kondisi masukan X setiap 10ns


#10 X = 4'b0000;
#10 X = 4'b1000;
#10 X = 4'b0100;
#10 X = 4'b0010;
#10 X = 4'b0001;
#10 X = 4'b1010;
#10 X = 4'b1111;
end
endmodule

Log keluaran :
Keterangan :
Dapat dilihat jika nilai X yang diberikan tidak sesuai dengan yang ada di tabel kebenaran maka
akan menampilkan pesan “Error!” dan nilai Y tidak akan berubah atau terpengaruh.

Hasil Waveform :

Link EDA : ASSIGNMENT 5 ANHAR - EDA Playground

Anda mungkin juga menyukai