Hızlı Prototipleme için Fpga Development Boards nasıl kullanılır
Alan-Programlanabilir kapı Dizileri (FPGA) mühendisler için vazgeçilmez hale geldi, araştırmacılar ve haftalarca bir tasarıma sahip olan öğrenciler, pahalı ve zaman alıcı bir sistem, FPGA geliştirme kurulularının kullanımı için hızlı bir şekilde, geliştirme döngüsüne izin vermek ve risk almaya karar vermek için kapsamlı bir üretime nasıl karar vermek için kapsamlı bir şekilde program yürütmeniz gerektiğini.
FPGA Development Boards'ı anlamak
Bir FPGA geliştirme kurulu, özel bir PCB'nin aksine, bir FPGA çipi, güç düzenleme, saat kaynakları, hafıza ve çeşitli I / O konektörleri içeren tam bir platform olmak için tasarlanmıştır.Bu kurullar dijital mantıkla deney yapmak için tam bir platform olarak tasarlanmıştır.Özel bir PCB'den farklı olarak, bir geliştirme kurulu, FPGA'nın yeteneklerine yönetim kurulu tasarımı, satılan veya geçerliliği olmadan anında erişim sağlar.
Anahtar bileşenleri ve onların rolleri
Modern FPGA tahtaları genellikle şunları içerir:
- [FONT=0)FPGA cihazı [DFLT:1] - Kurulun kalbi, yapılandırılabilir mantık blokları (CLB), RAM, DSP dilimleri ve sık sık sertleştirilmiş işlemciler (örneğin, Xilinx Zynq veya Intel Çevik SoC FPGAs) içeren bir seri.
- [FONT:0]Memory[DDR4 SDRAM, SRAM veya Flash, işlem sırasında yapılandırmaları ve verileri depolamak için.
- [FONT:0)Clock kaynakları[Dönem: 1) Kristal osilatörler veya FPGA'ya sabit saat girişleri sağlayan programlanabilir saat jeneratörleri.
- [FOD:0]I/O periferis[[Döneticiler] – Ethernet, USB, HDMI, GPIO başlıkları, PMOD konektörleri ve bazen analog-dijital dönüştürücüler (ADCs) veya dijital-analog dönüştürücüler (DAClar).
- [FONT=0)Configuration arayüzü[[Dönetici: 1) JTAG, USB veya SPI flaş, FPGA'ya güç veya programlama sırasında yüklediğine işaret eder.
- [FONT:0)Power yönetim[DÜT:1] – Gerek düzenleyiciler, FPGA tarafından gerekli olan birden çok çekirdek ve I/O rayları tedarik eder.
FPGA Boards'ın Kategoriler
Doğru tahtayı seçmek hızlı prototipleme için kritiktir. Kurullar düşük maliyetli giriş seviyesindeki platformlardan yüksek puan değerlendirme kitlerine kadar değişir. Common categories şunları içerir:
- [FONT=0]Entry- level boards[[Dönetici:0)[Döneticiler[Döneticiler) – Digilent Arty S7 (Xilinx Spartan-7) veya Terasik DE0-Nano (Intel Cyclone IV) gibi, basit devlet makinelerinin uygulanması ve küçük modüller test etmek için uygun ve yeterli.
- [FONT=0]Mid-range yönetimler[[Döneticiler)[[[Döneticiler) – Xilinx Artix-7 tabanlı Nexys Video veya Intel Cyclone V GX Start Kit. daha fazla mantık hücresi sunarlar, daha hızlı transceivers ve daha zengin periferik setler, hızlanan protokol işleme veya video uygulamaları için uygun.
- [FONT=0)SoC FPGA tahtaları [DÜT:1] - Sert bir işlemci alt sistemi ile bir FPGA kumaşını birleştirerek, e.g., Xilinx Zynq-7000 (Pynq-Z2) veya Intel Arria 10 SoC. Bunlar her iki yazılım ve donanıma ihtiyaç duyan prototyping sistemleri için idealdir, bir yönetim kurulunda gömülü bir sisteme izin verir.
- [FONT=0) Yüksek hızlı değerlendirme kitleri [Dönetici:0] Xilinx Virtex UltraScale+ veya Intel Stratix 10, çoğu zaman çok hızlı transceivers, FMC konektörleri ve PCIe yuvaları için kullanılır. Bunlar ağ anahtarları, radar işleme veya AI inference hızlandırıcılar gibi karmaşık prototipler için kullanılır.
Hızlı prototipleme için bir yönetim kurulu seçerken, gerekli mantık kapasitesi göz önünde bulundurun, I/O arabirimler, hafıza genişliği ve satıcının araç zincirleriyle tanışmanızı sağlar.
FPGA Development Çevrenizi Ayarlayın
Kolay bir kurulum süreci hızlı prototiplemenin temelidir. Her dakika sürücüler veya alet zincir sorunları ile güreşe geçirilen her dakika, bu yapısal yaklaşımınızı tasarlayabilmenin zamanı kaybedilmiştir.
Geliştirme Yazılımı seçin
Her FPGA satıcısı tasarım girişi, sentez, uygulama ve debugging için bir takım araçlar sunar.
- [FONT:0)Xilinx Vivado Design Suite – Spartan-7'den Versal'a kadar tüm Xilinx FPGA aileleri proje yönetimi, RTL sentez, uygulama (yer ve rota) ve entegre bir mantık analizcisi (ILA) için Vitis yazılım geliştirme için kullanılır.
- [FONT=0]Intel Quartus Prime[[Dönetici: 1 ) – Intel FPGA'lar için benzer yetenekler sunuyor, Quartus Prime Pro versiyonu yüksek uç cihazlar için.The Signal Tap logic analysisr is bütünleme için entegre.
Her iki araç da sınırlı cihaz desteği için ücretsizdir (Vivado WebPACK, Quartus Prime Lite) ve daha büyük FPGAs için ücretli lisanslarla yükseltilebilir. Hızlı prototipleme için, ücretsiz baskılar genellikle yeterlidir.
Board-Specific Sürücüler ve Araçlar
Çoğu modern tahtalar hem programlama hem de seri iletişim için USB ile bağlanır. Kurulum sırasında, yönetim kurulunun kablo sürücülerinin yüklenmesi gerekir.For Xilinx boards, Digilent Adept runtime or the Vivado kablo sürücüleri genellikle gereklidir. For Intel boards, Quartus USB Blaster sürücüsü düzgün bir şekilde yapılandırılmalıdır.
Birçok geliştirme kurulu da bir yönetim kontrolörü (BMC) veya sanal bir COM portu sağlayan bir seri-do-USB dönüştürücü ile geliyor. 115200 baud (veya belirtildiği gibi) herhangi bir yumuşak çekirdekle etkileşime girebileceğiniz bir terminal emülatörünü kullanın.
Minimal Test Projesi Oluştur
Ana prototipinize dalış yapmadan önce, ortamınızın doğru çalıştığını doğru bir şekilde programlamak için küçük bir “kör” proje oluşturun.Bu, tüm araç akışını doğrulamaktadır: Verilog veya VHDL'de kodlamadan, sentez ve uygulamadan, cihazınızda programlamaya kadar.En Başarılı bir şekilde çevrenizin doğru çalıştığını doğru şekilde görmek.
Core FPGA Design Flow for Rapid Prototipping
Tasarım akışını anlamak, hız için nerede optimize edeceğinizi belirlemenize yardımcı olur. Tipik bir FPGA tasarım akışı bu aşamalardan oluşur:
- [FONT=0) Tasarım girişi [DÜDÜT:1) - Verilog'da RTL kodu (C++ sözcülüğü için) veya VHDL için hızlı prototipleme için birçok mühendis, Vivado HLS (şimdi Vitis) gibi blok diyagramları veya üst düzey sentezler kullanır (şimdi Vitis’in bir parçası) RTL kodu RTL'ye dönüştürür.
- [FONT=0]Simulation[[[Dönetici:0)[[[Dönlendirme:0))))) – Bir mantık simülatörü kullanarak tasarımınızın işlevsel davranışını doğrulayın (örneğin, Vivado Simulator, ModelSim, or GHDL).
- [FONT:0]Synthesis[[[Dönetici:0)[[Döneticiler) – RTL kodunu FPGA'nın mantığı kaynaklarına haritalar yapan bir kapı düzeyinde net listeye dönüştürür.Bu aşamada, saat frekansı ve I/O standartları gibi kısıtlamalar ayarlayabilirsiniz.
- [FONT:0]Implementation (translate, harita, yer & rota)) - Aracı belirli FPGA kumaşına sığıyor, mantık elemanları ve yönlendirme bağlantıları koyuyor.Bu adım tasarım zaman zamanlaması gerekliliklerini belirler.
- [FONT=0)Bitstream nesli[[Dönem: 1)[Dönder: FPGA. Yükü JTAG veya flaş belleği aracılığıyla tahtaya indiren ikili dosyayı üret.
Her Aşamayı Hızlandırmak için ipuçları
- [FONT:0]Modular tasarımı[Dönetici: 1) Sisteminizi daha küçük, bağımsız test edilebilir modüllere ayır. Her modülü her modülü her bir modülü, bütünleşmeden önce ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı ayrı bir şekilde ayır.
- [FONT:0) Yükseltmesel derleme[[[Dönetici:0)) - Hem Vivado hem de Quartus destek artışlı derleme, bu tasarımın yerini ve rotasını azaltmak için değiştirilen kısımları değiştirmiştir.
- [FONT=0]Simplify saatlerini[[Döntme:0)[Dönlendirme:0)[Dönlendirme:0))[Dönlendirme:0))))))))) - Geminin özel saat girişi ve PLL veya MMCM ilkelleri gerekli frekanslar oluşturmak için.
- [FONT:0)Öyle İ / Os[DÜDÜT:1) - Kapsamlı bir XDC (Xilinx) veya SDC (Intel) kısıtlamaları dosya erken, pin yerleri, gerilim seviyeleri ve zamanlama istisnaları dahil olmak üzere.
Gerçekten hızlı bir şekilde, C++'da algoritmaları tarif ettiğiniz yüksek seviyeli bir sentez akışı kullanmayı düşünün ve araç RTL'yi üretmenize izin verebilirken, HLS en optimize edilmiş donanım üretmeyebilir, görüntü filtreleri veya Fourier dönüşümleri gibi karmaşık veri-path uygulamaları için dramatik bir şekilde azaltır.
IP Cores'ı ve yerleşik Modülleri Kaldırın
Prototyping'i hızlandırmanın en güçlü yollarından biri, önceden belirlenmiş entelektüel mülk (IP) temelleri kullanmaktır. Her iki Xilinx ve Intel, bellek kontrollerini, arayüz protokollerini, matematik fonksiyonlarını ve hatta tüm işlemci altsystems'i kapsayan bir IP entegrasyonunu kullanarak, bir MicroBlaze yumuşak işlemcisini,Roma kontrolörünü ve Ethernet MAC'u bir saatten daha az bir sürede tasarlayacak bir şey sunar - sıfırdan tasarım yapmak için haftalar.
Satıcı IP'nin ötesinde, zengin açık kaynak ekosistemi var. ⁇ D:0) <24|KöpekÜyesel olarak kullanılan basit UART'lardan tam olarak RISC-V CPU'lar için yeniden kullanılabilir olan yüzlerce ücretsiz çekirdekli proje, bu modüller kullanarak, I2C ve debugging arabirimleri bir standart bloklar yeniden icat etmek yerine hızlıca bir sistem-kabul edebilirsiniz.
IP çekirdeği dahil ederken, lisans şartlarını ve hedef cihazınızla uyumluluk. Birçok satıcı IP çekirdeği tam bir lisansa sahip olmadıkça belirli FPGA ailesine kilitlenir. Hızlı prototipleme için, açık kaynak çekirdeği genellikle daha iyi bir seçimdir çünkü taşınabilir ve ihtiyaç duyulabilir.
Debugging ve Doğrulama Teknikleri
Hiçbir prototip ilk kez mükemmel çalışır. Etkili bir kesinti, sonsuz hayal kırıklığıdan verimli bir şekilde prototiplemenin ne kadar ayrı olduğunu. FPGA geliştirme panjurları birkaç yerleşik-in debugging yetenekleri sunar:
On-Chip Logic Analysis
Vivado'nun Entegre Mantık Analizi (ILA) ve Intel'in Signal Tap, dışsal araştırmalar olmadan iç sinyalleri gerçek zamanlı olarak yakalamanıza izin veriyor. Tasarımınızda bir ILA çekirdeğini anlık olarak, ilgi sinyallerine bağlanmak ve koşulları ayarlamak için bunu yapın. Durum tanıştığında, yakalanan veriler denetim için bilgisayarınıza yükleniyor.
Etkili ILA kullanımı için ipuçları:
- Kaynak kullanımını düşük ve debug iterations hızlı tutmak için küçük bir sinyal (8-16) kullanın.
- Tahmin edilen işlem saatinizi eşleştirmek için örnek derinliği ayarlayın; 1024-4096 örnek genellikle yeterlidir.
- Olayları ilişkilendirmeniz gerekiyorsa zaman referans olarak ücretsiz bir şekilde mücadele edin.
Sanal Giriş/Output (VIO)
Her iki Vivado ve Quartus, ev sahibi bilgisayardan FPGA pins sürmenize veya gözlemlemenize izin veren sanal I/O çekirdeği sunar. Örneğin, bir PWM görevi döngüsü ayarlamak için sanal bir düğme oluşturabilirsiniz. Bu, erken test sırasında fiziksel anahtarlar veya atlayıcılar için gerekli olan ihtiyacı ortadan kaldırır.
Dış Debug Araçları
Bazen, iç mantık analizörü tarafından yakalanamayan yüksek hızlı sinyalleri veya sinyalleri araştırmanız gerekir. dört kanal USB mantık analizörü (örneğin, Saleae veya benzer) bu ölçümler zaman alıcı arayüzler için paha biçilemez.
Başka bir ortak teknik, GPIO pins'i kullanmamak ve onları dış bir bağlamda veya mantık analizörü ile gözlemlemektir. Bu “test noktası” stratejisi basit ve çoğu zaman zaman zaman zamanlamayı veya mantık seviyelerini doğrulamanın en hızlı yoludur.
Pratik Prototipleme Stratejileri
Teknik akışın ötesinde, disiplin uygulamaları bir set daha hızlı hareket etmenize ve ortak tuzaklardan kaçınmanıza yardımcı olur.
Version Control ile iterative Development
Her zaman FPGA projeleriniz için bir sürüm kontrol sistemi kullanın. Bir kişi prototipi izleme değişikliklerinden bile faydalanır, özellikle de “küçük” bir değişiklik tasarıma karışır. Her başarılı bir adımdan sonra Komünizm geçer ve yönetim kurulu testi geçer.
Donanım-in-the-Loop (HIL) Simülasyon
Prototiplemeniz dış donanımla etkileşime girdiğinde (sensors, aksiyoncular, diğer tahtalar), HIL simülasyonunu kullanmayı düşünün. Örneğin, FPGA kurulunu UART veya Ethernet aracılığıyla bir PC'ye bağlanabilir ve dış ortamı taklit eden bir Python senaryosu çalıştırabilirsiniz.
modüler Mezzanine Boards ile prototipleme
Birçok FPGA geliştirme kurulu PMOD, FMC veya Arduino başlıkları destekler. Bu sayede, sensörler, ADCs veya iletişim modülleri içeren kız parçaları bağlanmak için bunları kullanın. FPGA kurulunu sürekli olarak takas ederken, mezzanine modülleri farklı prototipler için temel tasarımını yeniden kullanmanıza olanak sağlar. Örneğin, Digilent Pmod ekosistemi Xilinx ve Intel tahtaları ile kullanılabilecek çok çeşitli eklentiler sunar.
Gittiğiniz gibi Belge
Hızlı prototipleme genellikle belge eksik belgeye yol açar. ancak, tasarımınızın basit bir blok diyagramı, her seanstan sonra bir dizi dokümanı ve her modülün davranışının kısa bir açıklaması, bir hafta sonra projeye geri döndüğünüzde sizi birkaç saat kurtarabilir.
Örnek: Bir PWM Jeneratör ve LED Dimmer
Tüm süreci göstermek için, bir LED kullanan basit bir PWM jeneratörü inşa etmeyi düşünün. Bu örnek, ortak adımları kullanır ve çoğu tahtada bir saat içinde tamamlanabilir.
- [FONT=0] RTL[[DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜSÜŞÜNÜDÜŞÜNÜŞÜNÜŞÜNÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜye Değeri Bir Görevli En Az Bir Şekilde Daha Az Olduğunda, Çıktı Yüksek; Aksi takdirde düşük.
- [FONT:0]Simulate[Dönetici: Görev döngüsü girişine göre bir test et ve çıkış dalgasını doğrulama.Bir simülatörü kullanarak bir hata kullanın.
- [FONT=0)Ek kısıtlamalar[[Dönetici: PWM çıktısını bir LED pin'e ve görev döngüsü girişine bir anahtar veya bir VIO çekirdeğine teslim edin.
- [FONT:0]Synthesize ve uygulama[Dönetici: Run sentez ve yer-ve-route.netin zamanlama ile (yüzlü saat 100 MHz'de kolayca kapatılması gerektiğini kontrol edin).
- [FONT:0]Program ve test[[Dönetici: Gemiye biraz uç. VIO kullanarak görev döngüsüni uygunlayın ve LED'in beklediği gibi davranmazsa, karşı değeri ve çıktıyı yakalamak için bir ILA ekleyin.
Bu örnek, en az uygulanabilir prototip döngüsünü gösterir. Bunu ustaca, özel bir protokol uygulayan bir PC veya bir devlet makinesinden komut almak için UART arayüzü gibi ek bloklar ekleyerek daha karmaşık tasarımlara ölçeklenebilirsiniz.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
FPGA geliştirme panjurları hızlı prototipleme için güçlü bir varlıktır, gelişim döngülerinizi hızlandırabilir ve birkaç saat içinde donanıma çalışmanızı sağlar. Doğru tahtayı seçerek, araç zincirünüzü düzgün bir şekilde ayarlar ve basit bir tasarım akışıyla başlayın ve inşa edilmiş bir PWM kullanarak, birkaç tane yeniden tasarlama riskini azaltabilirsiniz.Başarılı bir şekilde, modülerlik ve en az çalışan IP ile birlikte hızlı bir şekilde çalışırsınız.
Daha fazla okuma için, resmi belgeye UYARI:0)Xilinx/AMD) ve ) Intel[DÜye Olmayanlar[DÜye Olmayanlar İçin Tıklayınız.