Üst düzey sentez - High-level synthesis
Bazen C sentezi , elektronik sistem düzeyinde (ESL) sentez , algoritmik sentez veya davranışsal sentez olarak da adlandırılan yüksek seviyeli sentez ( HLS ), dijital bir sistemin soyut bir davranışsal spesifikasyonunu alan ve bir kayıt bulan otomatik bir tasarım sürecidir. -Verilen davranışı gerçekleştiren transfer seviyesi yapısı.
Sentez, davranışın genellikle saat seviyeli zamanlama gibi düşük seviyeli devre mekaniğinden ayrıldığı, problemin yüksek seviyeli bir spesifikasyonu ile başlar . Son araştırmalar ve ticari uygulamalar genellikle birleştirilebilir bir alt kümelerini kabul rağmen Erken HLS, giriş belirtim dilleri çeşitli araştırdı ANSI C / C ++ / SystemC / MATLAB . Kod, analiz mimari kısıtlı ve planlanan transcompile bir içine yazmaç-aktarım seviyesinde bir olan (RTL) tasarım donanım tanımlama dili , yaygın olarak sentezlenmiş da bir (HDL), kapı seviyesinde a kullanılmasıylamantık sentez aracı.
HLS'nin amacı, donanım tasarımcılarının, tasarım mimarilerinin optimizasyonu üzerinde daha iyi kontrol sağlayarak ve araç bunu yaparken tasarımcının tasarımı daha yüksek bir soyutlama düzeyinde tanımlamasına izin vererek, donanımı verimli bir şekilde oluşturmasına ve doğrulamasına izin vermektir. RTL uygulaması. RTL'nin doğrulanması sürecin önemli bir parçasıdır.
Donanım, farklı soyutlama seviyelerinde tasarlanabilir. Yaygın olarak kullanılan soyutlama seviyeleri kapı seviyesi , kayıt-aktarım seviyesi (RTL) ve algoritmik seviyedir.
Da mantık sentezi tasarım RTL açıklamasını kullanır soyutlama daha yüksek bir düzeyde üst düzey sentez çalışmaları, bu tür SystemC ve ANSI C / C ++ gibi üst düzey bir dilde algoritmik bir bilgi ile başlayarak. Tasarımcı tipik olarak modül işlevselliğini ve ara bağlantı protokolünü geliştirir. Üst düzey sentez araçları, mikro mimariyi yönetir ve zamansız veya kısmen zamanlanmış işlevsel kodu, tam zamanlı RTL uygulamalarına dönüştürerek, donanım uygulaması için otomatik olarak döngüden döngüye ayrıntı oluşturur. (RTL) gerçeklemeleri daha sonra doğrudan bir geçit düzeyinde uygulama yaratmak için geleneksel bir mantık sentez akışında kullanılır.
Tarih
Erken akademik çalışma, üst düzey sentez için temel adımlar olarak çizelgeleme, tahsis ve bağlamayı çıkardı. Zamanlama, sonlu durum makinesindeki durumları tanımlamak için kullanılan kontrol adımlarında algoritmayı bölümlere ayırır . Her kontrol adımı, donanımda tek bir saat döngüsünde gerçekleştirilebilen algoritmanın küçük bir bölümünü içerir. Ayırma ve bağlama, talimatları ve değişkenleri, veri yolunun donanım bileşenlerine, çoklayıcılara, kayıtlara ve kablolara eşler.
İlk nesil davranışsal sentez Synopsys tarafından 1994 yılında Behavioral Compiler olarak tanıtıldı ve giriş dilleri olarak Verilog veya VHDL kullanıldı . Kullanılan soyutlama düzeyi, kısmen zamanlı (saatli) süreçlerdi. Davranışsal Verilog veya VHDL'ye dayalı araçlar, kısmen yaygın olarak benimsenmedi, çünkü ne diller ne de kısmen zamanlanmış soyutlama, davranışları yüksek düzeyde modellemeye uygun değildi. 10 yıl sonra, 2004 yılının başlarında, Synopsys'in kullanım ömrü sona ermiş Davranışsal Derleyici.
1998'de Forte Design Systems , Verilog veya VHDL yerine giriş dili olarak SystemC'yi kullanan Cynthesizer aracını tanıttı. Cynthesizer, Japonya'nın çok olgun bir SystemC kullanıcı topluluğuna sahip olması nedeniyle 2000 yılında birçok Japon şirketi tarafından benimsendi. İlk yüksek seviyeli sentez bant çıkışı, 2001 yılında Sony tarafından Cynthesizer kullanılarak elde edildi. Amerika Birleşik Devletleri'nde evlat edinme 2008'de ciddi bir şekilde başladı.
Kaynak girişi
Üst düzey sentez için en yaygın kaynak girişleri, ANSI C / C++ , SystemC ve MATLAB gibi standart dilleri temel alır .
Verimli bir donanım uygulaması türetmek için, kabul edilebilir bir Ortalama-Kare Hatası veya Bit-Hata Oranı vb. hakkında ek bilgilere ihtiyaç duyulduğundan, yüksek seviyeli sentez tipik olarak girdi olarak bir bit-doğru yürütülebilir belirtimi içerir. "çift" kayan tip kullanılarak yazılmış bir FIR filtresi ile başlar, verimli bir donanım uygulaması türetmeden önce, sabit noktalı bir uygulamaya ulaşmak için sayısal iyileştirme yapmaları gerekir. İyileştirme, tolere edilebilen nicemleme gürültüsü seviyesi, geçerli giriş aralıkları vb. hakkında ek bilgi gerektirir. Bu bit-doğru belirtim, yüksek düzeyli sentez kaynağı belirtimini işlevsel olarak tamamlar. Normalde araçlar, yüksek seviyeli koddan bir Sonlu Durum Makinesi ve aritmetik işlemleri uygulayan bir Veri Yolu çıkartır.
Süreç aşamaları
Üst düzey sentez süreci bir dizi faaliyetten oluşur. Çeşitli üst düzey sentez araçları, bu etkinlikleri farklı algoritmalar kullanarak farklı sıralarda gerçekleştirir. Bazı üst düzey sentez araçları, bu etkinliklerin bazılarını birleştirir veya istenen çözüme ulaşmak için bunları yinelemeli olarak gerçekleştirir.
- sözlüksel işleme
- algoritma optimizasyonu
- Kontrol/Veri akışı analizi
- Kütüphane işleme
- Kaynak tahsisi
- zamanlama
- Fonksiyonel birim bağlama
- Kayıt bağlama
- Çıkış işleme
- Giriş Yeniden Toplama
işlevsellik
Genel olarak, bir algoritma, birkaç donanım kaynağı ile birçok saat döngüsü üzerinden veya daha fazla sayıda ALU, kayıt ve bellek kullanılarak daha az saat döngüsü üzerinden gerçekleştirilebilir. Buna uygun olarak, bir algoritmik açıklamadan, araca verilen direktiflere göre bir HLS derleyicisi tarafından çeşitli donanım mikromimarileri oluşturulabilir. Bu, belirli bir program farklı performansa sahip geleneksel işlemciler üzerinde çalıştırıldığında, ancak tümü kabaca aynı saat frekansında çalıştığında görüldüğü gibi, donanım karmaşıklığı için yürütme hızının aynısıdır.
Mimari kısıtlamalar
Mimari için sentez kısıtlamaları, tasarım analizine dayalı olarak otomatik olarak uygulanabilir. Bu kısıtlamalar şu şekilde ayrılabilir:
- hiyerarşi
- Arayüz
- Hafıza
- Döngü
- Düşük seviyeli zamanlama kısıtlamaları
- yineleme
Arayüz sentezi
Arayüz Sentezi, girdi olarak saf C/C++ tanımını kabul etme, ardından tasarım arayüzündeki zamanlamayı ve iletişim protokolünü kontrol etmek için otomatik arayüz sentezi teknolojisini kullanma yeteneğini ifade eder. Bu, akış, tek veya çift bağlantı noktalı RAM ve çeşitli el sıkışma mekanizmaları gibi eksiksiz bir donanım arabirimi seçenekleri yelpazesinin arabirim analizine ve araştırılmasına olanak tanır. Arayüz sentezi ile tasarımcı, kaynak tanımına arayüz protokollerini gömmez. Örnekler şunlar olabilir: doğrudan bağlantı, bir hat, 2 hat anlaşması, FIFO.
Satıcılar
Son Ankette rapor edilen veriler
Durum | Derleyici | Sahip | Lisans | Giriş | Çıktı | Yıl | İhtisas | Test Tezgahı |
FP | FixP |
---|---|---|---|---|---|---|---|---|---|---|
Kullanımda | Katman HLS | Kadans Tasarım Sistemleri | Reklam | C/C++ SistemC | sağdan sola | 2015 | Tüm | Evet | Evet | Evet |
AĞUSTOS | TIMA Laboratuvarı | Akademik | C alt kümesi | VHDL | 2012 | Tüm | Evet | Numara | Numara | |
heyecanlandırmak | Y Keşifleri | Reklam | C | VHDL/Verilog | 2001 | Tüm | Evet | Numara | Evet | |
Bambu | PoliMi | Akademik | C | VHDL/Verilog | 2012 | Tüm | Evet | Evet | Numara | |
Bluespec | BlueSpec Inc. | Reklam | BSV | SistemVerilogu | 2007 | Tüm | Numara | Numara | Numara | |
QCC | CacheQ Systems, Inc. | Reklam | C/C++/Fortan | Host Executable + FPGA Bit dosyası (SystemVerilog orta seviyedir) | 2018 | Hepsi - çok çekirdekli ve heterojen bilgi işlem | Evet (C++) | Evet | Evet | |
ÇHC | altium | Reklam | C alt kümesi | VHDL/Verilog | 2008 | Tüm | Numara | Evet | Evet | |
Ortak Geliştirici | Darbe Hızlandırılmış | Reklam | Impulse-C | VHDL | 2003 | Görüntü Akışı |
Evet | Evet | Numara | |
HDL Kodlayıcı | Matematik İşleri | Reklam | MATLAB, Simulink, Stateflow, Simscape | VHDL / Verilog | 2003 | Kontrol Sistemleri, Sinyal İşleme, Kablosuz, Radar, İletişim, Görüntü ve Bilgisayarla Görme | Evet | Evet | Evet | |
CyberWorkbench | NEC | Reklam | BDL, SistemC | VHDL/Verilog | 2011 | Tüm | Döngü / Resmi |
Evet | Evet | |
Mancınık | Mentor (Siemens işi) |
Reklam | C, C++, SistemC | VHDL/Verilog | 2004 | Tüm | Evet | Evet | Evet | |
Cüce | TU. Delft | Akademik | C alt kümesi | VHDL | 2012 | Tüm | Evet | Evet | Evet | |
GAUT | U. Bretagne | Akademik | C/C++ | VHDL | 2010 | DSP | Evet | Numara | Evet | |
aceleci | Lombiq Teknolojileri | Reklam | C#/C++/F#... ( .NET ) |
VHDL | 2015 | .AĞ | Evet | Evet | Evet | |
Anında SoC | FPGA Çekirdekleri | Reklam | C/C++ | VHDL/Verilog | 2019 | Tüm | Evet | Numara | Numara | |
Intel Yüksek Düzey Sentez Derleyicisi | Intel FPGA (Eski adıyla Altera) | Reklam | C/C++ | verilog | 2017 | Tüm | Evet | Evet | Evet | |
LegUp HLS | LegUp Bilişim | Reklam | C/C++ | verilog | 2015 | Tüm | Evet | Evet | Evet | |
Bacak Yukarı | ABD Toronto | Akademik | C | verilog | 2010 | Tüm | Evet | Evet | Numara | |
MaxDerleyici | Maxeler | Reklam | MaxJ | sağdan sola | 2010 | Veri akışı | Numara | Evet | Numara | |
ROCCC | Jakarlı Komp. | Reklam | C alt kümesi | VHDL | 2010 | Yayın Akışı | Numara | Evet | Numara | |
Senfoni C | özet | Reklam | C/C++ | VHDL/Verilog/ SystemC |
2010 | Tüm | Evet | Numara | Evet | |
VivadoHLS (önceden AutoESL'den AutoPilot ) |
Xilinx | Reklam | C/C++/SistemC | VHDL/Verilog/ SystemC |
2013 | Tüm | Evet | Evet | Evet | |
kivi | ABD Cambridge | Akademik | C# | verilog | 2008 | .AĞ | Numara | Evet | Evet | |
şempanzeler | ABD Washington | Akademik | C | VHDL | 2008 | Tüm | Numara | Numara | Numara | |
gcc2verilog | ABD Kore | Akademik | C | verilog | 2011 | Tüm | Numara | Numara | Numara | |
Herkül | Ajax Derleyicileri | Reklam | C/NAC | VHDL | 2012 | Tüm | Evet | Evet | Evet | |
Shang | ABD Illinois | Akademik | C | verilog | 2013 | Tüm | Evet | ? | ? | |
trident | Los Alamos NL | Akademik | C alt kümesi | VHDL | 2007 | İlmi | Numara | Evet | Numara | |
terk edil- terkedilmiştir |
AccelDSP | Xilinx | Reklam | MATLAB | VHDL/Verilog | 2006 | DSP | Evet | Evet | Evet |
C2H | Altera | Reklam | C | VHDL/Verilog | 2006 | Tüm | Numara | Numara | Numara | |
CtoVerilog | B. Hayfa | Akademik | C | verilog | 2008 | Tüm | Numara | Numara | Numara | |
DEFACTO | U. Güney Cailf. | Akademik | C | sağdan sola | 1999 | DSE | Numara | Numara | Numara | |
sarp | U. Berkeley | Akademik | C alt kümesi | bit akışı | 2000 | Döngü | Numara | Numara | Numara | |
KİBRİT | U. Kuzeybatı | Akademik | MATLAB | VHDL | 2000 | resim | Numara | Numara | Numara | |
Napa-C | Sarnoff Corp. | Akademik | C alt kümesi | VHDL/Verilog | 1998 | Döngü | Numara | Numara | Numara | |
BoruRench | U.Carnegie M. | Akademik | dil | çift yönlü | 2000 | Aktarım | Numara | Numara | Numara | |
SA-C | ABD Colorado | Akademik | SA-C | VHDL | 2003 | resim | Numara | Numara | Numara | |
Deniz hıyarı | U. Brigham Y. | Akademik | Java | EDIF | 2002 | Tüm | Numara | Evet | Evet | |
KIVILCIM | U. Cal. Irvine | Akademik | C | VHDL | 2003 | Kontrol | Numara | Numara | Numara |
- MATLAB HDL Kodlayıcı [6] ile ilgili Mathwork
- CircuitSutra Technologies'den HLS-QSP
- Cadence Design Systems'dan C-to-Silicon
- Dan Eşzamanlı İvme Eşzamanlı EDA
- Synopsys'den Senfoni C Derleyicisi
- PLDA'dan QuickPlay
- ChipVision'dan PowerOpt
- Forte Design Systems'dan Cynthesizer (şimdi Cadence Design Systems'dan Stratus HLS )
- Mancınık C den Calypto Design Systems , bir parçası Mentor Graphics 2015 tarihi itibariyle, 16 Eylül
- Boru HattıC [7]
- Dan CyberWorkBench NEC
- Mega Donanım
- CebaTech'ten C2R
- Impulse Accelerated Technologies'den Ortak Geliştirici
- Herkül, Nikolaos Kavvadias
- Synfora'dan PICO, Synopsys tarafından Haziran 2010'da satın alındı (PICO = Program Girişi/Kod Çıkışı)
- Los Angeles California Üniversitesi'nden xPilot
- vsyn.ru'dan Vsyn
- SynFlow'dan ngDesign
Ayrıca bakınız
- C'den HDL'ye
- Elektronik tasarım otomasyonu (EDA)
- Elektronik sistem seviyesi (ESL)
- mantık sentezi
- Üst düzey doğrulama (HLV)
- SistemVerilogu
- Donanım ivmesi
Referanslar
daha fazla okuma
- Michael Fingeroff (2010). Üst Düzey Sentez Mavi Kitap . Xlibris Şirketi. ISBN'si 978-1-4500-9724-6.
- Kuzen, P.; Gajski, DD; Meredith, M.; Takach, A. (2009). "Üst Düzey Senteze Giriş". IEEE Bilgisayarların Tasarımı ve Testi . 26 (4): 8–17. doi : 10.1109/MDT.2009.69 . S2CID 52870966 .
- Ewout SJ Martens; Georges Gielen (2008). Analog entegre sistemlerin üst düzey modellemesi ve sentezi . Springer. ISBN'si 978-1-4020-6801-0.
- Saraju Mohanty ; N. Ranganathan; E. Kougianos ve P. Patra (2008). Nano Ölçekli CMOS Devreleri için Düşük Güçlü Yüksek Düzeyli Sentez . Springer. ISBN'si 978-0387764733.
- Alice C. Parker ; Yosef Tirat-Gefen; Suhrid A. Wadekar (2007). "Sistem Düzeyinde Tasarım". Wai-Kai Chen'de (ed.). VLSI el kitabı (2. baskı). CRC Basın. ISBN'si 978-0-8493-4199-1. 76. bölüm.
- Shahrzad Mirkhani; Zainalabedin Navabi (2007). "Sistem Düzeyi Tasarım Dilleri". Wai-Kai Chen'de (ed.). VLSI el kitabı (2. baskı). CRC Basın. ISBN'si 978-0-8493-4199-1. bölüm 86. C/C++, SystemC, TML ve hatta UML kullanımını kapsar
- Liming Xiu (2007). VLSI devre tasarım metodolojisinin gizemi çözüldü: kavramsal bir sınıflandırma . Wiley-IEEE. ISBN'si 978-0-470-12742-1.
- John P. Elliott (1999). Davranışsal sentezi anlamak: üst düzey tasarım için pratik bir rehber . Springer. ISBN'si 978-0-7923-8542-4.
- Nane, Razvan; Sima, Vlad-Mihai; Pilato, Hıristiyan; Choi, Jongsok; Kale, Blair; Canis, Andrew; Chen, Yu Ting; Hsiao, Hsuan; Brown, Stephen; Ferrandi, Fabrizio; Anderson, Jason; Bertels, Koen (2016). "FPGA Üst Düzey Sentez Araçlarının İncelenmesi ve Değerlendirilmesi". Tümleşik Devrelerin ve Sistemlerin Bilgisayar Destekli Tasarımına İlişkin IEEE İşlemleri . 35 (10): 1591-1604. doi : 10.1109/TCAD.2015.2513673 . hdl : 11311/998432 . S2CID 8749577 .
- Gupta, Rajesh; Brewer, Forrest (2008). "Üst Düzey Sentez: Bir Retrospektif". "Üst Düzey Sentez: Bir Retrospektif" . Springer. s. 13–28. doi : 10.1007/978-1-4020-8588-8_2 . ISBN'si 978-1-4020-8587-1.