FPGA & CPLD Nedir ?

Başlatan Prof.EleCTroN, 02 Şubat 2003, 10:55:12

XNHCX

FPGA

Nedir?


FPGA 'nın ingilizce açılımı  (Field Programmable Gate Arrays) 'dır.
Serbest olarak

programlanabilen mantık-yapı taşları olarak tanımlanır.
FPGAlar  programlanabilir I/O blokları tarafından kuşatılan ve programlanabilir alt bölümler ile bağlantılı lojik blok dizilerinden

oluşurlar.Yani tipik bir FPGA bir çok zahiri mantık hücresi içerir. (64’ten 10.000’e kadar).Bu hücrelerin her birine belli fonksiyonlar atanabiliyor.Ve tüm hücreler bir matris üzerinde yer alan bağlar

ve programlanabilir hücreler ile birbirlerine bağlanıyorlar.

*FPGAların İşlem hızları çok yüksektir .

*Bu teknoloji aslında ilk etapta  uydular için üretilmiş.Ama zamanla

uygulama alanı artmış.

Aşağıya Fpga hakkında yazılmış  beğendiğim bir yazıyı

ekliyorum.


Alıntı YapDevre tasarımı kadar layout tasarımı da artık insan

emeğini aşmış durumdadır. Aynı zamanda, birkaç bin adet üretim/satış bile chip tasarımı ve üretim hazırlığı maliyetlerini karşılayamayabilir. Çoğu durumda, daha önceden seri olarak üretilmiş,

programlanabilir chip'ler kullanmak, ASIC üretmekten veya ürettirmekten çok daha uygun olmaktadır.

Programlanabilir chip'lerin en bilinen örneği mikroişlemcilerdir.

Mikroişlemciler, kendi komut setinde yazılmış komutlar dizisini yani programı, adım adım işleterek işlev görürler. Ama paralel olarak yürümesi gereken, yazılımla gerçekleştirilmesi uygun olmayan

uygulamalar için programlanabilir kapı dizileri (PGA : programmable gate array) kullanılabilir. PGA'ler içerisinde belirli bir tip kapıdan çok sayıda bir matris şeklinde bulunduran ve bu matris

içindeki belirli bağlantılar yakılarak istenilen devrenin elde edilmesini sağlayan devrelerdir. Yine de çok karmaşık işlemler için ve özellikle de gerçekleştirdiği fonksiyon zamanla değiştirilmesi gerekecek

bir durumda ise PGA'ler yeterli değildir. Bu gibi yerlerde CPLD (complex programmable logic device) ve FPGA (field programmable gate array) kullanılabilir. Bu iki tip entegre devreler birbirine

çok benzemekle birlikte, devre mimarisi ve konfigürasyon şekli ile birbirlerinden ayrılırlar.

Bir FPGA, birkaç bin ile birkaç milyon arasında kapı içerebilir. Bu kapılar logic cell'ler,

flip-flop'lar ve multiplexer'lar olarak gruplanmıştır ve bloklar arasında bir bağlantı yoktur. Ancak, chip çalışmaya başladığı anda konfigürasyon amaçlı kullanılan birkaç pini ile dışarıdan tasarım

bilgisini alır. Tasarım yazılımı ile üretilen konfigürasyon dosyası, bir ROM'a yüklenir. FPGA bu tasarım dosyasındaki tasarımı yükler ve kendisine verilen fonksiyonu gerçekleştirmeye başlar.

Besleme kesildiğinde FPGA tekrar fabrika çıkışı haline döner. Konfigürasyon bilgisi doğrudan FPGA'e bağlı bir ROM'dan alınabileceği gibi bazı uygulamalarda, aynı devre üzerindeki ROM

kullanan başka bir chip'ten (DSP, microcontroller vs.) de alınabilir. Hatta PC tabanlı bazı uygulamalarda, FPGA, bağlı olduğu PC'den her açılışta konfigürasyonunu alır.



Günümüzde en önde gelen FPGA ve CPLD üreticileri Xilinx, Altera, Lattice, Actel ve Cypress gibi firmalardır.

Xilinx, lider sayılabilecek bir firmadır. FPGA, CPLD,

Configuration PROM'ları, çeşitli IP core'ler üretmektedir.

