Top Banner
FPGA M ˙ IMAR ˙ IS ˙ I ve TAR ˙ IH ˙ I GEL ˙ S ˙ IM ˙ I ˙ IBRAH ˙ IM AL ˙ I MET ˙ IN Computer Engineer ˙ IZM ˙ IR 9 Mart 2015
53

FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Aug 07, 2015

Download

Devices & Hardware

AliMETN
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

FPGA MIMARISI ve TARIHI GELISIMI

IBRAHIM ALI METIN

Computer Engineer

IZMIR

9 Mart 2015

Page 2: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

ÖZET

Ödevin Amacı

Bu çalısmada, FPGA’ lerın tarihi gelisimi ve yapısı hakkında bilgi toplamayı, ilk FPGA’

lerı ve bunların çalısma mantıgını, bir FPGA seçimi yapımında neler göz önünde bulun-

durularak yapıldıgını ögrenmek amaçlanmaktadır.

Ödevin Kapsamı

Bu ödev, FPGA’ lerın genel tarihi yapısı ve mimari özelliklerini barındırmaktadır.

Sonuçlar

Sonuç olarak FPGA’ ler kendi içlerinde yapısal farklılıklar göstermektedir ve çesitlen-

mektedir.

ii

Page 3: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

ABSTRACT

Homework Objective

In this study, the FPGA ’s historical development and gather information about the st-

ructure, the first FPGA’ s and their logic, nor is intended to find out that is made by

considering the construction of an FPGA selection.

Scope of Homework

This assignment, FPGA ’s contains the general history and architectural features of the

building.

Results

As a result, the FPGA ’s indicate structural differences in their internal and diversified.

iii

Page 4: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

TESEKKÜR

Bu ödevin basından sonuna kadar hazırlanmasında emegi bulunan ve beni bu konuya yön-

lendiren saygıdeger hocam ve danısmanım Sayın Süleyman UZUN’a tüm katkılarından

ve hiç eksiltmedigi desteginden dolayı tesekkür ederim.

IBRAHIM ALI METIN

9 Mart 2015

iv

Page 5: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Içindekiler

ÖZET ii

ABSTRACT iii

TESEKKÜR iv

SEKIL LISTESI ix

TABLO LISTESI x

1 FPGA 1

1.1 Kullanım Alanları . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 ASIC ve Custom Silicon) . . . . . . . . . . . . . . . . . . . . . . 1

1.1.2 Digital Signal Processing . . . . . . . . . . . . . . . . . . . . . . 1

1.1.3 Embedded Microcontroller . . . . . . . . . . . . . . . . . . . . . 2

1.1.4 Fiziksel Katman Haberlesmeleri . . . . . . . . . . . . . . . . . . 2

1.1.5 Reconfigurable Computing . . . . . . . . . . . . . . . . . . . . . 2

1.2 Üretici Firmalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 TEMEL TEKNOLOJILER 3

2.1 Basit programlanabilir fonksiyon . . . . . . . . . . . . . . . . . . . . . . 3

2.2 Fusible Link Teknolojisi . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.3 Antifuse Teknolojisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.4 Mask-Programmed Aygıtlar . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.5 PROM (Programmable Reod-Only Memory) Teknolojisi . . . . . . . . . 6

2.6 EPROM (Erasable Programmable Read-Only Memory) Teknolojisi . . . . 6

2.7 EEPROM (Electrically Erasable Programmable Read-Only Memory) . . . 7

2.8 FLASH Teknolojisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.9 SRAM (Static Random Access Memory) Teknolojisi . . . . . . . . . . . 8

3 FPGA TEKNOLOJISININ GELISIMI 9

3.1 SPLD ve CPLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

v

Page 6: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

3.2 PROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3 PLA (Programmable Logic Array) . . . . . . . . . . . . . . . . . . . . . 11

3.4 PAL (Programmable Array Logic) . . . . . . . . . . . . . . . . . . . . . 11

3.5 CPLD (Complex Programmable Logic Device) . . . . . . . . . . . . . . 12

3.6 ASIC (Application Specific Integrated Circuit) . . . . . . . . . . . . . . . 13

3.6.1 Full Custom . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.6.2 Standard Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.6.3 Gate Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.6.4 Structured ASIC . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.7 FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4 FPGA MIMARISI 18

4.1 Üretim Teknikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.1.1 SRAM temelli aygıtlar . . . . . . . . . . . . . . . . . . . . . . . 18

4.1.2 Antifuse temelli aygıtlar . . . . . . . . . . . . . . . . . . . . . . 19

4.1.3 E2PROM/FLASH temelli aygıtlar . . . . . . . . . . . . . . . . . 20

4.1.4 Karma FLASH-SRAM aygıtlar . . . . . . . . . . . . . . . . . . . 21

4.2 Birim Hücre Mimarileri . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2.1 MUX tabanlı . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.2.2 LUT tabanlı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.3 Programlanır Mantık Ögeleri . . . . . . . . . . . . . . . . . . . . . . . . 24

4.3.1 Logic Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.3.2 Logic Element ve Adaptive Logic Module . . . . . . . . . . . . . 24

4.3.3 Slice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.3.4 CLB ve LAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.3.5 Distributed RAM . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.3.6 Shift Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.3.7 Fast Carry Chain . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.4 Embedded RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.5 Embedded Multiplier, Adder, MAC . . . . . . . . . . . . . . . . . . . . . 27

4.6 Embedded processor core . . . . . . . . . . . . . . . . . . . . . . . . . . 27

vi

Page 7: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

4.7 Clock Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.8 Clock Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.9 Genel Amaçlı G/Ç . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.10 Yapılandırılabilir G/Ç Özdirençleri . . . . . . . . . . . . . . . . . . . . . 29

4.11 Gigabit Alıcı Vericiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.12 IP (Intellectual Property) Core . . . . . . . . . . . . . . . . . . . . . . . 30

4.13 Ara Baglantı Mimarisi . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.13.1 Altera Ara Baglantı Yaklasımı . . . . . . . . . . . . . . . . . . . 30

4.13.2 Xilinx Ara Baglantı Yaklasımı . . . . . . . . . . . . . . . . . . . 31

4.14 Çekirdek ve G/Ç besleme gerilimleri . . . . . . . . . . . . . . . . . . . . 32

5 FPGA PROGRAMLAMA 33

5.1 Yapılandırma Dosyası . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5.2 Yapılandırma Kipleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.2.1 Fast Passive Parallel (FPP) kipi . . . . . . . . . . . . . . . . . . . 34

5.2.2 Active Serial (AS) kipi . . . . . . . . . . . . . . . . . . . . . . . 35

5.2.3 Passive Serial kipi . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5.2.4 Passive Paralel Asynchronous (PPA) kipi . . . . . . . . . . . . . 36

5.2.5 JTAG kipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

6 UYGULAMA GELISTIRME 38

6.1 Tasarım Girisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6.2 Sentez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.3 Islevsel Benzetim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.4 Yerlestirme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.5 Zaman Analizi ve Benzetimi . . . . . . . . . . . . . . . . . . . . . . . . 40

6.6 Programlama ve Yapılandırma . . . . . . . . . . . . . . . . . . . . . . . 40

6.7 Örnek Uygulama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

7 SONUÇ 42

8 KAYNAKLAR 43

vii

Page 8: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil Listesi

1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Basit programlanır islev . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 Programlanmamıs eritilebilir baglantılar . . . . . . . . . . . . . . . . . . 4

4 Programlanmıs karsıt sigorta baglantıları . . . . . . . . . . . . . . . . . . 4

5 Karsıt sigorta gerçeklenmesi . . . . . . . . . . . . . . . . . . . . . . . . 5

6 Transistör tabanlı maske ile programlanmıs ROM hücresi . . . . . . . . . 6

7 Standard MOS ve EPROM transistör yapıları . . . . . . . . . . . . . . . 6

8 E2PROM hücre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

9 SRAM hücresi ve sembolik gösterimi . . . . . . . . . . . . . . . . . . . 8

10 Programlanır mantık aygıtları genel sınıflandırma . . . . . . . . . . . . . 10

11 3-giris, 3-çıkıslı programlanmamıs PROM . . . . . . . . . . . . . . . . . 10

12 3-giris, 3-çıkıslı programlanmamıs PLA . . . . . . . . . . . . . . . . . . 11

13 3-giris, 3-çıkıslı programlanmamıs PAL . . . . . . . . . . . . . . . . . . 12

14 Genel CPLD yapısı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

15 CPLD’ de programlanır çogullayıcı kullanımı . . . . . . . . . . . . . . . 13

16 ASIC tasarım yöntemleri . . . . . . . . . . . . . . . . . . . . . . . . . . 13

17 Gate array yaklasımlı yonga görünümü . . . . . . . . . . . . . . . . . . . 14

18 Basit gate array temel hücreleri . . . . . . . . . . . . . . . . . . . . . . . 15

19 Yapısal ASIC temelleri . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

20 Yapısal ASIC genel görünümü . . . . . . . . . . . . . . . . . . . . . . . 16

21 PLD ve ASIC yaklasımları arasındaki bosluk . . . . . . . . . . . . . . . 16

22 Programlanır mantık öbegini biçimlendiren anahtar ögeler . . . . . . . . 17

23 Genel FPGA mimarisi üstten görünümü . . . . . . . . . . . . . . . . . . 17

24 FPGA yongasının genel görünümü . . . . . . . . . . . . . . . . . . . . . 18

25 MUX tabanlı mantık blogu . . . . . . . . . . . . . . . . . . . . . . . . . 23

26 Gerekli islev ve dogruluk tablosu . . . . . . . . . . . . . . . . . . . . . . 23

27 Iletim kapısı yaklasımı kullanılan sadelestirilmis LUT gösterimi . . . . . 24

28 Dört slice içeren CLB görünümü . . . . . . . . . . . . . . . . . . . . . . 25

29 Yongaya gömülü çarpıcı ve RAM öbek sütunlarının kus bakısı görünümü 27

viii

Page 9: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

30 Basit saat agacı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

