Anda di halaman 1dari 60
VHDL RANC. SISTEM ELEKTRONIKA
VHDL
RANC. SISTEM ELEKTRONIKA

Oleh :

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

PENGANTAR
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,

MATERI  Pengantar  Materi 1 Pendahuluan  Materi 2 Tutorial  Materi 3 Elemen Dasar
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
Materi 1 PENDAHULUAN
Materi 1
PENDAHULUAN
Materi 1 PENDAHULUAN OBYEK : Menjelaskan tentang sejarah VHDL. Menjelaskan tentang kemampuan utama dari VHDL. Menyimpulkan
OBYEK :
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 . •
Materi 2 PENDAHULUAN
Materi 2
PENDAHULUAN
KEY POINTS : •
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 menyatakan interface dari rancangan. Internal view 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 external view yang berbeda. Tiap external view dan salah satu darinya berkaitan dengan internal view, yang secara bersama-sama merupakan representasi tertentu dari device, disebut dengan entity design.

Materi 1 PENDAHULUAN
Materi 1
PENDAHULUAN
Self-Test Excercise :
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 ?

Materi 2 T U T O R I A L
Materi 2
T U T O R I A L
Materi 2 T U T O R I A L OBYEK : Mendiskusikan sifat/ciri pemodelan utama
OBYEK :
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
Materi 2
T U T O R I A L
KEY POINTS : •
KEY POINTS :
Materi 2 T U T O R I A L KEY POINTS : • Entity saat

Entity saat digunakan dalam entity lainnya menjadi komponen bagi entity tersebut.

Unit-unit desain untuk menggambarkan entity: entity declaration, architecture body, configuration declaration, package declaration, dan package body. Entity declaration menyatakan interface dari entity.

Architecture body menggambarkan internal view dari entity dengan menggunakan style sequential behavior, dataflow, structure atau mixed. Configuration declaration menyatakan hirarki dari rancangan. Package declaration dan package body 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 berisi satu set komponen yang saling berhubungan.

Komponen dinyatakan menggunakan component declaration dan dihubungkan menggunakan signal. Pernyataan concurrent signal assignment digunakan untuk menggambarkan fungsi dari entity dengan menggunakan dataflow style. Ekspresi pada sisi sebelah kanan dari concurrent signal assignment dikomputasi setiap ada event pada signal 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 process declaration, yang dieksekusi secara sekuensial dalam zero time.

Materi 2 T U T O R I A L KEY POINTS : • Pernyataan process
Materi 2 T U T O R I A L KEY POINTS : •
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 event dalam signal manapun pada sensitivity list. Jika pernyataan process mempunyai pernyataan wait, proses akan meresume eksekusi setelah kondisi tunda dipenuhi atau interval time-out dilewati. Variable dapat dinyatakan dalam proses dan subprogram. Signal tidak dapat dinyatakan dalam proses atau subprogram. 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 digunakan untuk menyebutkan hirarki dari entity. Hal ini menyatakan architecture body 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
Materi 2 T U T O R I A L KEY POINTS :
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. Sebutkan lima
Materi 2
T U T O R I A L
Self-Test Excercise :
1.
Sebutkan lima macam unit desain.
  • 2. Unit desain yang mana yang digunakan untuk menggambarkan fungsi internal atau struktur dari desain ?

  • 3. Pernyataan concurrent primer manakah yang digunakan untuk menggambarkan style structural dari suatu desain ?

  • 4. Dapatkah suatu variabel dinyatakan di luar proses ?

  • 5. Apakah shared variable itu ?

  • 6. Bagaimanakah port komponen dan sinyal dihubungkan ?

  • 7. Dua hal apakah yang dapat menyebabkan tertundanya suatu proses ?

  • 8. Dapatkah deklarasi 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 style dataflow, tulislah model VHDL untuk logika exclusive-or.

Delay diberikan sebagai berikut.

Materi 2 T U T O R I A L
Materi 2
T U T O R I A L
Self-Test Excercise :
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
Materi 3
ELEMEN DASAR BAHASA
Materi 3 ELEMEN DASAR BAHASA OBYEK : Menerangkan dasar dari bahasa VHDL Menjelaskan: type, operation dan
OBYEK :
OBYEK :
  • Menerangkan dasar dari bahasa VHDL

  • Menjelaskan: type, operation dan identifiers.

