Anda di halaman 1dari 22

TUGAS 7

”VHDL”
MK SISTEM TERTANAM
SEMESTER GENAP 2020/2021

Disusun Oleh:
Naufal Saifullah Kamal Al Majid NRP.10511810000024
Dosen Pengampu :
Dwi Oktavianto Wahyu Nugroho, S.T.,M.T.

DEPARTEMEN TEKNIK INSTRUMENTASI


FAKULTAS VOKASI
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
2021
BAB I
Alur Desain FPGA

Entri Desain

Hardware Description Language


Hardware Description Language atau HDL adalah bahasa apa pun untuk deskripsi dan
desain sirkuit elektronik, dan yang paling umum, logika digital. Ini dapat menggambarkan operasi
sirkuit, desain dan organisasinya, dan tes untuk memverifikasi operasinya melalui simulasi. Ada
dua tujuan utama bahasa deskripsi perangkat keras yaitu:
1. Pemodelan Sirkuit Digital: Memiliki model sirkuit memungkinkan untuk simulasi dan
pengujian desain untuk operasi yang tepat.
2. Bahasa deskripsi perangkat keras digunakan sebagai salah satu langkah pertama dalam
membuat sirkuit terintegrasi digital besar.
HDL untuk desain sircuits analog
Singkatan Nama Menggunakan
AHDL Analog Hardware Descriptive bahasa deskripsi perangkat keras
Language analog terbuka
Verilog-AMS Verilog for Analog and Mixed- standar terbuka memperluas Verilog
Signal untuk analog dan simulasi analog /
digital campuran
HDL untuk desain sircuits digital
Dua varietas HDL yang paling banyak digunakan dan didukung dengan baik yang
digunakan dalam industri adalah Verilog dan VHDL.
Singkatan Nama Menggunakan
ABEL Advanced Boolean Bahasa deskripsi perangkat keras untuk
Expression Language mengimplementasikan ekspresi Boolean
AHDL Altera HDL Bahasa kepemilikan dari Altera
Verilog verification logics HDL yang paling banyak digunakan dan
didukung dengan baik
HDL untuk desain Printed Circuit Board (PCB)
Singkatan Nama Menggunakan
PHDL PCB HDL HDL gratis dan open source untuk menentukan
konektivitas papan sirkuit tercetak
"V" dalam VHDL adalah singkatan dari singkatan lain: VHSIC atau Sirkuit Terintegrasi
Berkecepatan Sangat Tinggi. HDL adalah singkatan dari Hardware Description Language. VHDL
adalah bahasa pemrograman yang memungkinkan seseorang untuk memodelkan dan
mengembangkan sistem digital yang kompleks dalam lingkungan yang dinamis. VHDL ditujukan
untuk sintesis sirkuit serta simulasi sirkuit. Motivasi mendasar untuk menggunakan VHDL (atau
pesaingnya, Verilog) adalah bahwa VHDL adalah bahasa standar, teknologi / vendor independen,
dan karena itu portabel dan dapat digunakan kembali. Dua aplikasi langsung utama VHDL ada di
file yaitu pada bidang Perangkat Logika yang Dapat Diprogram (termasuk CPLD dan FPGA) dan
di bidang ASIC (Sirkuit Terpadu Khusus Aplikasi).
Setelah kode VHDL ditulis, itu dapat digunakan baik untuk mengimplementasikan
rangkaian dalam perangkat yang dapat diprogram (dari Altera, Xilinx, Atmel, dll.) Atau dapat
dikirim ke pengecoran untuk pembuatan chip ASIC. Saat ini, banyak chip komersial yang
kompleks (mikrokontroler, misalnya) dirancang menggunakan pendekatan semacam itu.
Design Flow
• Memulai desain dengan menulis kode VHDL, yang disimpan dalam file dengan ekstensi .vhd
dan nama yang sama dengan nama ENTITY-nya.
• Langkah pertama dalam proses sintesis adalah kompilasi. Kompilasi adalah konversi bahasa
VHDL tingkat tinggi, yang menggambarkan rangkaian di Register Transfer Level (RTL),
menjadi netlist di tingkat gerbang.
• Langkah kedua adalah optimasi, yang dilakukan pada netlist level gerbang untuk kecepatan
atau untuk area. Pada tahap ini, desain dapat disimulasikan.
• Terakhir, software place and-route (fitter) akan menghasilkan layout fisik untuk chip PLD /
FPGA atau akan menghasilkan mask untuk ASIC.
Struktur Kode VHDL
Seperti yang digambarkan pada gambar berikut, bagian kode VHDL yang berdiri sendiri
terdiri dari setidaknya tiga bagian dasar:

