LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic...

12
LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL MENGGUNAKAN ALL-11 UNIVERSAL PROGRAMMER TUJUAN 1. Mempelajari elemen-elemen dasar VHDL yang diimplementasikan dalam Warp. 2. Membuat aplikasi sederhana menggunakan VHDL dan simulasinya. 3. Mampu memprogam IC PLD menggunakan All-11 Universal Programmer. 4. Mampu membuat aplikasi-aplikasi yang lain dengan menggunakan IC GAL22V10D. PENDAHULUAN Pengenalan VHDL Berikut ini akan dijelaskan elemen dasar yang dari VHDL yang meliputi : identifier, data object, data types, entity, architecture dan package. 1. Identifier Identifier dalam VHDL terdiri dari satu atau lebih karakter yang berupa karakter huruf, angka atau garis bawah dengan aturan berikut : Karakter yang diperbolehkan adalah huruf besar(A..Z), huruf kecil(a..z), huruf(0…9) dan garis bawah(_). Karakter pertama harus berupa huruf. Karakter terakhir tidak diperbolehkan berupa garis bawah(_), penggunaan 2 karakter garis bawah(_) juga tidak diperbolehkan. Penggunaan huruf besar dan huruf kecil dianggap sama (tidak case sensitive). Komentar dalam VHDL dimulai dengan karakter --. 2. Data Objects Dalam VHDL dikenal 3 obyek data yaitu : Konstanta, Variable dan Signal Konstanta Obyek konstanta dapat menyimpan sebuah nilai yang didefiniskan saat deklarasi konstanta. Nilai yang sudah didefinisikan tersebut tidak dapat diubah selama proses desain. Deklarasi : constant identifier[,identifier..]:type[:value]; Contoh : constant bus_width: integer := 8; Variable Obyek variabel dapat menyimpan sebuah nilai yang diberikan saat desain, dan nilai tersebut dapat dirubah kapanpun saat desain. Deklarasi : variable identifier[,identifier..]:type[:value]; Contoh : variable ctrl_bits: std_logic; Signal Obyek Signal bisa disamakan dengan variable, perbedaannya adalah bahwa signal dapat menyimpan ataupun melepaskan nilai logika, sedangkan variable tidak dapat, oleh karena itu, signal dapat diwujudkan dalam elemen memori.

Transcript of LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic...

Page 1: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

LAB #3

PENGENALAN VHDL DAN PEMROGRAMAN IC

GAL MENGGUNAKAN ALL-11 UNIVERSAL

PROGRAMMER

TUJUAN

1. Mempelajari elemen-elemen dasar VHDL yang diimplementasikan dalam Warp.

2. Membuat aplikasi sederhana menggunakan VHDL dan simulasinya.

3. Mampu memprogam IC PLD menggunakan All-11 Universal Programmer.

4. Mampu membuat aplikasi-aplikasi yang lain dengan menggunakan IC

GAL22V10D.

PENDAHULUAN

Pengenalan VHDL

Berikut ini akan dijelaskan elemen dasar yang dari VHDL yang meliputi : identifier, data

object, data types, entity, architecture dan package.

1. Identifier

Identifier dalam VHDL terdiri dari satu atau lebih karakter yang berupa karakter

huruf, angka atau garis bawah dengan aturan berikut :

Karakter yang diperbolehkan adalah huruf besar(A..Z), huruf kecil(a..z),

huruf(0…9) dan garis bawah(_).

Karakter pertama harus berupa huruf.

Karakter terakhir tidak diperbolehkan berupa garis bawah(_), penggunaan 2

karakter garis bawah(_) juga tidak diperbolehkan.

Penggunaan huruf besar dan huruf kecil dianggap sama (tidak case

sensitive).

Komentar dalam VHDL dimulai dengan karakter --.

2. Data Objects

Dalam VHDL dikenal 3 obyek data yaitu : Konstanta, Variable dan Signal

