Short Course Vhdl

Published on July 2016 | Categories: Documents | Downloads: 43 | Comments: 0 | Views: 358
of 17
Download PDF   Embed   Report

Comments

Content

MATERI PELATIHAN

VHDL UNTUK SINTESIS

LABORATORIUM ELEKTRONIKA DASAR
JURUSAN TEKNIK ELEKTRO
INSTITUT TEKNOLOGI SEPULUH NOPEMBER (ITS)
SURABAYA

Kuliah Singkat VHDL untuk Sintesis

Materi Pelatihan VHDL
1. Review Sistem Digital
2. HDL Design Flow
3. Proses Perancangan
4. Entity dan architecture
5. Macam-macam deskripsi architecture
6. Process Statement
7. Library
8. Package
9. Hirarki
10. Studi Kasus
A. PENDAHULUAN
VHDL : VHSIC Hardware Description Language
dimana VHSIC: Very High Speed Integrated Circuit.
VHDL adalah salah satu jenis bahasa HDL tingkat tinggi yang digunakan untuk:
1. Design Entry (synthesis) untuk FPD dan ASIC.
Menjelaskan (menerangkan) struktur dan perilaku (behaviour) dari rancangan
elektronika digital yang dibuat. Rancangan yang dibuat ini nantinya dapat
diimplementasikan pada sistem digital baik berupa FPD (Field Programmable
Devices) atau ASIC (Application Specific Integrated Circuit).
2. Melakukan simulasi (analisis)
3. Test (uji coba) fungsionalitas dari rancangan.
Contoh HDL yang lain: Verilog, Abel, IHDL (Intel HDL), dan UDL/I
VHDL pada awalnya dikembangkan oleh departemen pertahanan Amerika (DoD) pada
tahun 1981. Pada tahun 1987 pengelolaanya diserahkan ke IEEE supaya bisa dipakai
secar luas oleh pihak industri dan akademisi. IEEE yang melakukan standardisasi pada
VHDL (1987, 1992, 1999).
B. VHDL Design Flow
Langkah-langkah proses desain pada sistem digital secara konvensioal
1. Deskripsi sistem secara informal (blok I/O dengan penjelasannya)
2. Persamaal Bool (termasuk setelah minimisasi misalnya dengan K-map)
3. Rangkaian Skematika (termasuk setelah minimisasi gate misalnya dengan De
Morgan)
4. Implementasi dengan IC digital (
Pada proses desain konvensional ini:
- Perancang harus memahami komponen dasar rangkaian (gate dan flip-flop).
- Ada banyak problem untuk sistem besar (persamaan matematika dan skematika
yang rumit)
- Susah melakukan modifikasi rancangan.

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

1

Kuliah Singkat VHDL untuk Sintesis

Langkah-langkah proses desain sistem digital dengan menggunakan VHDL
1. Deskripsi informal sistem (blok I/O dengan penjelasannya).
2. Deskripsi dengan VHDL.
3. Sintesa.
4. Implementasi.
Pada proses desain dengan VHDL ini
- Deskripsi dengan VHDL dapat merupakan deskripsi tingkat tinggi
(high/behavioral level), gate level, atau yang lain karena VHDL merupakan
bahasa yang human and machine readable.
- Proses sintesa dan implementasi dilakukan secara otomatis oleh sebuah tools.
Demikian juga editor untuk mendeskripsikan VHDL.
- Hasil implementasi (pada hardware) tidak bisa dibaca, sehingga memiliki
kerahasiaan yang tinggi.
- Biasanya hardware untuk implementasi memiliki kecepatan yang tinggi
dibandingkan dengan mikroporosesor/mikrokontroler.
Catatan: Mikroprosesor/mikrokontroler biasanya disebut juga software programmable
device, sedangkan PLD atau FPGA disebut hardware programmable device
C. Proses Perancangan dengan VHDL
Contoh:
Akan dirancang sebuah detektor bilangan prima 3-bit. Sistem dapat digambarkan dengan
blok diagram dan tabel kebenaran sebagai berikut:

Blok Diagram

Tabel Kebenaran
Dengan K-map (minimisasi) diperoleh persamaan logika sebagai berikut:

K-map
Persamaan logika:

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

2

Kuliah Singkat VHDL untuk Sintesis

Persamaan logika tersebut salah satu cara untuk membuat deskripsi VHDL. Pada contoh
kali ini akan dipakai Warp dari Cypress untuk mengedit deskripsi VHDL, simulasi, serta
sintesisnya. Pada Warp terdapat 2 macam tools, yaitu Galaxy untuk mengedit rancangan
dan melakukan sintesis serta Nova untuk melakukan simulasi.
Deskripsi bahasa VHDL

Beberapa hal dasar untuk deskripsi VHDL diatas:
- Pada prinsipnya, deklarasi dengan menggunkan VHDL terdiri atas dua bagian:
- Deklarasi entity
Untuk menjelaskan interface rancangan dengan dunia luar (pin input dan output).
- Deklarasi Arsitektur
Untuk menjelaskan fungsionalitas dari rancangan. Deklarasi arsitektur diawali
dengan begin dan diakhiri dengan end. Ada banyak cara untuk menjelaskan
fungsionalitas, misalnya dengan persamaan logika seperti diatas.
- Bahasa VHDL tidak case sensitive, misalnya huruf a (lower-case) dianggap sama
dengan huruf A (upper-case).
- Setiap statemen diakhiri dengan semikolon (;)
- Tanda <= adalah merupakan signal assignment.
- Referensi yang digunakan adalah dari ieee berupa operasi logika dan standar yang
dipakai adalah standar ieee no 1164 (tahun 1993).
- Komentar atau Comment diawali dengan garis tenah ganda (--). Komentar tidak akan
dieksekusi oleh compiler VHDL.

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

3

Kuliah Singkat VHDL untuk Sintesis

Desain yang dinyatakan dalam VHDL tersebut kemudian di compile untuk dilakukan
verifikasi sintaksis dan setelah tidak ada kesalahan (error) berikutnya akan dihasilkan file
untuk simulasi (verifikasi fungsional) maupun sintesis (baik untuk FPD baupun ASIC).
Contoh simulasi untuk sistem diatas digambarkan pada gambar berikut:

D. Entity dan Architecture
a. Format entity
Format entity adalah sebagai berikut:
Entity nama_entity is
Port (nama nama port : jenis_port jenis_data;
End nama_entity;
Macam-macam jenis port:
- In : digunakan untuk data masuk.
- out : digunakan untuk data keluar.
- buffer : digunakan untuk proses baca.
- inout : digunakan untuk data masuk dan keluar.
Jenis data (misalnya):
- satu bit : std_logic
- bus: std_logic_vector (a to b) atau
std_logic_vector (b downto a)
b. Format Architecture body
Format arsitektur adalah sebagai berikut:
architecture nama_arsitektur of nama_entity is
begin
......
deskripsi rancangan
.......
End nama_architecture;

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

4

Kuliah Singkat VHDL untuk Sintesis

E. Macam-macam deskripsi architecture (style)
Berikut ini adalah contoh sistem digital yang berfungsi sebagi komparator 4 bit
0 jika A ≠ B
hasil
1 jika A = B
A, B : 4 bit input
hasil : 1 bit output
A dan B masing masing adalah data yang panjangnya 4 bit. Keluaran hasil akan berlogika
‘1’ apabila A dan B sama serta berlogika ‘0’ apabila tidak sama.
Beberapa cara implementasi komparator 4 bit:
a. Struktural/netlist
Komparator 4 bit diatas bisa mempunyai persamaan logika:
hasil = ((A(0) xor B(0)) nor (A(1) xor B(1))) nor
((A(1) xor B(1)) nor (A(2) xor B(2)))
implementasi rangkaian logika (skematika) dari ditunjukkan oleh gambar berikut:

Implementasi VHDL secara struktural dilakukan mengekspresikan rangkaian skematika
diatas pada kode VHDL. Rangkaian diatas memerlukan dua macam gerbang dasar: XOR
2 input dan NOR 2 input. Beberapa gerbang dari dua macam gate tersebut dihubungkan
untuk membentuk komparator 4 bit. Kode VHDL untuk NOR, XOR, maupun program
utama bisa diletakkan pada file yang berbeda. Kode VHDL secara struktural ditunjukkan
oleh listing berikut:

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

5

Kuliah Singkat VHDL untuk Sintesis

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

6

Kuliah Singkat VHDL untuk Sintesis

b. Boolean
Deskrisi boolean menggambarkan cara kerja sistem melalui persamaan logika
suatu sistem yang dirancang. Berikut ini implementasi boolean dari komparator yang
diambil dari persamaan logika komparator diatas.

c. Dataflow (concurrent)
Deskripsi data flow menggambarkan cara kerja sistem melalui bagaimana data
dialirkan dari sinyal satu ke sinyal yang lain atau dari input ke output. Berikut ini contoh
deskripsi dataflow untuk komparator 4 bit.

d. Behavioral (sequential statement)
Deskripsi behavioral atau seringkali disebut diskripsi tingkat tinggi (high level),
adalah deskripsi perilaku (cara kerja) dari sistem yang dirancang. Deskripsi ini seringkali
merupakan algoritma bekerjanya sistem. Biasanya deskripsi ini menggunakan statement
sekuensial seperti: if .. then ..else ..., while ...., case ..., dll.

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

7

Kuliah Singkat VHDL untuk Sintesis

F. Process Statement
nama_process : process (sensitivity list)
begin
......
Sequencial statement
......
end process nama process;
nama_process adalah opsional.
sensitivity list : sinyal yang menyebabkan process dieksekusi
contoh sequensial statement:
- if ... then ... else
- while
- case
- dll.
G. Library, Package, dan Component
a. Library
Library adalah tempat dimana unit rancangan di”compile”. Library yang pertama
digunakan adalah ieee, dimana unit rancangan standard IEEE diletakkan. Library ini bisa
dipanggil untuk bisa diakses melalui perintah:
Library ieee;
Library yang lain dapat juga didefinisan terlebih dahulu kemudian dipanggil jika
diperlukan.
b. Package
Package adalah suatu unit rancangan pada suatu library. Format mengakses package
adalah sebagai berikut:
use nama_library.nama_package.item;
Sebagai contoh:
use ieee.std_logic_1164.all
c. Component
Component adalah entitas desain yang digunakan pada entitas rancangan yang lain.
H. Tipe Obyek (object)
Ada tiga jenis objek pada VHDL yaitu: constant, signal, dan variable.
- Constan (konstanta)
Sebuah konstanta memiliki nilai tetap dan tidak data dirubah oleh proses yang terjadi
pada kode (program), dibawah ini adalah contoh konstanta :

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

8

Kuliah Singkat VHDL untuk Sintesis

constant LEBAR : integer := 8;
constant X : std_logic_vector(2 downto 0) := "010";
Sebuah konstanta dapat dideklarasikan pada deklarasi process, architecture, entity
ataupun package.
-

Signal (sinyal)
Sebuah sinyal dapat dianggap sebagai sebuah jalur kabel yang menghubungkan
berbagai bagian pada modul ataupun antar modul dalam entity, dibawah ini adalah
contoh sinyal :
signal
signal
signal
signal

STATE
DBuff
Cmdn
Code

:
:
:
:

STATE_TYPE;
std_logic_vector(7 downto 0);
std_logic;
integer range –10 to 5;

Sebuah nilai awal dapat diisikan pada deklarasi sinyal, seperti :
signal DBuff : std_logic_vector(3 downto 0) := "1101";
Namun, kondisi diatas hanya berguna bagi simulasi dan tidak akan berguna bagi sintesa
karena saat suatu device diprogram maka kondisi (state) dari flip-flop pada device itu bisa
berada dalam kondisi reset (0), set (1) ataupun tidak menentu, jadi tidak dapat dipastikan
bahwa sinyal DBuff pada contoh diatas pasti berisi "11010110" pada saat device dipower up.
Sinyal dapat dideklarasikan baik pada deklarasi entity ataupun architecture, hanya saja
apabila pada deklarasi entitas maka sinyal akan secara eksplisit memiliki mode (in, out,
buffer atau inout), namun apabila pada deklarasi arsitektur maka sinyal akan secara
langsung memiliki mode inout.
-

variable.
Suatu variabel hanya dapat dideklarasikan pada bagian process dari suatu
arsitektur. Variabel digunakan untuk menampung angka sementara dalam perhitungan
dan tidak mencerminkan sebuah kabel. Dibawah ini adalah contoh deklarasi dan
pemakaian sebuah variabel :
architecture use_of_variable of my_and is
begin
process(in_bus)
variable tmp : std_logic;
begin
tmp := '1';
for i in 3 downto 0 loop
tmp := in_bus(i) and tmp;
end loop;
qout <= tmp;
end process;
end use_of_variable;
Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

9

Kuliah Singkat VHDL untuk Sintesis

Pada contoh diatas akan dilakukan proses sebagai berikut :
qout <= in_bus(0) AND in_bus(1) AND
in_bus(2) AND in_bus(3);
I. Tipe Data
Terdapat banyak tipe data dalam VHDL, yang akan dibahas disini adalah tipe-tipe
sederhana yang sering dipakai dalam pemrograman. Dibawah ini diberikan contoh
deklarasi sinyal menggunakan tipe-tipe data sederhana (didefinisikan pada IEEE 1164) :
signal
signal
signal
signal
signal

Input
Flag
Position
Level
Status

:
:
:
:
:

bit;
std_logic;
integer range –10 to 5;
integer range 0 to 10;
bool;

Selain itu dapat didefinisikan pula suatu tipe yang disebut dengan enumerasi
(enumeration) seperti berikut :
type STATE_TYPE is (IDLE, READ, WRITE, ERROR);
signal PState : STATE_TYPE;
signal NState : STATE_TYPE;
Pendefinisian suatu enumerasi akan sangat berguna pada pembuatan finie state machine.
Pada contoh-contoh diatas juga terlihat suatu tipe yang disebut array, misalnya :
signal Buffer : std_logic_vector(7 downto 0);
Sebenarnya std_logic_vector didefinisikan IEEE 1164 sebagai :
type std_logic_vector(natural range <>) of std_logic;
Dengan demikian, dapat dibuat suatu tipe array user-defined sebagai berikut :
type table4x2 is array(0 to 3, 0 to 2) of bit;
constant x_or : table4x2 := ("00_0",
"01_1",
"10_1",
"11_0");
Pada contoh diatas, isi dari tabel x_or ditulis secara vertical agar mudah dibaca, tetapi
tentunya tidak harus seperti itu. Terlihat simbol “_” pada potongan kode diatas,
kebanyakan program sintesa VHDL dapat menerima simbol “_” yang ditambahkan pada
sembarang dua digit yang berjajar. Dimasukkannya simbol “-“ pada contoh diatas adalah
agar tabel menjadi lebih mudah dibaca. Namun, perlu diketahui bahwa tidak semua
program sintesa VHDL dapat menerima “_”.
Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

10

Kuliah Singkat VHDL untuk Sintesis

J. Beberapa contoh kasus
1. Detektor Bilangan Prima 3 bit

F berlogika ”1” jika input adalah bilangan prima dan berlogika ”0” jika input
bukan prima. Bila dilakukan penurunan, diperoleh persamaan logika:

Kode VHDL nya adalah:

2. Dekoder 2 ke 4

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

11

Kuliah Singkat VHDL untuk Sintesis

3. Dekoder BCD ke 7-segment

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

12

Kuliah Singkat VHDL untuk Sintesis

4. Counter dengan generic

5. kontroler tandon air

Blok Diagram kontroler

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

13

Kuliah Singkat VHDL untuk Sintesis

a. Dengan Mesin Moore

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

14

Kuliah Singkat VHDL untuk Sintesis

b. Dengan Mesin Mealy

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

15

Kuliah Singkat VHDL untuk Sintesis

Hasil Simulasi

Kondisi :

Kosong

isi

penuh

pakai

Laboratorium Elektronika Dasar, Teknik Elektro FTI ITS

kosong

isi

penuh

16

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close