fpganedir.com'da ara

fpganedir mail

 * Altera

 * Altera FPGA

 * Konfigürasyon

  * SFL

ALTERA FPGA KONFİGÜRASYONU

Bu bölümde; Altera firmasının ürettiği Cyclone III FPGA ailesinin nasıl konfigüre edileceğini göreceğiz.. Ayrıca Active Serial (AS) konfigürasyon yöntemi hakkında detaylı bilgiler vereceğiz.

Cyclone III  cihazı içerinde, konfigürasyon verisini depolamak için SRAM bulunur. SRAM'in uçucu (volatile) bir özelliğe sahip olması, FPGA’in gücü kesildiği zaman içindeki programın silinmesine neden olur.  FPGA tekrar kullanılmak istendiği zaman, programın yeniden yüklenilmesi gerekir.

ALTERA FPGA Konfigürasyon Yöntemleri

Cyclone III ailesi, FPGA’in yoğunluğu ve paket opsiyonuna göre beş farklı yöntem ile konfigüre edilebilir.

AS ve AP konfigürasyon yönteminde, harici bir flash bellek kullanılır. Seri konfigürasyon cihazı veya flash bellek gibi.

PS, FPP ve JTAG konfigürasyon yönteminde harici bir kontrolcü kullanılır. MAX II, mikro işlemci veya download kablosu gibi.

FPGA’de konfigürasyon yöntemnii seçmek için MSEL pinleri kullanılır. Cyclone III ailesi FPGA’lerinde MSEL 4 adet pinden oluşur. MSEL[3..0] = MSEL[3], MSEL[2], MSEL[1], MSEL[0]. 

MSEL pinleri 5 Kohm’luk dahili bir pull-down direncine bağlıdırlar ve bulunduğu bank’ın VCCINT gücü ile beslenirler.

NOT: Hatalı bir konfigürasyon yöntemi seçimine sebebiyet vermemek için, MSEL pinlerine GND veya VCCA doğrudan bağlanmalıdır. Herhangi bir  pull-up or pull-down direnci kullanılmamalıdır.

Konfigürasyon Voltajı (Configuration Voltage): Konfigürasyon pinlerinin bulunduğu bank’ı besleyen voltajdır. (VCCIO)

Konfigürasyonda Kullanılan Pinler

1) nCE : Chip enable amaçlı kullanılan giriş pinidir. Aktif olabilmesi için 0 veya Low olması gerekir. nCE ifadesinin başındaki  “n” active low oduğunu gösterir. nCE pini ayrılmış (dedicated) bir pindir ve sadece bu amaç için kullanılır. Giriş/Çıkış olarak kullanılamaz.

2) nCEO : FPGA'de program yüklemesinin bittiğini gösteren çıkış pinidir. Ayrılmış özel bir pin olmadığından istendiği taktirde giriş veya çıkış olarak kullanılabilir.

nCE ve nCEO pinleri çoklu cihaz konfigürasyonunda (multi-device configuration) bizlere çok fayda sağlar. Çoklu cihaz konfigürasyonunda ilk cihazın nCE pini GND olurken, nCEO pini ise diğer cihazın nCE pinine bağlanır. Böylelikle birden fazla cihazı bir zincir oluşturacak şekilde bağlayabilir ve hepsini tek bir kaynaktan konfigüre edebiliriz.

NOT: nCEO pini açık (Non Connect) ve GND prensibine göre çalışır. Bunun için nCEO pinine harici bir adet 10 kohm pull-up direnç bağlamak zorundayız. Direnci besleyen voltaj VCCIO voltajına eşit olmalıdır.

3) nSATUS :  Çift yönlü iletişim pini olarak ayrılmış özel bir pindir. FPGA konfigürasyonun (program yükleme) durumunu gösterir. FPGA bu pini güç geldiği zaman hemen 0’a (low) çeker ve POR zamanından sonra bırakır. Kullanıcı input veya output pinleri (user I/O) olarak kullanılamazlar.

Çıkış pini olarak kullanıldığı zaman, program yükleme süresince hata oluştuğunda bu pin 0 (low) verir.

Giriş pini olarak kullanıldığı zaman, program yükleme yada başlatma (initialization) süresi içinde bu pine dışarıdan 0 verilirse, FPGA'e hata durumu girilmiş olur. Kullanıcı input veya output pinleri (user I/O) olarak kullanılamazlar.

NOT: nSATUS pininin 10 kohm pull-up direnci ile VCCIO pinine bağlanması gerekir.

4) nCONFIG : Konfigürasyon pini olarak ayrılmış giriş pinidir. Kullanıcı modunda (user mode), pin 0’a (low) çekildiği zaman, FPGA konfigürasyon verisini kaybeder ve kendini sıfırlar. Ayrıca bütün I/O pinleri tri-state pozisyonuna getirilir. nCONFIG pininin tekrar 1’e (high) çekilmesi FPGA’in yeniden konfigüre edilebileceğini gösterir.