Konstanta

Obyek konstanta dapat menyimpan sebuah nilai yang didefiniskan saat

deklarasi konstanta. Nilai yang sudah didefinisikan tersebut tidak dapat

diubah selama proses desain.

Deklarasi : constant identifier[,identifier..]:type[:value];

Contoh : constant bus_width: integer := 8;

Variable

Obyek variabel dapat menyimpan sebuah nilai yang diberikan saat

desain, dan nilai tersebut dapat dirubah kapanpun saat desain.

Deklarasi : variable identifier[,identifier..]:type[:value];

Contoh : variable ctrl_bits: std_logic;

Signal

Obyek Signal bisa disamakan dengan variable, perbedaannya adalah

bahwa signal dapat menyimpan ataupun melepaskan nilai logika, sedangkan

variable tidak dapat, oleh karena itu, signal dapat diwujudkan dalam elemen

memori.

Page 2: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

Deklarasi : signal identifier[,identifier..]:type[:value];

Contoh : signal con: std_logic;

3. Data Types

Pada warp, sudah didefinisikan beberapa tipe data yang sering dipakai, yaitu :

integer, boolean, bit, character, string, bit_vector, std_logic dan

std_logic_vector.

4. Entity

VHDL tersusun oleh pasangan entity dan architecture-nya, entity mendefinisikan

desain I/O atau interface-nya, sedangkan architecture menyatakan kandungan

atau kelakuan dari desain. Pasangan entity dan architecture dapat digunakan

sebagai desain yang lengkap atau dapat digunakan juga sebagai komponen.

Kode program dari deklarasai entity adalah :

Nama entity yang sudah dibuat akan dijadikan referensi untuk architecture-nya.

Entity mendeklarasikan port, port adalah obyek dari kelas signal yang

didefinisikan pada entity. Masing-masing port memiliki nama port, mode dan

type. Tipe yang dipakai pada port adalah in (default), out, in-out dan buffer.

5. Architecture

Architecture pada suatu desain menggambarkan tentang kelakuan/proses serta

struktur dari entity.

Kode program dari deklarasi architecture adalah:

6. Package

Sebuah package dapat mendeklarasikan komponen berupa pasangan entity dan

architecture, type, konstanta atau fungsi agar item-item tersebut dapat digunakan

pada desain yang lain. Package sering kali dituliskan sebelum entity dan

architecture. Agar sebuah desain dapat menggunakan package yang sudah dibuat,

maka pada desain tersebut harus memanggil package yang akan dipakai dengan

menggunakan klausa USE.

ARCHITECTURE architecture-name OF entity-name IS

[type-declarations]

[signal-declarations]

[constant-declarations]

BEGIN

[architecture definition]

END architecture-name;

ENTITY entity-name IS PORT

[signal][sig-name,..]:[direction] type;

[;signal[sig-name,..]:[direction] type]

.

.

);

END entity-name;

Page 3: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

7. Generic Array Logic (GAL)

GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

oleh banyak vendor IC (contoh : Cypress, Latice dan Texas Instrument).

Semua ekspresi digital dapat direpresentasikan dengan mengunakan sum of

product(SOP), oleh karena itu, dengan menggunakan array AND/OR yang dapat

diprogram, akan diperoleh banyak aplikasi rangkaian digital yang diinginkan.

GAL berisi array AND/OR (gambar Fig. III-1), pada array AND, semua input

dan komplemennya dihubungkan dengan gate AND, output dari array AND

(product) dihubungkan dengan gate OR (sum).

Fig. III-1. Struktur GAL/PAL

Pada GAL, array input AND dapat diputus atau dihubungkan kembali dengan

jalan memprogramnya. Sebagai contoh, jika diinginkan persamaan logika

FEDCA .... maka hubungan array input AND pada GAL dapat ditunjukkan

seperti gambar Fig. III-2.

