Stratus HLS aracının yüksek performanslı çift hassasiyetli kayan nokta çarpma tasarımında uygulama süreci

0 Önsöz

Dijital multimedya uygulamasının yaygınlaşması, İnternet'in hızlı gelişimi ve yapay zekanın ve diğer yeni gelişen alanların güçlü yükselişi, genel amaçlı işlemcilerin giderek daha yüksek bilgi işlem yeteneklerini gerektiriyor. Daha karmaşık algoritma tasarımını benimsemek ve daha verimli mimariyi keşfetmek, genel amaçlı işlemcilerin performansını artırmaya yardımcı olacaktır. Bununla birlikte, geleneksel yazmaç transfer seviyesi (RTL) tasarım sürecinde, tasarımcıların hesaplama işlevi tasarımını tamamlamak için çok fazla zaman harcamaları gerekir Durum makinesi tasarımı, boru hattı yığın bölümü ve ayarı, bağlantı noktası protokolü, depolama tasarımı vb. Karmaşıktır ve doğrulanması zordur. Ve optimize edilmiş kısım. Ayrıca, düşük RTL soyutlama seviyesi nedeniyle, RTL'nin işlevlerini doğrulamak için çok fazla zamana ve kaynağa ihtiyaç duyulur ve bu da daha uzun bir tasarım döngüsü sağlar. Stratus üst düzey sentez araçları (High-level Synthesis, HLS), üst düzey sentez tasarım metodolojisine dayanır, tasarım düzeyini algoritma düzeyine soyutlar ve tasarımın düşük değerli ve karmaşık alanlarını otomatik tamamlama için araca devreder. Tasarımcı daha fazlasını yapabilir Zaman, algoritma tasarımı, optimizasyon ve mimari keşif gibi yüksek değerli alanlarda tasarım verimliliğini artırmak ve ürün kalitesini iyileştirmeye odaklanmak için kullanılır. Bu makale, yüksek frekanslı ve düşük güçlü çift duyarlıklı kayan nokta çarpma modülünü tasarlamak ve uygulamak için Cadencein üst düzey sentez aracı Stratus'a dayanmaktadır. Bu süreçte, ürün ön uç tasarımını, doğrulamayı, optimizasyonu ve performans değerlendirmesini tamamlamak için üst düzey sentez yöntemlerini ve süreçlerini tartışır. .

Stratus HLS, tasarımı algoritma düzeyinde özetler.Algoritmanın donanım mikro mimarisinin gerçekleştirilmesini tasarladıktan sonra tasarım, yüksek düzeyli SystemC / C / C ++ dilinde açıklanır ve tasarım, Şekil 1'de gösterildiği gibi, üst düzey dil katmanında sıralı olmayan işlevlerle tam olarak doğrulanır. Tasarım aşaması 1 gösterilmektedir. 2. tasarım aşamasında, ilk olarak üst düzey kapsamlı bir kısıt dosyası ve tasarım hedefine göre işlem kitaplığı oluşturun. Daha sonra 1. tasarım aşamasında tamamlanan SystemC kodu ve kısıtlama dosyaları Stratus HLS aracına dökülür ve araç durum makinesi, kayıt ekleme ve boru hattı aşama numarası ayarı gibi kontrol devrelerini tamamlar ve zamanlama, alan ve performans gereksinimlerini karşılayan RTL kodu oluşturur. Son olarak, RTL kodu üzerinde PPA incelemesi gerçekleştirin, HLS tarafından oluşturulan RTL kodunun performansını yeniden değerlendirmek için mantık sentez araçlarını kullanmayı seçin ve gereksinimleri karşılıyorsa, RTL'nin tam işlevsel doğrulamasını başlatın. PPA incelemesi hedef gereksinimleri karşılayamazsa, kritik yolun analiz edilmesi ve optimize edilmesi gerekir.Bu zamanda, HLS aracının optimizasyon işlevi, optimizasyon tasarım yinelemesinin tamamlanma sürecini hızlandırmak için tam olarak kullanılabilir. Fonksiyonel doğrulama doğru olduktan sonra, 3. tasarım aşamasına geçebilirsiniz. Mantık sentezinden sonra tasarım, mantık uygulaması için arka uca aktarılır.

2 Fmul64 SystemC tasarımı

