Uploaded by fadildifreni60860

PLD

advertisement
PROGRAMMABLE LOGIC DEVICES
“ Hardware make softer, software make harder “
•Perkembangan Teknologi Logic Device
•Definisi PLD
•Konsep Dasar PLD
•Jenis-jenis PLD : PAL, PLA, GAL
•Memprogram dan men-develop pogram PLD
•Jenis PLD yang lain : FPLA, FPGA, CPLD
•Mengenal VHDL
programmable logic devices
1
Perkembangan Teknologi Logic Devices
Source: Dataquest
Logic
Standard
Logic
Programmable
Logic Devices
(PLDs)
SPLDs
(PALs)
ASIC
Gate
Arrays
Cell-Based
ICs
CPLDs
Full Custom
ICs
FPGAs
Acronyms
SPLD = Simple Programmable Logic Device
PAL = Programmable Array of Logic
CPLD = Complex PLD
FPGA = Field Programmable Gate Array
ASIC = Application –Specific Integrated Circuit
programmable logic devices
2
Definisi
PLD  sebuah IC yang terdiri dari banyak gate / gerbang
logika (terdiri dari gerbang AND, OR, NOT, register
dan flip-flop), yang saling diinterkoneksikan di dalam
IC tersebut.
Programmable  untuk membuat sebuah fungsi pada PLD
tersebut, seorang disainer harus membuat
program yang nantinya akan menyebabkan
terjadinya proses “fuse blowing” pada
interkoneksi gerbang, flip-flop maupun register,
sehingga didapatkan pola rangkaian seperti yang
diinginkan.
programmable logic devices
3
Konsep Dasar
A
B
AND array
A
A
B
B
AB
AB
AB
Product
lines
AB
Fuse 1
4
OR array
Input lines
program mable logic devices
Sum of Product Output
4
D
Arsitektur PROM untuk PLD
C
B
A
ORarray
(programmable)
1
2
3
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
15
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
16
xxx x
4
Contoh :
5
6
AM27S13
-PROMdengan konfigurasi 512x4
-Ada 512 address
-Dengan 9 jalur address input
-Ada 4 data output
7
8
9
10
11
12
13
14
ANDarray
(hard wired)
programmable logic devices
xxx x
xxx x
xxx x
Fuse 3 2 1 0
tersedia
O3 O2O O
1
0
OUTPUT
5
Fuse “blown” untuk mendapatkan output sesuai fungsi yang diinginkan
D
C
B
O3 = AB + CD
O2 = ABC
O1 = ABCD + ABCD
O0 = A + BD + CD
C
B
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
3
4
x
x x DCBA
x DCBA
DCBA
x x
x DCBA
x
x DCBA
2
5
O3
6
DCBA
DCBA
DCBA
DCBA
DCBA
x
x
x
1
Tabel Kebenaran untuk output O3
D
A
7
8
x DCBA
x DCBA
DCBA
DCBA
DCBA
9
10
11
DCBA
12
x DCBA
x
x
14
DCBA
programm able logic devices
x DCBA
DCBA
15
16
DCBA
DCBA
x
13
Fuse
“blown”
DCBA
x
3 2 1
0
O3O 2O 1O 0
6
Programmable Array Logic (PAL)
Arsitektur mirip dengan PROM,
di bagian ANDarray adalah programmable,
sedangkan di bagian ORarray adalah hard wired
Kelebihan dibandingkan dengan PROM,
hanya fungsiAND yang diinginkan saja yang diprogram,
dan output masing-masingANDdisambungkan
ke array OR
Output ORmerupakan fungsi jumlahan dari
fungsi-fungsi ANDyang diinginkan
D
C
B
A
ORarray
(hard wired)
x x x x x x x x
x x x x x x x x
x x x x x x x x
x x x x x x x x
1
x x x x x x x x
x x x x x x x x
x x x x x x x x
x x x x x x x x
5
x x x x x x x
x x x x x x x
x x x x x x x
x x x x x x x
x
9
x
10
x
11
x
12
x x x x x x x
x x x x x x x
x x x x x x x
x x x x x x x
x
13
x
14
x
15
x
16
2
3
4
6
7
8
3 2 1
ANDarray
(programmable)
programmable logic devices
0
O3 O2O1O0
OUTPUT7
PAL diprogram sesuai fungsi yang diinginkan
D
• Setiap ORmaksimumhanya dapat menjumlahkan
4 buah minterm(dengan konfigurasi di samping).
• Jika sebuah ORhanya terisi kurang dari 4 minterm,
makaminterm / ANDarray yang tidak digunakan
diberi nilai “0”
O3 = AB + CD + 0 + 0 = AB + CD
O2 = ABC + 0 + 0 + 0 = ABC
O1 = ABCD + ABCD
O0 = A + BD + CD + 0 = A + BD + CD
C
B
x
A
x
x x
x x xx x x x x
x x xx x x x x
x
xx
x x xx x x x x
x x xx x x x x
x x xx x x x x
x x x x
x x
x x
x x xx x x x x
x x xx x x x x
x
x
x
x x
x x xx x x x x
AB
1
2
CD
3
0
4
0
5
ABC
0
0
6
7
0
8
ABCD
9
ABCD
0
10
11
0
12
A
BD
13
14
C
15
D
16
3 2 1
programmable logic devices
0
0
O3 O2O1O0 8
Field Programmable Logic Array (FPLA)
Lebih kompleks dari PAL.
Juga terdiri dari array programmable input AND dan array output OR.
Mempunyai fleksibilitas untuk memprogram input OR
Complex Programmable Logic Devices (CPLD)
Merupakan PLD dalam kapasitas lebih besar.
Terdiri dari beberapa PLD (multiple PLD)
Struktur CPLD
programmable logic devices
9
Field Programmable Gate Array (FPGA)
•
•
•
•
Dikonfigurasi oleh End User
Tidak memerlukan proses Fabrikasi
Tersedia solusi yang mendukung chip customized VLSI
Mampu menimplementasikan logic circuit, instant manufacturring,
very-low cost prototype
• Pemrograman yang singkat untuk fungsi dan kemampuan yang
setara dengan ASIC
Struktur FPGA
programmable logic devices
10
Struktur Dasar FPGA
CLB
Slew
Rate
Control
CLB
Switch
Matrix
D Q
CLB
Passive
Pull-Up,
Pull-Down
Vcc
Output
Buffer
Pad
Input
Buffer
CLB
Q D
Programmable
Interconnect
Delay
I/O Blocks (IOBs)
C1 C2 C3 C4
H1 DIN S/R EC
S/R
Control
G4
G3
G2
G1
DIN
F'
G
Func.
Gen.
SD
D
Q
G'
H'
EC
RD
1
F4
F3
F2
F1
H
Func.
Gen.
F
Func.
Gen.
Y
G'
H'
S/R
Control
DIN
SD
F'
G'
D
Q
H'
EC
RD
1
H'
K
F'
X
Configurable
Logic Blocks (CLBs)
programmable logic devices
11
Memprogram PLD
START
Develop
circuit logic
equation
Send fuse map
and test data
to programmer
Works ?
N
Check design
equations
Y
A
Run
program
development
software
Program the PLD
Test the PLD
Input logic
equation
Works ?
Software
generate fuse map
and test data
A
Test the PLD
in its actual
circuit
N
Troubleshoot
Y
DONE
Flow Chart Mendisain, Memprogramdan mengetes PLD
programmable logic devices
12
Beberapa peralatan yang diperlukan untuk mendisain dan
membangun rangkaian menggunakan PLD :
•Personal Computer (PC)
•PLD Development Software
•Programming fixture
•Software untuk men-drive programming fixture
•Programmable Logic Device
PLD
Developmen
t Software
Programming Software
ZIF = Zero-insertion Force
PC
Programming Fixture
ZIF Socket
Serial Cable
programmable logic devices
13
Programmable Logic - Design Flow
1
2
3
Design Entry dengan cara schematic, ABEL, VHDL,
dan/atau Verilog.
Implementation yaitu Placement & Routing dan
bitstream generation. Juga, analyze timing, view layout, .
Download meng-upload bitstream ke
Hardware (FPGA chip)
XC4000 XC4000
programmable logic devices
XC4000
14
Digambarkan dalam blok diagram :
programmable logic devices
15
Flowchart siklus developing PLD
Design
Create JEDEC file
Create source file
Program PLD
Compile
In-circuit test
Edit source file
Y
Errors?
N
Works ?
N
Y
Identify
design flaw
Simulate
DONE
Y
Troubleshoot
Problems?
N
programmable logic devices
16
Verilog HDL / VHDL
– Verilog HDL / VHDL adalah Bahasa
Pendeskripsi Perangkat Keras / Hardware
Description Language (HDL).
– Hardware Description Language adalah
bahasa yang dapat digunakan untuk
mendeskripsikan sebuah sistim digital, misal,
sebuah komputer atau komponen dari
komputer
programmable logic devices
17
Apakah Verilog HDL / VHDL?
• Verilog adalah salah satu HDL yang digunakan
oleh disainer hardware dalam industri maupun
sekolah.
• HDL yang lain adalah VHDL (Very High-speed
Integrated Circuit HDL)
• VHDL dibuat dengan standart IEEE pada tahun
1987, sedangkan Verilog pada tahun 1995.
• Verilog sangat menyerupai C, dan para insinyur
elektronika dan komputer sudah familiar dengan
bahasa C.
• VHDL menyerupai EDA (Electronic Digital
Assembler) .
programmable logic devices
18
Struktur Pemrograman VHDL
• Entity dan Architecture
• Modeling: Behavior ,
Structure dan data Flow
programmable logic devices
19
Ada tiga cara untuk
mendiskripsikan Rangkaian
1. Structural
– Didesain berdasarkan perkomponen dan
“merangkai komponen tersebut
2. Dataflow (RTL)
– Didesain berdasarkan alur register data
3. Behavioural
– Didesain berdasarkan Algorithma
programmable logic devices
20
• Entity Declaration
– Spesifikasi eksternal dari rangkaian
• Architecture Body
– Fungsi sesungguhnya dari rangkaian
• Disain deskripsi minimum VHDL terdiri dari :
– Paling sedikit satu entity dan satu Architecture
Body
Architecture Body
Entity Declaration
programmable logic devices
21
Entity
Konstruksi “Entity” berfungsi memodelkan interface eksternal
External
Interface
d0
d1
d2
d3
en
clk
REG_4
Internal
Functionality
programmable logic devices
q0
q1
q2
q3
22
Entity name
Port
Port name
entity reg4 is
port (do,d1,d2,d3,en,clk : in bit;
qo,q1,q3,q4: out bit;);
end entity reg4;
Port mode
“port” VHDL membentuk model data input/output.
ENTITY entity-name IS
[PORT(interface-signal-declaration);]
END [ENTITY] [entity-name];
programmable logic devices
23
Rangkaian 1 (8-bit Comparator)
A[8]
B[8]
8-bit
Comparator
EQ
Deklarasi Entity :
ENTITY compare IS
PORT(a, b: IN bit_vector(0 TO 7);
eq: OUT bit);
END compare;
programmable logic devices
24
Architecture Body
• Fungsi sesungguhnya dari circuit
ARCHITECTURE arch-name OF entity-name IS
[declarations]
BEGIN
architecture body
END [ARCHITECTURE] [arch-name];
programmable logic devices
25
Architecture body dari rangkaian 1 adalah :
ARCHITECTURE compare1 OF compare IS
BEGIN
eq <= ‘1’ WHEN (a=b) ELSE ‘0’;
END compare1;
programmable logic devices
26
HDL total dari rangkaian 1 adalah :
ENTITY compare IS
PORT(a, b: IN bit_vector(0 TO 7);
eq: OUT bit);
END compare;
ARCHITECTURE compare1 OF compare IS
BEGIN
eq <= ‘1’ WHEN (a=b) ELSE ‘0’;
END compare1;
programmable logic devices
27
x
y
cin
Rangkaian 2 (Full Adder)
sum
cout
ENTITY fulladder IS
PORT(x, y, cin: IN bit;
cout, sum: OUT bit);
END fulladder;
ARCHITECTURE concurrent OF fulladder IS
BEGIN
sum <= x XOR y XOR cin;
cout <= (x AND y) OR (x AND cin) OR (y
AND cin);
END concurrent;
programmable logic devices
28
Behavioral Description
LIBRARY ieee;
USE ieee.std_logic_1164.ALL
ENTITY eqcomp4 IS PORT(
a, b:
IN std_logic_vector(3 DOWNTO 0);
equals: OUT std_logic);
END eqcomp4;
ARCHITECTURE behavioral OF eqcomp4 IS
BEGIN
comp: PROCESS (a, b)
BEGIN
IF a = b then
equals <= ‘1’;
ELSE
equals <= ‘0’;
END IF;
END PROCESS comp;
END behavioral;
programmable logic devices
29
Dataflow(RTL) Description
LIBRARY ieee;
USE ieee.std_logic_1164.ALL
ENTITY eqcomp4 IS PORT(
a, b:
IN std_logic_vector(3 DOWNTO 0);
equals: OUT std_logic);
END eqcomp4;
ARCHITETURE dataflow OF eqcomp4 IS
BEGIN
equals <= ‘1’ WHEN (a=b) ELSE ‘0’;
END dataflow;
programmable logic devices
30
Dataflow(RTL) Description
LIBRARY ieee;
USE ieee.std_logic_1164.ALL
ENTITY eqcomp4 IS PORT(
a, b:
IN std_logic_vector(3 DOWNTO 0);
equals: OUT std_logic);
END eqcomp4;
ARCHITETURE bool OF eqcomp4 IS
BEGIN
equals <=
NOT(a(0) XOR b(0))
AND NOT(a(1) XOR b(1))
AND NOT(a(2) XOR b(2))
AND NOT(a(3) XOR b(3)) ;
END bool;
programmable logic devices
31
Download