You are on page 1of 32

FPGA ile

Gml Sistem Tasarmna


Giri
Bilgisayar Bil. Mh. Seluk BAAK
Yldz Teknik niversitesi
Bilgisayar Mhendislii Blm
Lisans st Semineri Bahar 2009

Giri

Programlanabilir Lojik - SPLD

FPGA & CPLD

Donanm Tanmlama Dilleri - HDL

FPGA ile Dijital Sistem Tasarm Admlar

rnek Bir Gml Sistem Uygulamas.

Programlanabilir Lojik - SPLD

PLA Programmable Logic Array


Signetics, 1975
Esnek, 10m , Yava!

Programlanabilir Lojik - SPLD

PAL Programmable Array Logic

MMI, 1978
PLAden daha az esnek, daha hzl, daha ucuz.

CPLD

Complex Programmable Logic Device


SPLDlerden oluan macroceller ve bu macrocellerin
ara balantlarndan oluur.
Binlerce kap ierebilir. ok hzl ~200 Mhz.
Konfigurasyonu kendi iinde saklar.
ISP(JTAG vs.) ile programlanabilir.

FPGA-Field Programmable Gate Array

lk FPGA : XC2064, Ross Freeman, Xilinx 1985

Sahada programlanabilir,

Yani ipin retildii fabrika dnda,


Elektronik karta lehimlendikten sonra
Ve hatta son kullancda kullanmdayken!

Bir eit Statik RAM yapsnda.


Konfigrasyonu PROMdan yklenir.
CPLDler FPGAye konfigurasyonu
PROMdan yklemek iin kullanlabilir.

FPGA

ConfigurableLogic Blocks (CLBs)


Programmable interconnect
I/O Blocks (IOBs)
Clock Management
Dedicated multipliers
Block RAM
DSP Resources
Microprocessors
.

ConfigurableLogic Blocks (CLBs)


CLBler Slice yaplarnda olumaktadr.
Ayn CLB iindeki Slicelar birbirleri ile yerel arabalantlara
sahiptir.
Slicelar LUT(Look Up Table), Carry Logic, Flip-Floplar ierir.

COUT

COUT

BUFT
BUF T

Slice 0
Slice S3

LUT

Carry

CLR

Slice S2
Switch
Matrix

PRE
D
Q
CE

SHIFT

Slice S1

LUT

Slice S0

CIN

Local Routing

CIN

Carry

D PRE
Q
CE
CLR

Look Up Table (LUT)

CLB iinde Kombinasyonal Lojik LUT ile


gereklenir.

A B C D Z

LUT fonksiyon jeneratr olarak da adlandrlr.

0 0 0 0 0

Kapasite, LUT giri says ile snrl. Devrenin

0 0 0 1 0

karmakl fark etmez.

0 0 1 0 0

LUT gecikmesi sabit.

0 0 1 1 1

0 1 0 0 1

0 1 0 1 1

Combinatorial Logic

A
B
C
D

. .
Z

1 1 0 0 0

1 1 0 1 0
1 1 1 0 0
1 1 1 1 1

Programlanabilen Anahtarlama
Teknolojileri

CPLD: EEPROMlara benzer yapda Floating Gate Transistor

Programlanabilen Anahtarlama
Teknolojileri

FPGA: SRAM Kontroll Programlanabilen Anahtarlar

Programlanabilen Anahtarlama Teknolojileri

OTP FPGA:
Antifuse

Donanm Tanmlama Dilleri - HDL

lk olarak 1977 ylnda,


ISP(Instruction Set Processor) - Carnegie Mellon Universitesi
KARL- Kaiserslautern niversitesi

lk modern HDL olan Verilog, 1985, Gateway Design


Automation.

VHDL, 1987, Amerika Birleik Devletleri Savunma Bakanl


Sponsorluunda.

HDL ematik devre tasarmlarnn dkmantasyonu ve


simulasyonu amacyla gelitirilmiti.

HDLden Lojik sentezleme yaplmas ile HDL Dijital


Tasarmda n plana geti.

Verilog

Verilog HDL, 1984-1985 Philip Morby, Gateway Design Automation


Ama : Dijital devreleri, modelleme, simlasyon ve analiz
amacyla kolay, basit ve etkili bir ekilde ifade etmek.
IEEE tarafndan ilk olarak1995 ylnda standardlatrld.
C programlama dilini andrr. renilmesi nispeten kolay
Sistem hiyerarik modllerden ve bu modllerin bir birleri ile
ilikileri ile tanmlanr.
Modller,
Yapsal (Dk seviyeli lojik olarak),
Veri ak ile (klar giri sinyallerinin dnm ile)
Davransal olarak (Devreden beklenen davrann ifadesi eklinde)
deiik yapda ifade edilebilir

st seviyeli modllerde soyutlamaya gidilebilmesini ve alt


seviyeli modllerinde de verimli olarak ifade etme imkan salar

Verilog ile 4-Bit Saya