1. Deklarasi Library
Berisi daftar semua pustaka yang akan digunakan dalam desain. Misalnya: ieee, std, work,
dll. Perpustakaan adalah kumpulan potongan kode yang umum digunakan. Menempatkan
potongan-potongan seperti itu di dalam perpustakaan memungkinkan mereka untuk
digunakan kembali atau dibagikan oleh desain lain. Untuk mendeklarasikan perp (yaitu, untuk
membuatnya terlihat oleh desain) diperlukan dua baris kode, satu berisi nama pustakaan, dan
yang lainnya klausa penggunaan, seperti yang ditunjukkan dalam sintaks di bawah ini.

Setidaknya tiga paket, dari tiga pustaka yang berbeda, biasanya dibutuhkan dalam sebuah
desain:
- ieee.std_logic_1164 (dari perpustakaan ieee),
- standar (dari perpustakaan std), dan
- kerja (perpustakaan kerja).
Deklarasi mereka adalah sebagai berikut:

2. Entity
Entity adalah daftar dengan spesifikasi semua pin input dan output (PORTS) dari
rangkaian. Sintaksnya ditampilkan di bawah ini.

Mode sinyal bisa IN, OUT, INOUT, atau BUFFER. IN dan OUT benar-benar pin searah,
sedangkan INOUT adalah dua arah. BUFFER, di sisi lain, digunakan ketika sinyal keluaran
harus digunakan (dibaca) secara internal. Jenis sinyal bisa BIT, STD_LOGIC, INTEGER, dll.
Mari kita perhatikan gerbang NAND. ENTITY-nya dapat ditentukan sebagai:

Arti ENTITY di atas adalah Rangkaian ini memiliki tiga pin I / O, menjadi dua input (a
dan b, mode IN) dan satu output (x, mode OUT). Ketiga sinyal tersebut berjenis BIT. Nama
yang dipilih untuk entitas tersebut adalah nand_gate.
3. Arcitecture
Arsitektur adalah deskripsi tentang bagaimana rangkaian harus berperilaku (fungsi).
Sintaksnya adalah sebagai berikut:

Sebuah arsitektur memiliki dua bagian: bagian deklaratif (opsional), di mana sinyal dan
konstanta (antara lain) dideklarasikan, dan bagian kode (dari BEGIN ke bawah). Nama
arsitektur pada dasarnya dapat berupa nama apa pun (kecuali kata-kata khusus VHDL),
termasuk nama yang sama dengan entitas tersebut.
Mari kita pertimbangkan lagi gerbang NAND.