31 Genel amaçlı G/Ç kümeleri . . . . . . . . . . . . . . . . . . . . . . . . . 29

32 Yönlendirme kaynakları yüzeysel görünümü . . . . . . . . . . . . . . . . 32

33 Harici sunucu kullanarak FPP ile tek aygıt yapılandırma . . . . . . . . . . 35

34 AS ile tek aygıt yapılandırma . . . . . . . . . . . . . . . . . . . . . . . . 35

35 Harici sunucu kullanarak PS ile tek aygıt yapılandırma . . . . . . . . . . 36

36 Mikroislemci kullanarak PPA ile tek aygıt yapılandırma . . . . . . . . . . 36

37 JTAG sınır tarayan yazmaçları . . . . . . . . . . . . . . . . . . . . . . . 37

38 Yükleme kablosu kullanarak JTAG ile tek aygıt yapılandırma . . . . . . . 37

39 Stratix GX Gelistirme Kartı . . . . . . . . . . . . . . . . . . . . . . . . . 38

40 Cyclone II EP2C35 DSP Gelistirme Kartı . . . . . . . . . . . . . . . . . 38

41 FPGA akıs seması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

ix

Page 10: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Tablo Listesi

1 Üretim teknolojilerinin karsılastırılması . . . . . . . . . . . . . . . . . . 9

2 Ilgili teknolojilerin yıllara göre dagılımı . . . . . . . . . . . . . . . . . . 9

3 Üretim tekniklerinin karsılastırılması . . . . . . . . . . . . . . . . . . . . 21

4 Çekirdek gerilimi ile teknoloji kullanımı karsılastırılması . . . . . . . . . 32

x

Page 11: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

1 FPGA

FPGA (Alan Programlanır Kapı Dizileri)’ lar yapılandırılabilir mantık blokları ile bir-

likte bu bloklar arasındaki degistirilebilir ara baglantılardan olusan sayısal tümlesik dev-

relerdir. Tasarım mühendisleri bu yapıları programlayarak muazzam çesitlikte görevler

gerçekleyebilirler.

1.1 Kullanım Alanları

Kullanıma ilk baslandıgı 1980’ lerin ortalarında FPGA yongalardan çogunlukla ara yapıs-

tırıcı mantık ve kısıtlı veri isleme görevlerinde faydalanıldı. Ara yapıstırıcı mantıklar daha

genis mantık blokları, fonksiyonlar veya cihazlar arasında ara baglantı olarak kullanıldı.

1990’ ların ilk yıllarında artan kapasiteleri sayesinde genis veri islemleri gerektiren ha-

berlesme ve ag ortamlarında kullanımı arttı. 90’ ların sonlarına dogru tüketiciye yönelik,

otomotiv ve endüstriyel uygulamalardaki kullanımları devasa büyüme sergiledi.

FPGA’ lar genellikle ASIC tasarımların ilk örnekleri veya yeni bir algoritmanın fiziksel

gerçeklenebilirligini dogrulamak adına donanım ortamı saglamak için kullanılırlar. Bu-

nunla birlikte, düsük gelistirme maliyetleri ve kısa sürede pazara sunulabilme özellikle-

riyle gittikçe son ürün yelpazesindeki yerlerini almaktadırlar[1].

2000’ lerin ilk yıllarında milyonlarca kapı içeren yüksek performanslı FPGA’ lar piyasada

yerini aldı. Bazıları gömülü mikroislemci çekirdekleri, yüksek hızlı Giris/Çıkıs (I/O) ara-

yüzleri, gömülü RAM ve DSP öbekleri sunmaktadır. Sonuç olarak günümüz FPGA’ ları

bes ana pazar kolunda yer bulmaktadırlar:

1.1.1 ASIC ve Custom Silicon)

ASIC ve Custom Silicon, büyük hacimli yongalar gerçeklemeye imkan veren fakat uzun

tasarım süreci gerektiren yöntemlerdir. Önceleri sadece bu yöntemlerle gerçeklenebilen

çesitli tasarımlardaki kullanımı giderek artmaktadır.

1.1.2 Digital Signal Processing

Yüksek hızlı DSP geleneksel olarak özellikle uyarlanmıs mikroislemciler (DSP) ile ger-

çeklenmektedir. Günümüz FPGA’ ları DSP islemlerini kolaylastıracak çarpıcılara, özel

1

Page 12: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

aritmetik yönlendiricilere ve büyük miktarlarda dahili RAM’ e sahip teknolojidedirler.

Bu özellikler FPGA’ lerce saglanan yogun paralel islem yetenegiyle birlestiginde sonuç

en hızlı DSP yongasından 500 kez ve daha fazla hızlı olabilmektedir.

1.1.3 Embedded Microcontroller

Küçük kontrol fonksiyonları genellikle özel amaçlı mikrodenetleyiciler ile çözümlenir.

FPGA fiyatları düsmekte ve bununla birlikte en küçük modelleri bile özel I/O fonksi-

yonlarını içeren islem çekirdeklerini saglayabilecek kapasitededir. Bu yönleriyle çekim

noktası olmaktadırlar.

1.1.4 Fiziksel Katman Haberlesmeleri

FPGA’ ler uzun zamandır fiziksel katman ile yüksek seviyeli haberlesme protokol katman-

ları arasında arayüz baglantısını gerçeklemektedirler (Glue Logic). Son teknoloji FPGA’

ler haberlesme ve ag olusturma fonksiyonlarını tek cihazda birlestiren yüksek hızlı alıcı-

verici birimlerini içerebilmektedir.

1.1.5 Reconfigurable Computing

FPGA’ larca saglanan içsel paralellik ve tekrar yapılandırılabilirligi saglayan "hardware

accelerate" yazılım algoritmalarını kullanmaktır. Çesitli firmalar halen yeni çözümler kes-

fetmek amacıyla donanım benzetimlerinden sifreleme tahlillerine kadar büyük FPGA te-

melli tekrar yapılandırılabilir hesaplama tertibatları hazırlamaktadırlar.

1.2 Üretici Firmalar

. Actel; www.actel.com

. Altera; www.altera.com

. Anadigm; www.anadigm.com

. Atmel; www.atmel.com

. Lattice Semiconductor; www.latticesemi.com

2

Page 13: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

. Leopard Logic; www.leopardlogic.com

. QuickLogic; www.quicklogic.com

. Xilinx; www.xilinx.com

Bu firmalar arasında Xilinx ve Altera en büyük hacimli FPGA saglayıcılarıdır. Her fir-

manın kendilerine has teknik üstünlükleri olup arastırma konum bu noktaları içermedigi

için tek tek sirket bazında inceleme yapmadım. Bu çalısmada daha çok Altera ve Xilinx

sirketlerinin en yeni ürünlerini inceledim. Diger sirketlerin ürünlerini üretim teknik ve

teknolojileri açılarından dikkate aldım[2].

2 TEMEL TEKNOLOJILER

2.1 Basit programlanabilir fonksiyon

a ve b girisleri y çıkıs olacak sekilde basit bir programlanabilir islev üzerinde düsünecek

olursak ileriki safhaları daha kolay canlandırabiliriz:

Sekil 1: Basit programlanır islev

Sekil 2’de a ve b girisleri gerçek ve tümlenmis degeri ile verilmistir. Olası baglantı nok-

taları gözükmektedir. Görülecegi üzere herhangi bir baglantı olmaması durumunda tüm

girisler pull-up (mantıksal 1’ e çekme) dirençleri yoluyla mantıksal 1’ e çekilmis olur. y

çıkısı her zaman mantıksal 1 olur.

3

Page 14: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

2.2 Fusible Link Teknolojisi

Kullanıcıya aygıtını programlama izni veren ilk teknolojilerdendir. Aygıtlar, olası tüm

baglantıları olacak sekilde üretilirler. Baglantılar sigorta (fuse) olarak isimlendirilir. Gün-

lük hayattaki sigortaların ilgili teknoloji ile üretilmis seklidirler.

Mevcut haliyle VE kapısı nedeniyle çıkıs daima mantıksal 0’ dır. Tasarımcı istenmeyen

sigortaları aygıt girisine nispeten yüksek voltaj ve akım darbeleri uygulayarak temizler.

Sekil 2: Programlanmamıs eritilebilir baglantılar

Sekil 3’de Eritilebilir-baglantı teknolojisine sahip cihazlar bir kez programlanır. OTP

(One Time Programmable) olarak isimlendirilirler. Çünkü yakılan bölgede geri dönüs

yoktur.

2.3 Antifuse Teknolojisi

Eritilebilir teknolojiye karsıt olarak her programlanabilir bölüm antifuse baglantıya sa-

hiptir. Yapılandırılmadan önce karsıt sigorta, açık devre olarak düsünebilecegimiz yüksek

direnç özelliklidir.

Sekil 3: Programlanmıs karsıt sigorta baglantıları

4

Page 15: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 4’de Tasarıma göre aygıt girisine nispeten yüksek gerilim ve akım darbeleri uygula-

yarak seçim gerçeklesir. Antifuse noktaları baslangıçta iki metal yolu baglayan biçimsiz

(amorf) yapıdadır. Bu haliyle direnç degeri 109 ohmu asan yalıtkandır[3].

Sekil 4: Karsıt sigorta gerçeklenmesi

Sekil 5’de bu yalıtkan yapı, programlama ile iletken polisilikon’ a dönüsür. Eritilebilir

baglantı teknolojisinde oldugu gibi bir kez programlanabilir.

2.4 Mask-Programmed Aygıtlar

Elektronik sistemlerde bellek birimleri iki ana sınıfta yer alırlar: Read Only Memory

(ROM) ve Random Access Memory (RAM).

ROM’ lar mask-programmed olarak adlandırılırlar. Çünkü üretim safhasında içerdikleri

veriler photo-mask isimli sablonlarca kodlanır.

Bütün ROM’ lar dizi yapısı olusturacak sekilde sayı satırları (word) ve sütun hatları (data)

ihtiva eder. Her sütun pull-up direncine sahiptir. Her satır sütun kesisiminde iliskilendi-

