Sei sulla pagina 1di 9

Modul III

Rangkaian Gerbang Kombinasional


Anton Nugroho (13117017)
Asisten : Maulida Khusnul (13116007)
Tanggal Percobaan : 24/09/2018
EL2104 Praktikum Sistem Digital
Laboratorium Teknik Elektro
Institut Teknologi Sumatera

Abstrak— In this module a total of seven I. PENDAHULUAN


trials have been carried out. All experiments Mengenal software dan perangkat yang
are related to designing logic circuits with berhubungan dengan sistem digital merupakan
software and their implementation on FPGA. hal penting jika kita ingin merancang rangkaian
These experiments are designing full adder digital. Dalam modul kali ini, praktikan
with schematic, designing full adder with diperkenalkan dengan software Altera Quartus®
VHDL language approach, designing 4-bit dan Modelsim®. Kedua software tersebut
ripple carry adder with VHDL, designing 4-bit sangat berguna bagi insinyur elektro karena
adder with schematic, simple simulation using dapat membantu dalam merancang rangkaian
modelsim, creating testbench, and performing logika karena memiliki fitur yang lengkap. Pada
signal tapping process from a design. From the modul kali ini juga dijelaskan bagaimana cara
results of this experiment it can be concluded mengimplementasikan rancangan logika yang
that the logic gate has several important telah dibuat dalam software ke FPGA.
parameters that must be considered. In
addition, this module also shows the Pada laporan ini akan dipaparkan teori dan
application of logic gates for simple rumus yang mendasari percobaan, metodologi
combinational circuits. From the results of this praktkum, hasil percobaan beserta analisisnya,
experiment it can be concluded that the serta kesimpulan berdasarkan analisis yang telah
schematic and VHDL methods produce the dibuat.
same output, it's just that VHDL is more
structured so that in complex circuit design, II. LANDASAN TEORETIS
VHDL is more efficient. In this module also 2.1 IMPLEMENTASI FPGA DAN WAKTU
carried out a simulation process that can verify TUNDA
the logic circuit that has been created. In Dalam teknologi Altera Cyclone yang kita
addition, with the testbench, we can do the gunakan, fungsi logika diuraikan oleh software
verification process by changing the input implementasi kedalam bentuk subfungsi 4-
value with a clock. In the last experiment, it masukan.[1] Setiap subfungsi kemudian
can be concluded that with the signal tapping diimplementasikan oleh tabel kebenaran yang
process, we can know the intermediate signal bekerja seperti multiplexer dan dibuat dengan
values in detail so as to facilitate the memprogram SRAM yang mendefinisikan
troubleshooting process. fungsionalitas dari FPGA.[1] Setiap tabel
kebenaran memiliki waktu tunda yang
Kata Kunci: VHDL, ripple carry, skematik, FPGA, full berkontribusi ke waktu tunda keseluruhan. [1]
adder. Sedangkan untuk membedakan antara
rangkaian kombinasional dan sekuensial,
dalam subfungsi juga diberikan sebuah D flip-
flop
bukanlah worst case delay tetapi lebih kepada
Penguraian kedalam subfungsi yang waktu tunda rata-rata.[1]
dikombinasikan dengan routing interkoneksi
menghasilkan ketidakpastian dalam delay BCD-TO-7-SEGMENT CODE
propagasi dari masukan ke keluaran dalam CONVERTER
implementasi rangkaian[1]. Suatu persamaan Rangkaian ini digunakan untuk
logika dengan 2 variabel mungkin saja mengkonversikan suatu nilai desimal terkode
memiliki waktu tunda yang sama dengan yang biner(BCD) ke pola segmen yang sesuai pada
menggunakan 4 variabel karena bentuk display 7-segmen. Karena nilai BCD adalah
subfungsi FPGA.[1] angka 4-bit pada jangkauan 0-9, bagaimana
kita memperlakukan nilai 10-15(don’t care
Perancang yang berpengalaman mungkin bisa atau tidak) akan berpengaruh pada desain kita.
menggunakan pengaturan tertentu untuk
menspesifikasikan waktu tunda maksimum 7-segmen biasanya diidentifikasi dalam
yang dapat diterima. Apapun masalahnya, industri menggunakan huruf a-g seperti pada
sangat berguna bagi kita untuk mengetahui Gambar berikut ini:
berapa waktu tunda dari rangkaian kita. Karena
hampir semua rangkaian kombinasional
ditempatkan pada kondisi sekuensial, biasanya
kita tertarik pada worst case delay yang bisa
terjadi dalam operasi rangkaian dari masukan
rangkaian kombinasional ke setiap keluaran
rangkaian kombinasional.
(a)
Estimas wors
i t case delayditentukan dengan
maksimu
menambahkan delay perkiraan m
kombinasiona
kedalam rangkaian l termasuk Untuk tabel kebenaran dan k-maps dari BCD-
to-7-segment ini adalah seperti berikut
logika dan interkoneksi. Karena ketidakpastian
ini, worst case delay hanya bisa ditentukan
setelah proses implementasi selesai termasuk
penguraian menjadi subfungsi dan routing
interkoneksi.

