10
MODUL 3 RANGKAIAN LOGIKA KOMBINASIONAL Hafizh Al Fikry (18014044) Asisten:Khairul Hakim(18012039) Tanggal Percobaan: 13/10/2015 EL2142-Praktikum Sistem Digital dan Mikroprosesor Laboratorium Dasar Teknik Elektro – Sekolah Teknik Elektro dan Informatika Abstrak Kita telah menganalisis beberapa permasalahan gerbang logika yang memberikan fungsi keluaran berbeda-beda. Pada realita, gerbang logika tidak memiliki sifat se-ideal simulasi yang telah kita lakukan. Pada percobaan ini, kita akan menganilisis salah satu sifat rangkaian, yaitu waktu tunda. Kita akan menggunakan rangkaian sederhana serta BCD- to-7-segment untuk menganalisis waktu tunda dalam rangkaian logika kombinasional. Waktu tunda paling lama dalam suatu rangkaian disebut worst case delay. Kata kunci: rangkaian logika kombinasional, worst case delay, BCD-to-7-Segment. 1. PENDAHULUAN Implementasi fungsi gerbang logika pada rangkaian dapat dilakukan dengan berbagai cara, salah satunya adalah rangkaian logika kombinasional. Rangkaian logika kombinasional hanya melihat masukan yang diterima tanpa dipengaruhi keluaran fungsi gerbang logika sebelumnya, sehingga dapat dikatakan bahwa rangkaian ini merupakan salah satu rangkaian yang memiliki cara kerja paling sederhana. Pada percobaan sebelumnya, kita hanya memperhatikan fungsi masukan serta keluaran gerbang logika, tanpa mempertimbangkan realita yang tidak bersifat ideal. Salah satu bentuk ketidak-idealan tersebut adalah jeda waktu (delay) rangkaian logika. Percobaan ini akan mengimplementasikan BCD-to-7-Segment, salah satu rangkaian kombinasional, serta akan diidentifikasikan jeda waktu paling lama (worst case delay path) pada rangkaian ini. Dua metoda berbeda akan digunakan, yaitu dengan level abstraksi struktural serta level abstraksi behavioral. 2. STUDI PUSTAKA Rangkaian gerbang logika dapat dibagi menjadi beberapa bagian, seperti rangkaian logika kombinasional maupun rangkaian logika sekuensial. Adder, encoder, decoder, dan substractor adalah contoh dari aplikasi rangkaian logika kombinasional. Pada praktiknya, terdapat sifat-sifat gerbang logika yang tidak ideal seperti waktu tunda (delay time) dari gerbang logika. Selain itu, terdapat beberapa level abstraksi yang dapat digunakan seperti level abstraksi struktural maupun behavioral. 2.1 RANGKAIAN KOMBINASIONAL

[EL2142]_[03]_[18014044]

Embed Size (px)

DESCRIPTION

elektronika

Citation preview

Page 1: [EL2142]_[03]_[18014044]

MODUL 3 RANGKAIAN LOGIKA KOMBINASIONALHafizh Al Fikry (18014044)

Asisten:Khairul Hakim(18012039)Tanggal Percobaan: 13/10/2015

EL2142-Praktikum Sistem Digital dan MikroprosesorLaboratorium Dasar Teknik Elektro – Sekolah Teknik Elektro dan Informatika

Abstrak Kita telah menganalisis beberapa permasalahan gerbang logika yang memberikan fungsi keluaran berbeda-beda. Pada realita, gerbang logika tidak memiliki sifat se-ideal simulasi yang telah kita lakukan. Pada percobaan ini, kita akan menganilisis salah satu sifat rangkaian, yaitu waktu tunda. Kita akan menggunakan rangkaian sederhana serta BCD-to-7-segment untuk menganalisis waktu tunda dalam rangkaian logika kombinasional. Waktu tunda paling lama dalam suatu rangkaian disebut worst case delay. Kata kunci: rangkaian logika kombinasional, worst case delay, BCD-to-7-Segment.

