Alan programlanabilir kapı dizileri (FPGA) iki baskın FPGA satıcısı tarafından sağlanan gelişim ortamları ile ilgili olarak -Xilinx (şimdi AMD) ve Intel (eski Alternatif olarak) - bu karmaşık devrelerin VHDL (VHSIC Hardware Description Language) için kritik bir yeteneğinin belirlenmesi ve farkına varması için, bu yazıyı, en iyi uygulamaları kapsayan, en iyi teknikleri kapsayan, gelişmiş uygulamaları kapsayan, en iyi teknikleri kapsar.

VHDL'nin Modern FPGA Development'daki rolü

VHDL, güçlü bir şekilde yazılmış, eşzamanlı ve donanım odaklı bir dil başlangıçta ABD Savunma Bakanlığı tarafından geliştirilen, yazılım programlama dillerinden farklı olarak VHDL, cihazın birden çok şekilde yapılandırılması ve donanım yapısına doğrudan erişim sağlar.S.S. Department of Defense.How software Programming, and Routed into a bitstream that configures the device.The quality of this integration directly effects, applications, and final.

Xilinx ve Intel, Datalog ve SystemReallog gibi alternatiflerle birlikte VHDL'yi destekleyen araç zincirlerine ağır yatırım yaptı ve her satıcının düzgün bir proje ve debugging kabusu arasındaki farkı yaratabilir.

Xilinx (AMD) FPGA Development Environment

Vivado Design Suite: The Modern Standard

[FONT=0]Vivado Design Suite [Dönetici:0]D Xilinx FPGA'lar için birincil araç olmuştur, çünkü 7 serisi cihazların (örneğin, Artix, Kintex, Virtex) tanıtımı ve en son UltraScale+ ve Versal ACAPs. VHDL entegrasyonu kapsamlı IP entegrasyonu, davranışsal simülasyon, sentez, uygulama ve sistem içi ve in-sistem debugging.

Project Build and VHDL Source Files

Vivado'da bir VHDL tabanlı proje oluşturmak basittir:

  • Vivado'yu başlatın ve “0) Yeni Proje).
  • Proje adı, yer ve türü ([Dönem:0)RTL Projesi[Dönemli) tipik.
  • Mevcut VHDL kaynak dosyaları ([[Dön:0) ekleyin veya yerleşik metin editörü kullanarak yeni olanları oluşturun. Vivado simülasyon ve sentez kütüphaneleri ile tasarım dosyalarını birleştirmektedir (örneğin, 0 ).
  • Hedef FPGA bölümünü bölüm numarasını (örneğin xc7a35ticsg324-1L) veya önceden tanımlanmış bir yönetim kurulu (örneğin Arty A7-35).
  • Seçmeli olarak, atamalar, saat tanımları ve zamanlama istisnaları için kısıt dosyaları ().

Synthesis ve Uygulama

VHDL kaynakları yerinde olduğunda, tipik akış:

  • [FONT:0]Synthesis[[DÜDÜT:1) – Vivado'nun sininci aracı (default: 03) VHDL'yi FPGA ilkelleri (LUTs, Flip-flo, blok RAMs, DSP dilimleri) bir net listeye çevirebilirsiniz.
  • [FONT=0)Implementation[[Dönetici:0)[Dönetici:0)[Dönetici:0)[Dönlendirme[Dönlendirme[Dönlendirmeler)[Dönlendirme[Dönlendirmeler))[Dönlendirmeler:)))))))))))))))))) ve (Dönemli bağlantılar))))))))))))))))))))))))))))))
  • [FONT=0)Bitstream Generation[[Dönem: 1) Son adım, JTAG aracılığıyla FPGA'ya yüklenebilir veya yapılandırma bellekte depolanabilir. (e.g., SPI flash).

Simülasyon ve Doğrulama

Vivado, ModelSim, Questa ve Aldec Riviera-PRO. VHDL tasarımının Davranışsal simülasyonu, daha ayrıntılı bir doğrulama için daha önce veya sonrasında çalıştırılabilir: Xilinx:

  • [FONT:0]VHDL testibenches[Dönetici tarafından yazılanlar).
  • [FONT=0)IP-santrik simülasyon[[Dönetici:0) Vivado Simulator'u VHDL-2008 özellikleri için destekle kullanıyor.
  • [FONTD:0)Functional ve zamanlama simülasyonu[Dönlendirme net listesi kullanarak).

Gelişmiş Entegrasyon: IP bütünor ve HLS

Vivado'nun I/O ile sık sık sık kullanılan IP tümor[Dönetici:0) Otomatik bütünleme ([Dönetici) bir grafik arayüzü kullanarak blok tasarımları oluşturmalarına izin verir.

Ek olarak, C / C++'ın VHDL veya Datalog'a dönüştürülebilmesini sağlar. Sonuç olarak RTL, başlangıçta yazılımda kullanılan algoritmaların tümüne entegre edilebilir.

VHDL ile etiket

Xilinx, tasarımda VHNT (ILA) ) ve [[Döneticileri (VIO)) ile gerçek zamanlı olarak kullanıcıların JTAG aracılığıyla gerçek zamanlı olarak iç sinyalleri test etmesine izin veriyor.Bu, VHDL kodu ve donanım debug arasında anlık bir avantajdır.

Intel (eski olarak Alternatif) FPGA Development Environment

Quartus Prime Design Software Software

Intel FPGAs, Cyclone, Arria ve Stratix aileleri dahil olmak üzere, 3 sürümde geliştirilmiştir: 0,0|Quartus Prime) Standard ve Pro (en yüksek lisans Arria 10 ve Stratix 10 ile)

Project Build and VHDL Source Management

VHDL ile Quartus ile bütünleme, Vivado'ya benzer bir model takip ediyor:

  • [FONT=0]File → Yeni Proje Sihirbazı ve proje rehberini, adını ve üst düzey tasarım varlığını belirt ( VHDL varlık adı).
  • VHDL dosyalarını ekleyin ([[DÜDÜŞÜŞÜŞÜŞÜN) ve Quartus, bunları sözel ve kütüphane bağımlılıkları için otomatik olarak analiz edecektir.
  • Hedef cihazı (örneğin, EP4CE6F17C8 bir Cyclone IV E) ve herhangi bir yönetimsel ayarlar için imzalayın.
  • [FONT=FONT=FONT=0))) veya aENFLT:2) [FONTsf[DÜDÜSTRNTS][FONTSTR][FONTSTR][FONTS=FONT=FONT=FONT=C=FONT=0)) ve Xilinx'in .xdc gibi eylemleri yapan (Quartus Ayarlar Dosyası)