rilmis transistör ve maske ile programlanmıs olabilecek baglantı vardır. Satır aktif oldu-

gunda ilisik transistör sütun hattını mantıksal 0’ a çekecektir. Sayet transistör maske ile

sütuna baglanmamıs ise transistör tepki göstermeyecek ve mantıksal 1’ e çekme direnci

sütun hattını mantıksal 1’ e sürecektir.

5

Page 16: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 5: Transistör tabanlı maske ile programlanmıs ROM hücresi

2.5 PROM (Programmable Reod-Only Memory) Teknolojisi

Maske ile programlama masraflı oldugu için bu noktalar tümden sigorta baglantıları ile

donatılır. Baslangıçta satırlar aktif oldugunda transistörler çalısır ve sütunları mantıksal

0’a çeker. Tasarıma göre istenen programlama sigorta teknolojisine uygun sekilde yapılır.

Tasarım mühendislerince basit fonksiyonları gerçeklemek için kullanıslı bulunur. Mali-

yetleri daha ucuzdur.

2.6 EPROM (Erasable Programmable Read-Only Memory) Tekno-

lojisi

Silinip Programlanır Salt Okunur Bellek’ ler ilk Intel firmasınca 1971 yılında takdim

edildi. EPROM transistör, MOS transistörden farklı olarak oksit katmanı ile yalıtılmıs

olan ikinci polisilikon’ a; yüzen geçide (floating gate) sahiptir.

Sekil 6: Standard MOS ve EPROM transistör yapıları

Sekil 7’de baslangıçta kayan geçit sarj edilmemistir ve kontrol geçidinin çalısmasını etki-

lemez. Kontrol ve kanal uçları arasına programlama amaçlı (12V civarında) gerilim uygu-

6

Page 17: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

landıgında faal elektronlar yüksek enerjili elektron akıtma (high energy electron injection)

olarak bilinen islem ile oksitten kayan geçite yönelirler. Programlama sinyali kesildiginde

eksi yük kayan geçitte kalır. Normal sartlarda 10 yıl kadar dagılmadan korunabilir. Eksi

yük kontrol geçidinin normal çalısmasını engeller. Baslangıç durumunda EPROM tra-

nisistörler yüksüzdür. Satırlar aktif oldugunda transistörler çalısır ve transistörler kendi

sütun hatlarını mantıksal 0’ a çekerler. Programlama sonrası yüklü transistör hücreleri

mantıksal 1 degeri içerir. Yük bosalımı ile bir EPROM hücre silinebilir. Bosalım için

gerekli enerji morötesi (Ultraviolet - UV- ) ısınım ile saglanır.

2.7 EEPROM (Electrically Erasable Programmable Read-Only Me-

mory)

E2PROM olarak ta bilinen Elektriksel Silinip Programlanır Salt Okunur Bellek’ ler esde-

ger bir EPROM hücreden 2.5 kat daha genis yer kaplar. Çünkü iki transistör ve araların-

daki bosluk vardır.

Sekil 7: E2PROM hücre

Sekil 9’de E2PROM transistörü de EPROM transistör gibi kayan geçide sahiptir. Ancak

bu geçidi çevreleyen oksit daha incedir. Ikinci transistör elektriksel silme islemi içindir.

2.8 FLASH Teknolojisi

Flash temelli bilesenler çesitli mimariler kullanabilir. Bazıları EPROM hücre ile aynı

alana sahip ama E2PROM’ deki gibi ince oksit katmanlı olacak sekilde tek yüzen ge-

çitli transistör hücresine sahip olabilir. Bu mimari elektrik ile silinebilir ancak tüm cihaz

7

Page 18: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

veya büyük kısımlar halinde temizlenir. Diger bir mimari E2PROM benzeri iki transis-

törlü hücreye sahiptir. Bu suretle kelime kelime silinebilir ve tekrar programlanabilir.

Flash hücrelerin ilk sürümleri tek bitlik veri saklayabiliyorlardı. 2002 yılından bu yana bu

kapasite arttı. Ilgili teknikte Flash transistördeki yüzen geçit iki bit temsil etmek için ayrı

depolama seviyeleri içerir.

2.9 SRAM (Static Random Access Memory) Teknolojisi

Duragan Rasgele Erisimli Bellek’ ler özellikle degistirilmedikleri veyahut güç kesilme-

digi müddetçe içeriklerini korurlar. Asagıda bir SRAM hücresi görülmektedir.

Sekil 8: SRAM hücresi ve sembolik gösterimi

Tüm hücreler çıkısının kontrol transistörünü sürdügü SRAM depolama birimine sahiptir.

Depolama biriminin içerigine göre kontrol transistörü çalısır veya çalısmaz.

Olumsuzluklarından biri; her hücre 4 ila 6 arasında transistörce olusturulur. Bir diger

olumsuzlugu yapılandırılma bilgisi güç kesildigi zaman kaybolur. Bu yüzden her açılısta

yeniden programlanmalıdır. Üstün tarafları çok hızlı sekilde ve defalarca programlanabilir

olmalarıdır. Yukarıdaki teknolojiler haricinde manyetik RAM (MRAM) teknolojisi büyük

ilgi çekmektedir.

Önümüzdeki yıllarda kullanılabilecek olan bu teknoloji ile SRAM’ ların yüksek hızı,

DRAM’ ların depolama kapasitesi ve FLASH teknolojisinin kalıcılıgı birlestirilip basa-

rım yükseltilecektir. Güç tüketimi çok az olacak MRAM’ lar muhtemelen FPGA’ larda da

8

Page 19: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

görülecektir.

Tablo 1: Üretim teknolojilerinin karsılastırılması

3 FPGA TEKNOLOJISININ GELISIMI

Dogrudan giris yapmadan önce ilgili teknolojilere kısaca deginecegim. Asagıdaki çizgede

ilgili teknolojilerin yıllara göre dagılımı gözükmektedir[4].

Tablo 2: Ilgili teknolojilerin yıllara göre dagılımı

Tablo 2’de zaman çizelgesindeki beyaz çubuklar o teknigin vücut buldugunu fakat bu za-

man zarfında uygulamasına geçilmedigini göstermektedir. Örnegin, Xilinx firması FPGA’

i 1984 yılında gelistirmesine ragmen bu alana ancak 90’ lı yıllarda öncelik vermistir.

3.1 SPLD ve CPLD

Ilk programlanır IC’ ler genel olarak "programmable logic device (PLD)" olarak takdim

edilir. Özgün bilesen, 1970 yılında sunulan ve daha basit olan PROM’ lardır ama prog-

ramlanır mantık aygıtları PLD’ ler kabul edilir. Genel sınıflandırma asagıda verilmistir.

9

Page 20: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 9: Programlanır mantık aygıtları genel sınıflandırma

Sekil 41’de verilenler haricinde EPLD, E2PLD ve FLASH tasarımları da mevcuttur.

3.2 PROM

En basit PLD çesididir. Sabit VE kapısı fonksiyonlarının VEYA kapı fonksiyonlarını sür-

mesi seklinde olusturulmustur.

Sekil 10: 3-giris, 3-çıkıslı programlanmamıs PROM

Her VE fonksiyonu a,b ve c girislerinden gelen gerçek veya tümleyen degerlerinden üçü

ile baglantılıdır. Yine her VEYA fonksiyonu VE dizisi çıkıslarından gelen sekiz girise

sahiptir. Yukarıdaki yapı ile 3 giris 3 çıkıslı tüm fonksiyon birlesimleri saglanabilir. Ger-

çekte çok daha fazla sayıda giris ve çıkıs barındırırlar. Istenilen fonksiyona göre VEYA

kapıları programlanır. VEYA dizisindeki programlanır baglantılar eritilir baglantı, EP-

ROM ve E2PROM hücresi olabilir.

10

Page 21: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

3.3 PLA (Programmable Logic Array)

Programlanır mantık dizisi teknolojisi PROM kısıtlamalarını asarak takriben 1975’ te

gelistirildi. Basit PLD’ ler içerisinde kullanıcıya en fazla yapılandırma imkanı verendir.

Çünkü VE ve VEYA dizilerinin her ikisi de programlanabilir.

VE dizisindeki VE fonksiyon sayısı, giris sayısından bagımsızdır. Ek VE kapıları dizideki

satırlara kolayca dahil edilebilir.

VEYA dizisindeki VEYA fonksiyon sayısı da giris ve VE fonksiyon sayılarından bagım-

sızdır. VEYA kapıları dizideki sütunlara kolayca dahil edilebilir.

Sekil 11: 3-giris, 3-çıkıslı programlanmamıs PLA

PLA’ lar özellikle mantık esitlikleri çok sayıda ortak terim içeren çıkıslara sahip büyük

tasarımlarda tercih edilebiliyor. Önceden tanımlı karsıtlarına nazaran programlanır bag-

lantılardan geçisler daha uzun sürer. Dolayısıyla PROM’ lara göre daha yavastırlar.

3.4 PAL (Programmable Array Logic)

Programlanır dizi mantıkları PROM’ ların tam tersi bir yapıya sahiptir. VE dizileri prog-

ramlanır ve VEYA dizileri önceden tanımlıdır. Asagıdaki sekilde 3 giris 3 çıkıslı prog-

ramlanmamıs durumda basit PAL verilmistir.

11

Page 22: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 12: 3-giris, 3-çıkıslı programlanmamıs PAL

PLA’ lara göre daha hızlıdır. Ancak kısıtlı sayıda terimin birlikte VEYA’ lanabilmesi

olumsuz yanıdır.

GAL (Generic Array Logic), PAL mantıgında olup CMOS elektriksel silinir (E2) özellik

saglar. Lattice Semiconductor Corp. tarafından üretilmektedir.

Verilen basit örneklere ragmen gerçek cihazlar daha büyüktür ve daha fazla programlama

seçenegi gereksinimi duyarlar. Çıkısın terslenmesi, üç durumlu çıkıs, kayıtlı veya man-

dallı çıkıs, ilgili bacagın çıkıs veya ek giris olarak kullanılabilmesi gibi çesitli seçenekler

