VHDL Features and Applications

Download Report

Transcript VHDL Features and Applications

VHDL

RANC. SISTEM ELEKTRONIKA

Oleh : ir.S O E T I K N O DOSEN -JTE ELEKTRONIKA

MATERI

            

Pengantar

Materi 1

Pendahuluan

Materi 2

Tutorial

Materi 3

Elemen Dasar Bahasa

Materi 4

Behavioral Modelin

Materi 5

Dataflow Modeling

Materi 6

Structural Modeling

Materi 7

Generics dan Configurations

Materi 8

Subprogram dan Overloading

Materi 9

Packages dan Library

Materi 10

Keistimewaan Lebih Lanjut

Materi 11

Simulasi Model

Materi 12

Contoh Hardware Modeling

PENGANTAR

Tentang VHDL

VHDL adalah bahasa untuk mendeskripsikan hardware elektronika digital; singkatan dari VHSIC Hardware Description Language. VHDL merupakan standar IEEE/ANSI dan Departemen Pertahanan US. Pertama kali dipublikasikan oleh IEEE pada tahun 1987, dengan label IEEE Std 1076-1987. Bahasa ini telah mengalami modifikasi dan revisi, dengan versi terbaru berlabel IEEE Std 1076-1993.

Referensi

• A VHDL Primer: Revised Edition, “J. Bhasker, Prentice Hall Inc. (ISBN 0-13 181447-8).

• IEEE Standard VHDL Language Reference Manual, Std 1076-1993, IEEE, NY, 1993 • IEEE Standard Multivalue Logic System for VHDL Model Interoperability (Std_Logic_1164), Std 1164-1993, IEEE, 1993.

• Bhasker, J., A Guide to VHDL Syntax, Englewood Cliffs, NJ: Prentice-Hall, 1995, ISBN 0-13-324351-6.

Materi 1 PENDAHULUAN OBYEK :

Menjelaskan tentang sejarah VHDL.

Menjelaskan tentang kemampuan utama dari VHDL.

Menyimpulkan konsep desain entity (

entity design

).

Materi 2 PENDAHULUAN KEY POINTS :

• VHDL singkatan dari

VHSIC Hardware Description Language

.

• VHDL dapat digunakan untuk menggambarkan desain elektronika digital pada beberapa tingkat abstraksi, dari skala tingkat algoritma hingga tingkat gate.

• VHDL pertama kali dikembangkan untuk Departemen Pertahanan US.

• Distandarisasi pertama kali oleh IEEE pada tahun 1987, dengan nama IEEE Std 1076-1987.

• Distandarisasi ulang pada tahun 1993, dengan nama IEEE Std 1076-1993.

• Sembilan nilai logika paket, disebut STD_LOGIC_1164, distandarisasi oleh IEEE untuk membantu di dalam interoperability model VHDL. Standar ini disebut IEEE Std 1164-1993.

• Beberapa kemampuan VHDL antara lain : - dapat digunakan sebagai

exchange medium

.

- mendukung hirarki.

- mendukung metodologi

top-down

dan

bottom-up

.

- test bench dapat dituliskan menggunakan bahasa ini.

- tipe data baru dapat disebutkan.

• Desain digital digambarkan dalam VHDL dengan menggunakan

external view

dengan satu atau beberapa

internal view

.

• •

External view Internal view

menyatakan interface dari rancangan.

menyatakan fungsi atau struktur dari rancangan. Suatu rancangan mungkin memiliki satu atau lebih

internal view

.

• Desain digital dapat juga digambarkan dalam VHDL dengan menggunakan beberapa berbeda.

• Tiap

external view

dan salah satu darinya berkaitan dengan

internal view external view

yang , yang secara bersama-sama merupakan representasi tertentu dari

device

, disebut dengan

entity design

.

Materi 1 PENDAHULUAN Self-Test Excercise :

1. Pada tahun berapa VHDL pertama kali distandarisasi oleh IEEE ?

2. Hal apakah yang menjadi latar belakang pengembangan VHDL ?

3. Apakah kelebihan VHDL yang dapat digunakan untuk menggambarkan parameter desain ?

4. Dapatkah

timing

digambarkan dalam VHDL ?

5. Dapatkah

driver

dan monitor dituliskan menggunakan VHDL ?

6. Hal apakah yang menjadi latar belakang pengembangan IEEE Std 1164-1993 ?

7. Apakah tiga jenis

style

deskripsi dasar yang didukung oleh VHDL ?

8. Dapatkah suatu desain memiliki lebih dari satu

internal view

?

Materi 2 T U T O R I A L OBYEK :

Mendiskusikan sifat/ciri pemodelan utama VHDL (

style sequential behavior, dataflow

dan

structure

).

Mendemonstrasikan proses kompilasi dan simulasi dari VHDL.

Materi 2 T U T O R I A L KEY POINTS :

Entity

saat digunakan dalam

entity

lainnya menjadi komponen bagi • Unit-unit desain untuk menggambarkan

entity

:

entity

tersebut.

entity declaration, architecture body, configuration declaration, package declaration,

dan

package body

.

• • • •

Entity declaration

menyatakan interface dari

entity

.

Architecture body

menggambarkan

behavior, dataflow, structure

atau

internal view mixed

.

Configuration declaration Package declaration

dan dari

entity

menyatakan hirarki dari rancangan.

package body

dengan menggunakan

style sequential

berisi kumpulan deklarasi sejenis yang dapat dibagi dengan unit unit desain yang berbeda.

Entity

pada kondisi minimal, terdiri dari satu

entity declaration

dan satu

architecture body

.

Port

adalah tempat dimana sinyal dapat berhubungan dengan lingkungan luar.

• Untuk setiap

port

yang dinyatakan dalam

entity declaration

, tipe port dan mode port juga disebutkan.

• Pada model

structure, architecture body

• Komponen dinyatakan menggunakan berisi satu set komponen yang saling berhubungan.

component declaration

dan dihubungkan menggunakan • Pernyataan

concurrent signal assignment

digunakan untuk menggambarkan fungsi dari

signal entity

.

dengan menggunakan • Ekspresi pada sisi sebelah kanan dari

signal dataflow style

.

concurrent signal assignment

dikomputasi setiap ada

event

pada yang digunakan. Nilai komputasi selanjutnya dihubungkan ke target (sisi sebelah kiri) setelah delay tertentu, jika tidak terdapat delay, delta delay diasumsikan.

• Pada model

behavioral

, kumpulan pernyataan sekuensial digambarkan dalam dieksekusi secara sekuensial dalam

zero time

.

process declaration

, yang

Materi 2 T U T O R I A L KEY POINTS :

• Pernyataan

process

dieksekusi pertama kali saat fase inisialisasi dari simulasi. Kemudian ditunda jika terdapat

sensitivity list

atau pernyataan

wait

. Jika keduanya tidak ada, pernyataan

process

merupakan • • loop tak terbatas selama inisialisasi.

• Pernyataan

process

dieksekusi ulang jika terdapat • Jika pernyataan

process

mempunyai pernyataan

event wait

dalam

signal

manapun pada

sensitivity list

.

, proses akan meresume eksekusi setelah kondisi tunda dipenuhi atau interval

time-out

dilewati.

Variable

dapat dinyatakan dalam proses dan subprogram.

atau subprogram.

Signal

tidak dapat dinyatakan dalam proses

Value

dapat diberikan secara langsung ke

variable

, sementara jika akan diberikan ke suatu

signal

• harus setelah delay tertentu.

• Ketiga model dari style dapat digabungkan dalam model tunggal.

Configuration declaration architecture body

digunakan untuk menyebutkan hirarki dari

entity

. Hal ini menyatakan yang dipilih serta kumpulan komponen di dalamnya ke

entity

yang terletak pada

library

desain.

• •

Package declaration

digunakan untuk menyimpan kumpulan deklarasi yang sering dipakai.

