ASIC tasarımının FPGA HDL sentezinden farkı nedir?


42

Xilinx ISE, Lattice Diamond, vb. Gibi FPGA / HDL takım takımları ile ilgili bazı deneyimlerim oldu. Genel iş akışı Verilog / VHDL yazıyor, simülasyon yapıyor, test ediyor ve sonra FPGA'yı programlıyor.

Birkaç kişinin ASIC tasarımının çok farklı olduğunu söylediğini duydum. İki ana ASIC tipi, Gate seviyesi ASIC ve Transistör seviyesi ASIC için kullanılan araç setleri nelerdir? Mancınık C ve Silisyum Cadence C gibi Yüksek Seviye Sentez araçlarına bakıyordum, ancak daha önce hiç denemedim. Normal HDL iş akışını değiştirebilen / düzenleyebilen ASIC / FPGA alanında mevcut olan farklı tipteki araçları açıklayabilir misiniz?

Yanıtlar:


39

Tipik olarak ASIC tasarımı, işin karmaşıklığı ve miktarından dolayı bir ekip çalışmasıdır. Zorlu bir adımlar sırası vereceğim, ancak bazı adımlar paralel veya sıra dışı olarak tamamlanabilir. Her görev için kullandığım araçları listeleyeceğim, ancak ansiklopedik olmayacak.

  1. Bir hücre kütüphanesi oluşturun. (Alternatif olarak, çoğu işlem, ticari olarak temin edilebilen kapı kitaplıklarına sahiptir. Mevcut olmayan bir şeye ihtiyacınız olmadığını bilmediğiniz sürece bunu öneririm .) Bu, ihtiyaç duyulan sayıda mantık işlevi için çoklu sürücü gücü kapıları tasarlamayı, tampon sürücüleri / alıcıları tasarlamayı içerir. ve bir dizi çarpanı veya bellek gibi herhangi bir makro. Her hücre için şematik tasarlanıp doğrulandıktan sonra, fiziksel düzen tasarlanmalıdır. Kullandığım Ritim Virtuoso'yu gibi analog devre simülatörleri ile birlikte, bu işlem için Spectre ve HSPICE .

  2. Hücre kütüphanesini karakterize edin. (Üçüncü taraf geçit kitaplığınız varsa, bu genellikle sizin için yapılır.) Kütüphanenizdeki her hücre, Statik Zamanlama Analizi (STA) için zamanlama tabloları oluşturmak üzere simüle edilmelidir. Bu, bitmiş hücrenin alınmasını, Assura , Diva veya Calibre kullanılarak düzen parazitlerinin çıkarılmasını ve devrenin değişen giriş koşulları ve çıkış yükleri altında simüle edilmesini içerir. Bu, STA paketinizle uyumlu her bir geçit için bir zamanlama modeli oluşturur. Zamanlama modelleri genellikle Liberty dosya biçimindedir. Ben kullandım Silikon Smart ve Özgürlük-NCXgerekli tüm koşulları simüle etmek için. Çoğu yazılımın düzgün çalışması için muhtemelen "en kötü durum", "nominal" ve "en iyi durumda" zamanlama modellerine ihtiyaç duyacağınızı unutmayın.

  3. Tasarımınızı sentezleyin. Üst düzey derleyicilerle ilgili deneyimim yok, ancak günün sonunda derleyici veya derleyici zincirinin üst düzey tasarımınızı alıp geçit düzeyinde bir ağ listesi oluşturması gerekir. Sentez sonucu, teorik sistem performansında elde ettiğiniz ve göz kuvveti sorunlarının ilk ele alındığı nokta. Design Compiler'ı RTL kodu için kullandım .

  4. Tasarımınızı yerleştirin ve yönlendirin. Bu, kapı seviyesi ağ listesini sentezleyiciden alır ve fiziksel bir tasarıma dönüştürür. İdeal olarak bu, fabrikasyon için hazır bir ped-pad düzeni oluşturur. P&R yazılımınızı otomatik olarak binlerce DRC hatası yapacak şekilde ayarlamak çok kolaydır, bu yüzden bu adımda hepsi eğlenceli değil. Çoğu yazılım sürücü gücü sorunlarını yönetir ve yönlendirildiği gibi saat ağaçları oluşturur. Bazı yazılım paketleri Astro, IC Derleyici, Silikon Encounter ve Silikon Topluluğu içerir. Yer ve rotadan elde edilen sonuç nihai netlist, nihai düzen ve çıkarılan düzen parazitleridir.

  5. Mizanpaj Sonrası Statik Zamanlama Analizi. Buradaki amaç, tasarımınızın zamanlama şartnamenize uygun olduğunu ve herhangi bir kurulum, bekletme veya kapılama sorunu bulunmadığını doğrulamaktır. Tasarım gereksinimleriniz kısıtlıysa, hataları düzeltmek ve P&R aracınızdaki düzeltmeleri güncellemek için burada çok zaman harcayabilirsiniz. Kullandığımız son STA aracı PrimeTime oldu .

  6. Mizanpajın fiziksel olarak doğrulanması. P&R aracı tarafından bir pafta oluşturulduktan sonra, tasarımın proses tasarım kurallarına uyduğunu (Tasarım Kural Kontrolü / DRC) ve paftanın şematik (Şemaya Karşı / Şema / LVS) eşleştiğini doğrulamanız gerekir. Düzenin doğru şekilde kablolandığından ve üretilebilir olduğundan emin olmak için bu adımlar izlenmelidir. Yine bazı fiziksel doğrulama araçlarıdır assura , Diva veya kalibre .

  7. Son tasarımın simülasyonu. Karmaşıklığına bağlı olarak, kullanarak bir transistör düzey simülasyon yapmak mümkün olabilir Spectre'ı veya HSPICE kullanarak bir "hızlı baharat" simülasyon HSIM veya kullanan tamamen dijital simülasyon ModelSim veya VCS . STA veya P&R aracınızın yardımı ile gerçekçi gecikmelere sahip bir simülasyon üretebilmelisiniz.