module counter(CLOCK, DIRECTION, COUNT_OUT);
input CLOCK;
input DIRECTION;
output [3:0] COUNT_OUT;
reg [3:0] count_int = 0;
always @(posedge CLOCK)
if (DIRECTION)
count_int <= count_int + 1;
else
count_int <= count_int - 1;
assign COUNT_OUT = count_int;
endmodule

VHDL

VHDL (Very high speed integrated circuit Hardware


Description Language) Amerika Birleik Devletleri Savunma
Bakanl sponsorluunda elektronik cihazlarn modellenmesi
ve simlasyonu iin desteklenen bir HDL olarak
gelitirilmitir.
VHDL'in gelitirilmesindeki ama modelleme, simlasyondu.
Ancak sonradan tasarm aamalarnn otomasyonunu
salayabilmek iin sentezlemede de kullanlmaya baland.
VHDL IEEE tarafndan ilk olarak 1987 ylnda
standartlatrld.
VHDL, Verilog'a gre daha esnek sistem tasarmlarna imkan
vermekle beraber st seviyeli tasarma daha uygundur.
Ancak renilmesi ve kullanm biraz daha karmak ve
uzundur.

VHDL ile 4-Bit Saya


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity counter is
Port ( CLOCK : in STD_LOGIC;
DIRECTION : in STD_LOGIC;
COUNT_OUT : out STD_LOGIC_VECTOR (3 downto 0));
end counter;
architecture Behavioral of counter is
signal count_int : std_logic_vector(3 downto 0) := "0000";
begin
process (CLOCK)
begin
if CLOCK='1' and CLOCK'event then
if DIRECTION='1' then
count_int <= count_int + 1;
else
count_int <= count_int - 1;
end if;
end if;
end process;
COUNT_OUT <= count_int;
end Behavioral;

FPGA Platformunda Tasarm Sreleri

FPGA Platformunda Tasarm Sreleri

Design Entry
FPGA Platformunda tasarm sreci bir lojik tasarmn girii
ile balar. Bu ilem HDL ve/veya ematik olarak yaplabilir.
Behavioral Simulation
Tasarm girii yapldktan sonra sistemin davransal
simlasyonu yaplr ve tasarmn dorulamas yaplr. Eer
dzeltme gerekirse tasarm giriinde deiikliler yaplr.
Design Synthesis
Tasarm giriinde HDL kullanlmas durumunda gerekleme
yaplabilmesi iin HDL'den sentezlemesi yaplr. ematik
tasarmda ise, hedeflenen cihazda bulunan temel birimler
kullanldndan iin bu adma gerek yoktur. Sentezleme
sonucunda tasarlanan sistemi oluturuan lojik bloklar ve
bunlarn balantlarn ieren bir netlist oluturulur.

FPGA Platformunda Tasarm Sreleri

Post-Synthesis Behavioral Simulation


HDL sentezlendikten sonra elde edilen sistemin davransal
simlasyonu yaplr ve tasarmn dorulamas yaplr. Eer dzeltme
gerekirse tasarm giriinde deiikliler yaplr ve tekrar sentezlenir.
Design Implementation
FPGA platformunda gerekleme ilemi srayla, "Translate", "Map" ve
"Place&Route(PAR)" olarak alt ilem olarak yaplr. "Translate" alt
ilemi gereklemeye verilen netlist ve tasarm kstlamalarn
(rnein giri/k pinlerini) birleitirir. "Map" ilemi tasarm
hedeflenen cihaz zerinde bulunan kaynaklara eletirir."PAR"
ilemi de tasarm zamanlama kstlarna gre tasarm hedef cihaz
zerindeki yerleimini ve yollar belirler.
Functional Simulation
Fonksiyonel simlasyon, "Translate" ileminden sonra,
gereklemeden nce tasarmda bulunan lojik hatalarn tespit
edilmesi iin yaplr. Zamanlama bilgisi henz belli olmadndan
simlasyon testleri birim zaman gecikmesi ile yaplr.

FPGA Platformunda Tasarm Sreleri

Static Timing Analysis


Sabit Zamanlama analizi, "Map" ileminden sonra tasarmdaki lojik gecikmeleri
inceleme imkan salar. Her ne kadar balant yol gecikmelerini iermese de,
tasarmn lojik gecikmelerinden kaynaklanabilecek potansiyel hatalarnn
belirlenmesinde yardmc olur.
Timing Simulation
Zamanlama Simlasyonu, PAR ilemi sonucunda belirlenen hedef cihaz
konfigrasyonunun, standart lojik ve yol gecikmeleri ile beraber ifade edilen
(Back Annotation) HDL zerinden yaplr. Bylece tasarmn hedef cihaz zerinde
yol ve lojik gecikmeleri ile beraber simlasyonu ve dorulamas yaplr.
Device Programming
Gereklenen tasarm programlama formatna dntrlerek hedef cihaz'n
konfigrasyonun sakland PROM'a yklenir.
In-Circuit Verification
Hedef cihaza konfigrasyon yklendikten sonra, yazlm aralar kullanarak
alma zamannda tasarm dorulamas yaplabilir.

