Combinational Logic Sequence
-
Upload
yogi-salomo-mangontang-pratama -
Category
Documents
-
view
224 -
download
0
Transcript of Combinational Logic Sequence
-
7/30/2019 Combinational Logic Sequence
1/9
1
MODUL 3 RANGKAIAN LOGIKA KOMBINASIONAL
Yogi Salomo Mangontang Pratama (13511059)Asisten: Inneke Mayachita / 13209077
Tanggal Percobaan: 9/10/2012EL2195-Praktikum Sistem Digital
Laboratorium Dasar Teknik Elektro Sekolah Teknik Elektro dan Informatika
Abstrak
Dalam penerapan rangkaian digital ke dalam FPGApasti akan selalu terdapat waktu tunda pada setiapbagian proses sehingga pada akhirnya akanmempengaruhi waktu tunda dari keseluruhanrangkaian. Pada percobaan kali ini kita hendakmengamati waktu tunda yang terjadi ketikamengimplementasikan rangkaian BCD-to-7-segmentke dalam FPGA.
Simulasi yang digunakan terdiri dari dua jenis, yaitusimulasi fungsional dan simulasi timing. Simulasifungsional lebih bertujuan untuk mengecek nilaikebenaran fungsi yang kita buat sementara simulasitiming lebih ditujukan untuk mengukur waktu tundadari rangkaian.
Kedua percobaan akan selalu menghasilkan nilaiwaktu tunda, akan tetapi yang lebih mendekatikenyataan adalah simulasi timing, sehingga dari sinikita akan mendapat nilai worst case delay.
Kata kunci : fungsional, timing, BCD-to-7segment, worst case delay.
1. PENDAHULUAN
Dalam penerapan rangkaian digital ke dalamFPGA, akan selalu terdapat perbedaan waktuyang biasa kita sebut dengan waktu tunda. Padapercobaan ini kita akan mencoba untukmengukur berapa waktu tunda dari rangkaianBCD-to-7-segment yang kita buat denganmenggunakan simulasi.
Simulasi itu sendiri terbagi menjadi dua yaitusimulasi fungsional dan simulasi timing.Keduanya dapat menghasilkan nilai waktutunda, akan tetapi kita berusaha melihat manayang lebih mendekati kenyataan yangsebenarnya sehingga nantinya akan kita ambilsebagai nilai worst case delay.
Adapun tujuan dari praktikum ini antara lain :
1. Mendesain rangkaian sederhana untukmelihat pengaruh waktu tunda
2. Mendesain rangkaian kombinasional berupadecoder BCD-to-7-segment untukdiimplementasikan di dalam FPGA
3. Menggunakan simulasi fungsional untukmemverifikasi fungsi rangkaian
4. Menggunakan analisis dan simulasi waktuuntuk mengidentifikasi worst case delaypath
5. Melakukan pengukuran waktu tundapropagasi pada leel rangkaian
6. Mengenal level abstraksi dalam perancangandigital
2. STUDI PUSTAKA
2.1 Implementasi FPGA dan Waktu Tunda
Dalam teknologi Altera Cyclone yang kitagunakan, fungsi logika diuraikan oleh softwareimplementasi ke dalam bentuk subfungsi 4-masukan. Setiap subfungsi kemudiandiimplementasikan oleh tabel kebenaran yangbekerja seperti multiplexer dan dibuat denganmemprogram SRAM yang mendefinisikanfungsionalitas dari FPGA. Setiap tabelkebenaran memiliki waktu tunda yangberkontribusi ke waktu tunda secarakeseluruhan.
Estimasi worst case delay ditentukan denganmenambahkan delay perkiraan maksimum kedalam rangkaian kombinasional termausklogika dan interkoneksi. Karena ketidakpastianini, worst case delay hanya bisa ditentukansetelah proses implementasi selesai termasukpenguraian menjadi subfungsi dan routinginterkoneksi.
-
7/30/2019 Combinational Logic Sequence
2/9
2
2.2 BCD-TO-7-SEGMENT CODECONVERTER
Rangkaian ini digunakan untukmengkonversikan suatu nilai decimal terkodebiner(BCD) ke pola segmen yang sesuai pada
display 7-segmen. Karena BCD adalah angka 4-bit pada jangkauan 0-9, bagaimana kitamemperlakukan nilai 10-15 akan berpengaruhpada desain kita.
7-segmen biasanya diidentifikasi dalam industrymenggunakan huruf a-g seperti pada gambarberikut :
GAMBAR 2.2.1 Konvensi penomoran 7-segmen.Sumber :www.tpub.com
GAMBAR 2.2.2 Pola Display 7-segmen. Sumber : machine-information-systems.com
3. METODOLOGI
Alat-alat yang digunakan dalam percobaan iniantara lain :
1. Komputer yang telah ter-install programQuartus II
2. FPGA development board, tipe DE1 besertaperlengkapannya yang meliputi :
Board FPGA tipe UP2, DE1, DE2, atauDE2-70
Catu Daya+ Kabel dan konektortambahan
Kabel downloader ByteBlaster II danUSB-Blaster.
3.1 PERCOBAAN 3A : MEMBUATRANGKAIAN SEDERHANA
3.1.1 Manajemen File
3.1.2 Pembuatan Project Sederhana
3.1.3 Kompilasi Project dan Simulasi
Buat direktori baru bernama Modul3 pada direktoripraktikum sistem digital, kemudian di dalamnya buatlahdua direktori baru kembali dengan nama sederhana dan
bcd
Download file bernama SisDig_pin_assignment_UP2.qsfbagi yang mendapatkan board FPGA UP2 ke direktori
Modul3 Anda. File tersebut akan digunakan untukpenempatan pin secara otomatis
Buat file diagram skematik baru bernama sederhana.bdf,kemudian tambahkan ke dalam project dan implementasikan
rangkaian pada Gambar yang ada pada modul praktikum.Berikan nama kaki masukan sebagai CLK[0], kaki keluaran yang
tersambung dengan gerbang NAND GPIO[15], yang dengan
inverter GPIO[16]
Download file clockdiv.vhd dan clockdiv.bdf dari web labdasar.Rangkaian ini akan digunkaan untuk memperlambat clock
masukan rangkaian sederhana
Buat proyek Quartus baru dengan nama sederhana padadirektori sederhana
http://www.tpub.com/http://www.tpub.com/http://www.tpub.com/http://www.tpub.com/ -
7/30/2019 Combinational Logic Sequence
3/9
3
3.2 MEMBUAT RANGKAIAN BCD
3.2.1 Membuat project BCD
3.2.2 Pembuatan Skematik
3.2.3 Pembuatan Netlist dan SimulasiFungsional
Untuk keperluan I/O pin kita akanmenggunakan file yang sudah ada. Klik
Assignment -> Import Assignment.Pada jendela baru sorot file namekemudian klik tombol ... pilih fileSisDig_pin_assignment_UP2.qsf
Coba klik Assignment -> Pin Planner seperti padamodul 2, Anda akan melihat beberapa pin FPGA sudahterhubung dengan suatu nama. dengan mencocokkan
nama port input/output pada skematik/VHDL kitadengan nama yang digunakan pada file akan membuat
kita tak perlu menghubungkan secara manual
Lakukan compile pada project Anda, jika adaerror perbaiki skematik Anda kemudian ulangilangkah sebelumnya. Pada tahap ini mungkinakan terdapat banyak warning karena banyak
port yang tidak kita gunakan tetapi hal ini tidakakan menjadi masalah pada percobaan ini
Pertama kita akan menggunakan simulasifunctional seperti pada percobaan 2. Ikuti
langkah-langkah seperti yang telah dipelajaripada percobaan sebelumnya dan atur simulasi
sehingga sinyal yang dipakai dapatmerepresentasikan setiap kemungkinan logika
Simpan hasil simulasi Andauntuk laporan, kemudian ulangikembali simulasi dengan modetiming. Lakukan pengamatandan analisis perbedaan yang
mungkin terjadi
Buat projectQuartus barubernama bcd
pada direktori bcd
Import pinassignment seperti
pada percobaansebelumnya
Buatlah dua file diagram skematik, yang satubernama bcd_test.bdf dan yang satunya lagi
bernama bcd_7seg.bdf ( file yang terakhir
tidak ditambahkan dalam project
Desainlah rangkaian decoder BCD-to-7-segment seperti yang dijelaskan pada
modul praktikum, menggunakanpersamaan boolean berbentuk SOP danPOS yang telah dikerjakan sebelumnya
Bcd_7seg.bdf : Anda akanmengimplementasikan rangkaian decoderBCD-to-7-segment pada file skematik yangtelah dibuat. Gunakan gerbang yang sesuaiagar rangkaian sederhana. Setelah selesai
pilih File -> Create/Update -> CreateSymbol for Current File
Bcd_test.bdf: Dalam skematik ini Andaakan memasukkan rangkaian BCD-to-7-segment pada skematik lainnya sebagaiblok fungsi dan menghubungkan inputkepada switch dan output dengan 7-
segment-display . Masukkan blok bcd_7segyang telah dibuat ke dalam file skematik ini
Set skematik bcd_test sebagai Top Level Entity padahierarki program. Hal ini bisa dilakukan dengan memilih
Project -> Set as Top Level Entity
Simulasikan rangkaian untuk setiap kombinasimasukan yang mungkin dengan menggunakanjenis masukan Overwrite Clock seperti yang
dilakukan pada percobaan sebelumnya
Simpan hasil simulasi Anda untukdilampirkan pada laporan dan jelaskanapakah decoder Anda sudah berfungsi
dengan benar?
-
7/30/2019 Combinational Logic Sequence
4/9
4
3.2.4 Simulasi Timing
3.2.5 Simulasi Worst Case Delay
3.2.6 Memprogram ke dalam FPGA
3.3 MERANCANG BCD 7SEG DENGAN
LEVEL ABSTRAKSI BEHAVIORAL
Lakukan simulasi timing pada rangkaianmenggunakan bentuk sinyal masukan yang sama
seperti pada simulasi fungsional. Pastikan simulasisuda diset sebagai Timing bukan Functional
Compile dahulu project Anda apabila belumdilakukan
Jalankan simulasi dan lihatlah apakah keluaranidentik dengan simulasi secara fungsional
Jangan tutup jendela simulasi Timing karena akandigunakan untuk analisa selanjutnya
Periksa bagian Timing Analyzer Summary dan tpd dariProcessing -> Compilation Report, kemudian cari pasangan kkeluaran-masukan yang memiliki delay maksimal. Selanjutny
kita beri nama masukannya dengan MasukanDelay bersimboldan keluarannya bernama KeluaranDelay bersimbol Yj
Dengan melihat tabel kebenaran dari keluaran Yj, carilah semnilai set dari Xi dimana ketika Xi berubah dari 0 menjadi 1 atsebaliknya, akan berubah pula nilainya. Ulangi untuk kombin
masukan yang lain sehingga Anda mendapatkan seluruh nilset yang ada
Amati nilai masukan apa saja yang Anda dapatkan sebagainilai set pada poin nomor 2, kemudian laksanankan
kembali timing simulation hanya menggunakan nilai inputyang mengakibatkan nilai set. Disini kita akan mencarikombinasi input yang mengakibatkan worst case delay
Buka hasil simulasi pada Simulation report, arahkanmouse pada bagian gambar pulsa, klik kanan dan pilih
insert time bar hingga terdapat 2 time bar pada gambarpulsa
Geserlah time bar hingga yang satunya berada pada posisiketika input yang dianggap Xj berubah dan yang satunyapada posisi ketika input yang dianggap Yj ikut berubah.
Geser-geser menggunakan panah di sebelah kanan tulisanmaster time bar untuk memposisikan time bar dengan
tepat. Amati angka yang terdapat pada time bar dan catatdelay dari masing-masing kombinasi nilai set
Coba download program BCD-to-7-segmentAnda ke dalam board FPGA yang tersedia,
lihat modul percobaan sebelumnya apabilalupa langkah-langkahnya
Mainkan 4 switch yang kitapakai pada percobaan ini dan
lihat apakah program kitasudah berjalan dengan benar
Amati dan catathasil percobaan
dalam bukacatatan
-
7/30/2019 Combinational Logic Sequence
5/9
-
7/30/2019 Combinational Logic Sequence
6/9
6
Dengan rangkaian yang sama kami melakukan
simulasi dengan menggunakan mode timing.
Dan hasil waveform yang kami dapatkan adalah
sebagai berikut :
GAMBAR 4.1.2 WAVEFORM SIMULASI TIMING
Pada simulasi ini didapatkan hasil waveform
yang relatif sama dengan simulasi sebelumnya.
Akan tetapi bila diamati dengan lebih teliti,
terdapat perbedaan waktu saat nilai XBAR-nya
berubah. Pada simulasi kali ini, waktu
perubahan nilai XBAR terjadi pada 252,42 ns.
Dapat kita lihat bahwa terdapat perbedaan dari
nilai perubahan XBAR.
Perbedaan ini terjadi oleh karena perbedaan
sifat dari kedua jenis simulasi. Pada simulasi
fungsional, keadaan dianggap ideal, sehingga
simulasi tidak mengindahkan adanya faktor-
faktor yang mungkin memperlambat fungsi.
Sementara pada simulasi timing, berbagai faktor
seperti waktu tunda sudah diperkirakan
sehingga waktu yang dibutuhkan juga lebih
lama.
Berdasarkan data tersebut, dapat kita amatibahwa simulasi yang lebih mendekati
kenyataan adalah simulasi timing. Karena pada
dasarnya tidak ada kondisi yang ideal pada
realisasi sesungguhnya, sehingga hasil yang
lebih mendekati kenyataan dari keduanya
adalah simulasi timing.
Kita mengharapkan hasil yang lebih baik
daripada simulasi yang kita lakukan. Oleh
karena simulasi ini adalah saat kita mencoba
dan mendapatkan nilai terburuk yang dapat kita
perkirakan, sehingga nantinya dapat melakukan
antisipasi. Sesungguhnya kita mengharapkanpada saat penerapannya nanti, rangkaian dapat
lebih baik daripada hasil simulasinya.
4.2 Membuat Rangkaian BCD
Pada percobaan kedua ini kami mencoba
membuat rangkaian untuk diaplikasikan pada
7segment. Adapun tabel kebenaran dari
7segment itu sendiri antara lain :
NO D3 D2 D1 D0 A B C D E F G
0 0 0 0 0 1 1 1 1 1 1 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 1 1 0 1
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0 0 1 1 0 0 1 1
5 0 1 0 1 1 0 1 1 0 1 1
6 0 1 1 0 1 0 1 1 1 1 1
7 0 1 1 1 1 1 1 0 0 0 0
8 1 0 0 0 1 1 1 1 1 1 1
9 1 0 0 1 1 1 1 1 0 1 1
TABEL 4.2.1 TABEL KEBENARAN 7SEGMENT
Rangkaian dibuat dengan menggunakan
bahasa VHDL yang skripnya antara lain sebagai
berikut :
ENTITY bcd_7seg IS
PORT ( D3, D2, D1, D0 : IN BIT;
A, B, C, D, E, F, G : OUT
BIT);
END bcd_7seg;
ARCHITECTURE DataFlow OF bcd_7seg IS
BEGIN
A
-
7/30/2019 Combinational Logic Sequence
7/9
7
E
-
7/30/2019 Combinational Logic Sequence
8/9
8
Pada percobaan ini nilai waktu tunda yang
didapat adalah sebesar 12,992 ns. Terdapat
perbedaan antara nilai yang didapat melalui
analisis dari software dengan yang didapat dari
pengamatan. Adapun perbedaan ini
kemungkinan diperoleh karena ketidaktepatanposisi pointer saat hendak mengamati waktu
tunda sehingga didapat nilai yang berbeda.
Berikut juga kami lampirkan data gambar dari
hasil penerapan rangkaian yang telah kami
rancang ke dalam FPGA :
GAMBAR 4.2.5 HASIL KELUARAN DARI FPGA
4.3 Merancang BCD 7SEG dengan Level
Abstraksi Behavioral
Setelah mencoba membuat rangkaian BCD7SEG dengan abstraksi Behavioral, denganmengetikkan skrip :
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;
entity bcd is port(SW : IN STD_LOGIC_VECTOR (3
DOWNTO 0);HEX1 : OUT STD_LOGIC_VECTOR (1 TO 7));
END bcd;
ARCHITECTURE behavioral OF bcd IS--Deklarasi perameter konstan
CONSTANT NOL : STD_LOGIC_VECTOR (3DOWNTO 0) := "0000";CONSTANT SATU : STD_LOGIC_VECTOR (3DOWNTO 0) := "0001";CONSTANT DUA : STD_LOGIC_VECTOR (3DOWNTO 0) := "0010";
CONSTANT TIGA : STD_LOGIC_VECTOR (3DOWNTO 0) := "0011";
CONSTANT EMPAT : STD_LOGIC_VECTOR (3DOWNTO 0) := "0100";
CONSTANT LIMA : STD_LOGIC_VECTOR (3DOWNTO 0) := "0101";CONSTANT ENAM : STD_LOGIC_VECTOR (3DOWNTO 0) := "0110";CONSTANT TUJUH : STD_LOGIC_VECTOR (3DOWNTO 0) := "0111";
CONSTANT DELAPAN : STD_LOGIC_VECTOR (3DOWNTO 0) := "1000";
CONSTANT SEMBILAN : STD_LOGIC_VECTOR (3DOWNTO 0) := "1001";
BEGIN--Mapping nilai switch ke logika BCD 7Seg
PROCESS (SW)BEGINCASE SW IS
WHEN NOL => HEX1 HEX1 HEX1 HEX1 HEX1 HEX1 HEX1 HEX1 HEX1 HEX1 HEX1
-
7/30/2019 Combinational Logic Sequence
9/9
9
GAMBAR 4.2.6 HASIL SIMULASI BEHAVIORAL
Didapatkan hasil yang sama dan sesuai dengantabel kebenaran maupun percobaansebelumnya. Akan tetapi yang berbeda adalahdalam proses pemasukan datanya. Pada saatmembuat rangkaian yang sebelumnya, kitamemasukkan nilai fungsi ke dalam variabel,sehingga hasil yang didapat akan lebih jitu dandapat dengan mudah diubah-ubah nilainya.Apabila dengan menggunakan behavioral, nilaiyang diberikan sudah tetap, sehingga lebihmudah dalam memasukkan nilainya, tapi tidakdapat diubah-ubah sesuai dengan keinginankita. Dapat kita amati bahwa masing-masinglevel abstraksi dari rangkaian digital tersebutmemiliki kelebihan dan kekurangan masing-masing.
5. KESIMPULAN
Terdapat dua jenis simulasi dalam perancangandigital, fungsional dan timing. Yang lebihmendekati kenyataan adalah timing, karenamemperkirakan berbagai macam faktor antaralain waktu tunda, sementara pada fungsionalkondisinya diasumsikan ideal. Sehinggafungsional lebih berfungsi untuk memverifikasiapakah fungsi yang kita berikan sudah benaratau tidak, sementara untuk mendapatkan worstcase delay dari rangkaian dapat diperoleh darisimulasi timing.
Untuk level Abstraksi Behavioral lebih mudahpemasukan datanya. Akan tetapi kita tidakdapat memahami serta mengatur logika yangdiberikan untuk mendapatkan nilai yangdemikian. Sehingga setiap level abstraksimemiliki kelebihan dan kekurangan masing-masing sesuai kebutuhan.
6. DAFTAR PUSTAKA
Brown, Steven dan Varesnic, Zvonko. 2005.Fundamental Of Digital Logic withVHDL Design.
Hutabarat, Mervin, dkk, Modul PraktikumSistem Digital, Institut TeknologiBandung, Bandung, 2010