Çift hassasiyetli kayan noktalı çarpma birimi, genel amaçlı bir CPU'daki en temel aritmetik birimlerden biridir. Uygulaması, 2.5 GHz'lik yüksek frekansı, üç istasyonlu boru hattını karşılamak için RTL tasarımı elde etmek için yüksek düzeyde sentez gerektirir ve alanı ve güç tüketimi küçüktür. Bu bölüm, Fmul64'ün ana yapısını ve SystemC tasarım yöntemini tanıtacaktır.

2.1 Fmul64_hls genel yapısı

Fmul64'ün SC tasarımının genel blok diyagramı Şekil 2'de gösterilmektedir. Sc_main, test ortamı Testbench ile test DUT altındaki tasarımı birbirine bağlayan SystemC tarafından tasarlanan en üst dosyadır. DUT veya Fmul64, bu tasarımın üst seviye modülü olarak SystemC dilinde SC_MODULE sınıfı ile uygulanmaktadır.Aynı zamanda modül portları, saat sinyalleri, reset sinyalleri, giriş portları, çıkış portları vb. Bu modülde tasarımın başlık dosyası olarak tanımlanmaktadır. Ve kullanım için diğer belgelere dahildir. SystemC dili, tasarım işlevlerinin açıklaması için iki yöntem sağlar: SC_METHOD ve SC_CTHREAD. Bunlar arasında SC_METHOD, kombinasyonel mantık devresinin gerçekleştirilmesi için kullanılır, wait ifadesi içeriye dahil edilemez ve uygulanacak Fmul64 bir boru hattı tasarımıdır, bu nedenle SC_CTHREAD çarpma fonksiyonunun gerçekleştirilmesi için kullanılır ve fonksiyon run olarak adlandırılır.

2.2 SC_CTHREAD yöntemi uygulaması

SC_CTHREAD işleminin uygulanması Şekil 3'te gösterilmektedir. İlk olarak, sıfırlanacak sinyali ve sıfırlama değerini ayarlayın, ardından sonsuz döngü ifadesini tanımlayın ve dahili olarak giriş ve çıkış sinyallerinin okuma-yazma işlevini ve üçüncü dereceden Poz koduyla do_booth3_multply çarpma işlevini çağırın. Burada, HLS komutu HLS_PIPELINE_LOOP tasarım tipini ayarlamak için kullanılır, yani, verim parametresi PIPELINE_ 1'e ayarlanır, yani Fmul64_hls bir ardışık düzen tasarımına ayarlanır ve HLS_CONSTRAINT_LATENCY, ardışık düzen atımını LATENCY'ye ayarlamak için kullanılır. Stratus HLS, verimin ve gecikmenin makro tanımlı olmasına izin verir, bu da mimari keşif sırasında parametreleri değiştirmek için uygundur.

2.3 Fmul64 davranış düzeyinde uygulama

Çift kesinlikli kayan nokta çarpma işlemi Şekil 4'te gösterilmektedir. İlk olarak, giriş çarpma işleneni üzerinde veri ön işlemesini yapın ve ardından mantis çarpımının çarpma işlemini yapın.Burada, bu makale mimari araştırmasını yaptı.Bir mimari, çift duyarlıklı kayan nokta mantisi çarpma işlemini gerçekleştirmek için üçüncü dereceden Potz kodlama algoritmasını kullanmaktır; Diğeri ise, kayan noktalı mantis çarpma işlemini doğrudan tamamlamak için çarpma işaretini "*" kullanmak ve aracın çarpma işleminin belirli gerçekleştirilmesini tamamlamasına izin vermektir. İki mimarinin doğrulama ortamı ve optimizasyon süreci aynıdır, bu nedenle sonraki tasarım Fmul64 Poz kod tasarımını tanıtmak için örnek olarak alacak ve son olarak ikisinin mantıksal sentez sonuçları tanıtılacaktır. Tasarımda kullanılan üst düzey kapsamlı talimat cümlesi (esas olarak HLS_DPOPT_REGION) Şekil 5'te gösterilmektedir.

Bu noktada, SC kod tasarımı tamamlanmış ve boru hattı ve zamanlama gereksinimleri, tasarım hedeflerinin gereksinimlerine göre üst düzey sentez talimatı ifadeleri kullanılarak belirlenmiş ve ardından doğrulama ve üst düzey sentez işlemi başlatılabilir. Tasarım, yüksek seviyeli SystemC dilinde tanımlansa da, mikro mimarisi hala donanım tasarımı ve uygulama kurallarına uygundur, bu nedenle iyi bir SystemC kod stilini korumaya dikkat etmek çok önemlidir.