1. PENDAHULUAN Implementasi fungsi gerbang logika pada rangkaian dapat dilakukan dengan berbagai cara, salah satunya adalah rangkaian logika kombinasional. Rangkaian logika kombinasional hanya melihat masukan yang diterima tanpa dipengaruhi keluaran fungsi gerbang logika sebelumnya, sehingga dapat dikatakan bahwa rangkaian ini merupakan salah satu rangkaian yang memiliki cara kerja paling sederhana.

Pada percobaan sebelumnya, kita hanya memperhatikan fungsi masukan serta keluaran gerbang logika, tanpa mempertimbangkan realita yang tidak bersifat ideal. Salah satu bentuk ketidak-idealan tersebut adalah jeda waktu (delay) rangkaian logika.

Percobaan ini akan mengimplementasikan BCD-to-7-Segment, salah satu rangkaian

kombinasional, serta akan diidentifikasikan jeda waktu paling lama (worst case delay path) pada rangkaian ini. Dua metoda berbeda akan digunakan, yaitu dengan level abstraksi struktural serta level abstraksi behavioral.

2. STUDI PUSTAKA Rangkaian gerbang logika dapat dibagi menjadi beberapa bagian, seperti rangkaian logika kombinasional maupun rangkaian logika sekuensial. Adder, encoder, decoder, dan substractor adalah contoh dari aplikasi rangkaian logika kombinasional. Pada praktiknya, terdapat sifat-sifat gerbang logika yang tidak ideal seperti waktu tunda (delay time) dari gerbang logika. Selain itu, terdapat beberapa level abstraksi yang dapat digunakan seperti level abstraksi struktural maupun behavioral.

2.1 RANGKAIAN KOMBINASIONAL Rangkaian kombinasional didefinisikan sebagai tipe rangkaian logika yang diimplementasikan menggunakan persamaan boolean, dengan keluaran adalah fungsi murni masukan. Rangkaian kombinasional tidak memiliki memori penyimpanan logika, sehingga hasil keluaran gerbang logika sebelumnya tidak akan berpengaruh pada fungsi logika rangkaian ini.

Pada percobaan ini, kita akan menggunakan salah satu aplikasi dari rangkaian kombinasional, yaitu BCD-to-7-Segment, yang akan dijelaskan pada bagian berikut.

2.2 BCD-TO-7-SEGMENT BCD-to-7-Segment adalah rangkaian kombinasional yang menerima 4 buah

Page 2: [EL2142]_[03]_[18014044]

masukan (4 bit) dan menghasilkan keluaran berupa gambar visual yang merepresentasikan angka biner tersebut dalam basis desimal. Untuk lebih jelasnya, perhatikan Gambar 2-1 berikut:

Gambar 2-1 BCD-to-7-Segment

Setiap segment yang menyala (a-g) akan merepresentasikan sebuah gambar visual. Sebagai contoh, angka 0 (0000) memiliki keluaran ”1111110”, maka hanya segment g yang berbeda (sisanya membentuk angka ’0’).

2.3 WORST CASE DELAY Worst case delay didefinisikan sebagai waktu tunda terlama yang terdapat pada suatu rangkaian gerbang logika.

Gambar 2-2 Waktu Tunda Rangkaian

Perhatikan gambar (Gambar 2-2) diatas. Waktu tunda dari masukan ke keluaran fungsi gerbang logika tersebut adalah jarak antara dua buah garis merah yang ditampilkan pada waveform tersebut.

2.4 LEVEL ABSTRAKSI Dalam perancangan fungsi gerbang logika, ada tiga level abstraksi yang dapat digunakan, yaitu level abstraksi behavioral, struktural, serta physical. Level abstraksi behavioral adalah tingkat abstraksi yang mengimplementasikan

sesuai dengan perilaku sistem, bukan interkoneksi antara komponen yang digunakan. Level abstraksi struktural adalah tingkat abstraksi dengan implementasi menggunakan fungsi gerbang logika, baik secara skematik maupun bahasa VHDL. Level abstraksi physical adalah implementasi langsung, seperti menggunakan FPGA maupun rangkaian digital lainnya.