Package body

selalu dihubungkan dengan

package declaration

. Sangat penting jika

package declaration

yang berhubungan berisi

constant declaration

yang ditangguhkan atau subprogram.

• VHDL analyzer mengkompilasi file desain (berisi satu atau lebih unit desain) dan menyimpan setiap unit desain hasil kompilasinya dalam

library

yang dinyatakan sebagai

working library

.

….. LANJUTAN

Materi 2 T U T O R I A L

KEY POINTS :

Library

desain merupakan implementasi khusus tempat penyimpanan dalam

host environment

dimana deskripsi yang telah dikompilasi dapat disimpan.

• Satu atau lebih

library

desain yang ada harus memiliki nama logika, dimana pemetaannya pada lokasi fisik tertentu dinyatakan secara eksternal dalam

host environment

, jadi bukan menjadi bagian dari bahasa.

Package

yang ada: STANDARD dan TEXTIO. Keduanya terletak pada library desain STD.

• STD_LOGIC_1164 terletak pada library desain dengan nama IEEE. Tipe-tipe dasarnya adalah STD_ULOGIC, STD_LOGIC, STD ULOGIC VECTOR dan STD LOGIC VECTOR.

• Untuk simulasinya, pasangan

entity-architecture

top-level atau nama konfigurasi disebutkan.

• Tiga step simulasi:

elaboration, initialization, simulation

• Selama fase inisialisasi setiap proses dieksekusi satu kali dan semua sinyal diberi harga awal.

• Simulasi selanjutnya didasarkan pada waktu dari

event

.

selanjutnya.

….. LANJUTAN

Materi 2 T U T O R I A L Self-Test Excercise :

1.

2.

3.

4.

5.

6.

7.

8.

Sebutkan lima macam unit desain.

Unit desain yang mana yang digunakan untuk menggambarkan fungsi internal atau struktur dari desain ?

Pernyataan

concurrent

suatu desain ?

primer manakah yang digunakan untuk menggambarkan

style structural

dari Dapatkah suatu variabel dinyatakan di luar proses ?

Apakah

shared variable

Bagaimanakah port komponen dan sinyal dihubungkan ?

Dua hal apakah yang dapat menyebabkan tertundanya suatu proses ?

Dapatkah deklarasi itu ?

component

ditempatkan pada

package declaration

?

9.

Apakah

working library

itu ?

10. Pada fase manakah proses dieksekusi satu kali dari suatu simulasi ?

11. Dengan menggunakan deskripsi Delay diberikan sebagai berikut.

style dataflow

, tulislah model VHDL untuk logika exclusive-or.

Materi 2 T U T O R I A L Self-Test Excercise :

12. Tuliskan

package

yang menyatakan 4 nilai tipe enumerasi, MVL, dengan nilai ‘X’, ‘0’, ‘1’, ‘Z’.

Di dalam

package

juga dituliskan fungsi konversi nilai MVL ke nilai BIT.

13. Perhatikan kode berikut ini.

Entity EX_OR is port (A: in BIT; ABAR: out BIT); end; architecture TEST of EX_OR is signal B_ABAR: BIT; begin ABAR <= not A; B_ABAR <= ABAR and B; end; Mengapa terdapat error pada akhir pernyataan

concurrent signal assignment

?

….. LANJUTAN

Materi 3 ELEMEN DASAR BAHASA OBYEK :

Menerangkan dasar dari bahasa VHDL Menjelaskan:

type, operation

dan

identifiers.

Materi 3 ELEMEN DASAR BAHASA

• •

KEY POINTS :

• Dua jenis

identifier

:

Extended identifier Comment basic identifier

ditulis diantara dan

extended identifier

.

backslash

serta merupakan

case sensitive

.

dapat dimulai dimana saja pada suatu baris; diawali dengan dua garis putus • • • • putus serta berakhir pada akhir baris.

Keyword

merupakan • Klasifikasi

reserved word

dan tidak dapat digunakan sebagai

data object: constant, signal, variable

dan

file

.

Object declaration

menyatakan klasifikasi

data object identifier

.

; tipe serta harga awalnya jika ada. Untuk file,

object declaration

menyatakan jenis file,

read-only, write-only

atau

append-only

.

Type

adalah kumpulan nilai dimana operasi tertentu diijinkan.

• Jenis-jenis

type

:

enumeration, integer, floating point, array, record, access, file, physical

, dan

incomplete

.

Literal

adalah suatu nilai dari

type

.

Subtype

adalah

type Predefined operator

dengan suatu

constraint.

yang ada:

miscellaneous operator

.

logical, relational, shift, adding, multiplying

dan

Materi 3 ELEMEN DASAR BAHASA Self-Test Excercise :

1.

2.

3.

4.

5.

Type

manakah yang merupakan Apakah

extended identifier composite type

?

\wait\ berbeda dengan

keyword

Apakah based literal 2#101_110# suatu integer literal ?

wait ?

Nomor berapakah posisi dari integer literal 30 dalam predifined type INTEGER ?

6.

7.

8.

9.

Nomor berapakah posisi dari literal 0.0034 Amp dalam type CURRENT yang didefinisikan pada hal 39 dari bacaan ?

Apakah operasi yang diijinkan pada Apakah

unconstrained array type type

itu ?

juga sama halnya dengan pada semua Apakah “0010” suatu literal dari type BIT_VECTOR atau STRING ?

subtype

-nya ?

Manakah dari berikut ini yang merupakan

basic identifier, extended identifier, keyword

dan

illegal identifier

: _wait ABCDeF \block\ CL_CK _TEMP 1 hot \-----------\ \?______\ CONST_ _01 A+1 end ACK WHY NOT ME report 10. Nyatakanlah

constant

STROBE dari type TIME dengan nilai 1.8 ns.

11. Nyatakanlah variable IS_FOUND dari type BOOLEAN dengan nilai awal FALSE.

12. Nyatakanlah 3 signals, ARG, CNT, COT dari type STD LOGIC_VECTOR dengan ukuran 5 bit, dan inisialisasi setiap elemen dalam array dengan ‘0’.

13. Nyatakanlah

type enumeration

CHAR2INT dengan range karakter dari ‘0’ sampai dengan ‘9’.

Materi 3 ELEMEN DASAR BAHASA Self-Test Excercise :

14. Tentukanlah tipe integer dengan nilai antara -15 hingga +15. Nyatakanlah variable dari tipe ini dan inisialisasi dengan nilai 0.

15. Jenis

literal

apakah berikut ini: 23, 8#34_72#, “1101”, B”0011” ?

16. Nyatakanlah type physical VOLTAGE dengan range 0 hingga 10_000. Sub-unitnya mV, dan Volt.

Nyatakanlah signal untuk type ini. Jika tidak disebutkan nilai awal pada

signal declaration

, apakah nilai awal dari signal ketika simulasi dimulai ?

17. Apakah perbedaan antara

array

dengan

record

?

18. Apakah perbedaan antara

type unconstrained array

dan

constrained array

? Pada kondisi bagaimanakah lebih diinginkan menggunakan

type unconstrained array

dibandingkan type

constrained array

?

19. Nyatakanlah array tiga dimensi, 8 x 16 x 1024, tiap elemen merupakan type BOOLEAN.

Nyatakanlah variable untuk type ini. Berapakah nilai awal untuk setiap elemen dalam array ?

20. Nyatakanlah array tiga dimensi di atas sebagai

unconstrained array

. Kemudian sebutkan dimensinya dalam pernyataan untuk variable.

21. Dapatkah array multi-dimensi menjadi

constrained

parsial ?

22. Nyatakanlah constant dari type BIT_VECTOR dengan range indeks dari 0 sampai 24. Setting semua elemennya ke ‘1’, kecuali bit 14 dan bit 6 yang harus diset ke ‘0’.

23. Nyatakanlah