Fig. III-2. Memprogram Input AND

Pada IC PLD terdahulu, hubungan array input AND terbuat dari fuse yang akan

putus jika dialiri tegangan yang tinggi. Dengan fuse ini, maka array input AND

tidak dapat diprogram kembali. Generasi IC PLD sekarang menggunakan

EEPROM, sehingga array input AND dapat diprogram kembali.

Page 4: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

Untuk memprogram sebuah IC PLD, bisa dilakukan dengan menuliskan

programnya dengan menggunakan VHDL dan memasukkan hasil kompilasinya

ke dalam IC dengan menggunakan Programmer. Salah satu IC Programmer yang

sering dipakai adalah All-11 Universal Programmer yang memiliki kemampuan

untuk memprogram IC PLD, MCU, EPROM, EEPROM dan lain-lain.

KEBUTUHAN

1. Koper lengkap HBE-LogicCircuit-Digital

2. IC GAL22V10D

3. Kabel tembaga

4. IC Programmer ALL-11

5. PC dengan program WARPR 6.3 Galaxy dan Active-HDL Simulator

TUGAS PENDAHULUAN

1. Baca dan pahami Technical Guide terlebih dahulu!

2. Pelajari semua datasheet dari semua IC yang digunakan pada percobaan ini!

3. Apa yang dimaksud dengan VHDL? Apa bedanya dengan Verilog?

4. Apakah perbedaan dari tipe data std_logic dengan std_logic_vector! Jelaskan!

5. Tulislah kode program dalam VHDL untuk membuat aplikasi sederhana OR 3

input, lengkap dengan library, entity dan architecture-nya!

6. Jelaskan prinsip kerja PAL/GAL! Cari datasheet IC GAL22V10D!

7. Gambarkan dan jelaskan fungsi kaki-kaki dari IC GAL22V10D!

EKSPERIMEN 1 : VHDL

[Percobaan 1] Membuat AND 2 Input menggunakan VHDL [Persiapan]

Alat I/O -

Modul -

Lain-lain PC dengan program WARPR 6.3 Galaxy

[Prosedur]

1. Bukalah Software Galaxy

2. Buat Project baru melalui menu File > New, kemudian pilih Project [Target -

Device], kemudian klik Ok

3. Pilih VHDL pada Project Type.

4. Masukkan nama Project-nya “and3in”

5. Masukkan Project Path pada direktori :”C:\Rangkaian Logika\VHDL\and3in”

6. Klik Next untuk menuju Add Files Wizard. Add Files Wizard digunakan untuk

menambahkan file VHDL kedalam Project. Abaikan saja dialog tersebut dan klik

Next untuk menuju ke Target Device Wizard.

7. Pilihlah device nya dengan cara memilih SPLD (Small PLDs) ->c22v10, pada

Package pilih PALC22V10D-25PC (gambar Fig. III-3)

8. Klik Finish untuk membuat project

9. Klik Yes untuk menyimpan project

10. Buatlah file baru melalui File -> New

Page 5: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

11. Pilih Text File, lalu klik Ok, kemudian akan muncul text editor seperti pada gambar

Fig. III-3

Fig. III-3. Memilih Device

Fig. III-4. Editor Yang Masih Kosong

12. Simpan file kosong tersebut melalui File -> Save, letakkan dalam satu alamat

dengan file project “and3in.pfg” dan beri nama file tersebut “and2in.vhd

13. Berikutnya adalah menuliskan entity, kita akan membuat entity untuk gerbang

AND dengan 2 input, entity mendeklarasikan nama, arah dan tipe data dari masing-

masing port yang akan digunakan. Tuliskan entity berikut ini:

entity and2in is port(

input: in std_logic_vector(1 downto 0);

output: out std_logic);

end and2in;

Page 6: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

14. Langkah berikutnya adalah menuliskan Architecture dari AND 2 input yang kita