Dalam percobaan ini, kita akan membangun


dua rangkaian. Dengan rangkaian pertama kita
akan melihat beberapa tipe dari simulasi yang
dapat kita gunakan dan melihat kemungkinan
efek dari proses penguraian yang
mengimplementasikan rangkaian sebenarnya
secara fisik. Kemudian dengan rangkaian
kedua, selain memverifikasi fungsionalitasnya, WORST CASE DELAY
kita juga akan mencari worst case delay dari Worst case delay didefinisikan sebagai waktu
setiap masukan ke setiap keluaran dan akan tunda terlama yang terdapat pada suatu
menggunakan metode simulasi yang hanya rangkaian gerbang logika
dapat diaplikasikan pada rangkaian sederhana
untk mencari jalur sebenarnya yang ditempuh
dimana delay ditemukan. Dengan Mengetahui
jalur dari worst case delay kita kemudian bisa
mengukur delay pada setiap titik jalur tersebut
di lab. Delay yang terukur ini
Waktu tunda dari masukan ke keluaran fungsi AKAN MEMBUAT SEBUAH RANGKAIAN
gerbang logika tersebut adalah jarak antara dua buah KOMBINASIONAL SEDERHANA DENGAN 1 MASUKAN,
garis merah yang ditampilkan pada waveform 2 KELUARAN, SERTA CLOCKDIV, GERBANG NAND
tersebut. DAN GERBANG NOT.

2.4 LEVEL ABSTRAKSI


Dalam perancangan fungsi gerbang logika, ada tiga
level abstraksi yang dapat digunakan, yaitu level
abstraksi behavioral, struktural, serta physical,[3].

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].

III. METODOLOGI
Kode yang digunakan diatas berfungsi untuk
A. Alat dan Bahan memperlambat fungsi keluaran. Hal ini bertujuan
1. Komputer terinstall program Quartus II untuk mempermudah analisis waktu tunda pada
2. FPGA delevopment board. Tipe ALTERA simulasi timing yang akan dilakukan nantinya.
DE1 beserta perlengkapan meliputi: Secara skematik, kita akan membuat rangkaian
a. Board FPGA tipe DE1 seperti gambar berikut
b. Catu daya dan konektor tambahan
c. Kabel downloader USB-Blaster
B. Langkah Kerja
Dalam modul ini, alat dan komponen yang
digunakan adalah komputer yang telah terinstal
software Altera Quartus® dan Modelsim®, FPGA
development board tipe ALTERA DE1, dan kabel Meskipun demikian, kita tidak menggunakan
downloader USB-Blaster. Langkah percobaan- pendekatan skematik, namun menggunakan
percobaan akan dijelaskan pada subbab di bawah. pendekatan lainnya, yaitu menggunakan bahasa
VHDL. Gambar berikut ini merepresentasikan
1.1 MENDESAIN FULL ADDER DENGAN kode yang digunakan
SKEMATIK

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
Pada percobaan diatas, kita akan menganalisis kembali.
perbedaan simulasi Functional serta simulasi 6. Catat hasil percobaan pada BCL Anda.
Timing yang akan dieksekusi. Berikut adalah
langkah-langkah untuk membuat rangkaian 2.1 Membuat Rangkaian BCD
sederhana:
1. Buatlah project Quartus baru bernama bcd pada
1.1 MANAJEMEN FILE direktori bcd
1. Buatlah direktori baru dengan nama Modul3 pada 2. Import pin assignment seperti pada percobaan
direktori praktimum digital, kemudian di dalamnya sebelumnya.
buatlah dua direktori baru kembali dengan nama
3. Buatlah dua file diagram skematik, yang satu
sederhana dan bcd.
bernama bcd_test.bdf dan satunya lagi bernama
bcd_7seg.bdf (file yang terakhir ini tidak
1.2 PEMBUATAN PROJECT SEDERHANA ditambahkan dalam project).