record

yang dapat menahan informasi tentang nama personal, nomor jaminan sosial dan umur. Nyatakanlah signal untuk type ini. Tentukan nilai (“JBOND”, “001-02-0123”, 23) ke signal.

24. Apakah operator + dan - telah ditentukan pada type BIT_VECTOR ?

25. Apakah type kembali untuk semua operator

predefined relational

?

….. LANJUTAN

Materi 3 ELEMEN DASAR BAHASA Self-Test Excercise :

26. Sebutkan empat macam type

predefined

dan satu macam subtype

predefined

.

27. Nyatakanlahtype

record

COMPLEX dengan dua elemen, REAL_FLD dan IMAG_FLD.

Nyatakanlah

signal

untuk type ini dan inisialisasi dengan nilai (2,4). Bagaimanakah elemen 28.

dari

signal record

diakses ?

Type declaration

yang diberikan : type MLV is (‘X’, ‘0’, ‘1’, ‘Z’); Nyatakanlah subtype dengan nilai hanya ‘X’, ‘0’, ‘1’.

….. LANJUTAN

Materi 4 BEHAVIORAL MODELING OBYEK :

Ž Ž Mendiskusikan model

behavioral style

yang mendukung VHDL.

Mendemonstrasikan pengertian hal yang membuat

process statement

dieksekusi dan bagaimana

sequential statement

di dalamnya dieksekusi.

Ž Menjelaskan variasi

sequential statement

yang dapat ditulis di dalam

process statement

termasuk -

if statement

-

case statement

-

loop statement

-

assertion statement

-

wait statement

, dsb.

Materi 4 BEHAVIORAL MODELING KEY POINTS :

• •

Process statement

memodelkan

behavioral Process statement

adalah pernyataan • Pernyataan sekuensial berada dalam sekuensial.

concurrent

yang ada di dalam

process statement

.

• Penangguhan

process statement

terjadi ketika terdapat

sensitivity list architecture body.

• • Contoh dari pernyataan sekuensial:

Process statement if statement, case statement,

dan

variable assigment statement.

dapat berupa state tertunda atau yang sedang dieksekusi.

atau

wait statement

.

• Jika terdapat

event

(perubahan nilai) pada

signal

dalam

sensitivity list

, maka proses dijalankan. Setelah pernyataan terakhir dijalankan di dalam proses maka proses akan ditangguhkan.

• Jika di dalam proses terdapat

sensitivity list

, maka tidak mempunyai

wait statement

. Jika dalam proses terdapat satu atau lebih • Jika

process statement wait statement

, maka proses tidak dapat mempunyai mempunyai

wait statement

, maka proses ditangguhkan ketika dijalankan. Ketika kondisi tunda sudah terpenuhi atau

time out sensitivity list

.

wait statement

terjadi, maka proses akan menjalankan pernyataan selanjutnya.

• Setiap proses pertama kali dijalankan diawali fase inisialisasi pada simulasi.

• Pernyataan variabel di dalam proses menyimpan nilai saat proses penangguhan.

Signal

tidak dapat dinyatakan dalam proses.

• Variabel selalu mempunyai nilai instan, sedangkan sinyal selalu ditandai dengan nilai setelah delay.

• Proses selalu dijalankan dalam waktu nol.

Exit statement

atau

next statement

hanya muncul pada

loop statement

.

• Terdapat dua macam delay yang digunakan dalam penentuan

signal

:

inertial

dan

transport

. Nilai defaultnya adalah

inertial

.

Architecture body

dapat berisi banyak proses.

• Proses tunda adalah salah satu yang dieksekusi terakhir dari semua delta waktu simulasi yang diberikan.

Materi 4 BEHAVIORAL MODELING Self-Test Excercise :

1.

Dapatkah nilai keluaran port dibaca ?

2.

3.

4.

5.

6.

7.

8.

9.

Sebutkan tiga pernyataan

concurrent

yang terdapat dalam

architecture body

?

Dapatkah sebuah variabel atau sinyal digunakan untuk melewatkan informasi antara dua proses ?

Berapa banyak

architecture body

yang dapat dimiliki oleh sebuah

entity

?

Apakah yang dapat menyebabkan sebuah proses tidak berjalan (tidak berfungsi) ?

Kapankah sebuah proses pertama kali dieksekusi ?

Dapatkah variabel-variabel yang dideklarasikan dalam sebuah proses mempertahankan harganya ketika proses berhenti (tidak berjalan) ?

Apakah perbedaan antara

variable assignment

dan

signal assignment

?

Dengan menggunakan pernyataan

wait

, buatlah sinyal gelombang

clock

dengan perioda off 5 nanodetik dan perioda on 10 nanodetik !

10. Dapatkah pernyataan

next

menyebabkan sebuah

loop

untuk keluar ?

11. Pada model

delay inersia

, apakah batas rejeksi pulsa jika ia tidak dispesifikasikan secara eksplisit ?

12. Model delay apakah yang digunakan pada penyerahan sinyal (

signal assignment

) jika tidak tersedia

keyword

(inersia atau transpor) secara eksplisit ?

13. Pada sebuah penyerahan sinyal (

signal assignment

) beserta sinyal gelombang berlipat, harga-harga delay sesuai dengan yang kita inginkan. Benar atau salah ?

14. Properti khusus apakah yang dimiliki proses ?

Materi 4 BEHAVIORAL MODELING Self-Test Excercise :

15. Tulislah model VHDL dengan menggunakan pernyataan proses

state machine

berikut ini : Masukan (GAK) 0 Kondisi Sekarang NO_ONE Kondisi berikutnya NO_ONE Keluaran (ZUK) 0 1 0 NO_ONE ONE_ONE ONE_ONE NO_ONE 0 0 1 0 1 0 1 ONE_ONE TWO_ONE TWO_ONE THREE_ONE THREE_ONE TWO_ONE NO_ONE THREE_ONE NO_ONE THREE_ONE 0 0 1 0 1 16. Tulislah pernyataan masukan (

asserted statement

) yang memeriksa bahwa sinyal CLK tidak pernah mempunyai harga 'Z'.

17. Apakah default dari tingkat kekerasan (

severity level

) jika tidak terdapat ekspresi kekerasan pada pernyataan yang dimasukkan ?

18. Jelaskan sifat dari flip flop JK menggunakan pernyataan proses !

19. Apakah J pada pernyataan

loop

dibawah ini perlu untuk dideklarasikan ?

for J in1 to 10 loop … end loop;

….. LANJUTAN

Materi 4 BEHAVIORAL MODELING Self-Test Excercise :

20. Menggunakan pernyataan proses, jelaskan sifat dari rangkaian komparator yang membandingkan dua sinyal WUMP dan LUMP. Sinyal kontrol adalah bertipe enumerasi: type COMP_CTRL is (LT, LE, GT, GE, EQ, NE) 21. Jelaskan sifat dari rangkaian yang menset keluaran SAM ke '1' jika pola 1101 ditemukan pada sinyal masukan GUS. Data pada sinyal masukan diperiksa pada setiap tepi naik dari

Clock

.

22. Jelaskan sifat dari rangkaian mayoritas. Masukannya adalah vektor 16-bit. Jika jumlah 1 melebihi jumlah 0, keluaran menjadi benar. Data masukan hanya diperiksa jika sinyal masukan (input) DATA_READY adalah '1'.

23. Perlihatkan dua pendekatan untuk mendeteksi tepi

clock

!

24. Perlihatkan sinyal gelombang pada sinyal WIN setelah pernyataan proses mengeksekusi type STD_ULOGIC is ('U','X','0','1','Z','W','L','H','-'); signal WIN: STD_ULOGIC; … process begin WIN <= transport '1' after 7 ns WIN <= transport '0' after 22 ns WIN <= transport 'Z' after 18 ns wait; end process;

….. LANJUTAN