Materi 3 ELEMEN DASAR BAHASA KEY POINTS :
Materi 3
ELEMEN DASAR BAHASA
KEY POINTS :
Materi 3 ELEMEN DASAR BAHASA KEY POINTS : • Dua jenis identifier : basic identifier dan

Dua jenis identifier: basic identifier dan extended identifier. Extended identifier ditulis diantara backslash serta merupakan case sensitive. Comment dapat dimulai dimana saja pada suatu baris; diawali dengan dua garis putus-putus serta berakhir pada akhir baris. Keyword merupakan reserved word dan tidak dapat digunakan sebagai identifier. Klasifikasi data object: constant, signal, variable dan file. Object declaration menyatakan klasifikasi data object; 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 dengan suatu constraint. Predefined operator yang ada: logical, relational, shift, adding, multiplying dan miscellaneous operator.

Materi 3 ELEMEN DASAR BAHASA
Materi 3
ELEMEN DASAR BAHASA

Self-Test Excercise :

  • 1. Type manakah yang merupakan composite type ?

  • 2. Apakah extended identifier \wait\ berbeda dengan keyword wait ?

  • 3. Apakah based literal 2#101_110# suatu integer literal ?

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

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

  • 6. Apakah operasi yang diijinkan pada type juga sama halnya dengan pada semua subtype-nya ?

  • 7. Apakah unconstrained array type itu ?

  • 8. Apakah 0010suatu literal dari type BIT_VECTOR atau STRING ?

  • 9. Manakah dari berikut ini yang merupakan basic identifier, extended identifier, keyword dan illegal identifier:

_wait

CL_CK

\-----------\

ABCDeF _TEMP

\? ______\

\block\

1 hot

_01

A+1

ACK

report

end

WHY NOT ME

  • 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.

Materi 3 ELEMEN DASAR BAHASA Self-Test Excercise : 14.
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.

17.

18.

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 ?

Apakah perbedaan antara array dengan record ?

Apakah perbedaan antara type unconstrained array dan constrained array ? Pada kondisi bagaimanakah lebih diinginkan menggunakan type unconstrained array dibandingkan type constrained array ?

19.

20.

21.

22.

23.

24.

25.

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 ?

Nyatakanlah array tiga dimensi di atas sebagai unconstrained array. Kemudian sebutkan dimensinya dalam pernyataan untuk variable.

Dapatkah array multi-dimensi menjadi constrained parsial ?

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.

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.

Apakah operator + dan - telah ditentukan pada type BIT_VECTOR ?

Apakah type kembali untuk semua operator predefined relational ?

… ..

LANJUTAN

Materi 3 ELEMEN DASAR BAHASA
Materi 3
ELEMEN DASAR BAHASA
Self-Test Excercise : 26.
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

 

dari signal record diakses ?

28.

Type declaration

yang

diberikan :

type

MLV

is

(„X‟, „0‟, „1‟, „Z‟);

Nyatakanlah subtype dengan nilai hanya „X‟, „0‟, „1.

… ..

LANJUTAN

Materi 4 BEHAVIORAL MODELING
Materi 4
BEHAVIORAL MODELING
Materi 4 BEHAVIORAL MODELING OBYEK : Ž Mendiskusikan model behavioral style yang mendukung VHDL. Ž Mendemonstrasikan
OBYEK :
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 : •
Materi 4
BEHAVIORAL MODELING
KEY POINTS :

Materi 4 BEHAVIORAL MODELING KEY POINTS : • • • • • • Process statement memodelkan

Process statement memodelkan behavioral sekuensial. Process statement adalah pernyataan concurrent yang ada di dalam architecture body. Pernyataan sekuensial berada dalam process statement . Contoh dari pernyataan sekuensial: if statement, case statement, dan variable assigment statement. Process statement dapat berupa state tertunda atau yang sedang dieksekusi. Penangguhan process statement terjadi ketika terdapat sensitivity list 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 wait statement, maka proses tidak dapat mempunyai sensitivity list. Jika process statement mempunyai wait statement, maka proses ditangguhkan ketika wait statement dijalankan. Ketika kondisi tunda sudah terpenuhi atau time out 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.

