FPGA IP Cores ve Imperative of Reuse

Alan programlanabilir kapı dizileri (FPGA) daha büyük bir tasarım içinde anlık olarak oluşturulabilecek basit bir yapıştırıcı mantığından güçlü heterojen hesaplama platformlarına kadar gelişti.Bu dönüşüm kalbinde, entelektüel mülkiyet kavramı (IP) temelleri – önceden tasarlanmış bir organizasyondan, daha önce oluşturulmuş dijital devre bloklarından, daha büyük bir tasarımda anlık olarak ortaya çıkan gerçek bir değer, her şeyi bir ağ arayüzünden, alt sistemleri tamamlamak için kanıtlayan, temelleri yazmak için doğru bir şekilde tanımlayabilme yeteneğidir.

Hızlı prototipleme talebi, bir dahili kütüphaneden yapılandırma ihtiyacının daha da basitleştirilmesini sağlar. Zaman-pazarlama haftalarca ölçüldüğü zaman, FIFO'yu kullanarak, yapılandırılabilir bir CRC jeneratörü veya bir AXI interconnecting bağlantısını bir iç kütüphaneden alabilir ve kritik bir pencereden kaçırabilirsiniz. Ancak, birçok mühendislik ekibi hala her yeni projeyi boş bir tuval olarak tedavi edebilir, kaset sonrası silinen özel RTL yazılabilir. Bu makale, yeniden oluşturulabilir FPGA IP çekirdekleri oluşturmanın sistematik sürecini keşfeder - bir sonraki stratejilerinizi ve organizasyonel tasarım ve uygulama stratejilerinizi kanıtlayabilir.

Yumuşak, Firma ve Sert IP Cores

IP çekirdeklerinin türlerini anlamak, yeniden kullanım için ilk adımdır. [FONTD:0)Soft çekirdekler) Bu tür basitleştirilmiş RTL kodu ile teslim edilir, genellikle VHT:3DL, Verilog veya SystemReallog. Belirli bir aile için optimize edilmiş net listeler için optimize edilir, ancak farklı cihaz mimarisine bağlı olarak temel parametrelerin altında tutmanız gerekir.

Reusability için Ekonomik Durum

Tekrarlanabilir bir FPGA IP çekirdeği, bir atsız modül yazmaktan daha büyük çaba gerektirir. parametreli kod yazmak zorundasınız, zanaat reusable testbenches ve belge varsayımları titiz bir şekilde geliştirir.Ancak, her projeyle birlikte test edilen ücret bileşiklerini zorlayın, ve herhangi bir hata otomatik olarak tüm tasarımlara geri yüklemenizi sağlar - tekrarlanan bir çalışma planı oluşturmak için tekrarlanabilir.

Reuse için tasarım: Core Principles

Yeniden kullanılabilir bir IP çekirdeği, kendi işlevleri tarafından tanımlanmamıştır, ancak mimarlık ve arayüz tasarımı ile aşağıdaki ilkeler, bir blokun ilk projesini aşmasını ve tüm organizasyon için gerçek bir varlık olmasını sağlar.

Standart Interfaces ile modülerlik

Her IPcap arayüzü tek bir sistemle temsil etmelidir, iyi yönlü bir işlev.Sadece bir bloka ilişkin birçok ilişkili özelliğin aynı alt sistemdeki uygulamaları kullanarak incelenmesi. AXI4-Lite, AXI4-Full, or Avalon otobüsleri ile birlikte, her bir standart arayüzün benimsenmesi ve standart arabirimlerin kullanılması gibi basit bir şekilde doğru bir şekilde doğru şekilde doğru bir şekilde yapılır.

Parametre ve Genrics