buat. Architecture mendefinisikan kelakuan dari komponen yang dibuat, dan

letaknya selalu berada setelah entity, ketikkan architecture AND 2 input berikut:

15. Langkah berikutnya adalah menuliskan Package dari gerbang AND 2 input tadi,

tuliskan Package dengan nama and2in_pkg dengan kode program di bawah ini!

Letakkan sebelum entity!

16. Langkah berikutnya adalah menuliskan Library, ketikkan library sesuai dengan

kode program di bawah ini! Letakkan satu sebelum Package dan satu lagi sebelum

Entity!

[Percobaan 2] Membuat AND 3 Input menggunakan VHDL

[Persiapan]

Alat I/O -

Modul -

Lain-lain PC dengan program WARPR 6.3 Galaxy

architecture archand2in of and2in is

begin

and2in: process (input)

begin

if (input = "00") then

output <= '0';

elsif (input = "01") then

output <= '0';

elsif (input = "10") then

output <= '0';

elsif (input = "11") then

output <= '1';

end if;

end process;

end archand2in;

package and2in_pkg is

component and2in

port(input: in std_logic_vector(1 downto 0);

output: out std_logic);

end component;

end and2in_pkg;

library ieee;

use ieee.std_logic_1164.all;

Page 7: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

[Prosedur]

Fig. III-5. AND 3 Input Menggunakan AND 2 Input

1. Buat file text baru, dan beri nama “and3in.vhd” , letakkan dalam folder yang

sama dengan file Project “and3in.pfg”!

2. Tuliskan library, entity dan architecture-nya dengan kode program berikut ini :

3. Langkah selanjutnya adalah menambahkan file VHDL “and2in.vhd” dan

“and3in.vhd” ke dalam project. Tambahkan file tersebut melalui Project -> Add

Files… , apabila sudah selesai, klik Ok

4. Langkah selanjutnya adalah menjadikan file “and3in.vhd” sebagai Top Level.

Buatlah file “and3in” sebagai top level melalui klik kanan kemudian pilih Set

Top

5. Agar proses kompilasi berjalan sesuai dengan yang diinginkan, perlu dilakukan

setting pada compiler, Klik Project -> Compiler Options…, pada I/O , Unused

library ieee;

use ieee.std_logic_1164.all;

use work.and2in_pkg.all;

entity and3in is port (

a,b,c: in std_logic;

y: out std_logic);

attribute pin_numbers of and3in:entity is

" a:1 b:3 c:5 y:15 ";

end and3in;

architecture archand3in of and3in is

signal con : std_logic;

begin

and_1: and2in

port map (

input(0) => a,

input(1) => b,

output => con

);

and_2: and2in

port map (

input(0) => con,

input(1) => c,

output => y

);

end archand3in;

Page 8: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

Outputs: pilih “0”, dan pada Simulation , Timing Model, pilih “Active-

HDLSIM/Active-VHDL”

6. Kemudian Compile project tersebut melalui Compile -> Project. Maka akan

dihasilkan file baru dengan nama “and3in.jed”(file ini akan digunakan untuk

men-download program ke IC).

[Percobaan 3] Mensimulasikan dengan Active-HDL Sim

[Persiapan]

Alat I/O -

Modul -

Lain-lain PC dengan program WARPR 6.3 Galaxy dan Active-HDL

Simulator

[Prosedur]

1. Bukalah aplikasi Active-HDL Sim dari Tools -> Active-HDL Sim

2. Bukalah file and3in.vhd pada alamat “C:\Rangkaian Logika\VHDL\and3in\vhd”

melalui menu File -> Open VHDL

3. Kemudian akan muncul jendela seperti gambar di bawah ini:

Fig. III-6. Active-HDL Sim

4. Tambahkan sinyal yang akan disimulasikan dengan cara memilih Waveform -> Add

Signals…, tambahkan sinyal a, b, c dan y kedalam simulasi dengan cara double-

click