1. Buat proyek Quartus baru dengan nama sederhana 2.2 Pembuatan skematik
pada direktori sederhana
2. Download file clockdiv.vhd dan clockdiv.bdf dari web 1. Desainlah sebuah rangkaian decoder BCD-to-7-
labdasar. Rangkaian ini akan digunakan untuk segment seperti yang dispesifikasikan diatas dengan
memperlambat clock masukan rangkaian sederhana. menggunakan persamaan Boolean berbentuk
3. Buatlah sebuah file diagram skematik baru bernama
Sum of Product (SOP)/ POS minimal yang sudah
sederhana.bdf, tambahkan file tersebut ke dalam project
dan implementasikan rangkaian Anda kerjakan pada tugas pendahuluan.
pada Gambar 4. Berikan nama kaki masukan sebagai 2. Bcd_7seg.bdf : Anda akan mengimplementasikan
CLK[0]. Berikan nama kaki keluaran yang tersambung rangkaian decoder BCD-to-7-segment pada file
ke gerbang NAND (keluaran Y pada Gambar skematik ini. Kemudian dalam beberapa kasus
3) sebagai GPIO[15] dan untuk kaki keluaran yang untuk penyederhanaan rangkaian gunakan gerbang
tersambung dengan inverter dengan nama GPIO[16]. NAND gate (BANDx pada Quartus) misalnya untuk
mengimplementasikan logika X 2.X1.X 0 tanpa
harus menggunakan 3 inverter. Gunakan gerbang
logika dan pin input/output sesuai keperluan.
Setelah selesai pilih File→Create/Update→Create
Symbol for Current File. Langkah ini akan
membuat skematik kita bisa digunakan pada
1.3 KOMPILASI PROJECT DAN SIMULASI skematik lain sebagai blok fungsi.

