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.