3. METODOLOGI Percobaan ini dapat dibagi menjadi 3 bagian, yaitu pembuatan rangkaian kombinasional sederhana, implementasi BCD-to-7-Segment dengan persamaan Boolean, serta implementasi menggunakan level abstraksi behavioral. Pada percobaan pertama, kita akan membuat sebuah rangkaian kombinasional sederhana dengan 1 masukan, 2 keluaran, serta CLOCKDIV, gerbang NAND dan gerbang NOT. Berikut ini adalah file konfigurasi CLOCKDIV yang digunakan (Gambar 3-1):

Page 3: [EL2142]_[03]_[18014044]

Gambar 3-1 Script untuk CLOCKDIV

Kode yang digunakan diatas berfungsi untuk memperlambat fungsi keluaran. Hal ini bertujuan untuk mempermudah analisis waktu tunda pada simulasi timing yang akan dilakukan nantinya. Secara skematik, kita akan membuat rangkaian seperti gambar 3-2 berikut ini:

Gambar 3-2 Sketsa Rangkaian dengan Skematik

Pada percobaan diatas, kita akan menganalisis perbedaan simulasi Functional serta simulasi Timing yang akan dieksekusi. Percobaan selanjutnya adalah mengimplementasi BCD-to-7-Segment dengan pendekatan struktural, yaitu menggunakan persamaan boolean (SOP) yang disederhanakan seperti kode pada gambar 3-3 berikut ini:

Gambar 3-3 Kode File Bcd_7seg.vhd

Persamaan boolean yang akan kita gunakan adalah sebagai berikut:

Page 4: [EL2142]_[03]_[18014044]

Gambar 3-4 Sketsa Rangkaian BCD-to-7-Segment dengan Skematik

Setelah menggunakan pendekatan struktural (menggunakan persamaan Boolean), berikut ini kita akan menggunakan implementasi dengan level abstraksi behavioral. Berikut ini adalah kode / script yang digunakan dalam percobaan ketiga (Gambar 3-5):

Persamaan logika tersebut didapatkan dari K-Map tabel kebenaran fungsi BCD-to-7-Segment referensi yang digunakan. Dalam menghubungkan fungsi persamaan boolean diatas kedalam FPGA DE-1, kita menggunakan skema berikut ini (Gambar 3-4):

Gambar 3-5 Script Pendekatan Abstraksi Behavioral

Kita akan mengimplementasikan kode tersebut dengan simulasi testbench, yang akan menggunakan kode berikut ini (Gambar 3-6):

A<=D3 or D1 or (D2 and D0) or ((not D2) and (not D0));

B<=(not D2) or ((not D1) and (not D0)) or (D1 and D0);

C<=(not D1) or D0 or D2;

D<=((not D2) and (not D0)) or ((not D2) and D1) or ((not D0) and D1) or ((not D1) and D2 and D0) or D0 or D3;

E<=((not D2) and (not D0)) or ((not D0) and D1);

F<=((not D1) and (not D0)) or ((not D1) and D2) or ((not D0) and D2) or D3;

G<=((not D2) and D1) or ((not D0) and D1) or ((not D1) and D2) or D3;

Page 5: [EL2142]_[03]_[18014044]

Gambar 3-6 Script Testbench untuk Abstraksi Behavioral

Seperti yang telah dilakukan pada percobaan sebelumnya, kita dapat mensimulasikan kode diatas menggunakan script sim.do berikut ini (Gambar 3-7):

Gambar 3-7 Script sim.do

Langkah akhir yang dilakukan adalah mengimplementasikan kode tersebut pada rangkaian FPGA DE-1 yang tersedia. Setelah itu, kita akan membandingkan hasil yang didapatkan dari percobaan kedua dengan percobaan ini. Komparasi yang akan dianalisis adalah perbedaan metode struktural dengan behavioral yang digunakan diatas.

4. HASIL DAN ANALISIS Percobaan ini dibagi menjadi 3 segmen utama, yaitu menggunakan rangkaian kombinasional sederhana, rangkaian BCD, serta merancang rangkaian BCD menggunakan level abstraksi behavioral. Berikut ini adalah hasil serta analisis dari percobaan ini.

4.1 MEMBUAT RANGKAIAN SEDERHANA Pada percobaan ini, kita akan menganalisis waktu jeda yang diberikan oleh rangkaian logika yang digunakan. Berikut ini adalah hasil simulasi gerbang logika secara Functional (Gambar 4-1):

