P. 1
laporan vhdl sirenk

laporan vhdl sirenk

4.0

|Views: 941|Likes:
Published by anggar_55

More info:

Published by: anggar_55 on Oct 23, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

06/04/2013

pdf

text

original

LAPORAN PRAKTIKUM

”COUNTER MENGGUNAKAN PROGRAM VHDL”
Dosen : Hadiwiyatno, S.T. M.T.

Disusun oleh : Anggarica Mudji Pratama (1A/01/0731130028)

PROGRAM STUDI TEKNIK TELEKOMUNIKASI JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI MALANG 2008

KATA PENGANTAR
Puji syukur kehadirat Allah SWT yang telah melimpah kan rahmat, taufiq, dan karunia-Nya, sehingga kami dapat menyelesaikan tugas VHDL baik secara praktikum maupun tertulis (dalam bentuk laporan / makalah). Makalah ini kami beri judul “Counter Sinkron dengan Flip-Flop Menggunakan Program VHDL”. Tugas ini bertujuan selain sebagai memenuhi tugas semester II, juga untuk mengasah kemampuan dan kreatifitas kami dalam mengembangkan apa yang telah kami pelajari selama ini. Kami ucapkan terimakasih kepada Bapak Hadiwiyatno, S.T selaku dosen pembimbing dan rekan-rekan yang telah berpartisipasi menyumbangkan ide-ide dalam tugas ini. Kami masih sangat menyadari bahwa tugas yang kami susun baik secara praktikum maupun tertulis masih jauh dari sempurna. Kritik dan saran yang bersifat membangun sangat kami perlukan demi kesempurnaan apa yang kami susun. Semoga apa yang kami susun dapat bermanfaat bagi kita semua. Terima kasih.

Penulis

Malang, Juli 2008

A. TUJUAN
1. Dapat mengaplikasikan program VHDL Galaxy 2. Mengetahui dan memahami arti dari bentuk gelombang VHDL Simulation 3. Mengetahui cara kerja counter sinkron dengan flip-flop

