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:

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:

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.

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:

  1. [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.
  2. [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).
  3. [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.
  4. [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.
  5. [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ı

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ı:

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.

  1. [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.
  2. [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.
  3. [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.
  4. [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).
  5. [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.