olabilir.

3.5 CPLD (Complex Programmable Logic Device)

Artan kapasite ihtiyacı neticesinde 1984 yılında Altera firması CMOS ve EPROM tek-

nolojilerine dayanan karmasık programlanır mantık aygıtlarını (CPLD) gelistirdi. CMOS

kullanarak küçük güç tüketimi ile muazzam islevsel yogunluk ve karmasıklık saglanmıs

oldu. Programlanırlık EPROM hücrelerine dayandıgından, gelistirme ve ön ürün için yeg-

lendi.

Genel olarak G/Ç öbegi ve aynı programlanır ara baglantı matrisini paylasan SPLD (Simple

PLD) öbeklerinden olusur. Ara baglantılar ile sinyaller aygıtın bir bölümünden diger tüm

bölümlerine ulasabilir.

12

Page 23: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 13: Genel CPLD yapısı

Programlanır ara baglantı 100 tel içerebilir iken tek SPLD öbegi sınırlı sayıda tel ba-

rındırabilir. Bu nedenle SPLD öbekleri ara baglantı matrisine, programlanır çogullayıcı

(MUX) kullanarak ara yüzlenir.

Sekil 14: CPLD’ de programlanır çogullayıcı kullanımı

Üretici firmaya ve aygıt ailesine göre CPLD programlanır anahtarları EPROM, E2PROM,

FLASH veya SRAM hücre teknigini kullanabilir.

3.6 ASIC (Application Specific Integrated Circuit)

Uygulamaya özgü tümdevre kendi içerisinde dört alt baslıkta incelenir.

Sekil 15: ASIC tasarım yöntemleri

13

Page 24: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

3.6.1 Full Custom

Tasarlanan devrelerin hızı ve karmasıklıgı artıkça tasarımcının üretim sürecine müdaha-

lesi de artar. Yüksek hızlı sistemler ile gizliligi önemli olan devreler Full-Custom yöntemi

ile tasarlanır. Bu yöntemde üreticinin gönderdigi kütüphaneler kullanılmaz. Üreticiden

metal baglantı yüzeyleri sayısı, iki kanal arası izin verilen en kısa mesafe gibi teknolojik

bilgiler alınır. Üreticiye masklar dısında herhangi bir bilgi gönderilmedigi ve üreticinin

kütüphaneleri kullanmadıgı için tasarımın çözülme olasılıgı yoktur. Tasarımı ve üretimi,

önceki iki yönteme göre daha uzun süren bir yöntemdir.

3.6.2 Standard Cell

Bu yöntemde de üreticinin kütüphaneleri kullanmakla birlikte yonga üzerindeki hücrele-

rin konumu tasarımcı tarafından belirlenir. Gate array yöntemi gibi temel hücre yaklasımı

yoktur. Kütüphane içinde yer alan modeller üzerinde her hangi bir degisiklik yapılma-

makla birlikte, yonga üzerinde olusturulacak serimde tasarımcının söz sahibi olması, üre-

tim sonuçlarının benzetim sonuçlarına daha yakın olmasını saglar. Sistem gizliligi daha

fazladır. Ancak yine de üreticinin modellerinin kullanılmıs olması, çok zor olmakla bir-

likte, sistemin çözülme olasılıgını gündeme getirebilmektedir.

3.6.3 Gate Array

Baglantısız transistör ve direnç içeren temel hücreler mantıgına dayanır. Her ASIC sagla-

yıcısı özel birim hücrelerinde en uygun bilesen dagılımını belirler.

Sekil 16: Gate array yaklasımlı yonga görünümü

14

Page 25: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 17: Basit gate array temel hücreleri

En kısa sürede sonuç alınabilen, tasarımı ve üretimi kolay olan ASIC tasarım ve üretim

yöntemidir. Üreticiye masklarla birlikte devre semaları da verildigi için tasarım gizliligi

en az olan yöntemdir. Ancak tasarım ve üretim süreçlerinin kısalıgı, ASIC tasarımına

yeni baslayanlar için, sonuçları kısa bir süre içinde görmek açısından, bu yöntemi çekici

bir duruma getirmektedir.

Olumsuz tarafları, çogu tasarım önemli miktarda içsel kaynagı kullanmadan bırakır. Bag-

lantı düzenlemeleri kısıtlanır ve en iyi durum saglanamaz. Bu da tasarımın basarımını ve

güç tüketimini olumsuz etkiler.

3.6.4 Structured ASIC

On yıllık geçmisine ragmen son iki-üç yıldır ASIC tasarım maliyeti ve gelistirme zaman

degerlerini düsürme çabalarının sonucunda kullanılmaktadır. Her aygıtta "module" (bi-

rim) veya "tile" (kiremit) olarak isimlendirilen temel ögeler vardır. Asagıdaki sekilde öge

içerikleri genel olarak verilmistir.

Sekil 18: Yapısal ASIC temelleri

Çogu yapısal ASIC mimarisi için özellesmis iki veya üç metalleme katmanı yeterlidir.

Bu sayede tasarımı olusturma maliyeti ve zamanı önemli ölçüde azalır. Ancak yapısal

15

Page 26: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

ASIC, Standard Cell yöntemine göre aynı fonksiyonu gerçeklemek için silikon alanı ve

güç tüketimi açılarından yaklasık üç kat fazlasına gereksinim duyar.

Sekil 19: Yapısal ASIC genel görünümü

3.7 FPGA

Sayısal tümdevre sürecinde 80’ li yıllarda belli bosluklar görülmeye baslandı. Bir ta-

rafta SPLD ve CPLD gibi programlanır yongalar vardı. Bunlar yüksek yapılandırıla-

bilme, hızlı tasarım ve degisiklik sürelerine sahiptiler ama genis ve karmasık tasarımları

destekleyemiyorlardı[5].

Diger tarafta ASIC tasarım bulunmaktaydı. Çok genis ve karmasık islevleri desteklemele-

rine ragmen, oldukça pahalı ve zaman harcayan sürece sahiptirler. Üstelik tasarımım geri

dönüsü yoktur.

Sekil 20: PLD ve ASIC yaklasımları arasındaki bosluk

Bu aralıgı doldurmak amacıyla Xilinx firması FPGA adını verdigi yeni bir IC sınıfı ge-

listirdi ve 1984 yılında pazara sunulacak hale getirdi. Ilk FPGA’ ler CMOS tabanlı ve

yapılandırma için SRAM hücreleri kullanıyordu. Ilk örnekleri çok daha basit olmalarına

16

Page 27: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

ragmen temelde var olan mimari çogu açıdan hala kullanılmaktadır.

Ilk yongalar 3-girisli LUT, yazmaç ve MUX’ tan olusan programlanır mantık öbeklerine

dayanıyorlardı.

Sekil 21: Programlanır mantık öbegini biçimlendiren anahtar ögeler

SRAM hücreleri vasıtası ile yongadaki her mantık öbegi farklı islevler için yapılandırı-

labilir. Her yazmaç mantıksal 1 veya mantıksal 0 yapılarak baslangıç durumuna getiril-

meli ve ikidurumlu veya mandal gibi davranması için ayarlanmalı. Ikidurumlu seçilmisse,

yazmaç saat darbesinin düsen veya yükselen kenarı ile tetiklenmesi için yapılandırılmalı.

Ikidurumluyu besleyen çogullayıcı (MUX), LUT çıkısı veya ayrı giris için yapılandırıl-

malı. LUT da her hangi 3 girisli mantık islevi için ayarlanmalı. Asagıda bir LUT örnegi

verilmistir.

Asagıdaki basitlestirilmis sekle ek olarak: yerel baglantıları es geçecek yüksek hızlı genel

ara baglantı yolları, baslıca G/Ç bacakları vardır[6].

Sekil 22: Genel FPGA mimarisi üstten görünümü

17

Page 28: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

4 FPGA MIMARISI

Genel anlamıyla FPGA’ lar üç ana birime gereksinim duyarlar:

- Birlesimsel mantık

- Ara baglantı

- G/Ç bacakları

Sekil 23: FPGA yongasının genel görünümü

4.1 Üretim Teknikleri

FPGA yongaları farklı teknolojileri baz alarak üretilebilir. Yonga üreticileri farklı teknik-

lerde uzmanlasmıstırlar.

4.1.1 SRAM temelli aygıtlar

FPGA’ larda çogunlukla SRAM temelli yapılandırma hücreleri yaklasımı kullanılır. Bu

teknigin ana üstünlügü yeni tasarım fikirlerin çabucak gelistirilebilir ve sınanabilir olma-

sıdır. Bu sayede standartlar ve protokoller gelistirirken daha kolay uzlastırılabilir. Ayrıca

düzenege ilk güç verildiginde baslangıçta öz sınama (Self Test), kart/sistem sınaması gibi

islevleri gerçeklemesi için ve sonra ana görevi için programlanabilir. Yani sistem üzerinde

programlanabilir.

18

Page 29: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

SRAM temelli yaklasımın bir diger üstünlügü, teknolojinin ön saflarında yer almasıdır.

FPGA saglayıcılarının talepleri neticesinde bellekler üzerinde uzmanlasmıs firmalar bu

alanda arastırma ve gelistirme için (R/D) büyük kaynak harcamaktalar. Üstelik SRAM

hücreler yongadaki diger birimlerle tamamen aynı CMOS teknolojisi ile üretildiklerinden

özel islem basamagı gerektirmezler.

Olumsuz tarafı ise sistemin her açılısında aygıtın tekrar yapılandırılmak zorunda olması-

dır. Bu durum harici bellek gibi fazladan masraf ve alan teskil eden birimler gerektirir. Bir

diger olumsuzlugu büyük yönlendirme gecikmesidir.

Tasarım açısından fikri mülkiyeti (Intellectual Property - IP) korumak zordur. Bunun ne-

deni aygıtı programlamak için gerekli olan yapılandırma dosyasının harici bellekte sak-

lanmasıdır.

Günümüzde yapılandırma dosyasının içerigini okuyup ilgili sematik veya netlist gösteri-