Proses selalu dijalankan dalam waktu nol.

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

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 ?
Materi 4
BEHAVIORAL MODELING
Self-Test Excercise :
1.
Dapatkah nilai keluaran port dibaca ?
  • 2. Sebutkan tiga pernyataan concurrent yang terdapat dalam architecture body ?

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

  • 4. Berapa banyak architecture body yang dapat dimiliki oleh sebuah entity ?

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

  • 6. Kapankah sebuah proses pertama kali dieksekusi ?

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

  • 8. Apakah perbedaan antara variable assignment dan signal assignment ?

  • 9. 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 ?

Materi 4 BEHAVIORAL MODELING Self-Test Excercise : 15.
Materi 4
BEHAVIORAL MODELING
Self-Test Excercise :
15.

Tulislah model VHDL dengan menggunakan pernyataan proses state machine berikut ini :

Masukan (GAK)

Kondisi Sekarang

Kondisi berikutnya

Keluaran (ZUK)

  • 0 NO_ONE

NO_ONE

0

  • 1 NO_ONE

ONE_ONE

0

  • 0 ONE_ONE

    • 1 ONE_ONE

NO_ONE

TWO_ONE

0

0

  • 0 TWO_ONE

    • 1 TWO_ONE

  • 0 THREE_ONE

    • 1 THREE_ONE

NO_ONE

THREE_ONE

NO_ONE

THREE_ONE

0

1

0

1

16.

17.

18.

19.

Tulislah pernyataan masukan (asserted statement) yang memeriksa bahwa sinyal CLK tidak pernah mempunyai harga 'Z'.

Apakah default dari tingkat kekerasan (severity level) jika tidak terdapat ekspresi kekerasan pada pernyataan yang dimasukkan ?

Jelaskan sifat dari flip flop JK menggunakan pernyataan proses !

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
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
Materi 4
BEHAVIORAL MODELING
Self-Test Excercise : 25.
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
Materi 5
DATAFLOW MODELING
Materi 5 DATAFLOW MODELING OBYEK : • Mendemonstrasikan dan mengerti tentang model dataflow . • Menggunakan
OBYEK :
OBYEK :

Mendemonstrasikan dan mengerti tentang model dataflow . Menggunakan pernyataan concurrent signal dan block.

Materi 5 DATAFLOW MODELING
Materi 5
DATAFLOW MODELING
Materi 5 DATAFLOW MODELING KEY POINTS : • Dataflow behavior digambarkan dengan menggunakan pernyataan concurrent signal
KEY POINTS :
KEY POINTS :

Dataflow behavior digambarkan dengan menggunakan pernyataan concurrent signal assignment. Pernyataan concurrent signal assignment mempunyai syntax yang sama dengan pernyataan signal assignment yang terdapat pada pernyataan proses. Tetapi pernyataan concurrent signal assignment 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 dapat dituliskan dalam architecture body pada urutan manapun. Pernyataan dieksekusi berdasarkan event yang muncul pada 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 terpilih juga merupakan pernyataan serempak; memiliki sifat yang sama dengan case statement. Nilai yang tidak dapat dipengaruhi dapat dipergunakan untuk sinyal untuk mengidentifikasikan tidak ada perubahan pada harga driver.

Materi 5 DATAFLOW MODELING
Materi 5
DATAFLOW MODELING
Materi 5 DATAFLOW MODELING KEY POINTS : • Pernyataan block adalah pernyataan concurrent . Dapat digunakan
KEY POINTS :
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 Self-Test Excercise : 1. Tulislah pernyataan masukan konkuren (concurrent assertion statement) yang
Materi 5
DATAFLOW MODELING
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 !
2.
Apakah sinyal implisit GUARD ?
3.
Jika terdapat guard expression dalam pernyataan blok, pernyataan apa yang dipengaruhi ini ?
4.
Dapatkah variabel dan sinyal dideklarasikan dalam blok bagian deklaratif ?
5.
Dapatkah pernyataan blok memiliki pernyataan proses ?
6.
Lihatlah Fragmen kode berikut. Sinyal manakah yang memerlukan fungsi resolusi ?
architecture …
begin

end;

P1: process () begin

ACK <= RDY <= … … RDY <=

end process; P2: process () begin

RESET <= ACK <=

end process; RESET <=

Materi 5 DATAFLOW MODELING Self-Test Excercise : 7.
Materi 5
DATAFLOW MODELING
Self-Test Excercise :
7.