Materi 4 BEHAVIORAL MODELING Self-Test Excercise :

25. Perlihatkan gelombang pada sinyal WIN setelah pernyataan proses berikut dieksekusi. Sinyal WIN merupakan tipe yang sama seperti pada pertanyaan sebelumnya.

process begin WIN <= transport '0' after 6 ns, '1' after 12 ns, 'X' after 18 ns, '0' after 30 ns; WIN <= transport 'Z' after 15 ns, '0' after 22 ns, '1' after 30 ns; wait; end process; 26. Perlihatkan gelombang pada sinyal WIN apabila pernyataan proses berikut dieksekusi process begin WIN <= reject 3 ns inertial '0' after 12 ns; WIN <= reject 15 ns inertial '1' after 25 ns, '0' after 31 ns; WIN <= 'Z' after 30 ns; wait; end process;

….. LANJUTAN

Materi 5 DATAFLOW MODELING OBYEK :

Ž

Mendemonstrasikan dan mengerti tentang model

dataflow

.

Ž

Menggunakan pernyataan

concurrent signal

dan

block

.

Materi 5 DATAFLOW MODELING

• • • • • • • • • • •

KEY POINTS :

Dataflow behavior

digambarkan dengan menggunakan pernyataan Pernyataan

concurrent signal assignment concurrent signal assignment

.

mempunyai syntax yang sama dengan pernyataan

assignment

yang terdapat pada pernyataan proses. Tetapi pernyataan

concurrent signal assignment signal

tidak dapat diletakkan dalam proses atau subprogram.

Pernyataan

concurrent signal assignment

dieksekusi ketika terdapat

event

pada

signal

pada sisi sebelah kanan dari ekspresi gelombang dalam pernyataan

assignment

.

Concurrent signal assignment

dieksekusi berdasarkan

event

dapat dituliskan dalam yang muncul pada

architecture body

pada urutan manapun. Pernyataan

signal

, tidak berdasarkan urutan sekuensialnya pada

architecture body

.

Setiap

concurrent signal assignment

membuat

driver

untuk sinyal yang dikendalikannya.

Jika sinyal memiliki lebih dari satu driver, maka fungsi resolusi dibutuhkan.

Fungsi resolusi dapat ditempatkan dalam pendeklarasian sinyal atau subtype.

Fungsi resolusi didefinisikan oleh pemakai, fungsi dipanggil setiap kali driver yang bersesuaian aktif.

Pernyataan

signal assignment

kondisional juga merupakan pernyataan serempak. Sifatnya hampir sama dengan

if statement

pada proses.

Pernyataan

signal assignment

dengan

case statement

.

terpilih juga merupakan pernyataan serempak; memiliki sifat yang sama Nilai yang tidak dapat dipengaruhi dapat dipergunakan untuk sinyal untuk mengidentifikasikan tidak ada perubahan pada harga

driver

.

Materi 5 DATAFLOW MODELING

• • •

KEY POINTS :

Pernyataan

block

adalah pernyataan

concurrent

. Dapat digunakan untuk mendeskripsikan desain pada hirarki. Juga dipakai untuk me-nonfungsikan driver.

Pernyataan

concurrent signal assignment

dalam pernyataan blok dapat memiliki

keyword guard

.

Sehingga, pernyataan ini dieksekusi melalui kontrol

guard expression

.

Pernyataan

concurrent assertion

memiliki syntax yang sama dengan pernyataan

sequential assertion

. Perbedaaanya terletak pada waktu eksekusi

concurrent assertion

, yang terjadi ketika terdapat

event

pada signal yang digunakan pada ekspresi

assert

.

….. LANJUTAN

Materi 5 DATAFLOW MODELING

2.

3.

4.

5.

6.

Self-Test Excercise :

1.

Tulislah pernyataan masukan konkuren (

concurrent assertion statement

) yang memastikan sinyal STATE tidak pernah mempunyai literal enumerasi TWO_ONE dan THREE_ONE !

Apakah sinyal implisit GUARD ?

Jika terdapat

guard expression

dalam pernyataan blok, pernyataan apa yang dipengaruhi ini ?

Dapatkah variabel dan sinyal dideklarasikan dalam blok bagian deklaratif ?

Dapatkah pernyataan blok memiliki pernyataan proses ?

Lihatlah Fragmen kode berikut. Sinyal manakah yang memerlukan fungsi resolusi ?

architecture … begin P1: process (…) begin ACK <= … RDY <= … … RDY <= … end process; P2: process (…) begin RESET <= … ACK <= … end process; RESET <= … end;

Materi 5 DATAFLOW MODELING Self-Test Excercise :

7. Apakah perbedaan kunci antara pernyataan

concurrent signal assignment

dan

sequential signal assignment

?

8. Tulislah model A

dataflow

untuk rangkaian multiplekser 4 X 1 seperti gambar 5.1 !

3ns B 3ns Z 5ns C 3ns D 3ns S0 S1 1ns 1ns Gambar 5.1. Rangkaian multiplekser 4 X 1 9. Tulislah model aliran data untuk flip – flop tipe D latch seperti gambar 5.2 !

D Q CK Q Gambar 5.2. Flip – flop tipe D latch

….. LANJUTAN

Materi 5 DATAFLOW MODELING Self-Test Excercise :

10. Berapa banyak parameter yang dimiliki fungsi resolusi ?

11. Apakah yang dimaksud dengan pernyataan dibawah ini ?

BUD <= ACK <= KIT 12. Kapan pernyataan masukan konkuren berikut ini dieksekusi ?

assert NOW > 100 ns report "Ooops!" severity NOTE; 13. Jika sebuah sinyal RX, dari tipe MVL di

drive

berlipat dan fungsi resolusi PULL_UP digunakan untuk mengembalikan harga – harga driver sinyal, perlihatkan bagaimana fungsi resolusi dihubungkan dengan sinyal !

14. Gambar gelombang yang dihasilkan oleh eksekusi dari sinyal concurrent berikut !

type LOGIC_4 is ('X', '0', '1', 'Z'); signal SEQUENCE: LOGIC_4: SEQUENCE <= '1' after 5 ns, 'Z' after 12 ns, '0' after 15 ns, '1' after 22 ns: 15. Kapankah pernyataan

concurrent

di atas dieksekusi ?

16. Dari gambar yang sudah ada, yaitu gelombang berikut pada sinyal CLEAR, dan pernyataan penandaan sinyal konkuren, gambarlah gelombang – gelombang pada sinyal RAW dan SAW.

0 2 5 10 15 16 17 22 23 27 RAW <= transport CLEAR after 3 ns SAW <= reject 4 ns inertial CLEAR after 5 ns 30 ns

….. LANJUTAN

Materi 5 DATAFLOW MODELING Self-Test Excercise :

17. Gunakanlah penandaan sinyal yang dipilih (

selected signal assignment

) untuk menjelaskan multiplekser 4 ke 1 ?

18. Dari fungsi resolusi berikut dan dua …

driver

untuk POP, perlihatkan harga efektif pada sinyal POP.

type INT_ARRAY is array (NATURAL range <>) of INTEGER … function ADD_UP (DRIVERS : INT_ARRAY) return INTEGER is variable SUM: INTEGER :=0; begin for K in DRIVERS RANGE loop SUM := SUM + DRIVERS (K); end loop return SUM; end ADD_UP; … signal POP: ADD_UP INTEGER := 0; … ---- Berikut ini pernyataan penandaan sinyal dua sinyal konkuren : POP <= 1 after 2 ns, 5 after 5 ns, 3 after 7 ns, 2 after 11 ns; … POP <= 11 after 4 ns, 6 after 8 ns, 1 after 12 ns;

….. LANJUTAN

Materi 6 STRUCTURAL MODELING OBYEK :

Ž

Penulisan model struktural.

Ž

Mendeskripsikan pernyataan dan deklarasi