Sert kodlanmış değerler, yeniden dönüşümlerin neleri olduğunu kabul eder. yerine, her genişlik, derinlik ve davranışsal sabit bir şekilde VHDL genel veya bir Verilog parametresi olarak ortaya çıkabilir.[Dönetici, CRC][B][/FONT=FONT=0)) ve tüm bir veri kümesine göre, doğrulayıcı bir parametreyi kullanarak, doğrulayıcı bir şekilde ayarlandığında, otomatik olarak doğrulayıcı bir parametreye dayalı olarak, doğrulayıcı bir şekilde ayarlandığından emin olun.[FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FO

Yazmak için yazma

Bir tek satıcının sentez aracı için yazılmış kod genellikle bir PLL veya blok RAM gibi bir cihaz bazlı blok içerir, bir başka yerde taşınırken otomatik olarak yeniden yazılabilir ve otomatik olarak otomatikleştirilmelidir: Güvenilir bir temel, bir şekilde ayarlanabilir bir şekilde ayarlanabilir bir şekilde çalışır (kullanıcı kılavuzluk kılavuzları) veya tamamen senkronize edilebilir bir parametre ile birlikte ayarlanabilir.

Teslimatın bir parçası olarak belgelenme

Dokümantasyon olmadan bir temel yeniden uygulanabilir değildir; kaynak kullanımı için bir bulmacadır. Kapsamlı belge, bir kütüphane özelliği ile ilgili bir blok diyagramı, parametre tabloları, saat ve sıfır gereklilikleri, gecikme bilgileri ve kaynak kullanımı tahminleri, tipik bir yapılandırmalar için kaynak kullanımı tahminleri içerir. Örneğin, kaynak ile saklanan basit bir işarettir veya HTML veri sayfası, bir kütüphane özelliği ile ilgili fark yaratır.Birçok başarılı IP ekibi, otomatik olarak satıcı IP belgelerini kullanarak otomatik olarak otomatik olarak otomatik olarak otomatik olarak otomatik olarak otomatik olarak kontrol eder.

Geçerlilik Strategies That Scale

En zarif tasarlanmış IP çekirdeği işe yaramıyorsa değersizdir. Geçerlilik, otomatik ve kendi kendine kontrol etmek, entegrasyon sık sık meydana gelen hızlı prototyping döngüleri desteklemek için.

Bina Self-Checking Testbenches

Bir Sistematik veya VHDL testibench'e tüm işlevsel modları, köşe vakalarını ve protokol ihlallerini içeren bir testte bulunun, ancak işlevsel kapsama ile sınırlı-random doğrulama, ekipiniz UVM gibi bir metodoloji kullanıyorsa, hatta hafif bir sürüm otomatik olarak doğrulanmış bir şekilde otomatik olarak veri entegrasyonu için otomatik olarak tekrarlanabilir.In this default and back-baslamental().If the test edilebilir.If your team uses a method like UVM, even a light version can the same parameter.

FPGA Validation

Simülasyon mantığı yakalar, ancak sadece silikon zamanlaması, sıfır kurtarma ve gerçek dünya gürültü bağışıklığı sağlar. dikkatlice planlanan bir donanım aşaması, Xilinx'in Entegre Mantıklı Testler (ILA) veya Intel'in Signal Tap.Kaynak kullanımı ve maksimum bir kabuk kullanın.

CI/CD for IP Cores

IP çekirdeği yazılım kütüphaneleri gibi tedavi edin: her bir depoya yapılan işlem, bir regresyon paketini tetikler. FPGA IP çekirdeği için tipik bir CI boru hattı RTL linting (verici, SpyGlass veya yerleşik-in Vivado/Quartus linters) için yapılan bir dizi tasarım, ortak bir simdiatör ile simülasyonu (ModelSim, Questa, Xcelium), ve donanımın mevcut olması durumunda, en az hızlı test. Hizmetler [FONT S FONT]

Ambalaj ve Deployment

Doğrulanmış bir temelle, son adım onu paketlemektir, böylece diğer geliştiriciler onu sürtünmeden entegre edebilir. Yeniden kullanılabilir bir IP çekirdeği bir üründür ve buna göre teslim edilmelidir.

Teslimatlı Paket

Minimum uygulanabilir IP paketi, en az uygulanabilir RTL kaynak dosyaları, bir derleme senaryosu veya dosya siparişini açıklayın, simülasyon testibench, dokümantasyon verileri tablosu ve bir kısıtlama dosyası şablonunu içerir.Daha olgun paketler, popüler değerlendirme tahtaları için örnek tasarımları ekler, yazılım sürücüleri eğer temel bir kayıt haritası içeriyorsa ve bir doğrulama planı organize eder: gibi bir klasör hiyerarşisi:

  • [FONT:0)/rtl[Dönemli kodlar)
  • [FONT:0)/sim[DÜT:1] – testbench ve simülasyon senaryoları
  • [FONT:0)/doc[[DÜT 1: 1)
  • [FONT:0)/xdc[[Dönem:2) veya [[Dönetici:2)
  • [FONT:0) /[[DÜT:1) - Bir LED flaş veya UART'ı iletişimleyen bir üst düzey tasarım
  • [FONT:0) /scripts[Dönem: 1) Makefile, Tcl senaryosu veya Python senaryosu otomatik inşa ve test için test ve test için

Bu yapı, IP-XACT açıklama dosyasını (IEEE 1685) daha standartlaştıran ve formatta otomatik entegrasyon sağlayan araçlarda otomatik entegrasyon sağlar.Intel) olarak, IP kataloglarında bir veya Tcl senaryosu içerir.Intelif olarak, sürümlerini otomatik olarak kullanarak, LN veya Cadence Palladium'ı da içeren bir dosya.

Version Control and Semantic Versioning

Bir IP çekirdeği asla gerçekten bitmiyor; mevcut arayüzleri bozmayan yeni özellikler getiriyor. Tümleşik devreleri güncellemek için gerekli olan kodların değiştirilmesini gerektiren değişikliklerle ilgili olarak, RTL ve belgeyi sürümle iletişim kurmalarını gerektiren bir değişikliklogdur.A MINOR sürümler, mevcut arayüzleri bozmaz ve hangi platformlara bağlı olarak geri yükleme işlemini gerçekleştirir.

Satış veya IP Kataloğu ile bütünleşme

Takımlar belirli bir ekosisteme büyük ölçüde yatırım yaptı, satıcı IP kataloğunun temelini standart IP katalogunu kullanarak paketlemeye ve otomatik olarak üretilen ürünleri otomatik olarak optimize etmenize olanak sağlar. XML açıklaması, IP'nin bir XML bileşeni ile tanımlanabilmesine olanak sağlar.Bu, tasarımcılara standart IP kataloğu aracılığıyla çekirdeklerinizi indirmenizi ve otomatik olarak optimize etmenizi sağlar.InfluencesifedInvertrix ürünlerinizi ek olarak oluşturabilir ve birçok kullanıcı arayüzünü otomatik olarak optimize edebilir.

Vaka Çalışması: Reusable AXI Stream FIFO

Bir jenerik AXI4-Stream FIFO'nun programlanabilir veri genişliği ve derinliği ile oluşturulmasını düşünün. Tipik bir hızlı prototip projesinde, bir mühendis doğrudan satıcı FIFO jeneratörü örnek alabilir, ancak bu seçim tasarımı tek bir FPGA ailesine kilitleyebilir.

Tasarım bir Verilog parametreli modül ile başlar.In arabirimleri standart AXI-Stream TVALID /TREADY elhake ve buffers, üç ortak konfigürasyon için Xilinx Artix ve Intel Cyclone V'de bir dizi dokümanı kullanarak yapılır.

Daha da genişletmek için, AXI4-Stream opsiyonlu yan kanal sinyalleri (TUSER, TLAST, TKEEP) ek parametreler aracılığıyla eklenebilirlik sağlamak için FFO'yu bir video akışı veya Ethernet çerçevesi gibi protokolleri kullanmak için yararlı hale getirir.The doğrulama paketi, RAM'ın gecikmesine veya RAM'ın tümünde kontrol edilen bir blok tabanlı uygulama için uyumluluk kontrollerini içerir.

Vaka Çalışması: Parametreli CRC Jeneratör

Bir diğer ortak reusable çekirdeği, bir döngüsel kırmızı çek (CRC) jeneratörüdür. A parametreli CRC çekirdeği, yüksek çevrimli bir anahtar, ilk değer, giriş veri genişliği ve CRC algoritmaları kullanarak önlenen altın değerleri içerir (CRC-8, C-16, CRC-32).

Common Reusability Pitfalls'tan Kaçınmak

Deneyimli takımlar bile kendi IP kütüphanelerini zayıflatabilir. Aşağıdaki tuzakları tanımak gerçekten yeniden kullanılabilir hale gelecektir.

[FONT=0)Efspecing the Interface.[[Dönetici], kitlelerini yaygın olarak kullanmadığı belirli bir otobüs protokolüne çok sıkıca sıkıca giriş yapın.Seks to industry standartları (I, Avalon, Wish Bone) veya açıkça özel protokol ve köprü adaptörlerini belgeleyin.

[0] Yeterli parametre doğrulaması[Dönetici:0) Tüm parametre kombinasyonları geçerli değildir. Yeniden kullanılabilir bir temel, yasa dışı yapılandırmaları derlemede yakalamak için, örneğin, 0 ile bir FIFO'yu yükseltmesi gerekir.

[FONT:0)Neglecting Clock ve Sıfır Domainler.[DÜT:1] Birçok tasarım, uyumsuz reset zamanlama nedeniyle entegrasyon sırasında başarısız olur. IP çekirdeği sıfır gerekliliklerini belirtmeli - aktif kutuplulık, minimum pul genişliği, senkronizasyon gereksinimleri - ve istikrarlı bir resetleme gerekir.

[FONT=0] Hierarchical Physical Constraints[Döneticileri)[[Döneticileri değiştir] Yumuşak IP blokları bazen kritik yolları uygulamaktadır (örneğin, yüksek hızlı DSP boru hattı).

[[Dönetici:0) Bit Büyümeyi Yönetmek için Hipertansiyonlar (Döneticileri aşırı değerlere ayarlandığında aşırı derecede mantıka yol açabilir.Kaynak kullanımı tahminlerini parametre kombinasyonlarına sunar ve sentez sarışınlara yol açabilir.

[FONT=0)Exlight Verification Reuse.[[Döncükler: RTL'yi yeniden kullanma; Test altyapısının yeniden kullanılması ve farklı konfigürasyonlarla çalışabilmesi için gerekli olan test altyapısını yeniden kullanın. A shared doğrulama IP (e.g., AXI master/slave agents)

Bir IP Yeniden Tanımlama Kültürü

Araçlar ve teknikler sadece onları destekleyen organizasyon kültürü kadar etkilidir. IP yeniden takımınızın DNA'sına gömülmek için, merkezi bir IP librarian (veya geri dönüş rolü) kod incelemelerinden, belge kalitesi ve katalog bakımından sorumlu bir bağlantı kurmak. görünür bir portal oluşturun -perhaps a wiki sayfası veya yedekteki dosyaların işaret ettiği gibi görünen bir statik site - her çekirdek, düzenli olarak, paketin tüm kısımlarına hız kazandırıyor.

Ayrıca, tasarım inceleme kontrol listesindeki yeniden kullanılabilirlik kriterlerini içerir. Örneğin, her yeni IP çekirdeği standart bir arayüze sahip olup olmadığını değerlendirilmelidir, kapsamlı bir testbench ve uygun belgeyi elde eden 3 olgunluk modeli (örneğin, Seviye 1: Projeye özel olarak; Seviye 2: organizasyonda yeniden uygulanabilir; Seviye 3: kuruluşta yeniden kullanılabilir; Seviye 3: yeniden kullanılabilirlik kapıların organizasyonda kullanılabilir.

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

Yeniden kullanılabilir FPGA IP çekirdeği oluşturmak, hayal gücünün hızında karmaşık sistemlere geçiş yapmak için bir kasıtlı tasarım çabalarından sürekli, platform odaklı bir akışa kadar donanım geliştirmeyi gerektirir.In emphasing modülerity, parametreleme, portatif RTL, egzozlu bir doğrulama, ve parlatılmış bir ambalaj, takımınızı hayal gücünün hızında karmaşık sistemlere monte etmenizi sağlar.