MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 1
Tujuan KerjaLab:
1. Mengetahui konsep mengenai rangkaian logika
2. Mengetahui, memahami serta dapat menggunakan bahasa VHDL
3. Mengetahui, memahami serta dapat menggunakan Max Plus untuk mengimplementasikan
rangkaian digital
RANGKAIAN LOGIKA
Rangkaian logika merupakan kumpulan dari gerbang – gerbang logika, fungsi dari rangkaian
logika itu adalah untuk mengimplementasikan fungsi Boolean. Contoh dari gerbang logika adalah
gerbang AND (Perkalian),gerbang OR (Penjumlahan) dan gerbang INVERTER (Komplemen).
• Inverter (table kebenaran)
x ~x
0
1
1
0
• And (table kebenaran)
X Y XY
0
0
1
1
0
1
0
1
0
0
0
1
• Or (table kebenaran)
X Y XY
0
0
1
1
0
1
0
1
0
1
1
1
Penyederhanaan Fungsi Boolean menghasilkan bentuk Fungsi yang berbeda (lebih sederhana)
tetapi menghasilkan nilai fungsi yang sama dengan tujuan untuk meminimasi penggunaan gerbang‐
gerbang logika pada saat implementasi sehingga membentuk sebuah rangkaian logika.
Asumsi yang dipakai dalam penyederhanaan :
1. Bentuk fungsi Boolean paling sederhana adalah SOP
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 2
2. Operasi yang digunakan adalah operasi penjumlahan (+), perkalian (.) dan komplemen (‘)
Terdapat tiga cara dalam penyederhanaan fungsi Boolean :
1. Cara Aljabar
• Bersifat trial and error tidak ada pegangan
• Dalam menyederhanakannya menggunakan aksioma‐aksioma dan teoremateorema yang ada
pada aljabar Boolean
2. Peta Karnaugh
• Mengacu pada Diagram Venn
• Menggunakan bentuk‐bentuk peta karnaugh
3. Metode Quine‐McCluskey
• Penyederhanaan didasarkan pada hukum distribusi
• Eliminasi Prime Implicant Redundan
Berikut adalah contoh kasus nya:
Sederhanakanlah persamaan f(x,y) = x’y + xy’ + xy = m1 + m2 + m3 (dengan metode K’map) dan
gambar gerbang logika sebelum disederhanakan dan yang sudah disederhanakan ?
a. Gambar gerbang logika sebelum disederhanakan
b. K’map
• Sesuai dengan bentuk minterm, maka 3 kotak dalam K’Map 2 dimensi, diisi dengan 1 :
Y X
0 1
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 3
• Selanjutnya pengelompokkan semua 1 yang ada dengan membuat kumpulan kotak atau
persegi panjang dentgan jumlah bujursangkar kecil 2n. Buatlah kelompok yang sebesar‐
besarnya.
• Cara menentukan bentuk sederhana dari hasil pengelompokkan adalah :
Carilah variabel mana saja yang memiliki nilai yang sama dalam kelompok tersebut,
sebagai contoh kelompok A. Pada kelompok A, variabel yang memiliki nilai yang sama
adalah variabel y dengan harga 1. Pada kelompok B, variable yang memiliki nilai yang
sama adalah variabel x dengan harga 1
Selanjutnya menentukan bentuk hasil pengelompokkan diatas. Pada contoh diatas hasil
kelompok A adalah y dan hasil kelompok B adalah x. Hasil bentuk sederhana dari contoh
diatas A + B = y + x
c. Gambar gerbang logika setelah disederhanakan:
VHDL VHDL, yang merupakan singkatan dari Very High Speed Integrated Circuit Hardware
Description Language, adalah bahasa yang dipergunakan untuk menggambarkan system digital dari
suatu perangkat elektronik. VHDL didesain untuk menggambarkan struktur dari system hardware
0 0 1
1 1 1
A
B
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 4
termasuk untuk menggambarkan subsistem dan menggambarkan bagaiman subsistem tersebut
saling berhubungan.
Dalam VHDL kita memodelkan sebuah hardware ke dalam bahasa pemrograman. Setiap
elemen dari hardware disebut dengan entity dan setiap entity mempunyai deklarasi dan penjelasan
bagaimana entity tersebut bekerja. Deklarasi dari sebuah entity berisi elemen dasar dari entity
tersebut termasuk jalur input dan output. Berikut adalah contoh entity multiplexer 8 to 1 dengan
inputan 3 bit beserta selector dan enable.
entity mux8to1 is port(i0,i1,i2,i3,i4,i5,i6,i7, slc : in std_logic_vector(2 downto 1); ena : in std_logic; o : out std_logic_vector(2 downto 1)); end entity mux8to1;
keterangan :
i0,i1,i2,i3,i4,i5,i6,i7 : inputan data yang akan dipilih. (3 bit)
Ena : aktifator terhadap entity(1 bit)
slc : selector yang berpengaruh kepada outputan(3 bit)
o : keluaran dari entity(3 bit)
Setelah pendeklarasian entity maka perlu dideklarasikan bagaimana entity beroperasi, bagian
ini disebut dengan Architecture Body dari suatu entity. Pada bagian ini kita dapat mendeskripsikan
system hardware dalam beberapa cara yaitu :
Behavioral
Structural
Mixed
Testbench
Bevahioral Description mendeskripsikan bagaimana behavior dari sebuah entity terhadap
beberapa variasi input. Bevahioral berisi proses, pensinyalan, dan variable, contoh berikut adalah
behavior dari 4 bit D flip‐flop
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 5
architecture behavioral of reg4 is begin process (CLK, ce) begin
if (ce=’1’ and rising_edge (CLK)) then q0<=d0; q1<=d1; q2<=d2; q3<=d3;
end if; end process;
end architecture behavioral;
Structural Description mendeskripsikan bagaimana sebuah fungsi dari sebuah entity. Cara
pendeskripsikan sebuah entity secara struktural dilakukan dengan cara mengambil entity lainnya dan
menghubungkannya menggunakan port map.
Mixed Description merupakan gabungan antara Behavioral dan Structural.
Testbench Description adalah bentuk pendeskripsian suatu bentuk entity untuk kemudian
dilakukan pengujian terhadap entity tersebut.
TYPE DATA
VHDL mempunyai beberapa tipe data antara lain :
1. Variabel
Variabel dideklarasikan di dalam sintaks process dan menggunakan operator :=, sebagai
contoh:
variable index : integer; index:=0; index:=index+1;
2. Konstanta
Konstanta dideklarasikan sama dengan variabel tetapi ditempatkan pada pendeklarasian
arsitektur
3. Integer
Integer merupakan tipe data yang mempunyai nilai ‐231 to ‐231. Selain itu terdapat beberapa
operasi dalam integer seperti penjumlahan, perkalian, pengurangan dan sebagainya
4. Floating Point
Digunakan untuk merepresentasikan bilangan riil dengan range antara ‐1.83E308 sampai
1.83E308
5. Time
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 6
Time direpresentasikan dengan fs, ps, ns, us, ms, sec, min, dan hr.
6. Character
7. Boolean
Bernilai true atau false
8. Bits
Bernilai 1 dan 0
9. Standard_Logic (STD_LOGIC)
Berasal dari library IEEE std_logic_1164 dan merupakan representasi logika yang paling
banyak digunakan di dalam circuit dan nilainya bisa bernilai.
U – uninitialized
X – forced unknown
0 – forced 0
1 – forced 1
Z – high impedence
W – weak unknown
L – weak zero
H – weak one
‐ – Don’t care
10. Composite
Dipergunakan untuk merepresentasikan array, matrik. Tipe data STD_LOGIC_ERROR dapat
bernilai vector dan biasanya dideklarasikan dengan statement downto untuk memberikan
rentang ukuran bus. Sebagai contoh IN_STD_LOGIC_VECTOR(3 downto 0) akan berukuran 4 bit
yang merupakan variabel STD_LOGIC.
11. User defined
Bisa dipergunakan untuk beberapa tujuan untuk merepresentasikan nilai dari sebuah circuit
dengan menggunakan statement. Biasanya dideklarasikan pada bagian body architecture dengan
menggunakan operator type dan is.
TYPE Statetype IS (S0,S1,S2,S3); SIGNAL Statetype PRESENT_STATE, NEXT_STATE;
Sintaks diatas mendeklarasikan tipe data bernama Statetype dan membuat 2 buah signal yaitu
PRESENT_STATE dan NEXT_STATE.
SQUENTIAL DAN PERNYATAAN CONTROL
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 7
Dalam setiap behavior dari VHDL, kita dapat mengeset sekuensial dan statements control. Kita
dapat menggunakan if, sace, loop dan while statements untuk mengontrol alur dari desain blok kita.
• IF Statements
if Boolean expression then sequential expression
elsif Boolean expression then sequential expression
else sequential expression
end if;
contoh:
if en=’1’ then Q0<=d0; end if;
Dalam contoh diatas, jika en bernilai rise, maka Q0 akan diinput. dengan nilai dari d0.
• Case Statements
Seperti C++ swith statements, digunakan untuk memilih pilihan dari sekian banyak pilihan.
Case statements baik digunakan untuk melakukan proses pemilihan kasus vector value dari FSM.
Case expression is When choices=> sequential expression …
End case; Contoh:
CASE PRESENT_STATE IS WHEN “00”=> Output<=’0’; When “01”=> Output<=’1’; When Others=> Output<=’x’;
End case;
• Null Statements
Pernyataan null merupakan pernyataan tidak melakukan apapun. Digunakan untuk suatu
pilihan yang tidak mengandung kegiatan apapun.
Contoh:
Case opcode is When add=> Acc<=acc+operand;
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 8
When subtract=> Acc<=acc‐operand; When nop=> Null; End case;
STRUKTUR PEMODELAN
Pada umumnya bahasa VHDL ini menggunakan bahasa yang sama pada bahasa pemrograman
pada umumnya dimana memiliki struktur sebagai berikut :
LIBRARY <nama library>; USE <nama bagian dari library>;
Entity <nama entity> IS PORT(<pendifinisian inputan dan outputan untuk entity>); End <nama entity>; ARCHITECTURE <nama deskripsi> OF <nama entity > IS BEGIN <isi komponen>… END<nama deskripsi>;
Keterangan:
• Untuk mengakhiri statement digunakan ;
• Nama file yang di save harus sama dengan nama entity
• Untuk member komentar digunakan ‐‐
• Untuk karakter ditandai dengan ‘ pada kedua sisinya
• Untuk string ditandai dengan “ pada kedua sisinya
• Statemen dasar dalam VHDL
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 9
Bagian ini akan menjelaskan setiap segmen dari file VHDL dan tujuannya.
• Library dan statement USING
File VHDL dimulai dengan Library dan statement using yang dipergunakan oleh compiler
untuk meng‐load library yang telah didefinisikan. Perintah ini sama dengan include pada C/C++.
Library standar untuk desain sederhana adalah:
library IEEE
memberitahu compiler untuk membaca paket standar dari library IEEE
use IEEE. IEEE.STD_LOGIC_1164.ALL;
memasukan semua bagian dari IEEE Standard Logic Variabel
use IEEE.STD_LOGIC_ARITH.ALL;
memasukkan semua operasi aritmatika untuk Standar Logic Variabel
use IEEE.STD_LOGIC_UNSIGNED.ALL;
memasukkan semua fungsi yang belum di‐assign untuk operasi aritmatika
• Deklarasi Entity
Setelah library dan statement using maka harus dideklarasikan nama dari device, device I/O
apa saja yang terdapat didalamnya, dan tipe data dari I/O tersebut. Berikut adalah salah satu
contoh dari entity dari sebuah gerbang and.
ENTITY AND1 IS PORT(A,B : IN STD_LOGIC;
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 10
C: OUT STD_LOGIC); END AND1;
• Architecture Body
Setelah mendeklarasikan entity maka harus dideklarasikan arsiktetur dari entity. Arsitektur
bisa berbentuk Behavioral, Structural, atau Mixed. Berikut adalah contoh architecture dari
gerbang and.
ARCHITECTURE BEHAV OF AND1 IS BEGIN PROCESS(A,B) BEGIN C<= A AND B; END PROCESS; END BEHAV;
• Deklarasi signal
Deklarasi signal ditempatkan di antara arsitektur dan awal dari deklarasi arsitektur. Signal
adalah nilai fisik dari suatu jalur atau storage dari desain.
architecture Behavioral of add_8 is signal tmp: std_logic_vector(4 downto 0); begin
• Deklarasi proses
Proses adalah sistem yang dikembangkan dalam rentang arsitektur atau disebut pula ”main
program” dari sebuah circuit, biasanya ditulis setelah pendefinisian sebuah arsitektur. Contoh
deklarasi proses sebuah gerbang and.
PROCESS(A,B) BEGIN C<= A AND B; END PROCESS;
MAX PLUS
Pada Bagian ini akan dijelaskan tentang cara penggunaan software Altera MaxplusII dalam
pembuatan rangkaian digital. Adapun contoh yang diberikan pada modul ini adalah contoh
pembuatan rangkaian yang sangat sederhana untuk memudahkan dalam cara pembuatan rangkaian
menggunakan Maxplus.
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 11
Gambar 1. Tampilan awal Maxplus
Seperti terlihat pada gambar, terdapat lima menu utama, yaitu Max+plus II, File, Assign,
Options, dan Help. Menu Max+plus II digunakan untuk mengecek rangkaian yang kita buat melalui
beberapa tes, seperti Compiler, Simulator, dll. File seperti pada software umumnya yaitu untuk
mengatur file, seperti New file, Open, Save, dll. Menu Assign untuk memasukkan dan mengubah nilai
dari rangkaian yang kita buat. Option untuk mengatur tampilan dan opsi‐opsi pada Maxplus. Dan
yang terakhir adalah menu Help. Menu ini pun sama seperti pada umumnya yaitu untuk memberikan
penjelasan lebih detail tentang aplikasi ini.
Untuk mulai membuat rangkaian digital, pertama buat file baru terlebih dahulu dengan File‐
>New atau dengan mengklik icon . Maka akan keluar prompt window untuk memilih tipe file yang
akan dibuat seperti pada gambar 2.
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 12
Gambar 2. Window pemilihan tipe file
Karena kita akan membuat rangkaian dengan menggunakan image‐based, maka pilih Graphic
Editor file dengan ekstensi gdf. Setelah dipilih maka akan keluar window baru sebagai tempat untuk
menaruh (menempatkan) rangkaian digital yang akan kita buat seperti ditampilkan pada gambar 3.
Gambar 3. Window graphic editor
Untuk memasukkan simbol‐simbol pada rangkaian, maka klik kanan pada window graphic
editor lalu pilih Enter Symbol dan akan keluar prompt window baru seperti pada gambar 4.
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 13
Gambar 4. Window pemilihan symbol
Symbol name berisi bintang (*) yang berarti akan menampilkan semua simbol yang tersedia
pada symbol libraries. Dan karena simbol yang akan kita gunakan adalah simbol‐simbol yang umum
(primer) maka pada Symbol Libraries pilih yang berakhiran /prim. Simbol‐simbol yang tersedia pada
Symbol Library tersebut dapat dilihat pada kolom Symbol Files. Sebagai keterangan, and12 berarti
simbol gerbang logika AND yang memiliki 12 kaki (input) dan begitu pula pada and2 berarti gerbang
logika AND yang memiliki 2 kaki dan seterusnya.
Sebagai contoh akan dibuat rangkaian digital : a AND b = c. Rangkaian tersebut memerlukan
dua simbol input, satu simbol output, dan satu simbol gerbang and dengan dua kaki. Setelah
memasukkan simbol‐simbol yang akan digunakan, maka yang harus dilakukan selanjutnya adalah
menyambungkan kaki‐kaki simbol dengan klik dan tahan mouse dari kaki tujuan ke sumber atau
sebaliknya. Hasil dari rangkaian tersebut adalah seperti pada gambar 5.
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 14
Gambar 5. Rangkaian digital sederhana
Label PIN_NAME pada input dan output dapat diubah dengan cara double klik pada tulisan
tersebut dan mengetikkan huruf/nama yang diinginkan untuk menamakan gerbang input dan output.
Setelah rangkaian telah selesai dibuat, maka langkah selanjutnya adalah menyimpan file tersebut ke
tempat (folder) yang anda inginkan.
Anda dapat mengecek apakah rangkaian anda telah terhubung dengan baik dan benar dengan
cara meng‐compilenya. Tapi sebelum di‐compile, anda harus menset file anda menjadi project yang
aktif, karena hanya project yang aktif yang akan dicek oleh compiler. Cara menset menjadi project
aktif dapat dilihat pada gambar 6.
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 15
Gambar 6. Set Project aktif
Setelah di‐set barulah file anda dapat dicheck dan di compile. Hingga pada langkah ini, anda
belum bisa mensimulasikan file (Save & Simulate atau Save, Compile, & Simulate) karena anda belum
membuat file simulasinya. Setelah file anda dicheck dan dicompile, maka akan terlihat berapa banyak
error dan warning yang ada pada pembuatan rangkaian anda. Jika hasilnya nol error dan warning,
maka anda dapat melanjutkan ke langkah selanjutnya. Tapi jika ternyata terdapat error atau warning,
maka perbaiki terlebih dahulu sebelum melanjutkan ke langkah selanjutnya.
Langkah selanjutnya adalah pembuatan file simulasi. Pada file inilah nilai kebenaran dari
rangkaian yang dibuat dapat terlihat. Cara pembuatan file ini hampir sama dengan pembuatan file
sebelumnya, tapi pada pemilihan tipe file, pilih Waveform Editor File dengan ekstensi scf.
Setelah memilih tipe file, maka akan keluar window baru untuk mensimulasikan rangkaian
digital yang telah dibuat. Masukkan node‐node (input/output) dari rangkaian digital anda dengan
cara seperti pada gambar 7.
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 16
Gambar 7. Memasukkan node
Untuk memasukkan semua node dari rangkaian digital yang telah dibuat, pilih Enter Nodes
from SNF. Maka akan keluar window baru untuk memilih node mana saja yang akan dibuat
simulasinya seperti pada gambar 8.
Gambar 8. Memilih node yang akan disimulasi
Tanda bintang (*) pada baris Node/Group menunjukkan bahwa semua node akan ditampilkan
pada kolom node yang tersedia. Pilih tipe node pada kotak Type untuk memilih node mana saja yang
akan dimasukkan ke window simulasi. Setelah selesai, klik tombol List untuk melihat node‐node yang
tersedia sesuai pilihan.
Pilih dari node yang telah tersedia dan pindahkan ke kolom Selected Nodes & Groups untuk
memasukkan node tersebut ke window simulasi. Cara pemindahan dengan mengklik node‐node yang
diinginkan lalu tekan tombol panah. Setelah selesai memilih node maka tekan tombol OK untuk
memasukkan node‐node tersebut ke window simulasi dan mensimulasikannya.
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 17
Gambar 9. Node‐node pada window simulasi
Nilai output (pin c) saat anda baru memasukkan node adalah X. ini terjadi karena anda belum
mensimulasikannya menggunakan Simulator. Akan tetapi, sebelum mensimulasikan dengan
Simulator, terlebih dahulu memasukkan kombinasi nilai pada node‐node input (pin a dan b). Untuk
gambar contoh di atas, pin b bernilai 1 pada jangka waktu 0‐100 ms dan bernilai 0 pada jangka waktu
100‐200ms. Setelah semua pin input diberi nilai, simpan file ini dengan nama dan tempat yang sama
dengan saat menyimpan file grafik (gdf). Kesalahan penyimpanan akan berakibat terjadinya error
pada saat simulasi.
Setelah disimpan, set kembali file ini menjadi current project. Lalu simulasikan dengan
menggunakan simulator.
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 18
Gambar 10. Hasil simulasi
Hasil dari simulasi rangkaian yang telah dibuat terlihat pada gambar 10. Pin c (output) telah
memiliki nilai. Dari gambar tersebut terlihat bahwa saat pin a bernilai 0 dan pin b bernilai 1, maka pin
c akan mengeluarkan nilai 0. Hal ini sesuai dengan tabel kebenaran AND (0 AND 1 = 0).
Setelah sukses membuat file bertipe gdf. Sekarang kita akan membuat rangkaian diatas
dengan menggunakan file bertipe vhd, atau menggunakan bahasa vhdl. Berikut adalah langkah –
langkahnya:
1. file baru terlebih dahulu dengan File‐>New atau dengan mengklik icon . Pilih bagian text
editor file.
2. Kemudian akan terlihat bagian seperti gambar di halaman selanjutnya
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 19
3. Pada bagian kosong itulah kita bisa memulai melakukan coding vhdl, karena tadi kita mengambil
contoh kasus gerbang And. C = A and B. berikut adalah hasil coding dalam bentuk VHDL nya.
Catatan: nama entity harus sama dengan nama behavior.
4. Kemudian save file vhd dengan nama file, yang sama dengan nama entity. Pilih jenis file vhd.
Seperti dijelaskan pada gambar di halaman selanjutnya
MODUL 2 : GERBANG LOGIKA
PRAKTEK COA 2010 20
5. Setelah itu kita melakukan kompilasi. Caranya sama seperti kompilasi pada file gdf.
6. Kemudian pembuatan waveform untuk melakukan simulasi caranya juga sama seperti
pembuatan waveform pada file gdf.
SOAL LATIHAN 1. Jelaskan secara singkat dan jelas konsep pemodelan VHDL?
2. Apabila diketahui persamaan seperti berikut ini f(a,b,c,d) = m3+m7+m11+m12+m13+m14,
tentukan:
a. Bentuk sederhana dari persamaan diatas
b. Gambarkan rangkaian digital dari bentuk persamaan yang telah sederhana
c. Simulasikan hasil dari penggambaranya
Top Related