1. Untuk keperluan I/O pin lakukan seperti pada modul 2 Bcd_test.bdf : dalam skematik ini Anda akan
2. Lakukan compile pada project Anda, jika ada error memasukkan rangkaian BCD-to-7-segment pada
perbaiki skematik Anda kemudian ulangi langkah skematik lainnya sebagai blok fungsi dan
sebelumnya. Pada tahap ini mungkin akan terdapat menghubungkan input kepada switch dan output
banyak warning karena banyak port yang tidak kita
dengan 7-segment display. Masukkan blok
gunakan tetapi hal ini tidak akan menjadi masalah pada
percobaan ini. bcd_7seg( terdapat di Symbol Toolbox→Project)
3. Pertama kita akan menggunakan simulasi Functional kemudian sambungkan kaki-kaki pada blok
seperti pada percobaan 2. Ikuti langkah-langkah yang bcd_7seg dengan pin input dan output yang
telah Anda pelajari pada percobaan 2 untuk masingmasing dinamakan seperti pada tabel
melaksanakannya, atur simulasi sehingga sinyal yang dibawah ini.
dipakai harus dapat merepresentasikan setiap
kemungkinan logika!
4. Simpan hasil simulasi Anda untuk dilampirkan pada
laporan Anda.
5. Sekarang, ubahlah Simulation Mode menjadi Timing
dan jalankan simulasi
Nama Pin Pada kaki bcd_7seg Nama Pin Input/Output SW1[3]=1, SW1[2]=1, SW1[1]=0, SW1[0]=0, Yj
D3 SW1[3] bernilai 0, kemudian saat masukan SW1[3]=0,
D2 SW1[2] SW1[2]=1, SW1[1]=0, SW1[0]=0, Yj bernilai 1
D1 SW1[1]
D0 SW1[0]
maka SW1[2], SW1[1], SW1[0] = (1,0,0) adalah
A HEX1[0] nilai set. Ulangi untuk kombinasi lain hingga Anda
B HEX1[1] mendapatkan seluruh nilai set yang ada.
C HEX1[2] 4. Laksanakan kembali timing simulation, kali ini
D HEX1[3] Anda hanya memakai kombinasi nilai input yang
E HEX1[4] mengakibatkan nilai set. Disini kita akan mencari
F HEX1[5]
kombinasi input yang mengakibatkan worst case
G HEX1[6]
delay.
5. Buka hasil simulasi pada Simulation Report.
2.3 Pembuatan Netlist dan Simulasi Fungsional
Arahkan mouse pada bagian gambar pulsa, klik
kanan dan pilih insert time bar hingga terdapat 2
1. Set skematik bcd_test sebagai Top Level entity
time bar pada gambar pulsa.
pada hierarki program. Hal ini bisa dilakukan
6. Geserlah time bar hingga yang satunya berada
dengan memilih Project→Set as Top-Level Entity.
pada posisi ketika input yang dianggap Xi berubah
2. Simulasikan rangkaian untuk setiap kombinasi
dan yang satunya pada posisi ketika input yang
masukan yang mungkin dengan menggunakan jenis
dianggap Yj ikut berubah. Geser-geser
masukan Overwrite Clock seperti yang dilakukan
menggunakan panah di sebelah kanan tulisan
pada percobaan sebelumnya.
master time bar untuk memposisikan time bar
dengan tepat. Lihat angka yang terdapat diatas time
Simulasi Timing
bar dan catat delay dari masing-masing kombinasi
1. Lakukan simulasi timing pada rangkaian
nilai set tersebut!!.
menggunakan bentuk sinyal masukan yang sama
seperti pada simulasi fungsional. Pastikan simulasi
sudah diset sebagai Timing bukan Fungsional. Memprogram kedalam FPGA
1. Coba Anda download program BCDto-7-segmen
2. Compile dahulu project Anda apabila belum
Anda kedalam board FPGA yang tersedia, lihat
dilakukan.
kembali modul 2 untuk cara pemrograman.
3. Jalankan simulasi dan lihatlah apakah keluaran
2. Mainkan 4 switch yang kita pakai pada
identik dengan simulasi secara fungsional (kecuali
percobaan ini dan lihat apakah program kita sudah
beberapa delay dan glitch).
berjalan dengan benar.
3. Catat Hasil percobaan pada BCL Anda.
Simulasi Worst Case Delay
Setelah menyelesaikan ini, simpan seluruh file
percobaan 3B karena akan digunakan kembali
1. Periksa bagian Timing Analyzer Summary dan
pada modul 4 dan modul 5. Jika belum selesai maka
tpd dari Processing→Compilation Report,
selesaikan di rumah .
kemudian cari pasangan kaki keluaranmasukan
yang memiliki delay maksimal/paling besar. MERANCANG BCD 7SEG DENGAN LEVEL
Selanjutnya kaki masukan dari delay maksimum ini ABSTRAKSI BEHAVIORAL
kita beri nama sebagai MasukanDelay
dengan simbol Xi(misalkan Xi=SW1[3])dan Setelah menggunakan pendekatan struktural
keluarannya akan kita beri nama Keluaran Delay (menggunakan persamaan Boolean), berikut ini kita
akan menggunakan implementasi dengan level
dengan symbol Yj (misalkan Yj = HEX1[0]).
abstraksi behavioral. Berikut ini adalah kode script
2. Dengan melihat tabel kebenaran dari keluaran yang digunakan dalam percobaan ketiga
Yjcarilah semua nilai set dari Xi dimana ketika Xi
berubah dari ‘0’→’1’ atau ‘1’→’0’Yj akan berubah
pula nilainya. Misalkan Xi=SW1[3] dan
berdasarkan tabel kebenaran saat masukan
1. Buatlah folder baru untuk melakukan
percobaan pada praktikum ini. Folder ini
nantinya digunakan sebagai direktori kerja,
untuk menyimpan file-file yang berhubungan
dengan praktikum ini.
2. Buatlah file DUT (Device Under Test) dengan
cara mengetikkan script di bawah ini
menggunakan text editor, kemudian simpan file
tersebut di folder yang telah dibuat pada
langkah sebelumnya.
3. Buatlah file Testbench dengan cara mengetikkan
script di bawah ini menggunakan text editor,
kemudian simpan file tersebut di folder yang telah
dibuat pada langkah sebelumnya.
4. Buatlah file sim.do dengan cara mengetikkan
script seperti yang telah dilakukan pada percobaan
2D. Lakukan beberapa modifikasi penyesuaian
pada script tersebut.
5. Pada jendela transcript ketikkan “do sim.do” untuk
menjalankan simulasi. Ambil gambar sinyal hasil
simulasi tersebut, kemudian sertakan dalam
laporan ! Analisis sinyal hasil simulasi tersebut !
6. Implementasikan desain ini ke dalam FPGA dengan
cara yang telah dijelaskan pada percobaan
sebelumnya. Apakah hasilnya menunjukkan
behavioral yang sama dengan langkah 3-B?
Analisis kelebihan dan kekurangan masing-masing
level abstraksi!

IV. HASIL DAN ANALISIS


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:

Pada waveform tersebut, ada 3 buah pin yang