mini üretecek ticari araçlar mevcut degildir. Ancak tecrübe ve bilgisayar yardımıyla bu

sınır asılabilmektedir.

Bazı günümüz FPGA’ ları bit katarı sifreleme (bit stream encrytion) kavramını destekler.

Bu yöntemde nihai yapılandırma verisi harici bellege depolanmadan önce sifrelenir. Sif-

releme anahtarı FPGA içerisindeki özel SRAM temelli yazmaca JTAG baglantı noktası

üzerinden yüklenir. Ilgili mantık birimleri ile birlesmesi durumunda bu anahtar sifrelen-

mis bit katarının çözümlenmesine müsaade eder.

Sifre anahtarı için kullanılan yazmacın içerigini sürdürmek devre kartı üzerinde yedek pil

gerektirir. Bu pil yıllarca dayanabilir ama bu gereksinim kart üzerinde boyut, agırlık ve

maliyet gibi olumsuzluklar dogurur.

4.1.2 Antifuse temelli aygıtlar

SRAM temelli yaklasımdan farklı olarak devre dısında özel programlayıcılar ile prog-

ramlanır. Bu yaklasımda veriler uçucu degildir. Sistem güçten kesildigi zamanda yapılan-

dırma verilerini saklaması harici bellek gereksinimini ortadan kaldırır.

Bir diger önemli üstünlügü ara baglantı yapısının dogal olarak ısınım etkisine görece

bagısıklı olmasıdır. Bu durum askeri ve uzay uygulamalarında özel ilgi sebebidir. Çünkü

SRAM temelli bilesenler ısınıma maruz kalacak olursa hatalara yol açabilir. Antifuse bir

kez programlandıktan sonra bu yolla degistirilemez. Ancak aygıttaki herhangi bir flip-flop

19

Page 30: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

ısınıma hassasiyetini sürdürür. Bu yüzden yogun ısınımlı ortamlar için flip-floplar "triple

redundancy design" yöntemi ile korunmalıdırlar. Bu yöntem her yazmacın üç kopyasının

olması ve hata durumunda çogunluktaki degerin hatalıyı düzeltmesi seklindedir.

Muhtemelen en önemli özelligi yapılandırma verisinin FPGA içerisine gömülmesidir. Her

antifuse islendiginde, aygıt programlayıcı o ögenin tamamen programlandıgının tespitine

kadar sınamasını devam ettirir. Sonrasında sıradaki antifuse ögesine geçer. Üstelik ay-

gıt programlayıcıları yapılandırmanın basarılı biçimde gerçeklendigini özdevimli olarak

dogrulayabilirler. Bu özellik milyonlarca programlanır öge içeren yongalar için önemlidir.

Sonradan herhangi programlama verisinin aygıttan okunmasını engellemek için özel gü-

venlik antifuse ögesi ayarlamak mümkündür. Programlanmıs ve programlanmamıs anti-

fuse ögeleri özdes göründügünden ve antifuse ögeleri iç metalleme katmanlarına gömülü

olduklarından tersine mühendislik neredeyse olanaksızdır.

Antifuse ögesi SRAM temelli ögeye göre kendi basına daha az yer kaplıyor ve enerji

harcıyor olmasına ragmen her öge için fazladan programlama devresi gerekir. Bu nedenle

bu açılardan önemli fark yaratmaz. Yönlendirme gecikmesi daha küçüktür. Bu antifuse

teknigini SRAM’ e göre daha hızlı kılar.

Antifuse teknigi ana üretim sürecine ek birkaç basamak daha gerektirir. Teknolojisi SRAM

temelli yaklasımın birkaç nesil gerisindedir. Bu güç tüketimi ve hız gibi üstünlüklerini

bertaraf eder. Temel kusuru bir kez programlanır (OTP) olmasıdır. Bu nedenle uygulama

gelistirme için dogru tercih olmaz[7].

4.1.3 E2PROM/FLASH temelli aygıtlar

SRAM karsıtlarına benzer olarak yapılandırma hücreleri birbirlerine uzun ötelemeli yaz-

maç biçimli zincirler seklinde baglanmıslardır. Bu yongalar aygıt programlayıcıları ile

devre dısında programlanabilir. Bazı çesitleri devre içinde de programlanabilir (In Sys-

tem Programmable). Ancak programlama hızları SRAM temelli bilesenlere göre yaklasık

üç kat fazladır.

Programlandıktan sonra içerigi uçucu olmadıgından sisteme ilk güç verildiginde hazır

olacaklardır. Koruma amaçlı olarak bazıları 50 bit ila birkaç yüz bit genisliginde olabilen

"multibit key" kavramını kullanır. Yongayı programlarken kullanıcı tanımlı bit dizisi veri

güvenligi amacıyla yüklenir. Aygıttan veriyi okumak veya yeni yapılandırmayı yüklemek

20

Page 31: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

için anahtarın kopyası JTAG baglantı noktası ile aktarılmalıdır.

SRAM hücrelerine göre daha küçük olduklarından ara baglantı gecikmeleri daha azdır.

Ancak standard CMOS teknolojisine ilaveten yaklasık bes islem basamagı gerektirdigin-

den SRAM temelli aygıtların birkaç nesil gerisinde kalır. Bununla beraber içerdikleri çok

sayıda pull-up dirençlerinden dolayı görece yüksek duragan güç tüketimi vardır.

4.1.4 Karma FLASH-SRAM aygıtlar

Her yapılandırma ögesi FLASH (veya E2PROM) hücre ve SRAM hücre birlesiminden

olusur. Kullanımı sınırlıdır.

Bu durumda FLASH hücre önceden programlanabilir. Sonrasında sisteme güç verildi-

ginde FLASH içerigi iliskili SRAM hücresine kopyalanır. Bu teknik antifuse aygıtlar-

daki kalıcılıgı verir. Ancak antifuse temelli bilesenlerden farklı olarak sistemde yerlesik

iken SRAM hücreleri tekrar yapılandırma için sonradan kullanılabiliriz. Diger bir sekilde

FLASH hücreler kullanılarak sistem dahilinde veya aygıt programlayıcı ile devre dısında

tekrar programlanabilir.

Tablo 3: Üretim tekniklerinin karsılastırılması

4.2 Birim Hücre Mimarileri

FPGA’ ları diger aygıtlardan ayıran ana özelligi agırlıklı olarak programlanır ara baglan-

tılar içerisine gömülü, çok sayıda kısmen küçük programlanır mantık öbekleri içermele-

21

Page 32: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

ridir.

Ince taneli (fine-grained) mimaride, her mantık öbegi sadece basit islevler gerçeklemek

için kullanılabilir. Örnegin bu ögeler ilkel mantık kapıları gibi ( VE, VEYA, VE DEGIL,

vb. ) veya depolama ögesi gibi (D tipi flip-flop, D tipi latch, vb. ) herhangi 3 girisli islev

için yapılandırılabilir.

Birlestirici mantık (glue logic) ve durum makineleri gibi düzensiz yapılara ilaveten ince

taneli mimari, paralel uygulamalardan faydalanan sistolik algoritmalar yürütürken özel-

likle verimli olurlar.

Iri taneli(coarse-grained) mimaride, her mantık öbegi ince taneli yaklasıma göre daha

fazla mantık birimi içerir. Örnegin, bir mantık öbegi dört tane 4 girisli LUT, 4 adet MUX,

4 adet D tipi flip-flop ve bazı hızlı tasıma mantıkları içerebilir.

Ince taneli gerçeklemede bu öbeklerce desteklenen islevsellige nazaran öbek içi ve dısında

görece daha fazla sayıda baglantı gerekir. Öbek boyutu arttıkça, öbek içerisindeki baglantı

sayısı destekledigi islevsellige kıyasla azalacaktır. FPGA boyunca yayılım gecikmesinde

öbekler arası ara baglantılar hesaba katıldıgı için bu sonuç önemlidir.

Son zamanlarda bazı firmalarca gelistirilen iri taneli aygıtlar dügüm dizileri içermeye

basladı. Bunlar hızlı fourier dönüsümü (FFT) gibi algoritmik islevlerden genel amaçlı

islemci çekirdeklerine kadar yüksek derecede karmasık islem ögelerini içerir. Bu aygıtlar

FPGA olarak sınıflandırılmasalar da bu alanda yer isgal ederler. Dolayısıyla LUT temelli

FPGA mimari çogu kez orta taneli (medium-grained) olarak sınıflandırılır. Neticesinde,

iri taneli olarak adlandırma yeni dügüm temelli aygıtlar için kullanılmaya baslanmıstır[8].

Iki temel programlanır mantık öbegi düzenlemesi vardır: MUX tabanlı ve LUT tabanlı

4.2.1 MUX tabanlı

Çoklayıcılı yaklasıma örnek olarak 3 girisli y = (a/b) c islevini MUX içeren öbek ile

gerçeklestirilmesini inceleyelim.

22

Page 33: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 24: MUX tabanlı mantık blogu

Aygıt mantıksal 0, mantıksal 1 veya diger öbek ve asıl giristen gelebilecek sinyallerin asıl

veya tümleyen degeri ile programlanabilir. Bu durum olası islev için sayısız yol demek-

tir. Yukarıdaki örnekte ortadaki MUX’ ın girisindeki x ifadesi, girisin mantıksal 1 veya

mantıksal 0 olmasının islemi degistirmeyecegini belirtir. (x : don’t care)

4.2.2 LUT tabanlı

Bir grup giris sinyali basvuru çizelgesi (LookUp Table) için isaretçi olarak kullanılır. Çi-

zelgenin içerigi, istenen degeri içeren her giris birlesimini gösteren hücreler ile düzenlenir.

Sekil 25: Gerekli islev ve dogruluk tablosu

Bu islev 3-girisli LUT’ u uygun degerler ile yükleyerek yapılabilir. Örnek için LUT’ ların

SRAM hücrelerden olustugunu düsünelim. Kullanılan ana teknik istenen SRAM hücreleri

seçmek için basamaklı iletim geçitlerini, girisleri kullanarak belirlemektir.