NOT: nCONFIG pininin 10 kohm pull-up direnci ile birlikte VCCIO pinine bağlanması gerekir. Eğer konfigürasyon cihazı ile birlikte kullanılıyorsa , nCONFIG pini doğrudan konfigürasyon cihazının nINIT_CONF pinine bağlanabilir.

5) CONF_DONE : Çift yönlü iletişim pini olarak ayrılmış özel pindir. FPGA'in program yükleme durumunu gösterir.

Çıkış pini olarak kullanıldığı zaman, program yüklenmeden önce ve programın yüklendiği süre boyunca '0' değerini verir. Bütün konfigürasyon verisi hatasız alındığında ve başlatma evresine (initialization cycle) girildiğinde, CONF_DONE pini bırakılır. (0 olmaz)

GBütün konfigürasyon verisi alındıktan sonra CONF_DONE pini 1 (high) yapılırsa cihaz açılarak kullanıcı moduna girer.

NOT: CONFIG_DONE pininin 10 kohm pull-up direnci ile VCCIO pinine bağlanması gerekir.

Konfigürasyon Verisinin Sıkıştırılması

Konfigürasyon verisi, zaman ve yerden tassarruf edilebilmesi için bazen sıkıştırılmış formata çevrilir ve konfigürasyon cihazlarında yada diğer belleklerde bu şekilde depolanır. Sıkıştırma yöntemi ile konfigürasyon verisinin boyutu %35 ila %55 oranında küçültülebilir.

Cyclone III ailesi FPGA’leri kullanılan konfigürasyon yöntemine göre, sıkıştırılmış halde kendisine gelen veriyi eski haline çevirebilme (decompress) yeteneğine sahiptir.

Cyclone III ailesi cihazları, AS (Active Serial) ve PS (Passive Serial) yöntemleriyle yapılan konfigürasyonda sıkıştırılmış verileri açabilir, fakat AP (Active Parallel), FPP (Fast Passive Parallel) ve JTAG yöntemleriyle yapılan konfigürasyonda bu durum olanaksızdır.

Konfigürasyon verisini sıkıştırmak için Quartus II programında iki yol kullanılır.

1) Derleme İşleminden Önce

Konfigürasyon verisini derleme işleminden önce sıkıştırmak için Quartus II programında;

2) Derleme İşleminden Sonra

Konfigürasyon verisini derleme işleminden sonra sıkıştırmak için Quartus II programında;

File menu > Convert Programming Files’ı tıklayalım. Input files to Convert kısmında SOF Data’yı seçip, Add File’ı tıklayalım ve  SRAM Objet dosyasına tıklayalım.

Eklediğimiz “.sof” uzantılı dosyayı işeretleyip, Properties’e basalım.

Açılan pencerede Compression’ı işaretliyip, OK butonuna basalım.

POR (Power-On Reset) Devresi

Power-On Reset devresi, cihaza güç verildiğinde gelen voltaj dengeye ulaşıncaya kadar cihazı reset pozisyonunda tutar.

Cyclone III cihazında, 3 ms -9 ms arasında olan fast POR time ve 50 ms -200 ms arasında olan standard POR time değerlerini MSEL pinlerini kullanarak belirleyebiliriz. Bu değerleri nSTATUS pinine dışarıdan 0 (low) vererek istediğimiz kadar uzatabiliriz.

AS (Active Serial) Konfigürasyon

AS konfigürasyonda, seri konfigürasyon elamanları kullanılır.  Bu tip konfigürasyon elemanları, fiyatlarının ucuz olması nedeniyle ve üzerlerindeki uçucu olmayan bellekleri sayesinde, bu tip uygulamalar için idealdir.

Seri konfigürasyon cihazları programlama verisine ulaşım için seri bir arayüzü kullanır. Konfigürasyon işlemi boyunca; FPGA, programlama verisini bu arayüz ile okur, gerekirse sıkıştırılmış veriyi açar ve bu veri ile kendi SRAM'ini konfigüre eder.

FPGA, cihaz konfigürasyon arayüzünü kontrol edebilir, bundan dolayı bu konfigürasyon tipi aktif konfigürasyon olarak adlandırılır. Bahsettiğimiz hem aktif hem seri özelliğinden dolayı bu yönteme aktif seri konfigürasyon denilmiştir.

Altera firmasının ürettiği seri  konfigürasyon elemanları EPCS1, EPCS4, EPCS16, EPCS64 ve EPCS128' dir.

Aşağıdaki tabloda, AS konfigürasyonunda farklı voltaj standartlarında MSEL pinlerinin durumlarını görebilirsiniz.

1

2