digunakan yaitu CLK[0], GPIO[15] / keluaran
NAND gate, serta GPIO[16] / keluaran NOT gate.
4.2 MEMBUAT RANGKAIAN BCD
Dari percobaan yang didapat, dapat dilihat dari
gambar di bawah, bahwa tebel kebenaran dari
BCD to 7 segment yang diharapkan sama dengan
yang didapatkan ketika praktikum.

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: Karena pada percobaan ini yang dilihat adalah
Di modul terdapat 3 pertanyaan perbedaan antara mode timing dan mode
functional, maka hasil yang kami dapat adalah
Apa perbedaan dari kedua mode simulasi
tersebut?
Jawaban : Awalnya perbedaan dari kedua ini
tidak tampak terlihat jelas.Perbedaan kedua
mode simulasi dari simulasi fungsional ke
simulasi timing adalah terjadinya waktu tunda
yaitu sebesar 7,677ns. Waktu tunda terjadi di
mana waktu ketika mode timing adalah
252,681 ns dan ketika mode functional adalah
245,004 ns. Disini dapat dilihat bahwa mode
timing lebih cepat daripada mode functional
Secara visual,kita dapat melihat perbedaan mendasar
Menurut Anda mode simulasi mana yang akan dari simulasi Functional dengan Timing, yaitu dari waktu
lebih memodelkan secara akurat kondisi nyata jeda yang dihasilkan oleh keluaran.
rangkaian yang Anda rancang?
Jawab : Simulasi menggunakan Timing jelas
lebih memodelkan situasi ideal yang ada di
dunia nyata, karena memperhitungkan efek
waktu tunda dari rangkaian yang digunakan
Apakah Anda mengharapkan hasil sebenarnya
lebih baik, buruk, atau sama

Jawab : sama saja dengan simulasi karena hasil


dari simulasi kami sudah cukup baik dan
kesalahan yang mungkin terjadi baik kesalahan Gambar 4-6 menunjukkan delay maksimum (worst delay
teknis maupun kesalahan manusia sudah dapat time) yang dimiliki rangkaian kombinasional yang
diminimalisir dengan baik karena percobaan ini digunakan, yaitu 12.541 ns dengan MasukanDelay
SW1[3] dan KeluaranDelay HEX1[3]. SW1[3] adalah
hanya berbasis simulator
representasi dari masukkan D1, sedangkan HEX1[3]
adalah representasi dari keluaran D.
Sesuai dengan modul, terdapat pertanyaan-pertanyaan
yang dapat mendukung analisa, yaitu
 Berapa delay maksimum dari decoder?
 V. KESIMPULAN
Jawab : delay yang kami dapat dari praktikum
1. Antara SImulasi Functional dengan Timing
yaitu sebesar 12.541 ns.
 sebetulnya sama saja yang membedakan hanya dari
 Apakah nama input dari MasukanDelay yang penggunaan untuk membuat sesuatu
diberi kode Xi? 2. Dalam Mengimplementasi gerbang logika, gerbang
 logika implementasi abstraksi behavioral
Jawab : mode input yang kami beri kode Xi memerlukan output langsung dari fungsi logika
adalah SW1[3]

 Apakah nama output dari KeluaranDelay yang
REFERENSI
diberi kode Yj?
Jawab : kode keluaran yang kami beri kode Yj
[1] Mervin T. Hutabarat., Petunjuk Praktikum Sistem
adalah HEX1[0] Digital dan Mikroprosesor, Laboratorium Dasar Teknik
Elektro, Bandung, 2015.
Dengan bantuan pertanyaan dan jawaban di atas serta
hasil yang kami dapatkan yaitu
Kita dapat mengamati langsung dari waveform
keluaran saat t = 47.14 ns, nilai logika KeluaranDelay
mengalami perubahan dari 1 menjadi 0, sedangkan
saat t = 52.505 ns, nilai logika KeluaranDelay
mengalami perubahan dari 0 menjadi 1, sesuai
dengan referensi yang diharapkan. Delay maksimum
yang tercatat pada rangkaian BCD-to-7-Segment yang
Dari Ke Set Waktu Waktu Delay
Logika Logika Ekspek Timing Time
tasi
0110 1110 (1,1,0) 35 ns 42.13 ns 12.14 ns

0001 1001 (0,0,1) 40 ns 49.205 12.541


ns ns
digunakan adalah 12.541 ns, dengan nilai set (0,0,1)
bisa dilihat di table.
LAMPIRAN KETERANGAN SAKIT

Potrebbero piacerti anche