23

Page 34: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 26: Iletim kapısı yaklasımı kullanılan sadelestirilmis LUT gösterimi

Iletim geçidi etkin ise (active), sinyal girisinden çıkısına geçer. Etkin degil ise çıkısı sür-

dügü tele elektriksel olarak baglantısızdır.

4.3 Programlanır Mantık Ögeleri

Her programlanır öbek bir veya birkaç LUT’ a ilaveten çoklayıcı ve yazmaç gibi ögeler

içerir. Her üretici farklı isimler kullanır. Bunlara asagıda deginilmistir.

4.3.1 Logic Cell

Xilinx, çagcıl FPGA örneklerinde yapı tasını "Logic Cell (LC)" olarak isimlendirir. LC,

4-girisli LUT, çoklayıcı ve yazmaç içerir. LUT aynı zamanda 16x1 RAM ve 16 bitlik

kaydırmalı yazmaç olarak davranabilir. Bunlara ek olarak aritmetik islemler için özel hızlı

elde mantık yapıları içerir.

4.3.2 Logic Element ve Adaptive Logic Module

Altera, FPGA’ larında yapı tasını "Logic Element (LE)" olarak isimlendirir. Stratix aile-

siyle birlikte bu isimlendirme "Adaptive Logic Module (ALM) " olarak degismistir. Bazı

farklılıklarla birlikte tüm yaklasım LC ile çok benzerdir.

4.3.3 Slice

Hiyerarsi de bir sonraki basamak Xilinx firmasınca "slice" olarak isimlendirilir. Her slice

2 LUT içerir. Her logic cell’ in LUT, MUX ve yazmacı kendi giris ve çıkıslarına sahiptir.

24

Page 35: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Ancak clock, clock enable ve set/reset sinyalleri her iki LC için ortaktır.

4.3.4 CLB ve LAB

Bir üst basamakta Xilinx’ in "Configurable Logic Block (CLB)" ve Altera’ nın "Logic

Array Block (LAB)" olarak isimlendirdikleri yapılar vardır.

Sekil 27: Dört slice içeren CLB görünümü

Her CLB aygıta göre iki veya dört slice içerir. CLB’ ler arasında hızlı programlanır ara

baglantılar vardır. Bunlar komsu slice’ ları birlestirmek için kullanılır. En hızlı ara baglantı

slice içerindeki LC’ ler arasındadır. CLB içerisindeki slice’ lar arasındaki ara baglantı

daha yavastır. Bunu CLB’ ler arasındaki ara baglantı izler.

Daha ayrıntılı açıklama için Stratix II ailesini baz alırsak; her LAB sekiz ALM, elde

zincirleri, paylasılmıs aritmetik zincirleri, LAB kontrol sinyalleri, yerel ara baglantıları

ve yazmaç zincir baglantı hatları içerir.

Ara baglantılar LAB yerel ara baglantıları aynı LAB içerisindeki ALM’ leri sürebilir.

Bu yerel baglantılar satır-sütun ara baglantılarınca ve aynı LAB içerisindeki ALM çıkıs-

larınca sürülebilir.

Kontrol Sinyalleri Kontrol sinyalleri saat, saat etkinlestirme, eszamanlı ve eszamansız

temizleme, eszamansız önceden ayarlama/yükleme ve eszamanlı yükleme kontrolü sin-

yallerini içerir.

Adaptive Logic Module Uyarlanabilir LUT kaynakları, iki programlanır yazmaç, iki

adanmıs tam toplayıcı, elde zinciri, paylasılmıs aritmetik zinciri ve yazmaç zinciri içerir.

25

Page 36: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Her ALM yerel, satır-sütun, elde zinciri, paylasılmıs aritmetik zinciri, yazmaç zinciri ve

dogrudan baglantı ara baglantılarını sürebilir.

Shared Aritmetic Chain Paylasılmıs aritmetik kipte, elde zinciri yönlendirmesine ek

olarak üç girisli toplamayı gerçeklemek için paylasılmıs aritmetik zinciri kullanılır.

4.3.5 Distributed RAM

4-girisli LUT göz önüne alırsak, 16 SRAM hücresi gerekecektir. Her CLB su sekillerde

yapılandırılabilir:

Single-port RAM : 16x8 bit RAM, 32x4 bit RAM, 64x2 bit RAM, 128x1 bit RAM Dual-

port RAM : 16x4 bit RAM, 32x2 bit RAM, 64x1 bit RAM

Tek girisli RAM’ de okuma ve yazma islemi için ortak veri yolu kullanılır. Çift girisli

RAM’ de ise okuma ve yazma için ayrı veri yolları vardır. Dolayısıyla okuma ve yazma

es zamanlı olarak gerçeklenebilir.

4.3.6 Shift Register

4 girisli LUT 16 bitlik kaydırmalı yazmaç olarak kullanılabilir. Slice’ da LC’ ler arasın-

daki ve slice’ lar arasındaki özel baglantıları sayesinde bir kaydırmalı yazmacın son biti

bir digerin ilk bitine baglanabilir. Bu sayede 128 bitlik kaydırmalı yazmaç gerçeklenebilir.

4.3.7 Fast Carry Chain

Çagcıl FPGA’ larda hızlı elde zincirlerini gerçeklemek için özel mantık islevleri ve ara

baglantılar vardır. Her LC özel elde mantık islevi içerir. Her slice’ da LC’ ler, CLB’ de

slice’ lar ve CLB’ ler arasında ara baglantılar ile iliski kurulmustur. Bu birim, sayıcılar ve

aritmetik islevler gibi mantıksal islevlerinin basarımını arttırır.

4.4 Embedded RAM

Günümüz FPGA’ ları gereksinimler neticesinde büyük yıgınlar halinde gömülü RAM içe-

rirler. Bunlar "e-RAM" veya "block RAM" olarak isimlendirilir. Mimariye göre bu öbek-

ler yonganın dıs kenarlarına, yüzeyine dagıtılmıs sekilde veya sütunlar halinde olabilir.

26

Page 37: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Her yonga bu öbeklerden yüzlerce içerebilir. Toplam kapasite birkaç milyon biti bulabilir.

Her RAM öbegi bagımsız veya birlikte daha büyük öbekler halinde kullanılabilir.

4.5 Embedded Multiplier, Adder, MAC

Çarpma gibi islevler programlanır öbekler ile yapılacak olursa kendiliginden yavas ola-

caktır. Birçok uygulama bu tarz islevleri gerektirdiginden çogu FPGA özel dahili çarpma

öbekleri içerir. Bunlar özellikle gömülü RAM öbeklerine yakın yerlestirilir.

Sekil 28: Yongaya gömülü çarpıcı ve RAM öbek sütunlarının kus bakısı görünümü

4.6 Embedded processor core

Çogu tasarım degisik amaçlarla mikroislemci kullanır. Yakın zamana kadar bu islemleri

kart üzerinde ayrı devre ile saglanıyordu. Son zamanlarda üst uç FPGA’ ler "microproces-

sor core" olarak isimlendirilen gömülü mikroislemciler içermeye basladı. Bu sayede kart

maliyeti, boyutu ve karmasıklıgı azaldı.

4.7 Clock Tree

FPGA içerisindeki tüm anuyumlu ögelerin saat sinyalince sürülmeye gereksinimi vardır.

Saat sinyali genellikle dısarıdan saglanır ve özel saat giris bacagından FPGA’ e girer.

Sonrasında ilgili yazmaçlara yonga boyunca yönlendirilir.

Asagıda basitlestirilmis gösterim ile saat hattı yayılımı verilmektedir. Bu ag "clock tree"

olarak isimlendirilir. Sekilde de görülecegi üzere ikidurumlular agacın yaprakları gibidir.

27

Page 38: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 29: Basit saat agacı

Bu yapı bütün ikidurumluların mümkün oldugu kadar uyumlu sekilde aynı saat sinyalini

görmelerinden emin olmak için kullanılır. Zincir dizilimi kullanılacak olsaydı saat giris

bacagına en yakın olan, zincirin sonundaki ikidurumludan epey öce saat sinyalini alacaktı.

Bu çarpıklık istenmeyen sorunlara neden olacaktı. Agaç yapısında çarpıklık çok daha

azdır.

4.8 Clock Manager

Saat giris bacagını dogrudan iç saat agacına baglamak yerine, bu girisler "clock manager"

adı verilen özel fiziksel baglantılı birimleri sürmek için kullanılabilir. Bu saat yönetici-

leri, saat sinyallerini çogaltırlar. Yapılan düzenleme ile çogullanmıs sinyalleri, dahili saat

agaçlarına veya diger aygıtlara sunmak üzere harici çıkıs bacaklarına iletirler.

4.9 Genel Amaçlı G/Ç

Bugünün FPGA paketleri 1000 veya daha fazla bacaga sahip olabilirler. Bunlar paketin

tabanı boyunca sıralı sekilde düzenlenirler.

Gereksinime göre tasarımda farklı elektriksel standartlar kullanılır. Bu zorlugu asmak için

FPGA’ ların genel amaçlı G/Ç birimleri gereken standarda uyacak sekilde sinyal alma ve

üretme için yapılandırılabilir. Bu genel amaçlı G/Ç sinyalleri belli kümelere bölünecektir.

28

Page 39: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 30: Genel amaçlı G/Ç kümeleri

Her küme, özel G/Ç standardını desteklemek için ayrı ayrı yapılandırılabilir. Bu özellik,

çoklu standart ile çalısmaya, FPGA’ ları farklı G/Ç standartları arasında ara yüz olarak

kullanmaya izin verir.

4.10 Yapılandırılabilir G/Ç Özdirençleri

Günümüz hızlı sistemlerinde sinyallerin geri yansımasını önlemek için FPGA’ nın giris

ve çıkıs bacaklarına uygun sonlandırıcı dirençler baglanmalıdır.

Geçmiste bu dirençler ayrı bilesenler olarak devre kartı üzerine ekleniyordu. Bacak sa-

yısı arttıkça ve aralarındaki mesafe daraldıkça sorunlar çıktı. Bu sebepten ötürü günümüz

