Combinational Logic Sequence

download Combinational Logic Sequence

of 9

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