B. LANDASAN TEORI
1. Pengertian Dasar VHDL VHDL merupakan suatu bahasa pemrograman tingkat tinggi yang di gunakan untuk memprogram suatu IC digital PLD (Programmable Logic Device). Dimana terdiri atas sejumlah gerbang-gerbang yang dapat diprogram dengan cara memutuskan fuse yang terdapat pada IC tersebut. Seperti bahasa pemrograman yang lain. VHDL memiliki aturan-aturan tersendiri seperti sistematika pemrograman sampai dengan syntax yang digunakan. Teknologi VHDL ini terbagi berdasarkan jumlah gate yang ada, yaitu : a. < 500 gerbang Programmable Logic Device) b. 500 sampai 5000 gerbang Logic Device) c. 5000 sampai 10.000 gerbang Gate Array) d. 10.000 sampai > 20.000 gerbang Intregrated Circuit) Sebagai bahasa pemrograman dalam praktikum ini digunakan software WARP 5.2 dari Cypress yang akan menghasilkan file dengan extention *.jed yang nantinya akan digunakan dalam pemrograman IC PLD dengan menggunakan ALL-07 2. Pemrograman Dengan Warp5.2 Pemrograman dengan menggunakan WARP5.2 harus memenuhi kaidah pemrograman yang telah ditetapkan oleh vendor yang ASIC (Aplication Specific FPGA (Fast Programmable CPLD (Complex Programmable SPLD (Simple

bersangkutan, tetapi pada umumnya mengacu pada standart internasional IEEE. Walaupun berbeda vendor namun bahasa pemrograman relatif sama. Berikut ini gambaran umum mengenai teknik pemrograman VHDL. Dalam pembuatan desain VHDL, bergantung pada alat bantu (tools) yang digunakan, anatar perusahaan satu dengan yang lain berbeda-beda, ada alat bantu yang dapat menghasilkan kode VHDL dari skema rangkaian ada juga yang tidak. Tetapi pada dasarnya, kode VHDL merupakan kode berbasis teks, yang bisa dibuat dengan menggunakan berbagai macam program kata ( word processor ) seperti notepad, edit, ws, dan ms word. Azas bangunan dari desain entity VHDL terdiri dari 2 unsur, yaitu : a. Entity declaration b. Architecture body Desain entity merupakan abstraksi dari suatu desain yang menggambarkan suatu sistem secara lengkap.
E N T IT Y
E n tity d e c la ra tio n (e x te r n a l v ie w ) In te r fa c e D e c la ra tio n

A r c h it e c tu r e b o d y ( in te r n a l v ie w ) F u n c tio n a l D e fin itio n

Gambar 1. Hubungan Antar Desain Entity dan Architecture Body 3. Entity Declaration Entity declaration menggambarkan I/O dari desain entity. Entity declaration analog dengan skematik simbol yang menjelaskan hubungan komponen dalam suatu desain. Signal I/O di Entity declaration didefinisikan sebagai port yang analog dengan pin dari skematik simbol. Struktur penulisan entity declaration harus mengandung unsur name dan port declaration, sedangkan port declaration menjelaskan nama-nama pin I/O rangkaian digital dari suatu desain. Direction (mode) menjelaskan

kondisi I/O dan data type menjelaskan tipe data yang digunakan ( sesuai dengan standar IEEE 1076/1164). Ada 4 macam direction (mode), yaitu ; a. IN merupakan Unidirection data input (Aliran data berasal dari luar entity masuk kedalam entity). b. OUT merupakan Unidirection data output (Aliran data berasal dari dalam entity keluar entity ). c. BUFFER merupakan data outptu dengan internal feedback. ( Digunakan sebagai port dan driver dengan architecture, serupa dengan mode OUT tetapi juga berfungsi sebagai internal feedback bukan Bidirection port ). d. INOUT merupakan Bidirection signal. ( Signal driver dapat berasal dari dalam atau luar entity, menggunakan mode INOUT ini untuk signal yang benar-benar Bidirectional, kalau tidak akan mengurangi kemampuan membaca kode sehingga sulit menentukan sumber signal ). Ada 2 macam Data type yang digunakan berdasarkan standar IEEE, yaitu : a. Berdasarkan standar IEEE 1076/93, yaitu : Boolean, Bit, Bit_vector dan Integer. b. Berdasarkan standar IEEE 1164, yaitu Std Ulogic, std Logic dan std_Logic Vector. Structure penulisan Entity Declaration Entity entity_name is Port ( [signal]{identifier{,identifier}:[mode] signal_type [signal]{identifier{,identifier}:[mode] signal_type}); End [Entity][Entity_name]; Contoh : Entity adder is port ( a,b cin : in std_logic_vector(3 downto 0); : in std_logic;

sum cout end adder; 4. Architecture Body Architecture Body dalam

: out std_logic_vector(3 downto 0); : out std_logic);

sebuah

entity

berfungsi

untuk

mendeskripsikan apa yang akan dilakukan atau proses apa yang akan sikerjakan oleh perangkat keras yang didesain. Architecture Body berhubungan erat dengan Entity declaration didalam desain entity VHDL. Architecture body menggambarkan fungsi dari entity yang sekaligus menjelaskan fungsi dari entity . Jika entity declaration ditampilkan sebagai kotak hitam yang mana input dan output itu diketahui sedangkan apa yang ada didalam kotak itu tidak diketahui, maka architecture body itu adalah isi dari kotak hitam tersebut. Sedangkan didalam architecture body ada beberapa jenis, anata lain : a. Structural description b. Data flow description c. Behavioral description Penjelasan dari masing-masing architecture body, yaitu : a. Structural description Perencanaan didasarkan pada pemakaian komponen (logical gate) pada library dan hubungan antar componen-componen tersebut (a set of interconected component). b. Data flow description Perencanaan berdasarkan pada proses data transfer ( dari signal atau dari input ke output tanpa statement sequential ) yang merupakan sekumpulan dari concurent assignment statement. Perbedaan utama antara data flow dengan behavioral adalah yang satu menggunakan proses yang lain tidak. Penulisan persamaan pada data flow lebih ringkas dan mudah yaitu menggunakan conditional signal assignment (when-else) statement. Data flow menggunakan concurent assignment lebih disukai dari pada proses dan sequential statement.

c. Behavioral description Perencanaan didasarkan pada proses pengerjaan statement antar input dan output secara sequential/berurutan/step by step dengan menggunakan statement sequential (a set of sequential statement). Keuntungan dari behavioral description yang merupakan high level description adalah kita tidak perlu memfokuskan pada gate level pada desain implementasi tetapi kita fokuskan pada usaha mengakuratkan model fungsi. Proses statement dimulai dengan sebuah label yang diikuti dengan tanda ‘:’ kemudian kata ‘proses’ dan sensitivity list dan dibawahnya diikuti dengan sequential statement, setelah bagian sequential statement selesai diakhiri dengan ‘end process’ dan label process. Yang termasuk sequential statement, antara lain : 1) Process statement 2) If-then-else statement 3) Case-when statement 4) For-loop statement 5) While-loop statement Struktur penulisan Architecture Body Architecture architecture_name of entity_name is Type_declaration |signal_declaration |constan_declaration |alias_declaration |subprogram_declaration begin {process_statement |concurent_signal_asignment_statement |component_instantion_statement |generate_statement} End [architecture][architecture_name];