Synthesis ve ayar

Quartus, VHDL'yi bir teknolojiyle dolu net bir şekilde dönüştüren bir yerleşik bir sentez kullanır (bazen şöyle adlandırılır:0)Quartus Synthesis[D: 1) veya Intel® Quartus® Prime Synthesis) ile birlikte, VHDL'yi bir teknolojiyle takip eden bir net listeye dönüştürür.

  • [FONT=0]Anized & Elaboration[[Dönetici: 1 ) – VHDL sözlüğü kontrol eder ve bir veri yapısı yaratır.
  • [FONT=0)Fitter (Place & Route)) – Assigns mantık elemanları (LEs) veya uyarlayıcı mantık modülleri (ALMs), I/O hücreler ve hafıza blokları, ve rotalar bağlantı noktaları.
  • [FONT=0)[[FONT=0))))[[FONT=0)))))))))))))))))))))))

ModelSim/Voa

Intel, ModelSim'i kullanmayı önerir: Intel FPGA Edition[Dönetici:0) veya [[Dönetici Lite ile ücretsiz olarak) veya [[Dönetici[Dönetici:2) İleri doğrulama için [[Döneticiler için.

  • Quartus'ta,Tools &rarr'ı seçin; Run Simulator Tool → RTL Simülasyonu) (veya Kapı Seviye Simülasyonu).
  • Quartus otomatik olarak bir simülasyon senaryosu yaratır, VHDL kütüphanelerini derler ve testbench ile ModelSim'i başlatır.
  • Kullanıcılar VHDL testbenches'i tasarım olarak aynı varlık / tarihsel stili kullanarak yazabilirler.
  • Intel ayrıca IP çekirdeği için önceden belirlenmiş simülasyon kütüphaneleri sağlar (örneğin, ALTPLL, FIFO), uyumluluk sağlamak.

Platform Tasarımcısı ve VHDL Entegrasyon

Sisteme göre tasarımlar için, [[0)-Platform Tasarımcısı ) (eski Qsys) IP blokları, işlemci çekirdeği (Nios II) ve harici hafıza arabirimleri ile bağlantı kurabilir ve Vivado'nun IP bütünleyicisi gibi, Platform Tasarımcısı tüm sistemi anında kapatabilir.

Timing Analysis and Closure

