Anda di halaman 1dari 4

Nama : Anhar

NIM : 21120119120012
Kelas : Sistem Digital Lanjut A

ASSIGNMENT 4

Karena angka terakhir NIM 2, maka soal z = 2

Persamaan :
𝒛 = 𝑨𝑩𝑪 ̅̅̅̅
̅̅̅̅̅̅ + 𝑨𝑩(𝑨
̅𝑪̅)
Bentuk sederhana dari persamaan :
𝒛 = 𝑨𝑩𝑪 ̅̅̅̅
̅̅̅̅̅̅ + 𝑨𝑩(𝑨
̅𝑪̅)

̅+𝑩
𝒛=𝑨 ̅ +𝑪 ̅̅̅̅
̅ + (𝑨𝑩(𝑨
̅𝑪̅ ))

𝒛=𝑨 ̅̅̅̅
̅ + (𝑨𝑩(𝑨
̅𝑪̅ )) + 𝑩
̅ +𝑪
̅

𝒛=𝑨 ̅̅̅̅
̅ + (𝑩(𝑨
̅𝑪̅ )) + 𝑩
̅ +𝑪
̅

̅+𝑩
𝒛=𝑨 ̅̅̅̅
̅ + (𝑩(𝑨
̅𝑪̅ )) + 𝑪
̅

̅+𝑩
𝒛=𝑨 ̅̅̅̅
̅ + (𝑨
̅𝑪̅) + 𝑪
̅
̅+𝑩
𝒛=𝑨 ̅ +𝑨+𝑪+𝑪
̅
̅+𝑨+𝑩
𝒛=𝑨 ̅ +𝑪+𝑪
̅
̅ +𝟏
𝒛=𝟏+𝑩
𝒛=𝟏

Kenapa bentuk paling sederhana dari persamaan tersebut bernilai 1?


Hal tersebut dikarenakan keluaran dari persamaan tersebut selalu bernilai 1.
Untuk dapat memprogram menggunakan verilog, bentuk sederhana dari persamaan
tersebut dapat diubah menjadi.
𝒛 = 𝑨𝑩𝑪 ̅̅̅̅
̅̅̅̅̅̅ + 𝑨𝑩(𝑨
̅𝑪̅)
𝒛 = ̅̅̅̅̅̅
𝑨𝑩𝑪 + 𝑨𝑩(𝑨 + 𝑪)
𝒛 = ̅̅̅̅̅̅
𝑨𝑩𝑪 + 𝑨(𝑨 + 𝑪)𝑩
̅̅̅̅̅̅ + 𝑨𝑩
𝒛 = 𝑨𝑩𝑪

Rangkaian logika dalam bentuk sederhana :

Pemrograman dengan verilog menggunakan pendekatan gate level.


Code :
Design.sv
module assignment4 (input a,b,c,
output d,e,f);
nand(d,a,b,c);
and(e,a,b);
or(f,d,e);
endmodule

Testbench.sv
module assignment4_b;
reg a,b,c;
wire d,e,f;
assignment4 inst0(.a(a), .b(b), .c(c), .d(d), .e(e), .f(f));

initial begin
$monitor ("a = %d, b = %d, c = %d, d = %d, e = %d, f = %d",
a, b, c, d, e, f);
$dumpfile("dump.vcd");
$dumpvars();
end

initial begin
a = 0; b = 0; c = 0;
#5 a = 0; b = 0; c = 1;
#5 a = 0; b = 1; c = 0;
#5 a = 0; b = 1; c = 1;
#5 a = 1; b = 0; c = 0;
#5 a = 1; b = 0; c = 1;
#5 a = 1; b = 1; c = 0;
#5 a = 1; b = 1; c = 1;
end
endmodule

Log keluaran :
Waveform :

Anda mungkin juga menyukai