5. Declaration Component Library adalah suatu tempat directory yang dipanggil pada saat kita mengkompile yang format desain unit kita mungkin sebuah vendor specific format. Kita biasanya menggunakan 2 library dalam desain kita yaitu : IEEE library Work library IEEE Library tempat menyimpan desain unit IEEE standar seperti package std_1164 dan numeric_std. Dalam perintahnya kita menggunakan library clause : library IEEE; Work library tempat menyimpan desain unit yang kita rancang, setelah kita merancang desain unit dan desain tersebut ingin di gunakan kembali maka kita dapat menempatkannya dalam library work, untuk keperluan desain yang lebih besar lagi. Packages adalah desain unit yang dapat digunakan untuk membuat type, component, function dan declarasi lain untuk desaim unit lain. Sebuah package terdiri dari sebuah package declaration dan option package body. Penulisannya adalah : Use library_name. Package_name.item; Package declaration digunakan untuk mendeklarasikan item-item seperti : Signal, type dan component. Signal menyatakan wire-wire yang menghubungkan antar komponen, type mendefinisikan state pada state machine dan component digunakan untuk memanggil library component. Entity declaration, Architecture body dan package declaration semuanya desain unit yang digabung dalam satu file. Karena Entity declaration dan package declaration merupakan desain unit utama maka dipisah dalam library dan use.

C. PROSEDUR PERCOBAAN
1. GALAXY a. Membuat directori baru, misalnya d:\coba b. Jalankan Galaxy dari Start Menu > Program > Warp5.2 c. Tekan Ctrl-N atau klik pada menu File dan Pilih New d. Pilih Project [Target-Device] Catatan : Text File – Membuat file text baru Project [Target - Library] – Membuat project baru untuk menghasilkan modul library e. Didalam kotak Project Path, ketikkan lokasi project akan ditempatkan. f. Didalam kotak Project Name, ketikkan nama file project yang akan dibuat g. Pastikan VHDL yang dipilih dan bukan Verilog, kemudian klik kiri pada button Next. h. Klik-kiri pada button Next (window Add Files to Project) Catatan: Kita sudah mempunyai pembuatan file VHDL untuk project. i. Didalam window Select Target Device, klik-kiri pada device yang kita pilih ditambah dengan mengakses pada sisi kiri bagian SPLD. j. Pilihlah c22v10 dan kemudian pilih pilihan paket yang diinginkan atau gunakan pilihan default. k. Klik pada butto Finish l. Klik pada button OK untuk menyimpan project baru. 2. ACTIVE – VHDL SIMULATION a. Klik pada icon Add Signals b. Klik pada sinyal yang ingin di simulasikan c. Klik pada button Add (Bisa juga dengan mendouble-klik sinyalnya) d. Ulangi langkah 3 dan 4 untuk semua sinyal yang ingin di simulasikan (Atau klik-kiri pada sinyal pertama yang ingin di tambahkan, kemudian Shift+klik-kiri pada sinyal berikutnya. Ini juga menambahkan sinyal yang ada diantaranya) e. Klik pada button Cancel untuk menutup window Add Signals