component

.

Ž

Mendiskusikan bagaimana sinyal digunakan untuk menghubungkan

component

yang berbeda.

Materi 6 STRUCTURAL MODELING

• • • • • • • •

KEY POINTS :

Pernyataan

component instantiation

adalah pernyataan serempak (

concurrent

).

Sebelum contoh komponen dibuat harus dideklarasikan menggunakan deklarasi komponen.

Deklarasi komponen meliputi deklarasi template dari komponen, nama, keterangan port portnya, mode dan type yang dipakai.

Komponen-komponen saling berhubungan dengan menggunakan sinyal.

Port komponen dapat dihubungkan dengan sinyal menggunakan posisi atau nama hubungan.

Jika port komponen tidak digunakan,

keyword open

dapat dipergunakan; port menjadi port input, kemudian port harus diberi nilai eksplisit awal, dimana menjadi nilai port yang terbuka selama simulasi.

Slices, arrays

atau

element

dari array dapat dipergunakan pada hubungan sinyal dengan port komponen.

Sinyal yang dihubungkan ke port output komponen menyatakan sumber tunggal bagi sinyal tersebut.

Materi 6 STRUCTURAL MODELING Self-Test Excercise :

1. Dapatkah pernyataan

component instantiation

disertakan dalam pernyataan blok ?

2. Tulislah model struktural untuk rangkaian multiplekser 4 X 1 seperti gambar 5.1 !

3. Tulislah model struktural untul flip – flop tipe D-latch seperti gambar 5.2 !

4. Dapatkah deklarasi komponen disertakan dalam deklarasi

package

?

5. Dapatkah kata kunci open digunakan hanya untuk port input ?

6. Jenis port aktual manakah yang dapat menjadi ekspresi ?

7. Jika sebuah sinyal dihubungkan ke port keluaran lebih dari satu kali, dimanakah fungsi resolusi harus dispesifikasikan ?

8. Error apakah yang terdapat pada kode fragmen VHDL berikut ?

… component AND3 port (A, B, C: in_BIT; Z: out_BIT); end component; signal SAM, PAM, LAM: BIT; … TAT: AND3 port map (open, SAM, PAM, LAM);

Materi

7

GENERIC DAN CONFIGURATION OBYEK :

Mendemonstrasikan pemakaian pasangan

entity-architecture

.

Mendiskusikan

generic

dan penggunaannya untuk melewatkan informasi statis.

Menggabungkan komponen ke dalam

entity

atau

configuration

.

Materi

7

GENERIC DAN CONFIGURATION

• • • • • • • • • • • •

KEY POINTS :

Generic

dipergunakan untuk melewatkan informasi konstan ke Nilai dari

generic entity

.

dapat diletakkan pada beberapa tempat, seperti dalam map

component instantiation

, dalam spesifikasi konfigurasi, dalam deklarasi

generic generic

pada

statement

dari deklarasi komponen, atau dalam deklarasi

generic

pada deklarasi entity.

Configuration Configuration

Pernyataan dapat menyatakan hubungan antara komponen dan pasangan

entity-architecture

dapat disebutkan dengan menggunakan spesifikasi atau deklarasi

configuration configuration

.

.

Spesifikasi

configuration

disebutkan dalam

architecture body, block

, atau digunakan untuk menyebutkan kumpulan komponen ke pasangan

generate statement entity-architecture

.

, dan adalah unit desain yang terpisah, jadi dapat dikompilasi terpisah. Ini juga menyebutkan contoh ke pasangan yang lengkap.

Pemisalan berbeda dari komponen yang sama atau pemisalan dari komponen yang berbeda dapat digabungkan dalam

entity

yang sama.

Nilai

generic

dan hubungan

port entity-architecture

. Dapat juga digunakan untuk menyebutkan hirarki antara komponen dan

entity

dapat dinyatakan sebagai bagian dari ikatan informasi yang menggunakan peta

generic

dan peta portnya.

Jika pemisalan dari komponen berada dalam

architecture body

dan tidak ada ikatan diantaranya, maka aturan default dipergunakan.

Entity library

.

Port

dan nama

generic

dengan nama sama seperti komponen mesti ditempatkan pada harus mempunyai nama yang sesuai.

working

Fungsi konversi dapat digunakan jika tipe dari port komponen tidak sesuai dengan tipe port

entity

.

Dalam

architecture body

Ikatan antara

port

dan , pemisalan komponen,

generic entity

atau

configuration

dapat juga digunakan langsung.

dapat ditunda, informasi dapat dinyatakan pada deklarasi

configuration

.

Spesifikasi

configuration

tidak perlu menyebutkan semua ikatan.

Materi

7

GENERIC DAN CONFIGURATION Self-Test Excercise :

1. Dapatkah satu

generic

menjadi satu

type

?

2. Tulislah satu contoh dari N masukan

generic

gerbang XOR !

3. Perlihatkan sebuah deklarasi komponen dari N masukan bagaimana

generic generic

dapat dilewatkan dengan menggunakan peta gerbang XOR dan perlihatkan

generic

pemisalan komponen ?

4. Dapatkah nama–nama port berbeda dalam satu komponen dan satu

entity

yang terbatas ?

5. Manakah dari hal–hal berikut dapat digunakan untuk menyebutkan ikatan dari hierarki lengkap : Sebuah spesifikasi konfigurasi atau, sebuah deklarasi konfigurasi 6. Tulislah spesifikasi konfigurasi untuk entiti rangkaian MUX 4 X 1 yang dijelaskan pada bahasan sebelumnya !

7. Tulislah sebuah deklarasi

configuration

untuk

entity

flip – flop tipe D-latch yang dijelaskan pada bahasan sebelumnya !

8. Dapatkah ikatan dari suatu pemisalan komponen hanya dispesifikasikan untuk pasangan

entity architecture

?

9. Dapatkah aturan–aturan ikatan standar menunjukkan port–port antara satu komponen dan satu

entity

oleh nama ataukah oleh posisi ?

10. Kapankah fungsi–fungsi konversi diperlukan ?

Materi

7

GENERIC DAN CONFIGURATION Self-Test Excercise :

11. Tulislah sebuah model untuk multiplekser 4X1 yang dijelaskan pada gambar 5.1 menggunakan tipe struktural, tetapi menggunakan pemisalan langsung dari

entity

(diasumsikan terdapat

entity

dalam

library

CMOS6) !

12. Tulislah deskripsi struktural dari rangkaian XOR seperti gambar 2.1. Modelkan delay sebagai

generic

. Tulislah deklarasi konfigurasi dan lewatkan harga–harga delay dengan menggunakan

generic

!

13. Disini terdapat deklarasi komponen dari 2 masukan gerbang AND yang menggunakan tipe MVL untuk port–portnya. Komponen ini dibatasi oleh 2 masukan gerbang AND yang meng gunakan tipe STD_ULOGIC untuk port – portnya, sebagaimana terlihat di bawah ini. Tulislah spesifikasi konfigurasi yang menspesifikasikan ikatan/batasan !

component AND_GATE port (A, B: in MVL; Z: out MVL); end component; entity AND2 is port (L, M: in STD_ULOGIC; P: out STD_ULOGIC); end entity;

….. LANJUTAN

Materi

8

SUBPROGRAM DAN OVERLOADING OBYEK :

Menjelaskan fungsi dan prosedur.

Mendemonstrasikan penggunaan operator

overloading

subprogram.

Materi

8

SUBPROGRAM DAN OVERLOADING

• • • • • • • • • • • •

KEY POINTS :

Subprogram berupa fungsi atau prosedur.

Fungsi mengembalikan satu nilai dan mengeksekusinya dalam waktu nol.

Prosedure boleh mengembalikan nilai nol dan mengeksekusinya dalam waktu nol. Meski demikian, suatu prosedur dapat berisi wait statement yang menyebabkan penutupan proses tertunda. Prosedur akan berpengaruh dengan cara modifikasi sinyal global dan variabel atau modifikasi parameter.