Apakah perbedaan kunci antara pernyataan concurrent signal assignment dan sequential signal assignment ?

8.

Tulislah model dataflow untuk rangkaian multiplekser 4 X 1 seperti gambar 5.1 !

A 3ns B 3ns Z 5ns C 3ns D 3ns S0 1ns S1
A
3ns
B
3ns
Z
5ns
C
3ns
D
3ns
S0
1ns
S1

1ns

9.

Gambar 5.1. Rangkaian multiplekser 4 X 1

Tulislah model aliran data untuk flip flop tipe D latch seperti gambar 5.2 !

D Q CK Q
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 ?
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 didrive 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 30 ns
0
2
5
10
15 16
17
22
23
27
30 ns

RAW <= transport CLEAR after 3 ns SAW <= reject 4 ns inertial CLEAR

after 5 ns

… ..

LANJUTAN

Materi 5 DATAFLOW MODELING Self-Test Excercise : 17.
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
Materi 6
STRUCTURAL MODELING
Materi 6 STRUCTURAL MODELING OBYEK : • Penulisan model struktural. • Mendeskripsikan pernyataan dan deklarasi component
OBYEK :
OBYEK :

Penulisan model struktural. Mendeskripsikan pernyataan dan deklarasi component. Mendiskusikan bagaimana sinyal digunakan untuk menghubungkan component yang berbeda.