Arti dari ARSITEKTUR diatas adalah rangkaian harus melakukan operasi NAND antara
dua sinyal masukan (a, b) dan menetapkan ('' <= ') hasilnya ke pin keluaran (x). Nama yang
dipilih untuk arsitektur ini adalah myarch. Dalam contoh ini, tidak ada bagian deklaratif, dan
kodenya hanya berisi satu tugas.
Terjemahan Kode VHDL ke dalam Sirkuit
• Pertimbangkan misalnya penambah penuh.

• Bit jumlah dihitung sebagai s = a + b +


• CinCin

• CoutCout

• diperoleh dari
• CoutCout

• = a.b + a.
• Cin Cin

• + b.
• Cin Cin

Ada beberapa cara untuk mengimplementasikan persamaan yang dijelaskan dalam


ARSITEKTUR. Rangkaian sebenarnya akan bergantung pada kompiler / pengoptimal yang
digunakan dan, yang lebih penting, pada teknologi target.

• Jika target adalah perangkat logika yang dapat diprogram (PLD atau FPGA) maka dua
kemungkinan hasil (di antara banyak lainnya) untuk cout diilustrasikan pada gambar berikut.

• Di sisi lain, jika teknologi target adalah ASIC, maka kemungkinan implementasi CMOS, pada
level transistor, adalah gambar yang benar.

Simulasi Sirkuit
Gambar berikut berisi hasil simulasi dari rangkaian yang disintesis dengan kode VHDL,
yang mengimplementasikan unit penambah penuh.
Pin input (ditandai dengan panah ke dalam dengan tanda “I” di dalam) dan pin output
(ditandai dengan panah luar dengan tanda “O” di dalam) adalah yang terdaftar di ENTITY.
Pemodelan RTL
Block Prosedural memiliki komponen berikut:
• pernyataan tugas prosedural
• kontrol waktu
• konstruksi bahasa pemrograman tingkat tinggi
Pernyataan RTL
• Penugasan prosedural dan RTL
reg & integer
keluar = a + b;
• mulai. . . pernyataan blok akhir (pernyataan kelompok)
• jika. . . pernyataan lain
• pernyataan kasus
• untuk loop
• while loop
• loop selamanya
• nonaktifkan pernyataan (nonaktifkan blok bernama)
Selalu Memblokir Kombinasional
- Daftar sensitivitas lengkap (masukan)

- Hasil simulasi

- Tanda kurung

Berurutan Selalu Memblokir


Pengunci tereka (Spesifikasi cabang tidak lengkap)
Q tidak ditentukan di cabang kait seperti 74373
Desain Sirkuit Kombinasional
Keluaran adalah fungsi masukan. Contohnya MUX, decoder, priority encoder, adder

- Multiplexor
- Netlist (Gate-level)
- Continous Assegment
- RTL modelling
- 4-to-1 multiplexor
- Decoder
- Priority Incoder
- Parity Checker
- Adder
- RTL modelling
- Logic Synthesis
- Tri-State
- The value Z
- Another block
- Registers (Flip-flops) are implied
- Procedural Assignments
• Blocking assignment
• Non-blocking assigment
Desain Sirkuit Berurutan
• jalur umpan balik
• keadaan sirkuit sekuensial
• transisi negara (sirkuit sinkron dan sirkuit asinkron)
Finite State Machine
• moore model

• mealy model

Contoh:
- Flip-Flop (Synchronous clear dan Asynchronous clear)
- Register
- D Latches (D latch, D latch dengan data asynchronous yang terjaga keamanannya, D latch
dengan gerbang 'aktifkan', dan D latch dengan reset asynchronous)
1. HDL
Hardware Description Language (HDL) memungkinkan deskripsi yang tepat dan
formal dari rangkaian elektronik yang memungkinkan analisis dan simulasi otomatis
rangkaian elektronik. Hal ini juga memungkinkan untuk sintesis deskripsi HDL ke
dalam netlist (spesifikasi komponen elektronik fisik dan bagaimana mereka
dihubungkan bersama), yang kemudian dapat ditempatkan dan diarahkan untuk
menghasilkan kumpulan topeng yang digunakan untuk membuat sirkuit terintegrasi.
Bahasa deskripsi perangkat keras atau HDL adalah bahasa apa pun untuk deskripsi dan
desain sirkuit elektronik, dan yang paling umum, logika digital. Ini dapat menggambarkan
operasi sirkuit, desain dan organisasinya, dan tes untuk memverifikasi operasinya melalui
simulasi.
Ada dua tujuan utama bahasa deskripsi perangkat keras
a. Pemodelan Sirkuit Digital: Memiliki model sirkuit memungkinkan untuk simulasi
dan pengujian desain untuk operasi yang tepat.
b. Bahasa deskripsi perangkat keras digunakan sebagai salah satu langkah pertama
dalam membuat sirkuit terintegrasi digital besar.
HDL untuk Desain Sirkuit Analog
Abbreviatio Nama Use
n
AHDL Analog bahasa deskripsi
Hardware perangkat keras analog
Descriptive terbuka
Language
Verilo Verilog for standar terbuka
g- Analog memperluas Verilog
AMS and untuk analog dan
Mixed- simulasi analog / digital
Signal campuran
PHDL PCB HDL HDL gratis dan open source
untuk menentukan
konektivitas papan sirkuit
tercetak
2. VHDL
"V" dalam VHDL adalah singkatan dari singkatan lain: VHSIC atau Sirkuit
Terintegrasi Berkecepatan Sangat Tinggi. HDL adalah singkatan dari Hardware
Description Language. VHDL adalah bahasa pemrograman yang memungkinkan
seseorang untuk memodelkan dan mengembangkan sistem digital yang kompleks
dalam lingkungan yang dinamis. VHDL ditujukan untuk sintesis sirkuit serta simulasi
sirkuit. Motivasi mendasar untuk menggunakan VHDL (atau pesaingnya, Verilog)
adalah bahwa VHDL adalah bahasa standar, teknologi / vendor independen, dan karena
itu portabel dan dapat digunakan kembali.
Dua aplikasi langsung utama VHDL ada di file
a. bidang Perangkat Logika yang Dapat Diprogram (termasuk CPLD dan FPGA),
b. dan di bidang ASIC (Sirkuit Terpadu Khusus Aplikasi).
Setelah kode VHDL ditulis, itu dapat digunakan baik untuk mengimplementasikan
rangkaian dalam perangkat yang dapat diprogram (dari Altera, Xilinx, Atmel, dll.) Atau
dapat dikirim ke pengecoran untuk pembuatan chip ASIC. Saat ini, banyak chip
komersial yang kompleks (mikrokontroler, misalnya) dirancang menggunakan
pendekatan semacam itu. Seperti disebutkan dalam slide sebelumnya, salah satu utilitas
utama VHDL adalah memungkinkan sintesis sirkuit atau sistem dalam perangkat yang
dapat diprogram (PLD atau FPGA) atau dalam ASIC.
Seperti yang digambarkan pada gambar berikut, bagian kode VHDL yang berdiri
sendiri terdiri dari setidaknya tiga bagian dasar:

RTL Modeling
Menjelaskan sistem pada abstraksi tingkat tinggi
Menentukan sekumpulan blok prosedural yang aktif secara bersamaan
• blok prosedural = sirkuit digital Blok
prosedural
• blok awal
- perlengkapan uji untuk menghasilkan vektor uji
- kondisi awal
• selalu memblokir
- dapat menjadi sirkuit kombinasional
- dapat berarti kait atau sandal jepit
Sequential Circuit Design

- Jalur umpan balik


- Keadaan sirkuit sekuensial
- Transisi negara
o Srkuit Sinkron
o Sirkuit Asinkron

Hasi Simulasi

a. Sequential
Always Blocks
Dengan kode diatas, didapatkan hasil sebagai berikut:
b. Multiplexor
(Gate-level)
Dengan kode diatas, didapatkan hasil sebagai berikut:
c. Multiplexor
(Continuous Assignment)
Dengan kode diatas, didapatkan hasil sebagai berikut:

d. Multiplexor
(4 to 1)
Dengan kode diatas, didapatkan hasil sebagai berikut:
e. Decoder
Dengan kode diatas, didapatkan hasil sebagai berikut:
f. Parity
Checker
Dengan kode diatas, didapatkan hasil sebagai berikut:

g.
RTL Modeling Adder
Dengan kode diatas, didapatkan hasil sebagai berikut:
h. Synchronus
Clear
Dengan kode diatas, didapatkan hasil sebagai berikut:
I.
Shifter
Dengan kode diatas, didapatkan hasil sebagai berikut:

j.
Counter
Dengan kode diatas, didapatkan hasil sebagai berikut:
k. Separate
combinational and sequential circuits
Dengan kode diatas, didapatkan hasil sebagai berikut:
l. Mealy
Machine
Dengan kode diatas, didapatkan hasil sebagai berikut:

m. Traffic
Light
Dengan kode diatas, didapatkan hasil sebagai berikut:

Anda mungkin juga menyukai