Subprogram didefinisikan menggunakan

subprogram body

.

Subprogram body

berisi nama subprogram, parameter, mode dan tipe serta perhitungan yang dilakukan.

Sifat dari subprogram dideskripsikan menggunakan statament sekuensial.

Statement return

hanya dapat dipergunakan dalam subprogram. Ini menyebabkab subprogran keluar.

Variabel yang dinyatakan dalam subprogram berbeda sifatnya dengan yang ada dalam proses. Variabel dalam subprogram diinisialisasi setiap kali subprogram dipanggil dan berhenti setelah kembali dari subprogram.

Fungsi dapat dinyatakan sebagai fungsi Fungsi

pure pure

atau

impure

.

adalah fungsi yang kembali bernilai sama setiap kali dipanggil dengan nilai parameter yang sama. Pada fungsi impure nilainya kemungkinan tidak akan sama.

Fungsi

Call

adalah jenis dari ekspresi/ungkapan.

Prosedur

Call

dapat berupa penyataan sekuensial atau

concurrent

. Jika prosedur

Call

muncul dalam proses atau subprogram yang lain, ini termasuk pernyataan sekuensial. Lainnya adalah pernyataan

concurrent

.

Materi

8

SUBPROGRAM DAN OVERLOADING

• • • • • • • • • •

KEY POINTS :

Prosedur

Call concurrent

formalnya dengan mode

in

dijalankan setiap kali terdapat atau

inout

.

event

pada signal sehubungan dengan parameter Suatu nilai dapat dilewatkan ke subprogram dengan menggunakan posisi atau nama hubungan.

Deklarasi subprogram menyatakan interface ke subprogram. Hal ini menyatakan nama subprogram dan parameter dengan mode dan tipenya. Deklarasi subprogram berguna pada penulisan subprogram dalam

package

.

Dua atau lebih subprogram disebut

overloaded

jika memiliki nama yang sama.

Satu subprogram

overload

dapat menyembunyikan subprogram lainnya jika tipe parameternya sama.

Subprogram

call

dapat menjadi dua jika dua subprogram yang ada memiliki tipe parameter yang sama.

Seperti halnya pada subprogram, operator juga dapat mengalami overload dalam arti tidak sesuai dengan tipe yang telah ditentukan sebelumnya.

Notasi operator standar atau standar fungsi

overload

.

call

dapat digunakan untuk operator

overload

atau

non Signature

menyebutkan tipe parameter dari subprogram atau enumeration literal.

Signature

digunakan untuk identifikasi khusus subprogram atau

enumeration

literal yang

overload

.

….. LANJUTAN

Materi

8

SUBPROGRAM DAN OVERLOADING Self-Test Excercise :

1.

Dapatkah suatu fungsi tidak mempunyai parameter input ?

2.

3.

4.

5.

6.

7.

8.

9.

Termasuk fungsi

pure

atau

impure

jika tidak terdapat keyword eksplisit yang disebutkan pada spesifikasi fungsi ?

Dapatkah prosedur

Call concurrent

Bagaimana perbedaan

fungsi call

memiliki pernyataan Dapatkah prosedur memiliki peryataan

return

Bagaimana variabel dideklarasikan dalam subprogram berbeda dengan dalam proses ?

dengan

prosedur call

Pentingkah selalu dinyatakan suatu subprogram ?

Kapankah dua subprogram dikatakan

overload

?

?

?

wait

?

Jika dua subprogram overload dan memiliki tipe parameter dan tipe hasil yang sama, berikan aproksi masi untuk membuat

subprogram call unambiguous

!

10. Berikan dua subprogram overload, jika terdapat error pada subprogram call misalkan

declared,”

apakah yang menjadi penyebabnya ?

“subprogram not

11. Saat operator

overload

digunakan, bagaimana cara mendeteksi operator

overload

yang sedang dipanggil ?

12. Literal enumerasi memiliki deklarasi fungsi yang ekivalen untuk keperluan penentuan tipe parameter dan hasil. Berikan deklarasi fungsi ekivalen untuk karakter A pada tipe

predifined

CHARACTER.

13. Dimanakah

signature

digunakan ?

14. Tuliskan fungsi konversi nilai dari tipe BIT_VECTOR ke integer, asumsikan representasi besaran tidak ditentukan. Asumsikan bit terkanan adalah LSB.

Materi

8

SUBPROGRAM DAN OVERLOADING Self-Test Excercise :

15. Overload-kan fungsi soal no. 14 dengan menuliskan fungsi lain yang mengubah nilai tipe STD_LOGIC_ VECTOR ke nilai integer.

16. Tuliskan fungsi yang menampilkan reduksi AND dari bit dalam suatu vector. Contoh, jika COY adalah vector 3-bit, fungsi return “COY(0) and COY(1) and COY(2)”. Juga tuliskan deklarasi fungsinya. Jangan gunakan operator geser.

17. Tuliskan prosedur yang menampilkan geser kanan aritmatika dari parameter sinyal. Asumsikan bahwa bit paling kiri adalah bit sign. Jumlah bit yang digeser juga disebutkan. Tuliskan deklarasi fungsinya.

18. Tuliskan fungsi overload untuk operator “or” yang mengerjakan argumen dari tipe SIGNED. Type SIGNED dideklarasikan sebagai berikut.

type SIGNED is array (NATURAL range <>) of bit; 19. Dapatkah prosedur call sekuensial selalu digunakan sebagai prosedur call concurrent ?

20. Tuliskan fungsi yang menampilkan dekoding BCD ke 7-segment.

21. Tuliskan prosedur yang dapat menggambarkan perilaku dari asynchronous preset clear, positive-edge triggered, counter. Asumsikan bahwa input sinyal adalah tipe UNSIGNED dan operator overload “+” (yang mengerjakan operand UNSIGNED dan INTEGER) tersedia.

….. LANJUTAN

Materi

9

PACKAGE DAN LIBRARY OBYEK :

Menjelaskan konsep desain

library

.

Menghubungkan item dalam suatu package dari unit desain lain dengan menggunakan konteks klausa.

Materi

9

PACKAGE DAN LIBRARY

• • • • • • • • • • •

KEY POINTS :

Package

menyediakan tempat untuk menyimpan pernyataan yang sering digunakan.

Package

digambarkan oleh pernyataan Pernyataan

package package

dan pilihan

package body

.

dapat berisi bermacam-macam pernyataan, seperti pernyataan

subtype

, dan

component

.

Package body

dibutuhkan jika pernyataan

package constant

,

type

dan berisi pernyataan subprogram atau pernyataan

constant

tertunda. Dalam kasus tertentu,

package body

yang saling berhubungan berisi

subprogram body

dan pernyataan

constant

yang lengkap.

Item

dinyatakan dalam pernyataan menggunakan klausa.

package

dan dapat digunakan pada unit desain lainnya dengan

Package body

dapat berisi pernyataan selain pernyataan ini tidak dapat digunakan oleh unit desain lainnya.

subprogram

dan

constant

. Meski demikian, hal File desain berupa file teks yang berisi source VHDL; berisi satu atau lebih unit desain.

File desain merupakan unit dasar yang dikompilasi menggunakan

compiler

VHDL.

Compiler VHDL

mengkompilasi file desain dan menyimpan deskripsi unit desainnya dalam

library

desain yang telah dirancang sebagai

working library

.

Library

desain merupakan implementasi terpisah lokasi penyimpanan dimana unit desain terkompilasi dapat disimpan.

Setiap

library

desain memiliki nama logika. Kumpulan nama logika pada lokasi penyimpanan adalah

host-specific

.

Materi

9

PACKAGE DAN LIBRARY

• • • • •

KEY POINTS :

Host environment

