Anda di halaman 1dari 34

Pengenalan VHDL

Dasar Struktur VHDL


Proses
Pemrograman
pada FPGA

2
Design Entry

Text Entry menggunakan


VHDL (Verylog Hardware Schematic Entry
Definition Language)

3
Functional Simulation
• Tujuan: memastikan rancangan rangkaian logika bekerja sesuai
keinginan dengan input waveforms yang digunakan.

4
Synthesis
• Optimasi rangkaian logika dalam penggunaan
gerbang.
• Menghasilkan netlist yang merupakan daftar
connection yang mendeskripsikan komponen dan
keterhubungan komponen tersebut.

Implementation
• Meliputi: mapping, placing, and routing rancangan
sehingga dapat diimplementasikan ke IC FPGA sesuai
arsitektur dan konfigurasi pin IC FPGA tersebut.

5
Timing Simulation
• Verifikasi rangkaian apakah sudah bekerja pada frekuensi yang
diinginkan dan tidak ada propagation delay.

6
Device Programming
• Membuat bitstream yang merepresentasikan rancangan akhir dan
akan dikirim ke target device.

7
Pemrograman
HDL
8
VERILOG
¢Verilog adalah sdalah satu bahasa HDL (hardware description
language) yang dipergunakan untuk menggambarkan system digital
pada suatu perangkat keras.

¢Verilog adalah bahasa yang popular sekitar tahun 1990an, walaupun


saat ini banyak inustri mulai beralih kebahasa VHDL

9
Contoh pemrograman Verilog
¢Berikut contoh pemrograman AND dan Half ADDER

¢Buatlah rangkaian logika, table kebenaran dan pemrograman untuk


OR, XOR, XNOR, NAND, FULL ADDER

10
VHDL
• Didasarkan pada bahasa pemrograman perangkat lunak ADA, tapi
tidak sama, dan juga bukan software bahasa pemrograman.
• Hardware descriptionlanguage yang didesain untuk merancang
rangkaian logika digital, yang memiliki fitur:
1. Bahasa pemrograman konvensional seperti PASCAL dan C.
2. Bahasa deskripsi logika seperti ABEL-HDL.
3. Bahasa Netlist seperti EDIF
4. Manajemen desaian & Modeling yang presisi

11
Contoh pemrograman VHDL
• Berikut contoh gerbang AND dan NOT
• Buatlah untuk gerbang NAND, OR, NOR, XOR (Rangkaian logika, table
kebenaran, program)

12
Contoh pemrograman VHDL
• Berikut contoh pemrograman Half Adder
• Buatlah rangkaian logika, table kebenaran dan pemrograman untuk
FULL ADDER

13
Contoh pemrograman VHDL
• Berikut contoh pemrograman Half Substractor
• Buatlah rangkaian logika, table kebenaran dan pemrograman untuk
FULL SUBSTRACTOR

14
Basic Structure of a VHDL File
• Entity
• Deklarasi entity:
sebagai interface
dengan luar system ;
mendefiniskan sinyal
input dan output
• Architecture:
mendeskripsikan
perilaku entity; berisi
proses-proses
ataupuan komponen
yang beroperasi secara
konkuren (concurrent)
entity NAME_OF_ENTITY is
port (signal_names: mode type;
signal_names: mode type;
:
signal_names: mode type);
end [NAME_OF_ENTITY] ;

• NAME_OF_ENTITY: gunakan nama yang relevan


• signal_names: daftar signal (input ataupun
output)
• mode: in, out, buffer, inout
• type: boolean, integer, character, std_logic
Architecture
• Behavioral Model:
architecture architecture_name of NAME_OF_ENTITY is
-- Declarations
…..
…..

begin
-- Statements
end architecture_name;
Structural Design
• Memanfaatkan struktur yang
sudah didesain sebelumnya
• Menggunakan konsep
penggunaan komponen atau
blok dan melakukan wiring antar
blok
• Pada contoh: andgate,
inverter,dan orgate harus
terlebih dahulu disediakan.
Structural Design
• Memanfaatkan struktur yang
sudah didesain sebelumnya
• Menggunakan konsep
penggunaan komponen atau
blok dan melakukan wiring antar
blok
• Pada contoh: andgate,
inverter,dan orgate harus
terlebih dahulu disediakan.
Contoh: Half Adder
Half Adder
library ieee;
use ieee.std_logic_1164.all;
entity half_adder is
port(
x,y: in std_logic;
sum, carry: out std_logic);
end half_adder;

architecture myadd of half_adder is


begin
sum <= x xor y;
carry <= x and y;
end myadd;
Entity Examples …
entity half_adder is
port(
x,y: in std_logic;
sum, carry: out std_logic);
end half_adder;

A SUM
B FULL ADDER
C CARRY
Architecture Examples: Behavioral Description

• Entity FULLADDER is
port ( A, B, C: in std_logic;
SUM, CARRY: in std_logic);
end FULLADDER;

• Architecture CONCURRENT of FULLADDER is


begin
SUM <= A xor B xor C after 5 ns;
CARRY <= (A and B) or (B and C) or (A and C) after 3 ns;
end CONCURRENT;
Architecture Examples: Structural Description …
• architecture STRUCTURAL of FULLADDER is
signal S1, C1, C2 : bit;
component HA
port (I1, I2 : in bit; S, C : out bit);
end component;
component OR
port (I1, I2 : in bit; X : out bit);
end component;
begin
INST_HA1 : HA port map (I1 => B, I2 => C, S => S1, C => C1);
INST_HA2 : HA port map (I1 => A, I2 => S1, S => SUM, C => C2);
INST_OR : OR port map (I1 => C2, I2 => C1, X => CARRY);
end STRUCTURAL;

A I1 S SUM
B S1 HA C2
I1 S I2 C I1
HA OR
C C1
I2 C I2 x CARRY
… Architecture Examples: Structural
Description
Entity HA is Entity OR is
PORT (I1, I2 : in bit; S, C : out bit); PORT (I1, I2 : in bit; X : out bit);
end HA ;
end OR ;
Architecture behavior of HA is
Architecture behavior of OR is
begin
begin
S <= I1 xor I2;
X <= I1 or I2;
C <= I1 and I2;
end behavior;
end behavior;
One Entity Many Descriptions

• Sebuah system atau sebuah entity dapat dispesifikasikan


dengan berbagai arsitektur berbeda

Entity

Architecture
A
Architecture
B
Architecture
C
Architecture
D
Testing a design by simulation

Use a test bench model

• Terdapat sebuah architecture body yang


berisi sebuah instance (kompnen) dari
Test Benches design yang diuji (DUT – Design Under Test)
• Memberikan urutan nilai-nilai pengujian
pada input DUT
• Memantau keluaran sinyal output DUT:
• Menggunakan simulator
• Atau dengan proses internal untuk
verifikasi kebenaran operasi.
Tidak ada input output pada entity

Deklarasi komponen yang


diuji (myXOR harus dibuat
terlebih dahulu di kode
lain)

Instance komponen

Pemberian sinyal uji


Next: Bagaimanakah style desain VHDL?

Anda mungkin juga menyukai