3 İşlevsel doğrulama

Stratus HLS araçları, birleşik bir doğrulama platformu sağlar, bu nedenle SC düzeyindeki test senaryoları, RTL kodlarını doğrulamak için de kullanılabilir. Bununla birlikte, SC tasarımı zamanlama bilgisi içermez, bu nedenle zamanlamayı içeren RTL doğrulaması da gereklidir Stratus'ta SC kodunun regresyon testi kullanım durumlarına ek olarak, mevcut UVM platformu hem RTL hem de SC tasarımını doğrulamak için kullanılacaktır. Bir yandan RTL'nin işlevini doğrular ve RTL kapsamını toplar, diğer yandan SC tasarımının ve RTL kodunun tutarlılığını bir dereceye kadar doğrular. Bu nedenle, HLS tasarımının doğrulanması iki bölüme ayrılmıştır:

(1) Stratus HLS'ye dayalı doğrulama

SC davranışsal model doğrulama (SystemC davranış modeli)

Kapsamlı SC RTL model doğrulama (Sentezlenmiş SystemC RTL modeli)

(2) UVM'ye dayalı SystemCRTL doğrulaması

Verilog RTL uygulama doğrulaması (Verilog RTL uygulaması)

3.1 Stratus HLS'ye dayalı doğrulama

Stratus HLS ortamına dayanan bu metin, tasarlanan Testbench ortamını oluşturmak için SystemC'yi kullanır ve yapısal blok şeması Şekil 6'da gösterilmiştir. Saat ve sıfırlama sinyalinin tanımı ana işlevdedir ve test modülüne ve test edilen tasarım modülüne bağlanır. Testbench CCP, Stimuli ve Monitor olmak üzere iki süreç uygular. Stimuli işlemi, test için rastgele veriler oluşturmak üzere SystemC dili tarafından sağlanan rastgele veri oluşturma işlevini çağırır. İzleme süreci, test edilen tasarımın referans modeli için basit bir çift kesinlikli çarpma işlemi modeli uygular ve burada DUT sonuç çıktısını izler, DUT sonucunu alır ve bunu referans model sonucuyla karşılaştırır ve sonucun doğruluğunu değerlendirir. Stratus HLS aracı, SC tasarımı ve RTL tasarımı için aynı Testbench doğrulamasını otomatik olarak uygulayabilir. Project.tcl'de farklı define_sim_config tanımlandığı sürece, SC tasarımını doğrulamak için RTL_C'yi belirtin veya yüksek seviyeli sentez tarafından oluşturulan RTL'yi test etmek için RTL_V'yi belirtin. model.

3.2 UVM'ye dayalı SystemCRTL doğrulaması

UVM doğrulama ortamı, mevcut bir çarpma doğrulama ortamıdır.Şekil 7'de gösterildiği gibi, Fmul64_hls tasarımında tam işlevsel doğrulama, kapsam toplama ve iddia izleme gerçekleştirilebilir.Aynı zamanda, SC tasarımı da doğrulama ortamına yerleştirilir, ancak olması gerekir Bir kabuğun dış kaynak kullanımı, Stratus araçları tarafından otomatik olarak oluşturulabilir. Fonksiyonel doğrulamanın bu kısmı, Şekil 1'de gösterildiği gibi Stratus HLS tasarım akışının 2. tasarım aşamasındaki fonksiyonel doğrulama 2'dir. Yüksek seviyeli sentez tarafından üretilen RTL kodu daha az okunabilir olduğundan, test senaryosu sonuçları tutarsızsa, özellikle SC tasarımının sonuçları da hataları bildirir. Öyleyse, hata ayıklama için test senaryolarını Stratus HLS ortamına aktarmanız gerekir.

4 Performans değerlendirmesi

4.1 Optimize edilmiş tasarım

