2
Design Entry
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.
9
Contoh pemrograman Verilog
¢Berikut contoh pemrograman AND dan Half 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] ;
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;
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;
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
Entity
Architecture
A
Architecture
B
Architecture
C
Architecture
D
Testing a design by simulation
Instance komponen