Materi 6 STRUCTURAL MODELING
Materi 6
STRUCTURAL MODELING
Materi 6 STRUCTURAL MODELING KEY POINTS : • Pernyataan component instantiation adalah pernyataan serempak ( concurrent
KEY POINTS :
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
Materi 6
STRUCTURAL MODELING
Self-Test Excercise : 1.
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.

6.

7.

8.

Dapatkah kata kunci open digunakan hanya untuk port input ?

Jenis port aktual manakah yang dapat menjadi ekspresi ?

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

dispesifikasikan ?

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
Materi 7
GENERIC DAN CONFIGURATION
Materi 7 GENERIC DAN CONFIGURATION OBYEK : Mendemonstrasikan pemakaian pasangan entity-architecture . Mendiskusikan generic dan penggunaannya
OBYEK :
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
Materi 7 GENERIC DAN CONFIGURATION KEY POINTS :
Materi 7
GENERIC DAN CONFIGURATION
KEY POINTS :

Generic dipergunakan untuk melewatkan informasi konstan ke entity. Nilai dari generic dapat diletakkan pada beberapa tempat, seperti dalam map generic pada statement component instantiation, dalam spesifikasi konfigurasi, dalam deklarasi generic dari deklarasi komponen, atau dalam deklarasi generic pada deklarasi entity. Configuration dapat menyatakan hubungan antara komponen dan pasangan entity-architecture. Configuration dapat disebutkan dengan menggunakan spesifikasi atau deklarasi configuration. Spesifikasi configuration disebutkan dalam architecture body, block, atau generate statement, dan digunakan untuk menyebutkan kumpulan komponen ke pasangan entity-architecture. Pernyataan configuration adalah unit desain yang terpisah, jadi dapat dikompilasi terpisah. Ini juga menyebutkan contoh ke pasangan entity-architecture. Dapat juga digunakan untuk menyebutkan hirarki 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 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 dengan nama sama seperti komponen mesti ditempatkan pada working library. Port dan nama generic harus mempunyai nama yang sesuai. Fungsi konversi dapat digunakan jika tipe dari port komponen tidak sesuai dengan tipe port entity. Dalam architecture body, pemisalan komponen, entity atau configuration dapat juga digunakan langsung. Ikatan antara port dan generic 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 ?
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 generic gerbang XOR dan perlihatkan bagaimana generic dapat dilewatkan dengan menggunakan peta generic pemisalan komponen ?

  • 4. Dapatkah namanama port berbeda dalam satu komponen dan satu entity yang terbatas ?

  • 5. Manakah dari halhal 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 aturanaturan ikatan standar menunjukkan portport antara satu komponen dan satu entity oleh nama ataukah oleh posisi ?

    • 10. Kapankah fungsifungsi konversi diperlukan ?

Materi 7 GENERIC DAN CONFIGURATION
Materi 7
GENERIC DAN CONFIGURATION
Self-Test Excercise : 11.
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 hargaharga delay dengan menggunakan generic !

13.

Disini terdapat deklarasi komponen dari 2 masukan gerbang AND yang menggunakan tipe MVL untuk portportnya. 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
Materi 8
SUBPROGRAM DAN OVERLOADING
Materi 8 SUBPROGRAM DAN OVERLOADING OBYEK : Menjelaskan fungsi dan prosedur. Mendemonstrasikan penggunaan operator overloading subprogram.
OBYEK :
OBYEK :
  • Menjelaskan fungsi dan prosedur.

  • Mendemonstrasikan penggunaan operator overloading subprogram.

Materi 8 SUBPROGRAM DAN OVERLOADING
Materi 8
SUBPROGRAM DAN OVERLOADING
Materi 8 SUBPROGRAM DAN OVERLOADING KEY POINTS : • Subprogram berupa fungsi atau prosedur. • Fungsi
KEY POINTS :
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 pure atau impure. Fungsi pure 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
Materi 8
SUBPROGRAM DAN OVERLOADING
Materi 8 SUBPROGRAM DAN OVERLOADING KEY POINTS : • Prosedur Call concurrent dijalankan setiap kali terdapat
KEY POINTS :
KEY POINTS :

Prosedur Call concurrent dijalankan setiap kali terdapat event pada signal sehubungan dengan parameter formalnya dengan mode in atau inout. 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 call dapat digunakan untuk operator overload atau non- overload. 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
Materi 8
SUBPROGRAM DAN OVERLOADING
Self-Test Excercise : 1.
Self-Test Excercise :
1.

Dapatkah suatu fungsi tidak mempunyai parameter input ?

2.

3.

4.

5.

Termasuk fungsi pure atau impure jika tidak terdapat keyword eksplisit yang disebutkan pada spesifikasi fungsi ?

Dapatkah prosedur Call concurrent memiliki pernyataan wait ?

Dapatkah prosedur memiliki peryataan return ?

Bagaimana variabel dideklarasikan dalam subprogram berbeda dengan dalam proses ?

6.

7.

8.

9.

Bagaimana perbedaan fungsi call dengan prosedur call ?

Pentingkah selalu dinyatakan suatu subprogram ?

Kapankah dua subprogram dikatakan overload ?

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 “subprogram not declared,” apakah yang menjadi penyebabnya ?

  • 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 ?

Materi 8 SUBPROGRAM DAN OVERLOADING
Materi 8
SUBPROGRAM DAN OVERLOADING
Self-Test Excercise : 15.
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.

17.

18.

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.

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.

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.

20.

Dapatkah prosedur call sekuensial selalu digunakan sebagai prosedur call concurrent ?

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
Materi 9
PACKAGE DAN LIBRARY
Materi 9 PACKAGE DAN LIBRARY OBYEK : Menjelaskan konsep desain library . Menghubungkan item dalam suatu
OBYEK :
OBYEK :
  • Menjelaskan konsep desain library.

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

Materi 9 PACKAGE DAN LIBRARY
Materi 9
PACKAGE DAN LIBRARY
Materi 9 PACKAGE DAN LIBRARY KEY POINTS : • Package menyediakan tempat untuk menyimpan pernyataan yang
KEY POINTS :
KEY POINTS :

Package menyediakan tempat untuk menyimpan pernyataan yang sering digunakan. Package digambarkan oleh pernyataan package dan pilihan package body. Pernyataan package dapat berisi bermacam-macam pernyataan, seperti pernyataan constant, type dan subtype, dan component. Package body dibutuhkan jika pernyataan package 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 package dan dapat digunakan pada unit desain lainnya dengan menggunakan klausa. Package body dapat berisi pernyataan selain pernyataan subprogram dan constant. Meski demikian, hal ini tidak dapat digunakan oleh unit desain lainnya. 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
Materi 9
PACKAGE DAN LIBRARY
KEY POINTS :
KEY POINTS :

Host environment harus menyediakan semua nomor library desain. Sebelum kompilasi dilakukan, salah satu dari library desain harus dirancang sebagai working library, dengan nama logika WORK. Package STD_LOGIC_1164 berisi sembilan nilai tipe logika dan operator fungsi overloadnya. 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 entity harus dikompilasi lebih dulu sebelum architecture body dapat dikompilasi. 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
Materi 9
PACKAGE DAN LIBRARY
Self-Test Excercise : 1.
Self-Test Excercise :
1.

Dapatkah package declaration berisi subprogram body ?

2.

Dapatkah package body berisi declaration selain subprogram declaration dan constant declaration ?

3.

unit

Dapatkah item yang dideklarasikan dalam package body dibuat visible untuk desain

4.

5.

6.

7.

8.

yang lain ?

Dapatkah package declaration mempunyai lebih dari satu package body yang tergabung didalamnya ?

Implementasi dari desain library dan menejemennya tidak didefinisikan oleh bahasa pemrograman. Benar atau salah ?

Bagaimana kelompok dari logical name dari design library dan physical storage locations didefinisikan ?

Dapatkan sebuah entity declaration dan yang tergabung dalam architecture body memiliki nama yang sama ?

Library dan penggunaan klausa, yang pertama kali dispesifikasikan dalam design file, diaplikasikan untuk semua subsequent unit desain dalam file desain. Benar atau salah?

Materi 9 PACKAGE DAN LIBRARY
Materi 9
PACKAGE DAN LIBRARY
Self-Test Excercise : 10.
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.

12.

13.

14.

15.

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.

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.

Tulis sebuah package yang mendeklarasikan 50 value logic type. Tulis “or” operator fungsi logika overloaded yang menjalankan type ini.

Tulis package yang berisi deklarasi atribut timing.

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
Materi 10
KEISTIMEWAAN LEBIH LANJUT
Materi 10 KEISTIMEWAAN LEBIH LANJUT OBYEK : Mendiskusikan beberapa keistimewaan lebih lanjut dari VHDL. Menggunakan keistimewaan
OBYEK :
OBYEK :
  • Mendiskusikan beberapa keistimewaan lebih lanjut dari VHDL.

  • Menggunakan keistimewaan seperti pernyataan entity, generate, dan atribut user-defined.

Materi 10 KEISTIMEWAAN LEBIH LANJUT
Materi 10
KEISTIMEWAAN LEBIH LANJUT
Materi 10 KEISTIMEWAAN LEBIH LANJUT KEY POINTS : • Deklarasi entity dapat berisi deklarasi dan pernyataan
KEY POINTS :
KEY POINTS :

Deklarasi entity dapat berisi deklarasi dan pernyataan khusus. Hanya pernyataan pasif yang diijinkan sebagai pernyataan entity. Pernyataan generate untuk tiruan waktu elaborasi atau pernyataan concurrent terseleksi kondisi. Pernyataan generate dapat mempunyai bagian deklaratif yang berisi pernyataan lokal ke pernyataan generate. Alias menyatakan nama lain untuk semua atau bagian dari suatu item. Alias 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, sinyal ini disebut guarded signal. Guarded signal harus berupa resolved signal. Pada signal bus 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
Materi 10
KEISTIMEWAAN LEBIH LANJUT
Materi 10 KEISTIMEWAAN LEBIH LANJUT KEY POINTS : • Waktu putus dari sinyal disebutkan dengan menggunakan
KEY POINTS :
KEY POINTS :

Waktu putus dari sinyal disebutkan dengan menggunakan spesifikasi pemutusan. Sebagai tambahan untuk atribut predefined, atribut dapat dinyatakan sendiri. Atribut user-defined digunakan untuk memasukkan informasi constant ke item. Atribut user-defined dinyatakan dengan menggunakan deklarasi 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. Statement apakah yang diperbolehkan sebagai enetity statement
Materi 10
KEISTIMEWAAN LEBIH LANJUT
Self-Test Excercise :
1.
Statement apakah yang diperbolehkan sebagai enetity statement ?
  • 2. Generate statement merupakan concurrent statement. Benar atau salah?

  • 3. Dapatkan ganerate statement ditulis bersamaan dengan generate statement yang lain ?

  • 4. Loop parameter untuk skema for-generate dideklarasikan dengan lengkap. Deklarasi apakah yang terdapat dalam contoh berikut ? G1 : for K in 0 to 12 generate end generate;

  • 5. Sebuah alias dapat dispesifikasikan untuk type. Benar atau salah ?

  • 6. 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;

  • 7. Guarded signal dapat ditentukan sebuah value yang tidak di bawah kendali guard expression. Benar atau salah ?

  • 8. Bagaimana memutuskan (disconnect) watku yang dispesifikasikan?

  • 9. 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 ?

Materi 10 KEISTIMEWAAN LEBIH LANJUT Self-Test Excercise : 13. Diberikan.
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
Materi 10
KEISTIMEWAAN LEBIH LANJUT
Self-Test Excercise : 14.
Self-Test Excercise :
14.

Diberikan signal waveform berikut, PREZ <= 0‟,‟1after 5ns, 1after 11ns, 0after 14ns, 1after 18 ns. 1after 22ns. Apakah yang dilakukan signal berikut ? PREZ‟DELAYED (3 ns) PREZ‟STABLE

PREZ‟QUIET Kapankah PREZ‟EVENT true ? Bagaimana PREZ‟LAST_EVENT pada 17ns ? Bagaimana PREZ‟LAST VALUE pada 10ns ?

15.

16.

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.

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
Materi 11
SIMULASI MODEL
Materi 11 SIMULASI MODEL OBYEK : Mendiskusikan beberapa keistimewaan lebih lanjut dari VHDL. Menggunakan keistimewaan seperti
OBYEK :
OBYEK :
  • Mendiskusikan beberapa keistimewaan lebih lanjut dari VHDL.

  • Menggunakan keistimewaan seperti pernyataan entity, generate, dan atribute user-defined.

Materi 11 SIMULASI MODEL
Materi 11
SIMULASI MODEL
Materi 11 SIMULASI MODEL KEY POINTS : • Sebelum memulai pemodelan, kita perlu mendefinisian logic value
KEY POINTS :
KEY POINTS :

Sebelum memulai pemodelan, kita perlu mendefinisian logic value dari rangkain yang kita miliki. Jika type dari predefined type 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 diharapkan untuk mendapat entity dan architecutre declaration untuk semua component dan package yang berisi component declaration. Sebagai tambahan, kita perlu mengetahui type yang digunakan dalam pemodelan port component. Test bench dapat ditulis dengan menggunakan VHDL, yaitu, stimulus generation dan mekanisme monitoring yang tersedia pada bahasa pemrograman itu sendiri. Waveform dibangkitkan dengan menggunakan signal assignment statement. Vector yang diaplikasikan untuk test bench dapat secara optional dibaca dari file teks dan dibandingkan dengan present value yang diharapkan pada file teks.

Materi 11 SIMULASI MODEL
Materi 11
SIMULASI MODEL
Self-Test Excercise : 1.
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 13 20 ns 10 one
'1'
'U'
'0'
16
0
3
6
13
20 ns
10
one

cycle

3.

4.

Tuliskan kerangka kode yang menunjukkan cara membaca nilai dari type STD LOGIC VECTOR dari sebuah file teks.

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

6.

7.

EXPECT0

32 ns

Tuliskan sebuah test bench untuk rangkaian adder. Nilai set untuk input disediakan dalam test

bench itu sendiri sebagai array of records.

Tuliskan sebuah test bench untuk comparator ALU. Nilai input disediakan dalam file teks dan berbentuk :

101

000

011

000

111

110

110

110

111

000

00

01

11

10

11

FALSE

TRUE

FALSE

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 test

bench. Juga cetak beberapa nilai yang mismatch untuk output.

… ..

LANJUTAN

Materi 12 CONTOH HARDWARE MODELING
Materi 12
CONTOH HARDWARE MODELING
Materi 12 CONTOH HARDWARE MODELING OBYEK : Menerapkan keistimewaan bahasa pemrograman untuk memodelkan hardware yang sesungguhnya.
OBYEK :
OBYEK :

Menerapkan keistimewaan bahasa pemrograman untuk memodelkan

hardware yang sesungguhnya.

Materi 12 CONTOH HARDWARE MODELING
Materi 12
CONTOH HARDWARE MODELING
KEY POINTS :
KEY POINTS :

Interface dari sebuah desain dimodelkan menggunakan entity declaration. Sebuah architecture body mendeskripsikan desain internal. Wire dapat dimodelkan menggunakan signal. Signal 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 untuk memodelkan pure wire delay. State machine dapat dimodelkan dengan menggunakan case statement dalam process statement. Memory dapat dimodelkan sebagai variable 2-dimensi.

Materi 12 CONTOH HARDWARE MODELING
Materi 12
CONTOH HARDWARE MODELING
Self-Test Excercise :
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.