f. Klik dan geser sinyal sesuai dengan susunan yang diinginkan. g. Klik pada menu Waveform dan pilih Colorize Waveforms, sehingga dihasilkan seperti contoh dibawah ini. h. Klik pada menu Simulation dan pilih Initialize Simulation i. Menempatkan Stimulus : 1) Klik pada sinyal yang mempunyai sifat sebagai clock. 2) Klik pada icon Stimulators Stimulator. 3) Klik panah kebawah pada window Stimulator type 4) Pilihlah pilihan Clock 5) Klik pada kotak 100 ns dan gantilah dengan delay clock yang yang anda inginkan. 6) Klik pada button Apply 7) Klik pada sinyal yang bersifat bukan sinyal clock pada window Waveform 8) Klik pada panah kebawah pada window Stimulator type . 9) Klik pada option Hotkey 10) Kliklah pada kotak Press new hotkey: 11) Tekan sembarang tombol yang anda inginkan pada keyboard (Beberapa tombol akan tidak bekerja) 12) Klik pada tombol Apply 13) Ulangi langkah 7 sampai lagkah 12 untuk sinyal yang lainnya. 14) Klik pada tombol close 15) Klik panah kebawah pada kotak Time to run sampai dicapai waktu simulasi yang anda inginkan per stepnya, misalnya 40ns untuk mengeluarkan window

16) Dan sekarang kita siap untuk melakukan simulasi.

Gambar berikut memperlihatkan contoh apa yang kita inginkan dari akhir langkah yang kita jalankan.

Berikut ini merupakan contoh langkah simulasi untuk menghasilkan gambar diatas gambar diatas : a. Klik pada salah satu sinyal b. Klik sekali pada icon Run For c. Balikkan sinyal quarter ke '1' dengan menekan sekali hotkey yang bersangkutan d. Klik sekali pada icon Run For e. Balikkan kembali sinyal quarter ke ‘0’ dan nickel ke ‘1’ Catatan : Jika anda tidak membalikkan sinyal quarter ke ‘0’, mesin akan mendeteksi anda menjalankan 2 quarter. f. Klik sekali pada icon Run For g. Balikkan kembali sinyal nickel ke ‘0’. h. Klik sekali pada icon Run For i. Balikkan sinyal quarter Sinyal givedrink akan turun ke ‘0’

j. Klik sekali pada icon Run For k. Balikkan sinyal quarter dan dime l. Klik sekali pada icon Run For dan returnnickel akan menjadi ‘1’ m. Balikkan sinyal dime n. Klik sekali pada icon Run For o. Balikkan sinyal quarter p. Klik dua kali pada icon Run For q. Balikkan sinyal quarter r. Klik empat kali pada icon Run For Sinyal givedrink akan high untuk 1 siklus clock dan sinyal dime akan high untuk 2 siklus clock menjual ‘coke’ dan mengembalikan 20 sen. s. Klik pada icon Whole Page dalam satu halaman untuk mendapatkan bentuk sinyal Sekarang kedua sinyal givedrink

HASIL PERCOBAAN library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity bakso is port( clk,clr Q ); end bakso ; architecture cilok of bakso is signal cilok : std_logic_vector(3 downto 0); begin process(clk,clr) begin if clr='1' then count<="0000"; elsif clk'event and clk='1' then count<=cilok+2; case cilok is when "0000" => Q<="1011"; when "0010" => Q<="1100"; when "0100" => Q<="1101"; : in std_logic; : out std_logic_vector(3 downto 0)

when "0110" => Q<="0011"; when "1000" => Q<="0010"; when "1010" => Q<="0001"; when "1100" => Q<="1111"; when "1110" => Q<="1110"; when "0001" => Q<="0100"; when "0011" => Q<="0101"; when "0101" => Q<="1010"; when "0111" => Q<="0000"; when "1001" => Q<="1001"; when "1011" => Q<="0110"; when "1101" => Q<="0111"; when "1111" => Q<="1000"; when others =>

Q<="1011"; end case; end if; end process; end cilok;
HASIL SIMULASI

KESIMPULAN
VHDL merupakan suatu bahasa pemrograman tingkat tinggi yang di gunakan untuk memprogram suatu IC digital PLD (Programmable Logic Device). Dimana terdiri atas sejumlah gerbang-gerbang yang dapat diprogram dengan cara memutuskan fuse yang terdapat pada IC tersebut. Seperti bahasa pemrograman yang lain.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->