Varolan bir geçit kitaplığıyla başlamak, bellek, mikrodenetleyici veya alternatif işlem blokları gibi tasarımınıza yarar sağlayan tüm makroları kullanmak kadar büyük bir zaman tasarrufu sağlar. Tasarım karmaşıklığını yönetmek de büyük bir parça - tek bir saat tasarımının birden fazla saat alanlı devreden daha doğrulanması kolay olacak.


2
Virtuoso'dan bahsettiğinizden beri Cadence, tasarım için eksiksiz bir araç zinciri sunmaktadır (bence Opus denir), şematikten başlamak, tek bir hücreye yerleştirmek, parazitik etkileri değerlendirmek, karakterize etmek ve daha sonra üst seviyeye çıkarmak mümkündür. .
clabacchio

1
Her büyük satıcının eksiksiz bir araç zinciri sunduğunu düşünüyorum. Alet zincirimizde birden fazla satıcı kullandık ve bu şekilde en aşina olduğumuz ya da en iyi endüstri itibarına sahip olduğumuz araçları kullanabilirdik.
W5VO

1
Kütüphane veya tasarım seti desteği için araç seçmek pratikte bir gerekliliktir. Belirli bir yazılım parçasının desteklenen sürümünü kullanmıyorsanız, bazı uyumsuzluklar tasarımınızı öldürebilir veya yanlış okumalar verebilir. Olduğu söyleniyor, gördüğüm EDA araçlarının büyük çoğunluğu Unix / Linux sistemlerinde çalışıyor. Çoğu, dik öğrenme eğrilerine sahiptir.
W5VO

1
@ MartinThompson Kesinlikle. Teknolojinizin sınırlarını ne kadar zorlarsanız (ASIC / FPGA) bu adımlar o kadar kritiktir. Olduğu söyleniyor, bu araçların ASIC sürümleri başını belaya sokmak için çok daha fazla ip verir.
W5VO

1
1 ve 2'nin tasarımın genel bir parçası olmadığını unutmayın. Bu adımlar "süreç kalifikasyonunun" bir parçasıdır ve sonuçlar (tamamen karakterize edilmiş kütüphaneler) FAB Satıcısı tarafından sağlanmaktadır. Ancak bazı şirketler "tam özel tasarım" yapıyor ve kendi başlarına 1 ve 2'yi tamamlamaları gerekiyor.
Ale ... chenski

7

W5VO gelen cevap arka uç odaklanmak eğilimindedir ve bu olduğunu ASIC ve FPGA akar arasında büyük fark; ancak dijital tasarım doğrulama bölümünü gözden kaçırıyor.

Silisyum üzerine bir tasarım elde etmek bir milyon dolara ve daha fazlasına mal olabilir ve bir ASIC üzerine FPGA'ya kıyasla çok daha fazla kullanılabilir kapıya sahip olabilirsiniz, o zaman laboratuvar ve PCB'lerden simülatör çiftlikleri işleten iş istasyonları önünde çok daha fazla zaman harcıyorsunuz ve öykünücüler ve yazma testleri, bir ASIC tasarımını üretim için serbest bırakmadan önce tam olarak doğrulamak için kullanılır. FPGA tasarımcıları testlerinin büyük bir kısmını, parçası olacağı sistemde FPGA kullanarak yaparlar.


Bir dijital tasarımcı için temel iş akışının ASIC ve FPGA arasında çok farklı olmadığını, ancak ASIC'in mevcut makro / mikro elemanlar, yerleştirme ve yönlendirme konusunda çok daha fazla esnekliğe sahip olduğunu, FPGA ise önceden hazırlanmış mantık bloklarıyla sınırlı olduğunu eklerdim. ve ara bağlantı topolojisinde sınırlı. Dolayısıyla FPGA, ASIC'in performans seviyelerine ulaşamaz ve biraz farklı tasarım çözümleri dikte edebilir.
Ale .. chenski

Merhaba Ali Chen. Dijital tasarım ve dijital doğrulamanın ayrı olduğu düşünülürse, tamamen dijital tasarım için akış FPGA ve ASIC için daha yakındır ancak doğrulamada bahsettiğim gibi büyük bir ayrılık vardır. :-)
Paddy3118 20:16
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.