Vakfı ayarlama: VHDL ve Datalog

FPGA Donanım geliştirme, yazılım esnekliği ve donanım performansının kesiştiği noktada oturuyor. Bir alan programlanabilir kapı serisini programlamak için, mühendisler bir çip üretmeden özel dijital devreler yaratıyorlar. Süreç donanım açıklaması dilleri üzerine kuruludur - baş olarak VHDL ve Datalog - ürün revizyonları üzerine haritayı tanımlamak için davranış tanımlamak için, makyaj kaynakları Master Bu dilleri ve ilişkili tasarımları kullanarak en iyi şekilde geliştirmek için gerekli olan verileri tanımlamak için.

Her iki VHDL (Very High Speed Integrated Circuit Hardware Description Language) ve Verilog 1980'lerde ortaya çıktı ve daha sonra bir ABD'den doğan bir ABD Savunma Girişimi Bölümünden doğan bir C-YS, sık sık sık endüstri sektörüne, takıma ve bölgesel tercihlere bağlı olarak birçok hatayı yakalayan açık beyanlar alıyor olsa da, ticari ve teknik simülasyon için başlangıçta C-DL'ye karşı daha fazla yaklaşımın daha fazla yaklaşabileceğini gösteriyor.

Bugün Sistemalogu, VHDL veya Verilog'da sentezlenebilir tasarım tutmak için kullanmak için kullanmak için kullanmak için bir ortak yöndür. Sistematik testler, iddialar ve verilogları için birincil dil ne olursa olsun, her iki VHDL ve Verilog temelleri önemlidir: IP ile karşılaşırsınız, üçüncü taraf temelleri ve diğer lehçeleri kullanarak işbirliği yapar.[değiştir | kaynağı değiştir]

Robust Design Flow