Stratus HLS, SC tasarımını RTL koduna dönüştürdüğünde, değerlendirmenin temkinliğinden dolayı daha karamsar sonuçlar verecektir.Bu nedenle, bu makale HLS tasarımının PPA kontrolünü değerlendirmek için mantık sentez araçlarını kullanmayı seçer.Mantık sentez kısıtlamaları, tasarımın gerçek uygulama gereksinimlerine atıfta bulunur. HLS aracındaki mantık sentez kısıtlamalarından daha ayrıntılıdır ve nihayet mantık sentezi sonuçlarına göre tasarım optimizasyonu yinelemesinin yapılıp yapılmayacağına karar verir.

Zamanlama kısıtlı olduğunda, Stratus genellikle yüksek düzeyde sentez optimizasyonu ve çizelgeleme yapmak için uzun zaman alır, bu da tasarım optimizasyon yineleme süresini çok uzun yapar ve bu da tasarım verimliliğini artırmak için yüksek düzey sentez araçlarını kullanma ilk amacını ihlal eder. Bununla birlikte, Stratus, yol gecikmesini etkili bir şekilde iyileştirebilen ve üst düzey kapsamlı verimliliği artırabilen çeşitli etkili veri yolu optimizasyon yöntemleri sağlar. Örneğin, Şekil 5'teki SC'de Fmul64 uygulama sürecinde ana HLS talimat bildiriminde gösterildiği gibi, tasarım optimizasyonunun yinelemeli sürecine DPOPT eklenmesi. DPOPT, tasarımın bu bölümünü optimize etmek için dahili entegre mantık sentez aracını kullanacaktır ve DPOPT genellikle Stratus'un RTL'nin ilk sürümünü sentezleme süresini büyük ölçüde kısaltarak optimizasyon tasarımının verimliliğini büyük ölçüde artırmaktadır.

4.2 Düşük güç optimizasyonu

Stratus aracı, kayıt kapılı saatlerin eklenmesini, saat ağacı optimizasyonunu ve durum makinesi optimizasyonunu otomatik olarak tamamlayabilen düşük güç optimizasyon seçenekleriyle birlikte gelir. Bu makalenin tasarımı aritmetik bir fonksiyon modülüdür.Modülün bu modülün çalıştırma talimatları olmadan tamamen kapatılmasını ve dinamik güç tüketiminin sıfır olmasını gerektirir; çarpma talimatları olduğunda dinamik ve statik güç tüketimi mümkün olduğunca küçük olabilir. Fmul4_booth3'ün ilk güç tüketimi değerlendirme sonuçları Tablo 1'de gösterilmektedir.

Yukarıdaki veriler aracılığıyla, Fmul64_HLS tasarımının, çarpma işlemi olmadığında sıfır dinamik güç tüketimi gereksinimini karşıladığı, ancak bir çarpma işlemi talimatı olduğunda güç tüketiminin nispeten büyük olduğu ve güç tüketimi gereksiniminin karşılanmadığı ve daha fazla güç tüketiminin gerekli olduğu anlaşılabilir. Optimizasyon. Analiz ve tasarım, DPOPT güç tüketiminin ve kaynak paylaşımının güç tüketiminde bir artışa neden olacağını buldu, bu nedenle güç tüketimini optimize etmek için projeye aşağıdaki seçenekler eklendi:

(1) set_attr dpopt_with_enable on

(2) set_attr share_effort_parts low

Dpopt_with_enable'ın RTL mimarisi üzerindeki etkisi Şekil 8'de gösterilmektedir.

Açıktır ki, dpopt_with_enable = on ile RTL mimarisi, statik güç tüketiminin optimizasyonu için çok yararlıdır.

share_effort_parts = low, hesap makinesinin paylaşımını durduracaktır. Analizden sonra, bu seçenek, dinamik güç tüketimini ve zamanlamayı optimize etmek için hesap makinelerinin gereksiz paylaşımını azaltabilir. Fmul64_booth3'ün optimize edilmiş güç tüketimi Tablo 2'de gösterilmektedir.

Optimizasyon seçeneklerinin ayarlanmasıyla hem statik güç tüketimi hem de dinamik güç tüketiminin optimize edildiği, bunların arasında statik güç tüketiminin yaklaşık% 5 ve dinamik güç tüketiminin yaklaşık% 39 optimize edildiği görülebilir. Kayıt geçiş oranı% 100'e ulaşır ve yazmaç geçiş saati ve düşük güç optimizasyonunun eklenmesi, tasarım verimliliğini artıran araç tarafından tamamen tamamlanır.

4.3 Mantık sentezi sonucu

