Desain Unit Kendali

download Desain Unit Kendali

of 7

Transcript of Desain Unit Kendali

  • 8/6/2019 Desain Unit Kendali

    1/7

    DESAIN UNIT KENDALI / MODUL V

    Praktikan: Nicholas Melky S Sianipar (13206010) Asisten: Ridwan Fahri (13204185)

    Waktu Percobaan: 24 November 2008EL2195 Sistem DigitalLaboratorium Dasar Teknik Elektro

    Sekolah Teknik Elektro dan Informatika ITB

    Abstrak

    Pada praktikum ini praktikan mencoba mendesain suatu rangkaian state control unit yang mengimplementasikan diagram Algorithmic State Machine (ASM) yang diberikan. Setelah rangkaian

    pengendali dibuat, rangkaian diverifikasi hasil fungsinya menggunakan simulasi fungsional. Apabila fungsi telah sesuai dengan yang diharapkan, maka rangkaian pengendali tersebut diintegrasikan dengan model rangkaian pembaca frekuensi sehingga rangkaian pembaca frekuensi tersebut menjadi desain yang berfungsi

    secara utuh. Setelah itu rangkaian dapat didownload ke FPGA dan dilakukan pencobaan dengan menggunakan input frekuensi dari generator sinyal dan button sebagai input dan hasil tampilan pada 7- segmen sebagai output.

    1 Pendahuluan

    Pada praktikum ini praktikan akan mencoba merancang rangkaian digital pada software AlteraQuartus II 6.0. Untuk mendesain rangkaian dan mencobanya pada FPGA praktikan harusmengetahui prosedur percobaan yang mana prosedurnya hampir sama dengan prosedur padapercobaan sebelumnya. Urutan prosedur percobaan adalah : Pembuatan project CONTROLdan FREQCNT, Memasukan desain skematik atau VHDL rangkaian Blok Unit Kendali,Kompilasi, Pembuatan Netlist dan simulasi fungsional, Mengintegrasi Desain, Memprogramke dalam FPGA, dan Mengimplementasikan Rangkaian Penghitung Frekuensi. FPGA yang digunakan pada praktikum ini adalah FPGA seri DE1 Device EP2C20F484C7N.

    2 Dasar Teori

    Dalam percobaan ini praktikan akan membangun sebuah system penghitung frekuensi denganpendekatan finite state machine. Untuk mewujudkannya kita menggunakan cara yang sederhana yaitu dengan menghitung banyaknya perubahan sinyal yang berupa variabel C untuk suatu periode waktu konstan(T). Dari sini kita akan mendapatkan FSIGNAL =C/T.

    Untuk penanda periode waktu konstan kita akan memanfaatkan rangkaian Divide by Ncounter yang sudah kita buat dimana rangkaian tersebut akan menghasilkan T=1ms.Sedangkan untuk menghitung jumlah C dari frekuensi masukan kita akan menggunakan BCD

    counter. Kemudian untuk menampilkan jumlah frekuensi yang terhitung dalam satuan KHzkita menggunakan rangkaian BCD- to - 7- segment yang juga sudah kita buat. Terakhir kitamemerlukan blok pengendali untuk mengatur jalannya rangkaian kita.

    Kita akan mengembangkan frekuensi counter yang berdasarkan pada diagram blok terlihat padagambar 1 . Blok yang ditebalkan merupakan rangkaian logika yang sudah praktikan desain atauyang akan diberikan.

    Semua bagian yang ditebalkan tersebut akan tersedia di sheet skematik FREQCNT.BDF. Walaupun logika ini sudah cukup lengkap, praktikan masih harus menambahkan flip - flopsinkronisasi ke bagian masukan eksternal, menambahkan rangkaian untuk menghasilkan pulsa

  • 8/6/2019 Desain Unit Kendali

    2/7

    pada transisi input dan membuat koneksi ke bagian pengendali. Praktikan akan mendesainpengendali dalam skematik yang terpisah (CONTROL.BDF) kemudian membuat simbolnyadan menambahkan symbol tersebut ke skematik FREQCNT.BDF.

    G ambar 2-1 Blok Diagram Penghitung Frekuensi

    Satu masalah baru yang kita hadapi sekarang adalah sinyal yang akan kita hitung tidak akandisinkronisasi dengan sinyal clock FPGA kita sehingga ada kemungkinan nilai counter berubahsetiap waktu dan berpotensi untuk membuat hasil yang salah. Lihatlah kembali masukan St ar t pada gambar 1 yang akan digunakan sebagai sinyal pada state logika berikutnya untuk 2 state

    flip- flop. Jika hal tersebut berubah pada waktu yang salah, ada kemungkinan akan terbaca 1pada salah satu flip flop dan 0 pada lainnya (karena delay yang berbeda) sehingga membuatstate machine kita masuk ke state yang salah. Oleh karena itu sebelum menggunakan s t ar t kitaharus mensinkronkan dahulu (menghasilkan START_S) sehingga sinyal ke state logikaberikutnya hanya akan berubah pada waktu yang diketahui (tepat setelah clock edge ).

    Untuk menghitung transisi sinyal pada masukan frekuensi counter praktikan perlumembangkitkan sebuah pulsa setiap ada transisi sinyal eksternal dari 0 ke 1. Pulsa ini kemudiandi- AND dengan sinyal dari unit kendali COUNT_ENABLE untuk meng - enable BCD counteryang mengakibatkan perhitungan BCD - Counter bertambah 1 setiap transisi 0 1 dari sinyal

  • 8/6/2019 Desain Unit Kendali

    3/7

    eksternal yang ingin diukur. Pendeteksian transisi 0 1 ini bisa dilakukan dengan state machinesederhana(hanya memerlukan 2 state) dan sebuah input serta sebuah output.

    Karena penjelasan tentang sinyal asinkron diluar cakupan praktikum ini, maka praktikan hanyaakan mengimplementasikan skema sinkronisasi yang umum digunakan. Setiap praktikan

    mendesain logika sinkron yang memiliki sinyal asinkron sebagai input, praktikan perlumemastikan bahwa mereka tersinkronisasi dengan clock utama.

    Synchronizer dibangun menggunakan rantai flip - flop yang mendapatkan clock dari clock sinkronseperti yang terlihat pada gambar 3 . Dalam proyek ini kita akan menggunakan hanya1Flip- Flop saja seperti pada gambar 3 .

    Untuk frekuensi counter kita perlu mensinkronkan kedua sinyal input( yang kita hitung frekuensinya) dan input dari PB1(Start) yang kita gunakan sebagai input kendali untuk statemachine kita. Perhatikan bahwa walaupun pada gambar 3 flip - flop digambarkan tanpaset/clear inputs, praktikan akan memerlukan input set/clear utnuk memastikan kondisi awalflip- flop sama seperti yang dispesifikasikan dalam proyek ini.

    G ambar 2-2 Contoh rangkaian Shynchronizer

    Satu hal lagi yang kita butuhkan adalah menambahkan kemampuan reset sinkron kedivide- by - N counter yang praktikan desain pada percobaan 4. Ini merupakan perubahan yang sederhana, kita hanya butuh menambahkan OR gate dengan inputnya adalah eksternal resetinput dan reset logic seperti yang terlihat pada gambar 4 .

    G ambar 2-3 Penambahan kemampuan reset sinkron pada rangkaian divide by N(N=27000)

  • 8/6/2019 Desain Unit Kendali

    4/7

    3 MetodologiSecara umum alur perancangan rangkaian digital dengan menggunakan FPGA dari ALTERAdapat digambarkan seperti flowchart pada gambar dibawah ini:

    G ambar 3-1 Flowchart umum proses perancangan digital G ambar 3-2 Diagram ASM yang diberikan

    G ambar 3-3 Rangkaian Percobaan 5A CONTROL dalam Skematik

  • 8/6/2019 Desain Unit Kendali

    5/7

    G ambar 3-4 Rangkaian Percobaan 5B FREQCNT dalam Skematik

    4 Hasil dan Analisis

    Data hasil percobaan didapatkan sebagai berikut :

    G ambar 4-1. Hasil Simulasi Fungsional Rangkaian Percobaan 5A CONTROL

    Clock Time = 10.0 ns

    Dari data diatas dapat disimpulkan hasil output rangkaian sesuai dengan desain AlgoritmicState Machine yang diberikan. Yaitu, pada saat RESET = 1, COUNT_CLEAR dan

    TIMER_RESET bernilai 1, serta berada pada state IDLE (bernilai 1). Begitu START_S = 1pada rising clock edge berikutnya, state berpindah ke COUNT (=1) yang kodisinyaCOUNT_ENABLE = 1. Pada saat TIME_UP = 1, state ini berpindah ke WAIT (=1) yang kondisinya DATA_STORE = 1. Sampai ketika TIME_UP = 0 kembali lagi ke state IDLE.Hal ini menunjukkan Blok Unit Kendali yang sesuai dengan yang diharapkan.

    G ambar 4-2. Hasil Simulasi Fungsional Rangkaian Percobaan 5B FREQCNT

    Dari data diatas hasil simulasi dari rangkaian FREQCNT telah sesuai dengan rangkaianskematik yang diberikan. Sinyal PB1 sebagai sinyal untuk menginisialisasi suatu frequency

  • 8/6/2019 Desain Unit Kendali

    6/7

    capure. Sinyal PB4 sebagai master reset signal, ketika aktif maka kontroler dalam keadaanIDLE dan reset/CLR semua flip-flop penyikronisasi ke 0.

    Tabel 4-5. Hasil Pengimplementasian pada FP G A

    Input(KHz)

    InputButton

    Output(7Segmen)

    DISPLAY

    21,028 1 21

    41,354 1 41

    62,058 1 62

    1 Button ditekanDari data diatas hasil pengimplementasian Frequency Capture sesuai dengan yang diharapkan.

    Tidak terjadi kesalahan pada pembaca frekuensi ini, sangat akurat. Namun, pada pembacafrekuensi lainnya ditemukan kesalahan pembacaan, yang semakin besar frekuensi inputpembacaan semakin menjauh (tidak akurat). Hal ini disebabkan karena penggunaan rangkaianDivide by N yang berbeda pada FPGA yang berbeda. Dalam hal ini, kami tepat denganmenggunakan divide by N dengan N = 27000 pada FPGA Board DE1. Juga ditemukankesalahan (hasil pembacaan tidak tertampil) apabila input dari generator sinyal tidak menggunakan offset sebesar 3,3 Vpp.

  • 8/6/2019 Desain Unit Kendali

    7/7

    5 Kesimpulan

    Peracangan rangakaian pengendali dapat dilakukan pada software Quartus II denganmemberikan rangkaian skematiknya. Hasil perancangan pengendali dapat disimulasikansehingga dapat diketahui kebenaran hasil keluarannya apakah telah sesuai dengan ASM yang

    diinginkan. Rangkaian pengendali dapat diintegrasikan dan diimplementasikan denganmenggunakan FPGA sehingga rangkaian utuh tersebut (dalam praktikum ini rangkaianpembaca frekuensi) dapat dilakukan pengujian.

    6 Daftar Pustaka

    [ 1] Frank Vahid, Digital Design, Hal. 165-170, John Wiley & Sons Inc., California, 2007

    [ 2] Z. Vranesic, Fundamentals of Digital Logic, Hal. 271-278, McGraw-Hill, New York,2005