VHDL Adder
VHDL Adder
VHDL Adder
PERCOBAAN : P4-ADDER
KELOMPOK :I
NAMA ANGGOTA :
1. MARTIN (525070028)
TGL PERCOBAAN : 2 NOVEMBER 2010
NAMA ASISTEN : ANDRIAN S.P.
TGL KUMPUL :
__ __ __
1 2 3
NILAI AKHIR :
LABORATORIUM DIGITAL
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS TARUMANAGARA
PERCOBAAN 4
ADDER
A. Teori Percobaan
Bila ada lebih dari satu bit yang akan dijumlahkan, maka dilakukan
dengan menggunakan rangkaian full adder. Pada rangkaian ini ada penggunaan bit
carry in yang merupakan carry out dari penjumlahan pada bit sebelumnya, seperti
yang terlihat pada persamaan berikut dan tabel 2.
entity half_adder is
port(
x,y: in std_logic;
sum,c: out std_logic
);
end half_adder;
begin
sum<=x XOR y;
c<=x AND y;
end process;
end half_adder_arch;
Timing Diagram:
begin
sum<=x XOR y XOR ci;
co<=(x AND ci) OR (x AND Y) OR (y AND ci);
end process;
end full_adder_arch;
Timing Diagram:
entity ripcarry_adder is
port(
A0,A1,A2,A3,cin: in std_logic;
B0,B1,B2,B3: in std_logic;
c1,c2,c3,c4: buffer std_logic;
sum0,sum1,sum2,sum3: out std_logic
);
end ripcarry_adder;
begin
sum3<=A3 XOR B3 XOR c3;
c4<=(A3 AND c3) OR (A3 AND B3) OR (B3 AND c3);
sum2<=A2 XOR B2 XOR c2;
c3<=(A2 AND c2) OR (A2 AND B2) OR (B2 AND c2);
sum1<=A1 XOR B1 XOR c1;
c2<=(A1 AND c1) OR (A1 AND B1) OR (B1 AND c1);
sum0<=A0 XOR B0 XOR cin;
c1<=(A0 AND cin) OR (A0 AND B0) OR (B0 AND cin);
end process;
end ripcarry_adder_arch;
Timing Diagram:
Tabel Hasil Tampilan LED:
C
Input A Input B Output Carry Out
0
b b b b sum sum sum sum
a3 a2 a1 a0 c1 c2 c3 c4
3 2 1 0 3 2 1 0
0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0
0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0
0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0
0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0
1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0
1 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0
1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 0
1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1
C. TUGAS
1. Rangkaian Ripple Carry Adder 8 bit
entity adder8bit is
port(
a0,a1,a2,a3,a4,a5,a6,a7,b0,b1,b2,b3,b4,b5,b6,b7,c0
: in std_logic;
sum0,sum1,sum2,sum3,sum4,sum5,sum6,sum7,c8 : out
std_logic;
c1,c2,c3,c4,c5,c6,c7 : buffer
std_logic
);
end adder8bit;
Timing Diagram:
Carry
out
Timing Diagram:
entity halfsubtractor is
port(
x,y : in std_logic;
d,b : out std_logic
);
end halfsubtractor;
Timing Diagram:
Rangkaian Full Subtractor
entity fullsubtractor is
port(
x,y,z : in std_logic;
a,c : buffer std_logic;
d,b : out std_logic
);
end fullsubtractor;
Timing Diagram:
D. KESIMPULAN
1. Sebuah Ripple Carry Adder n bit terdiri dari n buah Full Adder.
2. Untuk pemrograman Rangkaian Ripple Carry Adder 4 bit atau n bit maka
pemrograman dimulai dari arah carry out (Cout) menuju carry in (Cin) atau
dari sum ke n ke sum 0, seperti pada contoh rangkaian Ripple Carry 4 bit,
pemrograman dimulai dari C4 yang dihubungkan ke Cout dan sum 3 menuju
ke C1 dan sum 0. Jika pemrograman tidak sesuai dengan urutan seperti itu
maka hasil yang diperoleh akan tidak valid alias hasil perhitungan akan salah.
3. Jika nilai variabel yang digunakan ingin ditampilkan maka digunakan tipe
buffer, dan jika apabila nilai variabel tidak ingin ditampilkan bisa
menggunakan signal. Pada percobaan Ripple Carry Adder 4 bit menggunakan
tipe buffer karena nilai variabelnya ingin ditampilkan ( C1,C2,C3,dan C4).