Xilinx CoolRunner ailesi CPLD'leri düşük güç tüketimi ile iddialıdır. CoolRunner'lar 3.3V cihazlardır, giriş çıkışları

5V'u da tolere edebilir. 750-12000 arasında kapı, 36-260 arasında I/O portu içerirler.

Xilinx Spartan ailesi FPGA'leri Spartan-II, Spartan-III gibi alt gruplara sahiptir. Çalışma

gerilimi, kapı sayısı, I/O sayısı açısından farklı çok fazla ürüne sahip bir ailedir. Xilinx Virtex ailesi ise 8 milyondan fazla kapıya sahip modelleri ile, geniş ölçekli uygulamalara yöneliktir. Kapı sayısı

ve hız arttıkça FPGA'lerin fiyatları da artmaktadır ve Virtex ailesinde oldukça pahalı modeller

vardır.
http://www.gokhanbektas.com/indextr.asp

z

Önüne gelen firma, ürününe bir isim koyunca kafalar karışıyor  aslında bu isimlendirme kullanıcıyı çok da fazla

ilgilendirmiyor.  PAL,GAL,PLA,PLD,SPLD,CPLD,FPGA......

Ben Lattice in FPGA'lerini  kullanıyorum,  lattice in FPGA dediği yoğun bir çipe bir başka firma (aynı yoğunluktaki

kendi çipine) CPLD diyor.

CPLD nedir FPGA nedir?

Bir arkadaşımızın FPGA nedir CPLD nedir sorusuna cevap vermesini bekliyorum.
Durum anlaşılınca PAL, PLA,

FPGA konusunda guzel bir yazı yazmak istiyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Prof.EleCTroN

PLA: Girişinde tamponlar ve NOT kapıları vardır. Bunlar programlanabilen bir anahtar ile AND kapılarına bağlanırlar ve

buradan yine programlanabilen OR kapılarına verilir.
PAL: PLA'nın OR kapılarına girişleri programlanabiliyordu fakat PAL'da OR girişleri sabittir. Fakat OR kapılarının çıkışlarında ek

devreler vardır. OR kapıları ile bu ek devrelere macrocell denmektedir.
CPLD: PLA veya PAL çok fazla giriş çıkış gerekli olan durumlarda yeterli olmayabilir. Bu durumlarda ya birden fazla

PAL veya PLD kullanmak yada CPLD denilen PLD kullanmak gerekir. CPLD,  birçok PLA veya PAL cipinin tek bir çipte birleştirilmiş halidir.
FPGA: FPGA'da sabit AND ve OR kapıları

yoktur. Bunların yerine lojik bloklar vardır (LookUp Table vb.).

serdarkaradeniz

FPGA: Field programable gate array. FPGA 'yi destekleyen bir çok firma var. ben ALTERA'yı kullandım. Seçtiğiniz ürüne bağlı olarak içinde nand ve d flip floplardan oluşan bir yapı var gibi düşünebilirsiniz. PİNLERİ istediğin gibi konfigüre edebilirsin workbench gibi çizim ile yazılım oluşturabildiğin gibi VHDL denilen c  tabanlı bir kod sayfasındanda yazılım yapabilirsin. Aselsan bu teknolojiyi kullanıyor.

mcan

ozaman fpga pla yada pal sistemlerinin gelişmişi diyebilirmiyiz

mcan

birde pla gibi olanlarda üretim şekline göre tek seferlik programlanabiliyordu acaba fpga lar tekrar tekrar programlanabiliyormu

CoşkuN

Peki arkadaşlar bu FPGA'ların programlayıcıları nasıl,piyasada bulunabiliyorlar mı ,çok pahalı cihazlar mı?

ahmetu

Az önce digikeyden bunu buldum XC9536XL-5VQ44C fiyatı inanılmaz 2.18 USD hız max 178 Mhz, 5 ns. pin tepki süresi, 10.000 program/erase cycle diyor bende hiç bir şey diyemiyorum pehh be bununla acaip vga monitör sürülür 800x600x256 bile kaldırır  :lol:  :lol:

refik1

internerde bir devreye rasladım XC95108 CPLD kullanmışlar
bu entegrenin içeriği korumalımı ?
deyilse devre üzerinden kopyalanabilirmi ?

aYe