Üst düzey sentez tasarımının RTL işlevi doğru bir şekilde doğrulandıktan sonra, tasarım mantıksal olarak sentezlenebilir. İki Fmul64 mimarisinin mantıksal sentezi ayrı ayrı yapıldı.28 nm işlemi altında mantık sentezi sonuçları Tablo 3'te gösterilmektedir.

Stratus HLS tarafından verilen alan değerlendirme sonuçları, mantık sentez aracının sonuçlarından farklıdır Analizden sonra, Stratus HLS sentez kısıtlamaları katı değildir, bu nedenle alan ve gecikme değerlendirme verilerinde hatalar vardır. İki mimarinin kapsamlı sonuçları karşılaştırıldığında, Fmul64'ün Potz kodlama algoritması yerine çarpma işaretinin tasarım alanının daha optimize olduğu ve zamanlama sonucunun nispeten zayıf olduğu ancak tasarım süresinden tasarrufunun çok önemli olduğu görülmektedir.

5. Sonuç

Stratus HLS aracı soyut tasarım düzeyini değiştirmiştir, bu nedenle mühendislikteki uygulama süreci geleneksel RTL tasarımından farklıdır.Doğrulama ortamı, hata ayıklama süreci, doğrulama yakınsama temeli ve mantık sentez optimizasyon süresi gibi problemlerin çözümü algoritmaya ilerlemiştir. Ek olarak, mikro mimarinin keşfi tasarım sürecine eklenebilir.Değişmeden kalan şey, tasarımcıların hala SC kodunun mikro mimari tasarımını donanım perspektifinden dikkate almaları gerektiğidir. Stratus HLS aracının güçlü durum makinesi otomatik tasarımı, otomatik kaynak planlaması ve paylaşımı, düşük güç optimizasyonu ve diğer işlevler, tasarımcıların mimari keşif veya algoritma optimizasyonu için daha fazla zaman harcamasına, tasarım döngüsünü büyük ölçüde kısaltmasına ve tasarımcıları genişletmesine olanak tanır. Tasarım ölçeğinin üst sınırı, mühendislik projesinin zaman çizelgesi gereksinimlerini karşılamak için kontrol edilebilir ve ayrıca mühendislik projelerinde üst düzey kapsamlı araçların kullanımını teşvik etme konusundaki güvenimizi ve kararlılığımızı güçlendirmiştir.

yazar bilgileri:

Yuan Jiahong

(Tianjin Feiteng Information Technology Co., Ltd., Changsha 410000, Hunan)

İPhone 2019 pozlama: Üç kamera Huawei'nin "Yuba" tasarımına benziyor
önceki
25 Gbps seri alıcı-verici kanal tasarımında 3 boyutlu elektromanyetik simülasyon uygulama yöntemi
Sonraki
Büyük renkli ekran NFC kalp atış hızı çok yüksek! AMAZFIT metre uygulamalı halka 2, 299 yuan fiyatına sahip
Sağlık sadece yemek yemekten ibaret değildir, uyku da çok önemlidir
2018 Oyun Uygulayıcıları Anket Raporu: Maaşlar daha düşük, ancak daha az fazla mesai var
"Game of the Brave" Beast Attacks Paris galası "Tarihin En İyi Oyun Konsept Filmi" olarak övüldü
Tayvan'ın popüler müzik mobil oyunu "Cytus" Switch platformuna gelecek
Alexa'yı 400 Whole Foods süpermarketine uygulamak için Amazon, perakendecilerin yaşamlarında devrim mi yapmak istiyor?
Düşük stresli ve yüksek verimli asimetrik yarım köprü dönüştürücü tasarımı
Dünyanın ilk siyah göz bebeği tam ekran Samsung Galaxy A8s cep telefonu uygulamalı deneyimi
"Huge Calls" harika eleştiriler aldı. Ebeveynler özel, gerçekten üzgün ve aldatılmış yaşlı adamın hikayesini anlatıyor
Basitleştirilmiş Çince dahil "Mexican Heroes 2" 21 Ağustos'ta yayınlanacak
DRAM 100 milyar doları kırdı, Samsung sıkıca en üst sırada yer alıyor
Gelgit makinesi PK: yeni ve eski fiyat-performans oranlarının kralı! Kim daha güçlü, Lenovo Z5s veya Xiaomi 8SE?
To Top