FPGA’ ları dahili sonlandırma dirençleri kullanırlar. Bu dirençlerin degerleri, farklı çev-

resel birimleri ve G/Ç standartlarını uzlastırmak için yapılandırılabilir.

4.11 Gigabit Alıcı Vericiler

Geleneksel yöntemlerde aygıtlar arası veri aktarımı için "bus" adı verilen yollar kullanı-

lır. Artan talep fazla yol demektir. Bu durum, kullanılan bacak sayısını arttıracaktır. Bu

yolları biçimlendirme kartı daha karmasık hale getirecektir. Üstelik sinyallerin dogruluk

sorunlarını yönetmek gittikçe zorlasacaktır.

Bu sebeplerden ötürü günümüz FPGA’ ları özel gigabit alıcı verici öbekleri içerirler. Bu

öbekler iletim ve alma için birer çift türevsel sinyal kullanır. Yani sinyal mantıksal tersi

ile aktarılmaktadır.

29

Page 40: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

4.12 IP (Intellectual Property) Core

Fikri mülkiyet çekirdekleri mantık tasarımında kullanılan, önceden test edilmis çok kar-

masık sistem seviyesindeki islevlerdir. IP çekirdegi su yararları saglar: pazara daha hızlı

sunum, gelistirme sürecinde sadelik ve kısalma, tasarım riski azalır, yazılım derleme is-

lemleri azaltır, dogrulama zamanı küçülür, tahmin edilebilir verim ve islevsellik saglar.

Donanımsal IP, önceden gerçeklenmis mikroislemci çekirdegi, gigabit alıcı verici, çarpıcı,

toplayıcı, MAC birimi gibi öbekleri kapsar. Bu öbekler güç tüketimi, alan kullanımı ve

basarım açılarından daha verimli olmayı saglar.

Yazılımsal IP, yüksek seviyeli islevler için hazırlanmıs kaynak kütüphanelerinin kullanıcı

tarafından tasarıma eklenmesini tanımlar. Bu kütüphaneler PCI yolu arayüzü, DSP filtresi,

PCMCIA arayüzü gibi karmasık sistem seviyeli islevler içerir.

4.13 Ara Baglantı Mimarisi

FGPA’ larda programlanır mantık öbekleri arasındaki iletisim ve bu programlanır öbekle-

rin istedigimiz islev dogrultusunda yapılandırılması ara baglantılar sayesinde gerçeklenir.

Bir FPGA aygıtı içerisinde ara baglantıların kapladıgı alan yüzde 80’ leri bulmaktadır.

Dolayısıyla üreticiler bu büyük kütlenin en verimli sekilde yerlesimi için büyük çaba sarf

etmektedirler. En büyük iki üreticiyi baz alacak olursak: Xilinx ve Altera’ nın kullandık-

ları baglantı yaklasımları birbirlerinden farklıdır.

4.13.1 Altera Ara Baglantı Yaklasımı

ALM (veya LE), bellek öbekleri, G/Ç bacakları ve varsa DSP öbekleri arasındaki baglan-

tıyı "MutiTrack" baglantı yapısı olarak isimlendirdigi, "DirectDrive" teknolojisi ile ya-

par. Multitrack baglantılar, öbekler içi ve arasında sürekli ve basarıma göre yapılandırılan

farklı uzunluk ve hızdaki yönlendirme hatlarını içerir[9].

MultiTrack ara baglantılar yayılmıs satır ve sütun baglantıları içerir. Stratix II ailesi için

satır baglantıları su kaynakları içerir:

. LAB’ lar ve bitisik öbekler arasındaki "Direct link" ara baglantıları.

. Saga ve sola dört öbek kateden R4 ara baglantıları

30

Page 41: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

. Aygıt boyunca yüksek hızlı R24 baglantıları

Sütun baglantılarını kullanmadan yapılan "Direct link" hattı karsılıklı iletisim hızını art-

tırır. Dogrudan bag arabaglantıları, LAB’ ların, RAM veya DSP öbeklerinin sag ve sol

komsularını yerel arabaglantıları ile karsılıklı hızlıca sürmesini saglar.

4.13.2 Xilinx Ara Baglantı Yaklasımı

CLB öbekleri arasında dikey ve yatay yönlendirme kanallarından olusan genel yönlen-

dirmeli matris kaynakları kullanırlar. Kullanılan teknoloji "Active Interconnect" olarak

isimlendirilir. Yerel ve genel yönlendirme kaynakları hız ve zamanlama gereksinimlerini

karsılayacak sekilde ayarlanmıstır. Bu teknolojide tamamıyla tamponlanmıs programlanır

yönlendirme matrisleri kullanılır[10]. Su ana bilesenleri içerirler:

. CLB ’lere komsu General Routing Matrix (GRM) öbegi. GRM öbegi yatay ve dikey

yönlendirme kaynaklarının baglandıgı anahtar matrisleridir (switch matrix). Yine

bu öbek sayesinde CLB genel amaçlı yönlendirmeye erisebilir.

. Çift yönlü olarak dikey ve yatay aygıtı kat eden long (uzun) hatlar.

. Dört yöne de, sonraki üçüncü veya altıncı öbeklere erisecek sekilde yönlendirme

yapabilen hex (onaltılı) hattı.

. Dört yöne de, sonraki ilk veya ikinci öbeklere erisecek sekilde yönlendirme yapa-

bilen double (çift) hattı

. Dikey, yatay ve kösegen öbek komsularına sinyal yönlendirmeyi saglayan direct

connect (dogrudan baglantı) hattı

. LUT çıkısından LUT girisine CLB içi yerel arabaglantı olan fast connect (hızlı

baglantı) hattı

Asagıda bazı yönlendirme kaynakları gösterilmistir.

31

Page 42: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 31: Yönlendirme kaynakları yüzeysel görünümü

4.14 Çekirdek ve G/Ç besleme gerilimleri

Yıllar geçtikçe silikon yonga üzerindeki yapıların boyutları küçüldü. Çünkü küçük tran-

sistorlar daha az maliyet ve güç tüketimi ve daha yüksek hız demektir.

Bu besleme FPGA’ nın iç mantıgı için kullanılır. Bu nedenle "core voltage (çekirdek ge-

rilimi)" olarak adlandırılır. Ancak farklı G/Ç standartları, çekirdek geriliminden farklı

gerilim seviyelerindeki sinyalleri kullanabilir. Dolaysıyla her genel amaçlı G/Ç kümesi

kendi besleme baglantılarına sahip olmalıdır.

Tablo 4: Çekirdek gerilimi ile teknoloji kullanımı karsılastırılması

350 nm üretim teknolojisinden bu yana çekirdek gerilimimdeki düsüs teknoloji nokta-

sıyla paralellik göstermistir. Ancak 1V’ un altına inilmesi transistor anahtarlama esigi ve

gerilim düsümü gibi fiziksel sebeplerce engellenmektedir.

32

Page 43: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

5 FPGA PROGRAMLAMA

Her FPGA satıcısı kendine has terminoloji, teknik ve iletisim kurallarına sahiptir. Yine

ürün aileleri arasında bile ayrıntılar degisebilmektedir. Temelde FPGA iki durumda çalı-

sır:

- Kullanıcı kipi ; Normal çalısma durumudur.

- Yapılandırma kipi ; Ilgili bacaklar ile programlama durumudur.

FPGA yapılandırma daha öncede belirtildigi gibi programlama hücreleri ile gerçeklenir.

Yapılandırma için gerekli temel basamaklar vardır:

- Yapılandırma dosyasının olusturulması

- Kullanılacak yapılandırma kipinin seçimi

- Yapılandırma için tercih edilen donanım hazırlanması

Yapılandırma için üç temel yöntem kullanılır:

- Bilgisayara ile programlama kartı arasına baglanan kablo (seri, paralel, usb) ile ara-

yüz program kullanarak

- Kart üzerindeki FPGA’ ya baglı özel bellek yardımıyla her enerji verildiginde

- Kart üzerindeki uyarlanmıs mikrodenetleyici ile programlama.

5.1 Yapılandırma Dosyası

Tasarımı gerçeklemek için çesitli araç ve akıslar vardır. Bütün bu islemlerden sonra "con-

figuration file" veya "bit file" olarak isimlendirilen ve özel islevi gerçeklemek için hazır-

lanan bilgiyi FPGA’ ya yüklemek gelir. Yapılandırma dosyası üretici firmaların sundugu

ürün gelistirme programları tarafından üretilir.

SRAM tabanlı FPGA’ larda, yapılandırma dosyası yapılandırma verisi ve yapılandırma

komutlarını içerir. Yapılandırma verisi, dogrudan programlanır mantık ögelerinin duru-

munu belirlemek için kullanılır. Yapılandırma komutları ise aygıta yapılandırma verileri

ile ne yapacagını söyler.

33

Page 44: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

E2 ve FLASH tabanlı aygıtlar, SRAM tabanlı yaklasıma benzer sekilde programlanır.

Antifuse tabanlı FPGA’ larda ise yapılandırma dosyası agırlıklı olarak antifuse ögeleri-

nin islenecegi yapılandırma verisinin gösterimini içerir. Bu yongalar özel programlayıcı

aygıtlar içerisinde programlanır. Yapılandırma verisi ana bilgisayardan programlayıcıya

aktarılır. Bu özel programlayıcılar, yapılandırma verisi kılavuzlugunda, seçilen bacaklar-

dan görece yüksek gerilim ve akım uygulayarak ilgili antifuse ögesini gerçeklestirir.

Bellek kullanımı ve zaman tasarrufu için yapılandırma verileri sıkıstırılarak aktarılır. Sı-

kıstırılan veriler ilgili yonga içerisinde gerçek zamanlı olarak açılır. Bu sayede veri akı-

sında yüzde 50 oranlarında azalma olur.

Tasarım güvenligi için (bit stream) bit katarı sifreleme yöntemi kullanılır. Bu amaçla kul-

lanılan yonga üzerinde sifre çözücü birim vardır. Sifrelenmis yapılandırma verisi bu bi-

