Bir FPGA açıldığında ve yapılandırılmadan bırakıldığında ne olur?


10

Uzun süre programlanmamış bir FPGA bırakırsanız ne olacağına dair genel bir anlayış edinmeye çalışıyorum.

Bir FPGA'nız olduğunu ve program açmadan uzun bir süre (program açıldıktan birkaç dakika ila saat sonra) ayrıldığını varsayalım, yani bit akışı yok, cihaz için bu kötü mü? Her zaman açık bir FPGA üzerinde biraz akışa sahip olmanız önerilir mi? Bununla ilgili genel görüş nedir?

Sonuçlar farklı cihazlarda veya üreticilerde farklı mı (Xilinx vs. Altera vs. diğerleri)?


İlave bilgi:

Xilinx Virtex-6 FPGA kullanan özel bir SoC kartım var. Ayrıca referans amaçlı kullandığım bir Xilinx ML605 var.

Özel tahta: Tahtayı açıyorum. XMD (Xilinx Mikroişlemci Hata Ayıklayıcısı) kullanarak programlamak için kısa bir süre aldığımı fark ettim. 20-30 saniye penceresini kaybedersem, tekrar denemeden önce kartı kapatıp açmam gerekir. Bu bir ML605 ile gerçekleşmez.

Özel kartı XMD üzerinden programlamaya çalıştığımda şöyle bir şey alıyorum:

Error: Device Reset by JPROGRAM command, failed. INIT_COMPLETE did not go high.

Ne düşündüğü söyle.


1
Sorunuzda ve düzenlemenizde "uzun süre" vurgulayın. Birkaç saniye mi yoksa birkaç saat mi olduğu gerçekten önemli mi? Ben öyle düşünmüyorum ..
m.Alin

20-30 sn programlama penceresine sahip olduğum özel FPGA panosunda bir fenomen görüyorum. Bu pencerede programlamıyorsam başarılı bir şekilde programlayamıyorum. Sorumun ana teması zaman süresi değil, fenomeni anlamak.
boffin

Cihaza hiç bağlanabiliyor musunuz? Yoksa sadece programlamaya çalıştığınızda başarısız oluyor mu? Programcının verdiği hata nedir?
embedded.kyle

1
FPGA'yı doğrudan JTAG üzerinden mi programlıyorsunuz, yoksa önce Flash çipini yüklüyor ve ardından FPGA'nın bunu yapılandırmasına izin veriyor musunuz?
ajs410

@fpga_boffin, bu ayrıntıları sorunuza ekler misiniz lütfen?
Jon L

Yanıtlar:


7

Bu ilginç bir soru. Kişisel deneyimlerime göre, FPGA'ları montaj evinden yeni bir kart geldiğinde devrenin geri kalanında kontroller yaparken programlanmamış bir durumda saatlerce çalışır durumda bıraktım. Bunu yapmanın herhangi bir zararlı etkisi olduğunu fark etmedim. Ama dürüstçe hiç düşünmedim.

Ben denemek ve bir FPGA üreticiden bir tavsiye bulmak için etrafa baktı ama bir bulamadı. Bu durumla ilgili bulduğum tek ifade, bir Kafes teknik incelemesinden geliyor ve nasıl kullanılacağı değil, FPGA'nın tasarımıyla ilgili:

Önceden Programlanmış Statik Durgun Cihaz Güç Tüketimi, programlanmadan önce FPGA tarafından tüketilen güç miktarıdır. Hareketsiz cihaz güç tüketimi için FPGA programlanmamış bir durumdadır, ancak çalıştırılmıştır. Kavramsal olarak FPGA cihazı aşırı güç çekebilir ve güç kaynaklarını potansiyel olarak kapatabileceğinden, bu süre zarfında cihazın önemli miktarda güç tüketmemesi önemlidir, böylece kartın kendisini ve sistemi başarıyla başlatmasını önleyebilir.
Bu nedenle FPGA tedarikçisi, daha yüksek performansın gerekli olduğu alanlarda (örn. G / Ç ve SERDES) ödün vermeden düşük statik olan transistörleri dikkatle tasarlamalıdır.

Xilinx benzer şekilde hareketsiz akımın ne olduğundan bahseder, böylece güç kaynağınızı buna göre tasarlayabilirsiniz. Ancak, cihaz üzerindeki etkinin bu tür bir durumda bırakılmasından bahsetmiyor:

Statik veya hareketsiz güç esas olarak transistör kaçak akımının hakimiyetindedir. Bu akım veri sayfalarında listelendiğinde, ICCINTQ olarak listelenir ve FPGA çekirdeğine güç veren VCCINT beslemesi yoluyla çekilen akımdır.