harus menyediakan semua nomor salah satu dari

library

desain harus dirancang sebagai

Package library

desain. Sebelum kompilasi dilakukan,

working library

, dengan nama logika WORK.

STD_LOGIC_1164 berisi sembilan nilai tipe logika dan operator fungsi

overload

nya.

Package ini merupakan standar IEEE (IEEE Std 1164-1993) yang terletak dalam

library

desain dengan nama logika IEEE.

Unit desain harus dikompilasi untuk referensi, sebagai contoh bahwa pernyataan dikompilasi lebih dulu sebelum

architecture body

dapat dikompilasi.

entity

harus

Library

dan pemakaian klausa saling berhubungan dengan unit desain dan bukan merupakan dasar file desain.

Klausa terpakai dapat digunakan untuk memilih

item

dalam

package

.

….. LANJUTAN

Materi

9

PACKAGE DAN LIBRARY Self-Test Excercise :

1. Dapatkah

package declaration

berisi

subprogram body

?

2. Dapatkah

package body

berisi

declaration

selain

subprogram declaration

dan

constant

3.

declaration

?

Dapatkah item yang dideklarasikan dalam unit yang lain ?

package body

dibuat visible untuk desain 4. Dapatkah

package declaration

mempunyai lebih dari satu

package body

yang tergabung didalamnya ?

5. Implementasi dari desain

library

dan menejemennya tidak didefinisikan oleh bahasa pemrograman. Benar atau salah ?

6. Bagaimana kelompok dari

logical name

dari

design library locations

didefinisikan ?

dan

physical storage

7. Dapatkan sebuah

entity declaration

dan yang tergabung dalam

architecture body

memiliki nama yang sama ?

8.

Library

dan penggunaan klausa, yang pertama kali dispesifikasikan dalam design file, diaplikasikan untuk semua

subsequent

unit desain dalam file desain. Benar atau salah?

9. Apakah penggunaan klausa “use STD.TEXTIO.all;” dengan lengkap diberikan kepada semua unit desain ?

Materi

9

PACKAGE DAN LIBRARY Self-Test Excercise :

10. Tulis sebuah

package

yang berisi daya

overloaded function

, TO_INTEGER, yang dideskripsikan dalam lesson sebelumnya. Juga termasuk deklarasi komponen untuk 3-bit

up-down counter

.

11. Konteks klausa apa yang seharusnya digunakan unutk mengimport

up-down counter component declaration

yang diberikan dalam

package

yang dideskripsikan dalam pertanyaan sebelum ini ? Asumsikan behwa

package

telah dikompilasi ke

design library

dengan nama UTILITIES.

12. Konteks klausa apakah yang harus digunakan untuk mendeskripsikan

netlist

jika

package

, COMP_DECL, yang diberikan berisi semua

component declaration

.

Package

telah dikompilasi ke dalam sebuah

design library

yang dinamakan ECL.

13. Tulis sebuah

package

yang mendeklarasikan 50 value

logic type

. Tulis “or” operator fungsi logika

overloaded

yang menjalankan

type

ini.

14. Tulis

package

yang berisi deklarasi atribut timing.

15. Tulis sebuah

package

UTI:LS yang berisi dua fungsi, LARGEST dan SMALLEST.

Fungsi LARGEST mengembalikan nilai yang lebih besar dari dua bilangan integer.

Fungsi SMALLEST mengembalikan nilai yang lebih kecil dari dua bilangan integer.

….. LANJUTAN

Materi

10

KEISTIMEWAAN LEBIH LANJUT OBYEK :

Mendiskusikan beberapa keistimewaan lebih lanjut dari VHDL.

Menggunakan keistimewaan seperti pernyataan

entity

,

generate

, dan atribut

user-defined

.

Materi

10

KEISTIMEWAAN LEBIH LANJUT

• • • • • • • • • • • • •

KEY POINTS :

Deklarasi

entity

dapat berisi deklarasi dan pernyataan khusus.

Hanya pernyataan pasif yang diijinkan sebagai pernyataan Pernyataan Pernyataan

generate generate entity

.

untuk tiruan waktu elaborasi atau pernyataan

concurrent

terseleksi kondisi.

dapat mempunyai bagian deklaratif yang berisi pernyataan lokal ke pernyataan

generate

.

Alias Alias

menyatakan nama lain untuk semua atau bagian dari suatu item.

dapat dinyatakan untuk objek atau item yang bukan objek seperti

type

.

Ekspresi dengan kualifikasi adalah salah satu tipe ekspresi yang secara eksplisit disebutkan. Tidak satu konversi tipe yang menyatakan secara langsung. Hal ini berguna dalam konteks dimana tipe ekspresi dibutuhkan secara eksplisit.

Konversi tipe mengijinkan pengubahan nilai dari satu tipe ke tipe lainnya. Konversi ini hanya diperbolehkan pada tipe-tipe yang relatif berdekatan.

Jika

signal

dinyatakan sebagai suatu bus atau register dalam deklarasi

signal.

signal

, sinyal ini disebut

guarded Guarded signal

Pada

signal bus

harus berupa

resolved signal

.

jika semua driver ke sinyal terputus nilai efektifnya dihitung dengan menggunakan fungsi pemecahan tanpa driver.

Pada register

guarded signal

, jika semua driver terputus, nilai efektifnya adalah nilai sebelumnya.

Jika

guarded signal

ditetapkan sebagai nilai dibawah kontrol suatu guard dan mengalami kesalahan, driver ke sinyal akan terputus.

Materi

10

KEISTIMEWAAN LEBIH LANJUT

• • • • • • •

KEY POINTS :

Waktu putus dari sinyal disebutkan dengan menggunakan spesifikasi pemutusan.

Sebagai tambahan untuk atribut Atribut Atribut

user-defined predefined

, atribut dapat dinyatakan sendiri.

user-defined

digunakan untuk memasukkan informasi

constant

dinyatakan dengan menggunakan deklarasi ke item.

attribute

. Nilainya sesuai dengan spesifikasi atributnya.

Target dari sinyal atau variabel tetap dapat berupa target

aggregate

, sebagai kumpulan sinyal atau variabel.

Pernyataan

block

dapat digunakan untuk pemodelan hirarki. Pernyataan blok dapat dengan sendirinya memiliki map

port

dan

generic

yang akan berkomunikasi dengan sinyal di luar pernyataan

block

.

Item tertentu dengan sifat tertentu dapat dikelompokkan dalam suatu

group

. Template groupnya dinyatakan dengan menggunakan pernyataan

group template

dan item yang membentuk group disebutkan dengan menggunakan deklarasi

group

.

….. LANJUTAN

Materi

10

KEISTIMEWAAN LEBIH LANJUT Self-Test Excercise :

1.

2.

3.

4.

Statement

apakah yang diperbolehkan sebagai

enetity statement

?

Generate statement

merupakan

concurrent statement

. Benar atau salah?

Dapatkan

ganerate statement

ditulis bersamaan dengan

generate statement

yang lain ?

Loop parameter untuk skema

for-generate

dideklarasikan dengan lengkap. Deklarasi apakah yang 5.

6.

7.

8.

9.

terdapat dalam contoh berikut ?

G1 : for K in 0 to 12 generate … end generate;

Sebuah

alias

dapat dispesifikasikan untuk type. Benar atau salah ?

Apakah type-type berikut mempunyai hubungan yang dekat (sehingga

implicit conversion

dapat terjadi) ?

Type SIGNED_BIT is array (NATURAL range<>) of BIT; Type MVL is (‘X’,’0’,’1’,Z’); Type SIGNED_MVL is array (NATURAL range <>) og MVL;

Guarded signal

dapat ditentukan sebuah value yang tidak di bawah kendali

guard expression

.

Benar atau salah ?

Bagaimana memutuskan

(disconnect)

watku yang dispesifikasikan?