NOT: MSEL pinlerinin doğrudan GND yada VCCA pinlerine bağlanması gerekir.

AS konfigürasyonunda Tek Konfigürasyon Elemanın Kullanımı

AS konfigürasyonunda kullanılan Seri Konfigürasyon Cihazı’nın pinleri şunlardır:

 FPGA’in DATA[1] pini, konfigürasyon cihazınının ASDI pine bağlanarak, cihazın FPGA tarafından  kontrol edilmesi sağlanır. 25 ohmluk bir direncin Seri Konfigürasyon Cihazı’nın DATA pinine bağlanması gerekir.

3

NOT: VCCIO voltajının FPGA’e bağlandığı noktalarda pull-up direnci kullanılmalıdır.

Seri Konfigürasyon Cihazı’na Program Yüklenmesi

Seri Konfigürasyon Cihazları USB-Blaster veya ByteBlaster II kabloları kullanılarak programlanabilir.

4.

Kapasitörler ve diyotlar FPGA’e mümkün  olduğunca yakın konulmalıdır.

5

JTAG KONFİGÜRASYONU

JTAG konfigürasyonunda, Quartus II yazılımın otomatik olarak oluşturduğu  “.sof” uzantılı dosya download kablosu ile FPGA’e yüklenir.

JTAG konfigürasyonu diğer konfigürasyonlardan önceliklidir. Yani JTAG konfigürasyonu, diğer konfigürasyonların bitmesini beklemeden yapılabilir. Örneğin bir PS (Passive Serial) konfigürasyonu esnasında JTAG ile konfigürasyona başlanırsa, PS konfigürasyonu sonlandırılır.

JTAG Konfigürasyonunda Kullanılan Pinler

JTAG konfigürasyonunda kullanılan pinler şunlardır:

Pin İsmi

Pin Tipi           

Açıklama

TDI

Test Data Input

Seri veri giriş pinidir. TCK sinyalinin her yükselen ucunda bu pindeki veriler kaydırılır.

TDI pini VCCI' den gerekli gücü alır.

Eğer JTAG arayüzü kullanılmayacak ise bu pin, VCC’ye bağlanıp JTAG etkisiz hale getirilir.

TDO

Test Data Output

Seri veri çıkış pinidir. TCK sinyalinin her düşen ucunda bu pindeki veriler kaydırılır.

TDO pini VCCIO'dan gerekli gücü alır.

Eğer veri gönderilmeyecekse bu pin tri-state olmalıdır.

Eğer JTAG arayüzü kullanılmayacak ise bu pin boş bırakılmalıdır.

TMS

Test Mode Select

Giriş pinidir. TAP Controller State Machine işlemlerinin belirtilmesini sağlayan kontrol sinyalidir.

State Machine'deki işlemler TCK sinyalinin yükselen ucunda gerçekleşir. Bu yüzden TMS, TCK sinyalinin yükselen ucundan önce ayarlanmalıdır.

TMS pini VCCIO'dan gerekli gücü alır. Eğer JTAG arayüzü kullanılmayacak ise bu pin VCC’ye bağlanıp JTAG etkisiz hale getirilir.

TCK

Test Clock Input

Clock sinyalidir.

TCK pini VCCIO'dan gerekli gücü alır.

Eğer JTAG arayüzü kullanılmayacak ise bu pin GND’a bağlanıp JTAG etkisiz hale getirilir.

TCK pini FPGA içerisinde zayıf bir pull-down direncine (1K), TDI ve TMS pinleri ise zayıf birer pull-up dirence (10K) bağlıdır.

2

nCONFIG ve MSEL[3..0] pinleri JTAG konfigürasyonu desteklemeyecek şekilde bağlanmadır. Şayet sadece JTAG konfigürasyonu kullanılacaksa nCONFIG logic High olmalı ve MSEL pinleri de toprağa bağlanmalıdır. DCLK ve DATA[0] pinleri,  High veya Low’dan herhangi birine bağlanabilir.

Headerin 6 numaralı pini MasterBlaster Output Driver'ı için VIO referans voltajıdır. VIO cihazın VCCA voltajı ile eşit olmalıdır. ByteBlaster II, ByteBlasterMV ve Ethernet Blaster kablolarında bu pin kullanılmamaktadır.

nCE pini toprağa bağlanmalıdır.

nCEO pini herhangi bir başka cihazın nCE pinine bağlanmayacak ise boş bırakılmalı yada kullanıcı I/O olarak kullanılmalıdır.

 
JTAG VE AS KONFİGÜRASYONU

image

 

Anasayfa | Fpga | VHDL | VHDL Sözlüğü | Embedded Sistem | Android | Sayısal Tasarım | Simulasyon | PCB | Örnekler | Forum | İletişim
Copyright © 2010-2013 FPGAnedir. All Rights Reserved.