laporan vhdl sirenk

22
LAPORAN PRAKTIKUM COUNTER MENGGUNAKAN PROGRAM VHDLDosen : Hadiwiyatno, S.T. M.T. Disusun oleh : Anggarica Mudji Pratama (1A/01/0731130028)

Transcript of laporan vhdl sirenk

Page 1: laporan vhdl sirenk

LAPORAN PRAKTIKUM

”COUNTER MENGGUNAKAN PROGRAM VHDL”

Dosen : Hadiwiyatno, S.T. M.T.

Disusun oleh :

Anggarica Mudji Pratama (1A/01/0731130028)

PROGRAM STUDI TEKNIK TELEKOMUNIKASIJURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI MALANG2008

Page 2: laporan vhdl sirenk

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

Page 3: laporan vhdl sirenk

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 SPLD (Simple Programmable

Logic Device)

b. 500 sampai 5000 gerbang CPLD (Complex Programmable

Logic Device)

c. 5000 sampai 10.000 gerbang FPGA (Fast Programmable

Gate Array)

d. 10.000 sampai > 20.000 gerbang ASIC (Aplication Specific

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

Page 4: laporan vhdl sirenk

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.

In terface Declaration

Functional Defin ition

Entity declaration (external view )

Architecture body (internal view )

ENTITY

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

Page 5: laporan vhdl sirenk

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 : in std_logic_vector(3 downto 0);

cin : in std_logic;

Page 6: laporan vhdl sirenk

sum : out std_logic_vector(3 downto 0);

cout : out std_logic);

end adder;

4. Architecture Body

Architecture Body dalam 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.

Page 7: laporan vhdl sirenk

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

Page 8: laporan vhdl sirenk

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.

Page 9: laporan vhdl sirenk

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

Page 10: laporan vhdl sirenk

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 untuk mengeluarkan window

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

16) Dan sekarang kita siap untuk melakukan simulasi.

Page 11: laporan vhdl sirenk

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   Sinyal givedrink akan turun ke ‘0’

i. Balikkan sinyal quarter

Page 12: laporan vhdl sirenk

j. Klik sekali pada icon Run For  

k. Balikkan sinyal quarter dan dime

l. Klik sekali pada icon Run For   Sekarang kedua sinyal givedrink 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 untuk mendapatkan bentuk sinyal

dalam satu halaman

Page 13: laporan vhdl sirenk

HASIL PERCOBAAN

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity bakso is

port( clk,clr : in std_logic;

Q : out std_logic_vector(3 downto 0)

);

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";

Page 14: laporan vhdl sirenk

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 =>

Page 15: laporan vhdl sirenk

Q<="1011";

end case;

end if;

end process;

end cilok;

HASIL SIMULASI

Page 16: laporan vhdl sirenk

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.