Dengan jalan ekspilist apakah untuk memutuskan driver ?

10. Dapatkah sebuah atribut

user-defined

yang ditentukan sebuah value menggunakan

assignment statement

?

11. Bagaimana sebuah

group

dideklarasikan ?

12. Tuliskan sebuah

concurrent assertion statement

dalam sebuah

entity declaration

dari D-type flip flop dimana akan memberikan

warning massage

jika pulsa clock kurang dari 1 ns.

Materi

10

KEISTIMEWAAN LEBIH LANJUT Self-Test Excercise :

13. Diberikan.

Type WEATHER is (WINTER,SPRING,SUMMER,MONSOON,FALL); Variable CUE: STD_LOGIC_VECTIOR(4 to 10); Apakah : WHEATHER’LEFT WHEATHER’RIGHT WHEATHER’LOW WHEATHER’ASCENDING CUE’LENGTH CUE’ASCENDING CUE’SIMPLE_NAME WHEATHER’SUCC(SUMMER) WHEATHER’PRED(WINTER) WHEATHER’LEFTOF(SPRING) WHEATHER’RIGHTOF(MONSOON) CUE’LEFT CUE’RIGHT CUE’LOW CUE’HIGH CUE’RANGE CUE’REVERSE_RANGE

….. LANJUTAN

Materi

10

KEISTIMEWAAN LEBIH LANJUT Self-Test Excercise :

14. Diberikan

signal waveform

berikut, PREZ <= ‘0’,’1’ after 5ns, ‘1’ after 11ns, ‘0’ after 14ns, ’1’ after 18 ns. ‘1’ after 22ns.

Apakah yang dilakukan

signal

PREZ’DELAYED (3 ns) PREZ’STABLE PREZ’QUIET berikut ?

Kapankah PREZ’EVENT true ?

Bagaimana PREZ’LAST_EVENT pada 17ns ?

Bagaimana PREZ’LAST VALUE pada 10ns ?

15. Kita telah menggunakan type MVL dalam suatu model. Berikutnya, kita ingin merubah semua type ke type STD_LOGIC. Jelaskan mekanisme menggunakan

alias

yang dapat kita gunakan untuk mewakili MVL menggunakan STD_LOGIC.

16. Diberikan, Type UNSIGNED is array (NATURAL range <>) og BIT Variable AX: BIT_VECTOR(0 to 3); Apakah perbedaan antara UNSIGNED(AX) dan UNSIGNED’(AX) ?

….. LANJUTAN

Materi

11

SIMULASI MODEL OBYEK :

Mendiskusikan beberapa keistimewaan lebih lanjut dari VHDL.

Menggunakan keistimewaan seperti pernyataan

entity

,

generate

, dan atribute

user-defined

.

Materi

11

SIMULASI MODEL

• • • • • •

KEY POINTS :

Sebelum memulai pemodelan, kita perlu mendefinisian kita miliki. Jika type dari

predefined type logic value

dari rangkain yang penting, kemudian kita perlu untuk mendifinsikan

type

dan operator fungsi

overloaded

dalam

package.

Sebagai gantinya, digunakan IEEE standard STD_LOGIC_1164

package

yang mendefinisikan 9-value logic type.

Dari

component library vendor declaration

untuk semua diharapkan untuk mendapat

component

dan

package

yang berisi

entity

dan

architecutre component declaration

Sebagai tambahan, kita perlu mengetahui type yang digunakan dalam pemodelan

port

.

component

.

Test bench

dapat ditulis dengan menggunakan VHDL, yaitu,

stimulus generation

mekanisme monitoring yang tersedia pada bahasa pemrograman itu sendiri.

dan

Waveform

dibangkitkan dengan menggunakan Vector yang diaplikasikan untuk

test bench signal assignment statement

.

dapat secara optional dibaca dari file teks dan dibandingkan dengan

present value

yang diharapkan pada file teks.

Materi

11

SIMULASI MODEL Self-Test Excercise :

1. Buatlah

clock

dengan periode on dan off 3ns dan 10ns .

2. Tuliskan dalam VHDL code untuk membangkitkan gelombang berikut '1' 'U' '0' 16 0 3 6 10 13 20 ns one cycle 3. Tuliskan kerangka kode yang menunjukkan cara membaca nilai dari type STD LOGIC VECTOR dari sebuah file teks.

4. Tuliskan kode VHDL untuk membangkitkan gelombang berikut, dalam signal RGB, yang dispesifikasikan dalam file teks “ckt.force”: FORCE1 0 ns FORCE0 5 ns FORCE1 12 ns FORCE0 27 ns FORCE1 32 ns

Materi

11

SIMULASI MODEL Self-Test Excercise :

5. Tuliskan kode VHDL untuk membandingkan respon yang diinginkan, dalam signal CORE, yang diberikan dalam file teks “ckt.expext”: EXPECT1 0 ns EXPECT0 5 ns EXPECT0 15 ns EXPECT1 27 ns EXPECT0 32 ns 6. Tuliskan sebuah

test bench

untuk rangkaian

adder

. Nilai set untuk input disediakan dalam

test bench

itu sendiri sebagai

array of records

.

7. Tuliskan sebuah

test bench

untuk comparator ALU. Nilai input disediakan dalam file teks dan berbentuk : 101 000 011 110 110 110 00 01 11 FALSE TRUE FALSE 000 111 111 000 10 11 FALSE TRUE Dua yang pertama merupakan nilai

operand

, nilai ketiga merupakan

opcode

dan nilai keempat merupakan hasil yang diharapkan.

8. Tuliskan sebuah

test bench

untuk problem 1101

sequence detector

yang diberikan pada Lesson 3.

Sediakan input

sequence

dan nilai yang diharapkan (expected value) sebagai array dalam

bench

. Juga cetak beberapa nilai yang

mismatch

untuk output.

test

….. LANJUTAN

Materi

12

CONTOH HARDWARE MODELING OBYEK :

Menerapkan keistimewaan bahasa pemrograman untuk memodelkan hardware yang sesungguhnya.

Materi

12

CONTOH HARDWARE MODELING

• • • • • • • • •

KEY POINTS :

Interface dari sebuah desain dimodelkan menggunakan

architecture body

mendeskripsikan desain internal.

Wire

dapat dimodelkan menggunakan

Signal signal

.

entity declaration

. Sebuah dapat juga digunakan untuk memodelkan flip-flop, sebagai contoh, ketika diberikan

control clock

.

Generate statement

sangat berguna dalam pemodelan

repetitive logic

.

Hati-hati ketika membaca dan menentukan nilai pada

signal

dalam proses.

Signal

mendapatkan nilai setelah delay, tidak langsung. Gunakan variable sebagai temporari ketika dibutuhkan.

Kita dapat mencampur tiga style model utama dalam beberapa cara untuk membuat model yang kita desain.

Gunakan

transport delay State machine

untuk memodelkan

pure wire delay

.

dapat dimodelkan dengan menggunakan

case statement statement.

Memory dapat dimodelkan sebagai variable 2-dimensi.

dalam

process

Materi

12

CONTOH HARDWARE MODELING Self-Test Excercise :

1. Deskripsikan 8-bit register dengan menggunakan D-flip-flop. Deskripsikan D-flip-flop menggunakan konstruksi behavioral.

2. Tuliskan sebuah model VHDL untuk dekoder logika BCD to 7-segment menggunakan pernyataan

signal assignment

terpilih.

3. Tuliskan model behavior untuk flip-flop dengan

synchronous preset

dan

clear

.

4. Tuliskan sebuah model VHDL untuk 4-bit shift register dengan serial-in, paralel in, clock dan parallel-out.

5. Tuliskan model VHDL untuk

drink machine

yang dapat mengeluarkan jus mangga dengan harga 15 sent. Hanya nikel dan

dimes

yang diterima. Setiap kembalian harus dikembalikan.