Intel'in USB:0)TimeQuest Timing Analyzer) VHDL tabanlı kısıtlamalar (vücut SDC dosyaları) okur ve statik zamanlama analizlerini gerçekleştiriyor. Ortak kısıtlamalar saat tanımları, giriş / kesintiler ve yanlış yollar.Achieving kapanış sık sık sık sık VHDL koduna uygun ayarlamalar gerektirir - boru hatları gibi - borulu mantıkla yeniden ifade eder veya Fitter'i yeniden çalıştırır.

Karşılaştırmalı Analiz: Xilinx vs. Intel Toolchains for VHDL

Her iki ortam aynı temel akışı paylaşırken, VHDL tasarımcılarına birkaç fark önemlidir:

  • [FONT:0]Simulator Ekosistemler[Dönetici: Vivado'nun Xsim tamamen entegre ama daha az özellikte Intel'in ağır desteklediği ModelSim/Questa kombinasyonundan daha az. Ancak, Xilinx, EDA satıcı kütüphaneleri aracılığıyla ModelSim'i tamamen destekliyor.
  • [FONT=0)Proje Dosya Biçimleri[[Dönetici: Vivado Mağazalar projesi metadata inurFLT:8) (XML), Quartus insan hazırlanabilir kullanımları kullanırken, senaryo tabanlı iş akışları için, [[Döneticiler için,]] daha sık sık kontrol edilir.
  • [FONT=0]VHDL2008- Destek[[Dönetici: Her iki araç VHDL-2008 standardının önemli kısımlarını benimsemiştir, ancak uygun farklılıklar uyumluluk durumunda standart olmayan özelliklerden kaçınmanız önerilir.
  • [FONTD:0)ThirdParty Tool Entegrasyonu[DÜT:1): Her ikisi de dış sentez (örneğin, Synopsys Synplify) veya simülasyon (Aldec Active-HDL, Cadence Xcelium) entegrasyonuna izin veriyor.
  • [FONT=0]Licensing ve Maliyet[DÜDÜDÜDÜDÜDÜDÜDÜSÜDÜSÜŞÜN:0)Licensing ve Maliyet[DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞ

VHDL Entegrasyonu için En İyi Uygulamalar Tüm Araçlar

Mastering VHDL entegrasyonu, hangi düğmenin basına basacağını bilmekten öteye gidiyor. Aşağıdaki en iyi uygulamalar birden çok araç versiyonu ve cihaz ailesi boyunca deneyimli mühendisler tarafından ortaya çıktı.

1. Kod Yapısı ve Synthesis Style

  • [0]Eğer bir standart ([Dönetici) kullanırsa (belkiler hariç) latches (eğer/parçalar) kayıtlarını açıkça kaydeder (belirli edge(clk) eğer sıfırlanırsa ve varlık-arşiz çiftleri temiz bir şekilde kullanır.
  • [FONT:0) Sürekli olarak hassas süreçlerde minimum fikre sahip olma; [FONTT:0)) sequential logic, bir saat içinde, tüm girişleri içeren ayrı bir süreçten dolayı şarj edilebilir bir mantık olmalıdır.
  • [FONT=0)Leverage VHDL özellikleri [Döntgen: 0:11) gibi [FONTD:0)) ve [[Intel) eleştirel sinyalleri kaldırmayı önlemek için araç optimizasyonunu önlemek için.

2. Simülasyon Stratejisi

  • Erken ve sık sık bir davranış simülasyonu saniye alır; bir posta sonrası zamanlama simülasyonu saatlerce sürebilir.UseENFLT:0) Kendi kontrol testibenches), rapor ve son test iddialarıyla.
  • [FONT:0) VHDL kütüphanelerini [Dönemli projeler yönetmek için kullanılan pdfDÜSÜSTR:0)Use VHDL library[[DÜT:1). Örneğin, varlıklarla paylaşılan tür bildirimleri ve sabitleri tanımlamak için ortak bir paket tanımlayın.
  • Inpropage-güdümlü doğrulama[[Dönetici:0) Questa'nın kapsama alanları gibi araçlarla birlikte, ek lisanslar gerektiren.

3.

  • [FONT:0] Saat ve zamanlama kısıtlamaları erken ; VHDL'nin araçlarının nasıl işlem yaptığını etkiler. Eksik bir kısıtlama, yerleştirme motoruna zamanlama gereksinimleri göz ardı etmesine neden olabilir.
  • [FONT=0) NetC'de (örneğin Xilinx veya ) manuel hataları azaltmak için kullanılan kodlar.
  • [FONT:0]Bir elektriğe sahip olmayan bir süre (Dönetici olmayan frekanslar) - fayda olmadan derleme süresini artırabilir.

4. Debugging Teknikleri

  • [FONT=0)Insert debug çekirdeği sentez öncesi) mümkün olduğunda. Vivado'da belirli bir genişlik ve derinlikle bir ILA yaratır; Quartus'da Signal Tap II Mantık Analizini kullanın (IP kataloğu aracılığıyla).
  • [FONT=0) VHDL'nin ifadelerini [Döneticileri bayrak yasadışı devletlere göre kullanır.Rekreasyon sırasında, bunlar hemen geri bildirim sağlar; sentez sırasında görmezden gelinirler.
  • [FONT:0)Öylegesiz isimler[Döneticiler) bu yüzden de, bu debug çekirdeği aksi takdirde optimize edilebilir iç ağları araştırabilir.

5. Senaryo ve Otomasyon

  • Hem Vivado hem de Quartus Tcl senaryosu.Projeler oluşturmak için Tcl senaryoları yazın, dosyaları ekleyin, kısıtlar yapın ve akışı çalıştırın.Bu, CI/CD entegrasyonunu sağlar.
  • Kullanım:0))))))))) (vvado -mode tcl or kurtus sh -t) toplu iş için, regresyon testleri ve gece inşaları için.