Bir kod editörü açmadan önce, kayıt transfer seviyenizi yapılandıran akışı yapılandırın. Tipik bir FPGA tasarımı akışı, her bir adım daha sonra projede bileşiklere yönelik olarak herhangi bir adım atma veya acele etme riski içerir: aşamalar şunlardır:

  • [FONT=0]Specification and architecture modelleme[Dönlendirme: Blok diyagramları, arayüz tanımları oluşturun ve ön zamanlama bütçeleri. Bu adım tüm alt üst düzey kararlara temel oluşturur.Bu aşamada geç bütçeler ve güç hedefleri içerir.
  • [FONTD:0)RTL kodlama[[Dönetici: 0 3): VHDL veya Verilog'ta sentezlenebilir açıklamalar yaz, okunabilirlik ve araç uyumluluk sağlamak için kılavuzları kodlamak. tutarlı adlandırmalar ve ayrı kombinasyon mantığı açıkça kullanın.
  • [FONT:0]Functional simülasyon[[Dönetici: ModelSim, Questa, GHDL veya Icarus Verilogu, zaman zaman zamanlaması olmadan mantık düzeltmesini doğrulamak için.Bu, otomatik olarak yanlış eşleşmeleri yapan kendini kontrol eden testlere karşı ilk savunma hattıdır.
  • [FONT:0]Synthesis[[Dönetici: RTL'yi belirli bir FPGA mimarisine AMD Vivado, Intel Quartus veya Lattice Radiant gibi araçlar kullanarak hedef alan veya hız için optimize eder.
  • [FONT:0]Place ve rota[Dönetici: Satıcı aracı, net listedeki fiziksel kaynaklar, routing sinyalleri ve saat kısıtlamalarına haritalar. Bu adım genellikle sentezde görünmez zamanlama sorunlarını ortaya çıkarır.
  • [FONT=0)Statik zamanlama analizi (STA))[Uygunluk yolları, tüm zamanlama yollarının kurulumla buluştuğunu ve gereklilikleri yerine getirdiğini belirtir. STA, hızdaki güvenilir bir işlem için elverişli değildir.
  • [FONT=0)Bitstream nesli ve programlama[[Dönetici: konfigürasyon dosyasını üret ve FPGA'ya yükler. Cihazın doğru şekilde yapılandırdığını ve tüm arayüzlerin beklendiği gibi davrandığını doğrulayın.

Tcl, Python veya Make'te senaryo ile desteklenen bir düzen, değişiklikleri tekrarlanabilir ve doğru bir şekilde entegre etmenize olanak sağlar. Tools like ESFLT:0)AMD Vivado) ve DAHA FAZLA O kadar yeni ekip hızla dağınık hale getirebilir.

High-Kalite RTL Yazma için En İyi Uygulamalar

1. Detaylı bir Mimari ve Özellikler ile başlayın

Programlamaya atlamak için çağrı yapın. İyi yazılmış bir özellik saati domainleri, sıfır stratejileri, veri akışı, bağlantı gereksinimleri ve dış arabirimleri.Bir takımla çalışırken, daha kapsamlı bir şekilde tanımlanmış portlar ile tasarıma giriş yapın.If the design to avoid integration methodss - it AXI4-Lite, basit bir geçerli / hazır el elemanları veya özel bir paralel arayüz oluşturmalı bir şekilde düzeltme işlemi ortadan kaldırmak için bir araya gelmeli.

2. Embrace modülerite ve Reusability

FPGA Donanımı çoğu yazılımdan daha uzun yaşıyor. Tasarım modülleri, projeksiyonlar, derinlikler ve özellik gating.In Datalog, useENFLT:0) Açıklamalar ve [[DüzDüzDüzücüler, VI, Wish Bones, ve basit / hazır eller Paketleri ile birlikte, daha iyi bir şekilde oluşturulan tasarımlar için, daha iyi bir şekilde geliştirilmiş olan bazı tasarımları kullanarak, otomatik olarak satın alma noktalarına sahip olan kütüphaneler.

3. Konsolist ve Temiz Coding Standartları Kabul

Doğrulamalar doğrudan kullanılabilirlik ve kesinti hızıyla ilişkilendirilir.Inforce project-wide name kongreleri: Doğrulama ve ayarlamadan önce, doğrulayıcı veya doğrulayıcı olmayan dosyaların tekrarlanabilir olması gerekir.IndentFLT:4, farklı saat ve sıfır sinyalleri doğrulayıcı olarak yorumlayın.Fortnessbook for the correct order.Fortness and frequency should be changed with name for the following Constants orurFLT:8. Comment the goal behind logic, not the syntax-

4. Kapsamlı Testbenches ve Doğrulama Çevreleri yaz

Simülasyon, tasarım yetersiz kalırken böcekleri ortaya çıkarır. Basit yönlendirilmiş testlerin ötesine geç.############# FONT FONT FONT FONT FONT FONT FONT FONT FONT FONT FONT FONT FONT=FONT=FONT=FONT=S FONT=S FONT=FONT=S FONT=S FONT=S FONT=S FONT=SNT=S FONT=SNT=SNT=SNT=STRNT=S FONT=SNT=S FONT=SNT=SNT=SNT=S FONT=SNT=SNT=SNT=SNT=SNT=SNT=SNT=SNT=SNT=SNT=SNT=SNT=S FONT=S FONT=SNT=SNT=SNT=FONT=FONT=S FONT=SNT=S FONT=S FONT=SNT=S FONT=S FONT=FONT=

5. Master Timing Closure ve Synthesis Optimizasyonu

Synthesis ve yer-ve-route araçları zamanlama kısıtlamaları ile tanışmaya söz verir, ancak tüm saat alanlarını, giriş / gecikmeleri, çok yönlü yolları ve yanlış boru yolları sağlar.UseENFLT:13, 03.D:WinP: Platformda erken kayıt yaptırırsanız, DUTC kodlarını tekrarlamak için doğru bir şekilde oturum açmaz.

6. Asynchronous Logic and Metastability Doğru Olarak Doğrulanabilir

Bir sinyal, bilinen bir faz ilişkisi olmadan bir başka saate kadar geçerse, metastability yanlış bir veri oluşturabilir. Standart mitigation, her zaman ayrı bir resetleme stratejisini tanımlamak için iki veya daha fazla senkronize edilebilirlik sinyali ve bir senkronizasyon için tipik, ancak bir yabancı saat sinyalini doğrudan bir şekilde yerine getirmek için, üç ayrı ayrı ayrı ayrı bir zamanlama sistemi tanımlamak için her zaman ayarlandığında, ayrı bir zamanlama sistemi tanımlayın: senkronizasyonlama işlemine son derece zorlayın.

7. Etkili Devlet Makineleri

Finite devlet makineleri (FSMs) neredeyse her FPGA tasarımında görünür.Spektif durum, bir sonraki derecedeki mantığın her zaman okunabilir olması veya eşdeğer bir şekilde işlenmesini sağlar.

8. Kurulum Sürüm Kontrolü ve İşbirliği

Yazılım gibi FPGA bilgisayarlarını tedavi edin: tüm RTL, kısıtlamalar, simülasyon senaryoları ve RTL gibi bir sürümde belgeleme sistemi, kod yorumları ve kaliteyi sağlamak için istekler yapın. çünkü FPGA projeleri ikili satıcı IP ve büyük çıktı dosyaları içeriyor, bir [[Dönderlik dosyaları, kritik kısıtlamalar ve senaryo dosyaların şifresini dışlamadan önce yapılan bir dizi belgeyi dışlamaktan sonra otomatikleştirin.

Performans ve Yeniden kullanılabilirlik için Gelişmiş Teknikler

Bir tasarım FPGA'nın sınırlarını zorlarken, birçok gelişmiş strateji büyük bir kombinatör bulutunu kaydettirebilir; bu genellikle veri ayarlamasını sağlar.Floorplan) - manuel olarak kritik modüller veya pin-gruplar koymak - büyük bir akış döngüsünü tekrarlamak için yeniden yapılandırmak için tekrarlama işlemi gerektirir.

Ortak Pitfalls ve Them'dan Nasıl Kaçırmak

Yine de, tüm koşullar altında bir sinyal tayin etmek zorunda kalır; statik zaman analizi, en iyi atamaları için varsayılan olarak yapılır.[TFLT: 5 )

Toolchain ve Resource Önerileri

İyi yapılandırılmış bir araç zincir gelişimlerini hızlandırıyor ve hayal kırıklığı azaltır. AMD /Xilinx parçaları için, AMD Vivado sentez, uygulama ve programlama için birleşik bir ortam sunuyor: Intel'in Quartus Prime benzer kapaklar Çevik ve Stratix aileleri, Lattice Oralt, daha düşük güç ECP5 ve CrossLink platformlarına hizmet ederken.

  • [FONT=0)AMD Vivado Synthesis Guide (UG901)[[FONTT:1) - Xilinx cihaz ailelerinde inference ve optimizasyon için ayrıntılı kodlama stilleri.
  • [FONT:0]Intel Quartus Prime Pro Edition Handbook[[Dönetici:0) – Intel FPGAs için tasarım girişi, sentez ve zamanlama analizi için en iyi uygulamalar.
  • [FONT=0]Yosys Open Synthesis Suite) – Verilogu destekleyen açık kaynak bir sentez çerçevesi ve Lattice ve AMD mimarlıkları ile topluluk eklentileri aracılığıyla uyumlu. Pair, bir sonraki kaynak akışı için.

Açık kaynak aracı için, Yosys sentez- çerçeve, bir sonraki ayarlı ile birlikte bir araya getirilen ve Lattice iCE40 cihazları için senaryolar çağıran ve test eden birçok uygulama için bu araçları öğrenme, prototyping ve hatta yüksek performanslı döngü için üretim için üretim için, özellikle de GoHub Actions veya GitLab CI etrafında inşa edilebilir.

Protegies for Production-Grade Firmaware

Doğrulama, tasarım takip eden bir aşama değildir; proje yaşam döngüsü boyunca paralel olarak tasarım kararlarını bildirir ve beklenmedik senaryolar için gerekli olan sistem doğrulama planlarını uygular ve uygulama sırasındaki protokollerin şifresini veya şifreleri ortadan kaldırır.For production-grad Hardware, SystemReallog Assertions veya VHDL 2008 için en iyi şekilde kontrol etmek için gerekli olan kontrol araçlarına ihtiyaç duyar.For order to the property to detect and illegal state Transitions during simulation. Formal doğrulama araçları kullanın.

Board Bring-Up ve Donanım Geçerliliği Getirir

Simülasyon güven verir, ancak gerçek donanım, test edilmemiş olan sorunları ortaya çıkarır. Plan the board bring-up process careful: ILA veya Intel Signal Tap gibi iç sinyalleri işgal etmeden önce, her türlü değişkeni kontrol etmek için farklı bir şekilde analiz eder veya entegre mantık analiz eder.Inverects. Incrementally features, check each UI each negative behavior and associated it back-up results to improve the speed schedule.

Sürekli İyileştirme ve Final Düşünceleri

VHDL ve Datalog ile FPGA bilgisayarını geliştirmek, yazılım disiplini ile donanım sezgilerini harmanlayan bir araçtır. Mimarlıkınızı planlamaya, modüler ve temiz kod yazarak, egzozlu bir şekilde yatırım yapmaya ve test etmeye dikkat edin. Güçlü metodoloji ve derin dil bilgisine güvenilir bir şekilde çalışmanızı sağlayın: FPGA mimarisine sahip olan yeni sentez teknikleri, algoritmalı içerik için geleneksel RTL tasarımını tamamlayın. Dokümanlar öğrenmeniz için, IP'nin bir kütüphanesini iyileştirmenize ve test etmeyiz.