rime kayıtlı sifre anahtarı ile örtüsüyorsa veri çözülür ve yapılandırma gerçeklesir. Aksi

durumda harici olarak kopyalama ve tersine mühendislik gerçeklestirilemez. Yonga üze-

rindeki çözücü birim farklı amaçlar için kullanılamaz. Sifre anahtarı Xilinx Virtex-4 için

256-bit, Altera StratixII için 128-bittir ve AES (Advanced Encryption Standard) algorit-

ması kullanırlar. 256 bit için 1.1x10 üssü77 farklı anahtar birlesimi mümkündür.

5.2 Yapılandırma Kipleri

FPGA yongaları yapılandırmak için kullanılan baglantı noktaları ve farklı yaklasımlar

vardır. Aygıtın istenen kipte çalısması için yapılandırma kipi bacakları mevcuttur. Farklı

üreticilerin kullandıgı yöntemler isim olarak degisse de genel mantık olarak benzerdirler.

5.2.1 Fast Passive Parallel (FPP) kipi

Hızlı yapılandırma talebine cevap verir. Her saat çevriminde 8-bitlik aktarım mevcuttur.

Sifreleme ve sıkıstırma özelliklerini destekler.

34

Page 45: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 32: Harici sunucu kullanarak FPP ile tek aygıt yapılandırma

5.2.2 Active Serial (AS) kipi

Bu kip ile flash tabanlı bellek ve az sayıda bacak kullanan düsük maliyetli seri yapı-

landırma aygıtları kullanılabilir. Aktarım her saat çevriminde bir bit olacak sekildedir.

Sıkıstırma ve sifreleme özelliklerini destekler.

Sekil 33: AS ile tek aygıt yapılandırma

5.2.3 Passive Serial kipi

Harici aygıtlar kullanılarak yapılır. Yapılandırma kontrolü bu aygıtlarca gerçeklenir. Ak-

tarım yine her saat çevriminde bir bittir. Sıkıstırma ve sifreleme özellikleri kullanılabilir.

35

Page 46: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 34: Harici sunucu kullanarak PS ile tek aygıt yapılandırma

5.2.4 Passive Paralel Asynchronous (PPA) kipi

Yapılandırma verisinin bellekten mikroislemci gibi bir sunucu aracılıgıyla aktarıldıgı yön-

temdir. Her saat çevriminde 8-bit aktarım saglar. Sifreleme ve sıkıstırma özelliklerini des-

teklemez.

Sekil 35: Mikroislemci kullanarak PPA ile tek aygıt yapılandırma

5.2.5 JTAG kipi

Bu yöntem, Joint Test Action Group tarafından sınır tarama testi için IEEE Std. 1149.1

olarak gelistirilmistir. Boundary-Scan Test (BST) olarak isimlendirilen bu test mimarisi

kart üzerindeki bilesenlerin verimli sekilde sınanmasını saglar. BST mimarisi ile bacak

baglantıları fiziksel prob kullanmadan sınanmaktadır. JTAG devresi aynı zamanda yapı-

landırma verisini aktarmak için kullanılabilmektedir.

36

Page 47: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

FPGA içerisindeki her G/Ç bacagına iliskilendirilmis JTAG yazmacı vardır. Bu yazmaçlar

kendi aralarında zincir halinde baglanmıstır. JTAG veri girisi bacagı ile JTAG özel komut

yazmaçlarına komutlar yüklenebilir. Bu komutlar ile FPGA’ nın yapılandırma amaçlı iç

SRAM kaydırmalı yazmaçlarına JTAG zinciri baglanır. Bu sayede JTAG baglantı nokta-

ları programlama için kullanılabilir.

Sekil 36: JTAG sınır tarayan yazmaçları

JTAG baglantı noktaları, diger kipler islerken de mevcuttur. Her hangi bir kip ile bas-

lanıp sonrasında JTAG yapılandırma ile devam edilebilir. JTAG tabanlı yapılandırmanın

digerlerine göre önceligi vardır. MSEL bacakları Sifreleme ve sıkıstırma özelliklerini des-

teklemez.

Sekil 37: Yükleme kablosu kullanarak JTAG ile tek aygıt yapılandırma

FPGA saglayıcılarının ve yan kurulusların sundugu birçok programlama ve gelistirme

kartları mevcuttur. Kullanılacak FPGA yongasının özellikleri belirlendikten sonra uygun

37

Page 48: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

donanım seçilmelidir. Asagıda iki adet gelistirme kartı verilmistir.

Sekil 38: Stratix GX Gelistirme Kartı

Sekil 39: Cyclone II EP2C35 DSP Gelistirme Kartı

6 UYGULAMA GELISTIRME

FPGA yongasında istedigimiz programı gerçeklemek için asagıda verilen akıs seması ta-

kip edilir. CAD (Computer Aided Design) olarak bilinen bilgisayar destekli tasarım yazı-

lımları sayesinde günümüzde tasarımcılar üzerinden büyük yük kalkmıstır. Tasarım asa-

masında büyük zaman alabilecek basamaklar ortadan kaldırılıp tasarımcının özel yetenegi

ile fark yaratılmaktadır.

38

Page 49: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

Sekil 40: FPGA akıs seması

6.1 Tasarım Girisi

Istenen devre sematik veya öbek çizimler ile yapılır. Artan kapı kullanımı sonucunda Ve-

rilog veya VHDL gibi HDL (Hardware Description Language) donanım tanımlama dille-

rinden herhangi birini kullanmak kaçınılmaz olmustur. Bu diller, mantıksal gerçeklemeler

için özellesmistirler. Bu sayede elektronik bilesenlerin davranıssal ve yapısal tanımlaması

kolayca yapılarak esnek ve hızlı tasarım yapılabilir. Aksi taktirde milyonlarca kapıyı ta-

39

Page 50: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

nımlamak mümkün olmazdı.

6.2 Sentez

CAD sentez araçları ile devremiz için gerekli olan mantıksal ögeler ve bu ögeler arasın-

daki baglantılar olusturulur.

6.3 Islevsel Benzetim

Sentezlenen devre bu asamada islevsel dogrulugu açısından sınanır. Hata durumunda ta-

sarımda degisiklik yaparak sentez ve benzetim basamakları tekrarlanır.

6.4 Yerlestirme

Ilgili yerlestirme araçları, baglantı listesinde tanımlanmıs mantıksal ögelerin FPGA yon-

gası içerisindeki gerçek mantıksal ögelere yerlesimi yapar. Mantıksal ögeler arasındaki

gerekli baglantılar için yönlendirme hatları belirlenir.

6.5 Zaman Analizi ve Benzetimi

Yerlestirilmis devrenin çesitli yolları arasındaki yayılım gecikmeleri analiz edilir. Bu sa-

yede devre beklenen basarım için sınanır ve sonucunda gerekli baglantılar arasındaki za-

man gecikmeleri gösterilir.

Zaman benzetiminde ise yerlestirilmis devre zamanlama ve dogruluk açılarından sına-

nır. Istenen zaman gereksinimleri saglanamaz ise tasarım sürecinde en basa dönülür ve

tasarımda belirlenen hata ile ilgili gerekli gelistirme yapılır. Islemler benzetim sonuçları

yeterli oluncaya kadar tekrarlanır.

6.6 Programlama ve Yapılandırma

Son asamada belirli donanımlar üzerinden, gerçek FPGA yongası arzu edilen devreyi

gerçeklemek için programlanır. Yapılandırma ile mantıksal ögeler istenen sekilde yapı-

landırılır ve içerikleri belirlenir.

40

Page 51: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

6.7 Örnek Uygulama

FPGA yongası : Altera, Cyclone II EP2C35F672C6 Program gelistirme ortamı : Altera

Quartus II v5.0 Web Edition Full Devre : n-bit Toplama ve Çıkarma Devresi Kodlama :

Verilog HDL

41

Page 52: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

7 SONUÇ

Genel hatlarıyla anlatmaya çalıstıgım FPGA’ lar ve dolayısıyla yonga tasarım dünyası

her geçen gün insan hayatının vazgeçilmez unsurları olarak pekismektedirler. Tümlesik

devreler 50 yıllık geçmisine ragmen günümüze kadar inanılmaz gelisme kaydetmistir.

Uzayan tasarım süreçleri, artan maliyet, yenilenme gereksinimleri ve gelisen teknoloji

FPGA’ ları teknolojinin bas tacı yaptı. Bu sayede askeri, uzay, veri isleme, otomotiv gibi

can alıcı teknoloji gerektiren alanlarda kullanımı gittikçe yaygınlasmıstır.

Hazırlamıs oldugum ödev ile FPGA yongalarını etraflıca tanıma fırsatı buldum. Lisans

ögrenimimi bitirirken FPGA; kullanım alanlarını, üretim teknolojileri ve tekniklerini, iç

mimarilerini, genel kullanım yöntemlerini kabaca olsa da ögrenmis oldum.

42

Page 53: FPGA MİMARİSİ ve TARİHİ GELİŞİMİ

8 KAYNAKLAR

Kaynaklar

[1] MAXFIELD, C., 2004; "The Design Warrior’s Guide to FPGAs"

[2] WOLF, W. , 2004; "FPGA-Based System Design"

[3] SICARD, E. ve BENDHIA, S. D., 2003; "Deep-submicron CMOS circuit design"

[4] ALTERA, 2005; "Stratix II Device Handbook"

[5] ZEIDMAN, B. , 2001 ; "Introduction to CPLD and FPGA Design"

[6] BROWN, S. ve ROSE, J. ,2000; "Architecture of FPGAs and CPLDs: A Tutorial"

[7] PARNELL, K. ve MEHTA, N., 2002; "Programmable Logic Design Quick Start

Hand Book"

[8] XILINX, 2005; "Virtex-II Platform FPGAs Complete Data Sheet"

[9] ALTERA, 2005; "Cyclone Device Handbook, Volumes 1,2"

[10] ALTERA, 2005; "Cyclone Device Handbook, Volumes 1,2"

43