Page 9: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

Fig. III-7. Memilih Sinyal

5. Setelah selesai klik Add

6. Pada sinyal a, set Stimulator dengan cara Klik-kanan pilih Stimulators…, pada

Stimulator type: pilih Clock , panjang gelombangnya beri nilai 2000ns, kemudian

klik Apply , setelah selesai, klik Close

Fig. III-8. Stimulators

7. Dengan cara yang sama, set stimulators untuk sinyal b dengan tipe Clock dengan

panjang gelombang 1000ns

8. Dengan cara yang sama, set stimulators untuk sinyal c dengan tipe Clock dengan

panjang gelombang 500ns

9. Pada toolbar isian nilai 100ns, isikan nilai baru 4000ns

10. Pada toolbar, klik Run Until

11. Dengan mengatur gambar melalui Zoom in dan Zoom out maka anda akan

mendapatkan gambar simulasi berikut ini:

Fig. III-9. Hasil Simulasi

Page 10: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

Tabel III-1. Hasil Simulasi Active-HDL Sim AND 3 Input

Input Output

a b c y

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

EKSPERIMEN 2 : MEMPROGRAM IC GAL

[Percobaan 4] Pemrograman IC menggunakan Universal Programmer [Persiapan]

Alat I/O Slide Switch (SW1, SW2, SW3), LED (D1, D2)

Modul -

Lain-lain PC dengan IC Programmer ALL-11, Kabel (untuk

menghubungkan IC GAL dengan alat I/O

[Prosedur]

1. Matikan All-11 Universal Programmer

2. Letakkan IC GAL pada All-11 Universal Programmer

3. Nyalakan All-11 Universal Programmer

4. Bukalah file “access.exe”!

5. Pada pilihan Device, pilihlah produk buatan Lattice, lalu pilih GAL22V10 (no

UES)

Fig. III-10. Menu Device

Page 11: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

6. Setelah itu akan muncul jendela di bawah ini:

Fig. III-11. Jendela Download

7. Hapuslah isi IC GAL melalui pilihan Erase!

8. Pilih File, lalu pilih Load JEDEC file, cari alamat tempat kalian menyimpan file

“and3in.jed”!

9. Lakukan pemrograman dengan memilih menu Program

10. Matikan All-11 Universal Programmer

11. Ambil IC GAL dari All-11 Universal Programmer

12. Letakkan IC GAL yang sudah terprogram pada breadboard, rangkaikan dengan

benar, arahkan output (kaki 15) ke sebuah LED pada kaki anoda!

13. Lengkapilah tabel berikut ini, bandingkan dengan hasil simulasi pada tabel:

Tabel III-2. Hasil Simulasi AND 3 Input Dengan IC GAL

Input Output

a b c y

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

TUGAS MODUL

1. Buatlah aplikasi gerbang OR 5 input !

2. Perhatikan kode berikut ini :

Page 12: LAB #3 PENGENALAN VHDL DAN PEMROGRAMAN IC GAL …digital.b401telematics.com/LAB 3.pdf · 7. Generic Array Logic (GAL) GAL merupakan IC tipe PLD yang paling banyak digunakan, GAL diproduksi

Jelaskan maksud dari kode: “input: in std_logic_vector(1 down to 0)”!

Jelaskan perbedaannya dengan kode : “output: out std_logic”!

3. Terangkan perbedaan prinsip kerja dari PAL/GAL dibandingkan dengan FPGA!

4. Buatlah kode program aplikasi Demultiplexer 2 to 4 dengan menggunakan

VHDL, buat menjadi sebuah package !

5. Buatlah sebuah program aplikasi Demultiplexer 4 to 16 dengan memanfaatkan

package pada nomor 4! Simulasikan! Sertakan print-out hasil simulasi ke dalam

laporan!

entity and2in is port(

input: in std_logic_vector(1 downto 0);

output: out std_logic);

end and2in;