FPGA ile Gml Sistem Uygulamas


SelCPU ilemcisi ile Xilinx Spartan 3E FPGA zerinde
SOPC (System On a Programmable Chip) Uygulamas

SelCPU

32 bit RISC, von neuman mimarisi

7 deiik adresleme modu,

16-bit,32-bit immediate operand,

Multi-cycle execution,

77 instruction,

Hafzada Stack ,

16 external interrupt, 240 sistem servisi

Memory Mapped I/O destekleyen,

9 genel amal olmak zere toplam 13 Registera sahip,

Tek komutta 3,2,1 veya 0 adres ierebilen bir ilemcidir.

SelCPU ilemcisi Soft Core olarak (Verilog ile ifade edilerek)


Xilinx Spartan 3E FPGA zerinde gereklenmitir.

SelCPU

lemci almas ,zel durumlar(interrupt,halt) hari,


fetch&decode ve execute olarak iki temel evreden olumaktadr.
Komutun ieriine gre eer 32 bit immediate varsa fetch evresi 2
cycle olabilmektedir. syscall,iret hari dier tm Tm komutlar

ise 1-cylce'da alacak ekilde tasarlanmtr.

bl ( branch and link) dahil olmak zere tm


program kontrol komutlarda tek execution
cycle ile altrlabilmektedir. Mimari
tasarmdan dolay fetch ile execute aamalar
ayn cycleda almaktadr. Bunu yapabilmek

iin memory ile cpu clocklar arasnda faz


fark kullanlmaktadr.

SelCPU Mimarisi

FPGA zerinde SelCPU ile SOPC

Sistemin tasarm Verilog ile Xilinx ISE Foundation


kullanlarak, uygulamas Xilinx Spartan3E FPGA Starter
Kit zerinde yapld.
System-On-Chip uygulamas iin evre birimleri (LCD
Panel ,Ledler, P/S2 Keyboard Port ,RS-232 ,VGA ve
tular) direk olarak FPGA pinleri ile srlecek
ekildedir.
evre birimleri iin FPGA zerinde denetleyiciler ve
arayzler tasarlanmtr.
Ayrca daisy-chain interrupt denetleyicisi ve timer
modlleri de FPGA ierisinde gereklenmitir.
Sistem de RAM ve ROM olarak FPGA de bulunan Block
RAM/ROM kaynaklar kullanlmtr.

FPGA zerinde SelCPU ile SOPC Mimarisi

Spartan 3E Starter Kit

FPGA zerinde SelCPU ile SOPC


Al ROMunda olarak sistemin evre birimlerine
temel hizmetleri verecek bir BIOS yazlm ykldr.
Sistem zerinde alacak programlar SelCPU
Assembly Cross Compiler derlenip,

FPGA konfigrasyonu ile ROMa yklenebilecei gibi,


alma zamannda BIOS destei ile RS/232 arayz ile
aktarlabilmektedir.

VGA k 640x480 znrlktedir. Video buffer olarak


FPGA kaynaklar kstl olduundan ekram kts olarak
karakter modu oluturulmutur.
Kullanlan karakter fontu ile 30 satr ve 80 satrdan
oluan bir ekran karakter ve renk bilgisi iin buffer
kullanlmtr. Karakter jeneratr ile ekran
grntlenmesi salanmtr.

SelCPU Assembler

FPGA zerinde SelCPU ile SOPC


LCD panel ile FPGA 4 bit arayz ile baldr. LCD panel
kullanm FSM (Sonlu Durum Makinesi) ile buffer zerinden
baslacak ekilde tasarlanmtr. Bylece ok sade bir donanm
arayz ile buffer hafza adresine yazlan bilgi, LCD arayz ile
LCD panele aktarlr.
PS/2 Klavye arayz, baslan tuun scan kodunun yannda,
FPGA zerinde karakter dnmn Trke olarak
byk/kk harf ve shift tularna gre yaparak karakter
bufferna yazar. Bylece BIOS yazlmnda Trke karakter
dnm yapmaya gerek kalmaz.
Sistemde donanm- yazlm arayz mmkn olduunca sade
ekilde tasarlanmtr.

Sonu

Bu sunumda FPGA zerinde bir ilemci tasarm ve uygulmas anlatld. Gml

sistem zmlerinde mikroilemci tabanl zmlere gre FPGA ok daha esnek


ve gl ve paralel alabilecek zmler sunabilir.

FPGA'ler zellikle tasarmn srekli olarak gncellenmesi gereken alanlarda


ASIC'lere gre tasarm ve retim maliyeti asndan byk avantaj ve kolaylk

salarlar.

Daha karmak algoritmalar yazlm programlama dillerinde ifade edilerek


bunlarn otomatik olarak HDL'le dntrlmesi ile karmak algoritmalarnda
FPGA zerinde baaryla uygulanmas salanmtr.

Hzlar gittike ykselen FPGA'ler ile DSP ilemcileri ile salanan performansn
onlarca kat fazlas elde edilebilmektedir.

You might also like