Gambar 4-1 Hasil Functional Waveform

Pada waveform tersebut, ada 3 buah pin yang digunakan yaitu CLK[0], GPIO[15] / keluaran NAND gate, serta GPIO[16] / keluaran NOT gate. Fungsi logika yang digunakan pada GPIO[15] adalah CLK[0] NAND (NOT CLK[0]) sedangkan fungsi logika yang digunakan pada GPIO[16] adalah (NOT CLK[0]). Berikut ini adalah tabel kebenaran dari masukkan yang diberikan:

Tabel 4-1 Tabel Kebenaran Rangkaian Sederhana

CLK[0] GPIO[15] GPIO[16] 0 1 1 1 1 0

Dari simulasi fungsional ini kita melihat adanya suatu delay. Delay ini akan kita gunakan untuk menganalisis rangkaian menggunakan simulasi Timing berikut ini (Gambar 4-2).

Page 6: [EL2142]_[03]_[18014044]

Gambar 4-2 Hasil Simulasi Timing Waveform

Dari waveform tersebut, kita dapat mengamati perbedaan utama dari simulasi fungsional dengan timing adalah jeda waktu yang terdapat di waveform keluaran. Pada simulasi functional, waktu saat terjadinya perubahan logika 1 menjadi 0 pada GPIO[16] adalah 490 ns, sedangkan grafik diatas menunjukkan 497,3 ns.

Dari data tersebut, kita bisa mendapatkan waktu tunda: GPIO[16] = 497,3 ns – 490 ns = 7.3 ns Dengan demikian, waktu tunda dari rangkaian kombinasional (NOT gate) yang digunakan adalah ± 7.3 ns. Berdasarkan referensi, waktu tunda yang dimiliki inverter / NOT gate adalah antara 3 – 15 ns, sehingga hasil percobaan ini masih masuk dalam rentang waktu tersebut.

Simulasi menggunakan Timing jelas lebih memodelkan situasi ideal yang ada di dunia nyata, karena memperhitungkan efek waktu tunda dari rangkaian yang digunakan.

Hasil percobaan ini sesuai dengan landasan yang telah diuraikan sebelumnya, bahwa setiap rangkaian logika, dalam kasus ini rangkaian logika kombinasional, memiliki waktu tunda (delay time) yang tidak nol.4.2 MEMBUAT RANGKAIAN BCDDengan menggunakan implementasi persamaan boolean dengan bahasa VHDL, kita akan mendapatkan hasil berikut (Gambar 4-3):

Gambar 4-3 Hasil Simulasi Functional BCD-to-7-SegmentDengan menggunakan simulasi Functional, kita dapat menguji kebenaran dari persamaan logika (SOP/POS) yang kita implementasikan seperti tabel kebenaran berikut: Tabel 4-2 Tabel Kebenaran Rangkaian BCD-to-7-SegmentD3

D2

D1

D0

A B C D E F G

0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 ø ø ø ø ø ø ø 1 0 1 1 ø ø ø ø ø ø ø 1 1 0 0 ø ø ø ø ø ø ø 1 1 0 1 ø ø ø ø ø ø ø 1 1 1 0 ø ø ø ø ø ø ø 1 1 1 1 ø ø ø ø ø ø ø

Hasil simulasi functional yang kita implementasikan menunjukkan hasil yang tidak sesuai dengan referensi BCD-to-7-Segment yang ada.Hal ini terjadi karena kami menggunakan basis active low, yang artinya lampu menyala ketika diberikan logika ’0’.Simulasi Timing pada rangkaian kombinasional BCD-to-7-Segment memberikan hasil keluaran / waveform berikut ini.

Page 7: [EL2142]_[03]_[18014044]

Gambar 4-4 Hasil Simulasi Timing BCD-to-7-SegmentSecara visual (Gambar 4-4), kita dapat melihat perbedaan mendasar dari simulasi Functional dengan Timing, yaitu dari waktu jeda yang dihasilkan oleh keluaran.Hasil implementasi fungsi logika kedalam FPGA ditunjukkan pada gambar berikut ini (Gambar 4-5):

Gambar 4-5 Implementasi BCD-to-7-Segment pada FPGA