Konuya pek vakif değilim ama gal16v8 gibi entegrelere rastliyordum bazi kartlarda, 5-6 sene önce karaköydeyken gözüme çarptı, meraktan bi tane aldim ve protel de logic kapılarla bi sema çizdim derledim, jedec uzantılı bir dosya oluşturdu, entegreye yükledim, taktim yerine, aynen çizdiğim gibi çalıştı kerata. Bir daha da üzerine gitmeye vaktim olmadı ama mcu'lar gibi lockbit yapiliyor. Semayi da kod gibi güvenlik altina almak istenilen durumlar için ideal olabilir zira çoğunlukla pic le puc la yapılmış bi kart elimize geçtiginde başında osiloscope ile geçen 1-2 saat sonrasında kodu yazıp hemen kopyalayabiliyoruz. Sanirim bu aletlerin gelişmişleri kod'da işleyebiliyor. Protelin son versiyonu açılırken sizin bordunuzu entegrenin içine soktuk gibi bir sloganla reklam yapiyor :D Bundan bahsediyor olsalar gerek. Spartan isimli bir tip de çok popüler gibi ismine sık rastlıyorum, ilk boş vaktimde saldırıcam arkadaşa. Umarım bişeyler çözerim de paylaşırız...
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

JohnF

Xilinx Spartan gibi FPGA ler kapi seviyesinde programlanabiliyor ve genelde FPGAlar Jal tipi programlayicilarla programlaniyor. JAL tipi programlayicilarinda yapisi PIC programlayıcılar kadar karışık yani çok karışık değil.
Ama program yazmak cok kolay değil. Basit lojik fonksiyonlari yerine getiren programlar yazmak bile bazen zaman aliyor. İsin iyice icine girip uzmanlasmak lazim, iyi derecede lojik bilgisi sart.

Biraz daha karaliyim. DDR bellekleri adresleyebilecek kadar hizli olan 90 nm lik modeler var. Milyonlarca kapi barindiriyorlar. Kendi mikrodenetleyicinizi tasarlayıp seri olarak ürettirebilirsiniz. Bu imkani sunuyorlar size. "800x600x256 bile kaldırır" evet ama böyle bir işlemi bir CPU modul oluşturmadan yapamazsınız sanırım. Cidden program yazmak kolay değil.

Son olarak en dandik programı derlemesi bile dakikalar alıyor. Çok büyük ölçekli projelerin derlenmesini siz düşünün. Sağlam bilgisayar(lar) lazım :).

Prof.EleCTroN

xPLD ve FPGA için Jal programlayıcıyı ilk defa duyuyorum ben onu jtag olarak biliyordum. FPGA, CPLD ve PLD programlamak için genellikle HDL (donanım tanımlama dilleri) kullanılıyor. Verilog HDL ve VHDL ençok tutulanı.

bayramonur

VHDL ve HDL dillerini yaninada Sematik cizimlerle veya C ile program olusturmak mumkun.
Bu tip programlanabilir elemanlar cok profesyonel amaclarla kullaniliyor.Mesela Marsa yollanan robotun kontrolunu Xilinx Fpga kullanmislar.


http://www.xilinx.com/publications/xcellonline/xcell_50/xc_mars50.htm

Bu isler icin bircok kaynak sitelerinde mevcut.Pdf olarak indirebiliyorsunuz.

http://www.xilinx.com/publications/xcellonline/date.htm
http://www.xilinx.com/publications/magazines/index.htm
http://www.xilinx.com/publications/xcellonline/

JohnF

Yahu çok özür dilerim. Jtag olacak haklısınız, karıştırdım Jal ile.

Göktuğ

Xilinx cpld lerini Ise adlı programı ile sematik cizerek programlayabilirsiniz. Lojik kapılar ve bloklar hazır olarak bulunmakta.Kendi lojik bloklarını temel elemanları kullanarak olusturabiliyorsunuz.
Lojik devre mantıgı iyi olan biri cok rahatlıkla editoru ogrenebilir. pek cok lojik devreyi gizleyerek urununuzun kopyalanmasının onune gecmede cok onemli bir katkısı olacaktır. Programlanabilir lojik mantıklı bir eleman devre tasarımında cok etkili olabiliyor. Buyuk kıvraklıklar yaratıyor.