FPGA'ya zarar verebilecek VHDL


22

Kötü VHDL kodunun FPGA hasarına yol açabileceğini bir yere okudum.

VHDL kodlu bir FPGA'ya zarar vermek bile mümkün mü? Ne tür koşullar buna neden olur ve en kötü durum senaryoları nelerdir?


2
Aklıma gelen tek senaryo, FPGA’yı ısıtmak için birçok FF’nin saatli olduğu bir tasarım.
Claudio Avi Chami

Doğru şekilde programlanmadığı takdirde, yanan nesnelerin etrafındaki bazı akımları çalıştıracak şekilde zayıf tasarlanmış bir devre içine dahil edilebilir.
Eugene Sh.

3
En kötü durum senaryosu muhtemelen fpga'nın makine öğrenmesi için kullanılması ve dünyayı ve evreni tahrip eden haydut bir AI yaratmasıdır. daha ciddi olarak, bilgisayara bağlı bir fpga'da denetlenmeyen kod kullanıyorsanız, söz konusu bilgisayara bulaşabilir. Ayrıca, yüksek güçlü cihazları kontrol etmek için kullanılıyorsa, bir binayı yakabilirsiniz.
satibel

Yanıtlar:


25

@ Anonymous'in cevabını ekleyerek, bir FPGA'nın yapısına zarar verebilecek yapabileceğiniz tasarımlar vardır.

Yeni başlayanlar için, tümü FPGA maksimum frekansına yaklaşmak üzere saatlenmiş, büyük miktardaki kayıtlardan (örneğin FPGA'nın% 70'i) oluşan çok büyük bir tasarım yaparsanız, silikonu önemli ölçüde ısıtmak mümkündür. Yeterli soğutma olmadan bu fiziksel hasara neden olabilir. 13.000 $ 'lık FPGA'yı kaybettik, çünkü korkunç bir soğutma sistemine sahip olan dev-kit nedeniyle aşırı ısındı.

Başka bir basit durum kombinasyon döngüler olabilir. Örneğin, bir halkada birbirine bağlanmamış üç geçidi başlatırsanız ve bu tür bir yapı hakkındaki sentezleyicilerin uyarılarını devre dışı bırakır veya yok sayarsanız, bir FPGA için çok kötü bir şey oluşturabilirsiniz. Bu örnekte, çok küçük bir alanda çok fazla ısı üretebilecek, muhtemelen ALM'ye ve çevresindeki mantığa zarar verecek bir çoklu-GHz osilatör yapacaksınız.


1
Kombinatoryal döngüler bazen gerçek rasgele sayı üreteçleri olarak önerilmektedir. Halka osilatörleriyle ilgili deneyimim yok , ancak yalnızca üç kapının zarar vereceğinden şüpheliyim. Çıktısını birçok kapıya sürmek muhtemelen zarar verebilir.
Andreas

7
thx Üzerinde spartalı 6 bulunan tasarım hatalarından dolayı artık gereksiz 2-3 tahta var. Bunu bir deneyeceğim: P
AntoineLev

Diğer bit akışlarının yüklenmesini önleyen veya en azından bunu yapmak oldukça zor olan bir bit akışı yüklemek de mümkündür.
Vladimir Cravero

8

Bu bağlamda kod doğru bir kelime değildir. Verilog veya VHDL programa benzese de, derleyicinin çıktısı, içindeki elektronik devreyi oluşturan FPGA yongasına yüklenen bir yapılandırmadır.

Aklıma iki tür geliyor:

  • fiziksel hasar: örneğin, birkaç FPGA pimi birbirine (veya başka bir cihaza) bağlanır ve aynı anda farklı mantıksal voltaj vermeye başlar. Akım akışları - aşırı akım olabilir - sonunda kapılara zarar verir;
  • mantıksal hasar: devre flaş çipini veya konfigürasyon cihazını hatalı şekilde kullanabilir ve içindeki veri görüntüsünü bozabilir, bu cihaz sonunda arıza yapar.

4
Fiziksel hasar konusu, OP'nin teklifinin geldiği yer olabilir. Bir yazılım geliştiricisi olarak, genel bir kurala "yazılım" ın cihaza fiziksel zarar vermemesi gerektiği ve "firmware" in iki dalgıç birbirine bağlanma gibi hasara neden olabileceği söylendi.
Cort Ammon - Monica

2
@KortAmmon "örneğin iki dalgıç birbirine bağlanır" - Bu, hava hortumu çapraz bağlantı anahtarı mı?
user253751

1
@ immibis Beni aldın! Asıl kural "dostum nefes alırken arkadaşınızın kafasındaki yazılıma / squishyware'e güvenmemek, bunun yerine daima regülatörünüzü sağlam bir şekilde kavramaktı" idi. ;-)
Cort Ammon - Monica

3

Bir giriş pimleri bloğunu çıkışlar olarak yanlış yapılandırmak, onu harekete geçiren herhangi bir şey yeterince katıysa bunu yapabilir.

IO bankası aşırı yüksek bir gerilimden (örneğin, 1.8V IO standardına sahip 3.3V güç veya bir girişin tam tersi) 3.3V güç veya LVCMOS standartlarından biri için bazı pinleri yapılandırmanın ne olduğunu bilmiyorum. o?

Açıkçası, termal problemler çok, çok, çok sayıda halka osilatörünün başlatılması gibi aptalca bir şey yaparak bir olasılık olabilir.


Tasarıma sınırlamalar olarak verilen I / O standardı sadece zamanlama hesaplamaları içindir. Eğer G / Ç bankası 3.3 V bankasıysa ve 3.3V güç kullanıyorsa, 1.8 V standardını seçtiğinizde hiçbir şey olmuyor.
Paebbels

@Paebbels, hangi aracı kullandığınızdan emin değilsiniz, ancak genellikle bir G / Ç standardı ayarladığınızda, o G / Ç konumunun voltajını kontrol eder. Bir FPGA giriş pimi, harici cihazın o pime sürdüğünden çok daha düşük bir voltaja ayarlanmışsa, bu FPGA girişi zarar görebilir.
Ciano

@Ciano doğru değil. Pin voltajı bir kısıtlamaya değil G / Ç sıra voltajına bağlıdır.
Paebbels

1

FPGA'lar çalışma zamanında yeni (kısmi) bir bit akımıyla yeniden yapılandırılabilir. Normalde, bu akış harici bir kaynaktan yüklenir, ancak FPGA'da kendiniz tarafından da oluşturabilirsiniz (örneğin gömülü bir softcore CPU ile). Örneğin, alt tasarımların dinamik olarak yerini değiştirmek için böyle bir çözüm kullanmak, satıcı araçları tarafından yapılan tüm tutarlılık kontrollerini sağlamaz. Bu nedenle algoritmanız bozulursa, yanlış yol transistörlerini bir FPGA'da etkinleştirebilir ve yakabilirsiniz.

Ayrıca PLL'ler veya alıcı vericiler gibi FPGA ilkelleri için yanlış işlem modları seçebilirsiniz.

Dinamik yeniden yapılandırma, yazılımdaki kendi kendini değiştiren kod gibidir.

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.