Bir cihazın bir cihazda hareketsiz durumda kalmasından zarar görmüşse bunu duymak isterim. Ancak, güç kaynağı cihaza uygun şekilde eşleştiği sürece sorun olmamalı.


6

Spartan 3 veri sayfasına atıfta bulunuyorum, çünkü en çok tanıdığım FPGA bu.

Bölüm 2'ye (İşlevsel Açıklama) bakarsanız, "Yapılandırma" bölümünde birkaç akış diyagramı bulunur. Şekil 27 (sayfa 50), Flash'tan yükleme için akış diyagramını gösterir. Şekil 28, JTAG akış diyagramını göstermektedir.

İşte kısa bir özet.

1) Vccint, Vccaux ve Vcco'nun gereken seviyelere ulaşmasını bekleyin.

2) Yapılandırma mandallarını temizle

3) INIT_B'nin yükselmesini bekleyin. INIT_B, harici bir master'ın yapılandırmayı geciktirmek için düşük tutabileceği bir açık tahliye çıkışıdır.

4) Örnek Modu pimleri. Bu, JTAG veya Flash üzerinden yüklenip yüklenmeyeceğini ve Flash'ın FPGA veya Flash'ın Master olup olmadığını belirler.

5) Yapılandırma veri çerçevelerini yükleyin.

6) Veri çerçeveleri için CRC'nin doğru olduğundan emin olun. Doğru DEĞİLSE, FPGA bir CRC hatası belirtmek için INIT_B'yi düşük sürecek ve başlatmayı durduracaktır.

Adım 5 muhtemelen gerçek sorunuzun neresidir - yüklenecek bir şey yoksa ne olur? Eh, sen olmamalı olsun doğru şeyler yapıyoruz eğer 5. Adım. Flash yongası, FPGA'ya veri sunmaya hazır olana kadar INIT_B düzeyini düşük tutacaktır. JTAG kullanıyorsanız, JTAG programcısının INIT_B'yi düşük tutacağından emin değilim, ancak FPGA'yı programlamaya gittiğinde neredeyse kesinlikle PROG_B'yi (düşük tutarak) iddia eder, bu da FPGA'nın geri dönmesine neden olur adım 2.

Siz olsaydım, açılışta neler olduğunu görmek için INIT_B sinyalini kapsardım. Düşük başlar, yükselir ve sonra tekrar azalırsa, FPGA başlatma sırasını iptal etti ve muhtemelen FPGA'yı sıfırlamak için PROG_B'yi onaylamanız gerekecek.


Cevabınız 5. adımdan önce FPGA'nın iç durumu hakkında hiçbir şey söylemiyor, bu OP'nin bilmek istediği şey.
stevenvh

Adım 2. Yapılandırma Mandallarını temizleyin. Adım 3, INIT_B bekleniyor. Ayrıca, yüklenecek yapılandırma verileri bulunmadığında FPGA'nın ne tür bir karar verebileceğini de tartışıyorum (INIT_B, bir CRC hatasını belirtmek için düşük olacak).
ajs410

1
Özür dilerim, atıfta bulunduğum veri sayfası 2005 dolaylarındaydı ve 2009'da güncellendi. Ancak, yorumumu tam olarak okumuş olsaydınız, bulabilirdiniz. Konfigürasyon başlığı altındaki Bölüm 2, Fonksiyonel Açıklama. Bağlantı, en son veri sayfasını ve yeni sayfa numaralarını gösterecek şekilde güncellendi.
ajs410

0

Varsayılan yapılandırma, cihazı evrensel olarak kullanılabilir hale getirmek için olabildiğince pasif olacak şekilde tasarlanmıştır.

Altera Cyclone serisi için (en çok deneyime sahip olduğum) bu

  • G / Ç pimleri zayıf bir şekilde VCCIO'ya çekilir (aktif düşük çipli IC'leri hatlardan veriyolundan uzak tutmak için),
  • CONF_DONE çıkışı düşük çekilir (bir yapılandırma yükleninceye kadar sıfırlanmaları ve yeniden yapılandırılırken bilinen durumlarına geri dönmeleri için bunu diğer IC'lerin sıfırlama pinine bağlayabilirsiniz) ve
  • saat girişleri saat ağlarına iletilmez.

Diğer FPGA türleri de benzer şekilde sessiz olmalı ve kartın geri kalanına yapılandırma durumunu gösteren ters çevrilmemiş ve ters çevrilmiş çıkışlar sağlamalıdır.

Çekirdeği dış dünyadan oldukça izole edildiğinden ve bu durumda sadece çekmelerde küçük bir akım olabileceğinden, cihazı bu durumda bırakmak zararsızdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.