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?
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?
Yanıtlar:
@ 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.
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:
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.
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.