Pada contoh implementasi tersebut, switch menunjukkan 0000. Rangkaian kombinasional ini diimplementasikan dengan basis active low, yang artinya lampu menyala ketika diberikan logika ‘0’.

4.3 MERANCANG BCD 7SEG DENGAN LEVEL ABSTRAKSI BEHAVIORAL Pada bagian 4.2, kita telah mengimplementasikan rangkaian BCD-to-7-Segment menggunakan persamaan logika Boolean (SOP/POS). Selain cara tersebut, kita dapat mengimplementasikan fungsi gerbang logika menggunakan level abstraksi behavioral, yang hasil implementasinya akan dibahas mendetail pada bagian ini.Hasil simulasi dalam ModelSim menghasilkan waveform berikut ini (Gambar 4-6):

Gambar 4-6 Simulasi BCD-to-7-Segment – ModelSim

Hasil sinyal keluaran dapat direpresentasikan dengan tabel kebenaran berikut ini (Tabel 4-4):

Tabel 4-3 Tabel Kebenaran dengan ModelSim

D3 D2 D1 D0 A B C D E F G 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1

Dari tabel kebenaran diatas (Tabel 4-4), kita dapat menyimpulkan bahwa implementasi menggunakan persamaan logika boolean maupun abstraksi behavioral memberikan hasil keluaran yang sama.

Berikut ini adalah tabel analisis perbedaan dari tingkat abstraksi behavioral maupun struktural (percobaan 4-2) yang digunakan:

Level Struktural Level Behavioral Pengertian

Menggunakan gerbang dan komponen logika yang

Menggunakan implementasi perilaku langsung suatu rangkaian, seperti 1 pada BCD-to-7-Segment direpresentasikan

Page 8: [EL2142]_[03]_[18014044]

memenuhi persamaan logika boolean

dengan “0110000”

Kelebihan

Dapat diimplementasikan tanpa melihat keluaran secara langsung

Dapat diimplementasikan tanpa merumuskan persamaan logika /masukkan sistem

Kekurangan

Harus menformulasikan fungsi persamaan logika yang digunakan secara

Semua keluaran harus dijabarkan. Contohnya: Sebuah persamaan 4 variabel

mendetail, baik dengan pendekatan skematik maupun bahasa VHDL

menghasilkan 16 keluaran, maka kita harus mendefinisikan semua (16 keluaran)

5. KESIMPULAN Dalam menjalankan simulasi, ada 2 kategorial utama yang dapat digunakan, seperti simulasi fungsional (bagian awal setiap percobaan), serta simulasi timing (bagian akhir setiap percobaan). Simulasi Functional hanya menampilkan keluaran fungsi gerbang logika, sedangkan simulasi

Timing memperhitungkan waktu tunda (delay) dari suatu rangkaian. Sebagai contoh (percobaan 4-1), memiliki waktu tunda selama ± 7,3 ns yang dapat dianalisis dari simulasi Timing.

Setiap rangkaian gerbang logika memiliki waktu tunda (delay time) pada implementasinya di dunia nyata. Secara keseluruhan, waktu tunda paling lama yang terdapat dalam suatu rangkaian dapat disimulasikan dengan mengidentifikasi worst case delay path.

Dalam mengimplementasikan gerbang logika, ada beberapa tingkatan yang dapat digunakan, seperti level abstraksi behavioral maupun struktural. Level abstraksi struktural (percobaan 4-2) serta level abstraksi behavioral (percobaan 4-3) memiliki kelebihan dan kekurangan masing-masing. Implementasi abstraksi behavioral memerlukan keluaran (output) langsung dari fungsi logika, sedangkan struktural membutuhkan masukan (input) dari fungsi logika seperti persamaan boolean logika tersebut.

6. DAFTAR PUSTAKA

[1] Brown, Stephen et Zvonko Vranesic, Fundamentals of Digital Circuit with VHDL Design 3. McGraw-Hill, USA, 2009

[2] Mervin T. Hutabarat, Arif Sasongko. Praktikum Sistem Digital dan Mikroprosesor. Laboratorium Dasar Teknik Elektro, Institut Teknologi Bandung, 2015