6. Version Control

  • Mağaza sadece VHDL dosyaları, kısıtlamalar dosyaları ve senaryolar - alet üretilen veritabanı dosyaları değil (örneğin, Vivado .cache, Quartus .)
  • Bir göz atın: 0,0)))))[[Dönetici:)))))))))))))))))))))))))))))))))))))))))
  • Tag izlenebilirlik için biraz uç versiyonları ile yayınlar.

Gelişmiş En İyileştirme Topics

VHDL-In ile Üçüncü Partili IP Cores Kullanımı

Hem Xilinx hem de Intel geniş IP katalogları sağlar (örneğin, FIFOs, PLLs, PCIe bloklar, Ethernet MACs). Bu IP'leri genellikle bir VHDL tasarımına entegre etmek:

  1. IP parametreleştirme GUI (örneğin, Vivado IP Kataloğu veya Intel IP Kataloğu) açın.
  2. VHDL'yi üreten ve simülasyon dosyalarını üreten IP'yi kullanarak.
  3. Üst düzey VHDL varlığında bir bileşen olarak sarmalamayın.
  4. IP'nin limanlarını tasarım sinyallerinize bağlayın.

Bakım arayüz modelleri ile alınmalıdır: AXI tabanlı IPs, satıcılara özel VHDL paketleri (örneğin, ESFLT:16 gibi) gerekli olabilir.

Yüksek Lisans Synthesis ve VHDL Interoperability

Yüksek seviyeli sentez (HLS) C/C++ veya SystemC kodu otomatik olarak RTL'ye dönüştürülebilmesine izin verir.Bu, Vivado veya Quartus projelerinde doğrudan ithal edilebilir. Bu, karmaşık arithmetic, video işleme veya makine öğrenimi uygulamaları için özellikle yararlıdır. ancak, üretilen VHDL genellikle daha az okunabilir ve hedef aracı dışında sentezlenebilir.

Open-Kaynak Alternatifleri

Eğitim amaçlı veya eleştirel olmayan tasarımlar için, açık kaynak araçları VHDL'yi belirli FPGA'lar ile entegre edebilir. ) Bazı LaGHDL ve Xilinx (özel bir Xilinx eklenti ile) destekler. ancak Intel FPGA'lar henüz açık kaynaklı cep kütüphanelerinin kapalı doğası nedeniyle açık kaynaklı araçlar tarafından desteklenmez.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

VHDL ile FPGA geliştirme ortamları Xilinx ve Intel, proje kurulumu, simülasyon, sentez, uygulama ve debug.Viammer ve Quartus Prime ile entegre ederek, yapılandırılmış kodlama uygulamaları kullanarak, üretkenlik ve tasarım güvenilirliğini önemli ölçüde geliştirebilecek bir çabadır. FPGA kapasite ve karmaşıklıkta büyümeye devam ettikçe, VHDL'yi özellikle de kolayca bir şekilde bir araya getirerek VHDL'yi bir beceri ile birleştirir.

En son araç özelliklerine daha derin bir şekilde atlatmak, resmi belgelere atıfta bulunur: [FONTT:0]Vivado Design Suite Hub[Dönetici:2).Intel Quartus Prime Dokümantasyon) ve [DüzDÜDÜDÜDÜSÜDÜDÜDÜDÜDÜSÜSÜye Olmayanlar İçin Genel Bilgiler[Üye Olmayanlar İçin Tıklayınız.