Чим дизайн ASIC відрізняється від синтезу FPGA HDL?


42

Я мав певний досвід роботи з наборами інструментів FPGA / HDL, такими як Xilinx ISE, Lattice Diamond тощо. Загальний робочий процес - це написання Verilog / VHDL, моделювання, тестування, а потім програмування FPGA.

Я чув, як пару людей кажуть, що дизайн ASIC дуже відрізняється. Які набори інструментів використовуються для двох основних типів ASIC, ASIC рівня шлюзу та ASIC рівня транзистора? Я розглядав інструменти синтезу високого рівня, такі як Catapult C і Cadence C - Silicon, але жодного разу ще не пробував. Чи можете ви пояснити різні типи інструментів, доступних у полі ASIC / FPGA, які можуть змінити / прискорити типовий робочий процес HDL?

Відповіді:


39

Зазвичай дизайн ASIC - це колективне починання завдяки складності та кількості роботи. Я наведу приблизний порядок кроків, хоча деякі етапи можна виконати паралельно або поза порядком. Я перелічу інструменти, які я використав для кожного завдання, але це не буде енциклопедичним.

  1. Побудувати бібліотеку клітин. (Крім того, у більшості процесів є бібліотеки воріт, комерційно доступні. Я рекомендував би це, якщо ви не знаєте, що вам потрібно щось, що недоступно. і будь-які макроси, такі як множник масиву або пам'ять. Після того, як схема для кожної комірки буде розроблена та перевірена, фізична компонування повинна бути розроблена. Я використовував для цього процесу Cadence Virtuoso , а також аналогові тренажери, такі як Spectre та HSPICE .

  2. Охарактеризуйте бібліотеку клітин. (Якщо у вас є стороння бібліотека воріт, це зазвичай робиться для вас.) Кожна комірка у вашій бібліотеці повинна бути змодельована для створення таблиць хронометражу для аналізу статичного часу (STA). Це передбачає взяття готової комірки, вилучення паразитиків макета за допомогою Assura , Diva або Caliber та моделювання схеми за різних вхідних умов та вихідних навантажень. Це будує модель часу для кожного заходу, сумісного з вашим пакетом STA. Моделі синхронізації зазвичай у форматі файлів Liberty . Я використовував Silicon Smart та Liberty-NCXдля моделювання всіх необхідних умов. Майте на увазі, що для правильної роботи більшості програмного забезпечення, напевно, вам знадобляться моделі хронометражу в "гіршому випадку", "номінальному" та "найкращому випадку".

  3. Синтезуйте свій дизайн. Я не маю досвіду роботи з компіляторами високого рівня, але наприкінці дня компілятор або ланцюжок компіляторів повинні прийняти дизайн на високому рівні та створити мережевий список на рівні воріт. Результат синтезу - це перший погляд, який ви отримуєте при теоретичній роботі системи, і де спочатку вирішуються проблеми міцності приводу. Я використовував Design Compiler для RTL-коду.

  4. Розмістіть та направте свій дизайн. Це забирає сінтез на рівні воріт від синтезатора і перетворює його на фізичну конструкцію. В ідеалі це генерує макет «під замовлення», готовий до виготовлення. Налаштувати програмне забезпечення P&R дуже просто, щоб автоматично робити тисячі помилок DRC, тому не всі забави та ігри на цьому кроці. Більшість програмного забезпечення буде керувати проблемами з потужністю приводу та генерувати дерева годинників за інструкцією. Деякі програмні пакети включають Astro, IC Compiler, Silicon Encounter та Silicon Ensemble. Кінцевим результатом від місця та маршруту є остаточний список, кінцевий макет та вилучений паразитичний макет.

  5. Статичний аналіз часу після компонування. Мета полягає в тому, щоб переконатися, що ваш дизайн відповідає вашим специфікаціям термінів, і не має жодних проблем із налаштуванням, утримуванням чи встановленням. Якщо ваші вимоги до дизайну є жорсткими, ви можете витратити багато часу на виправлення помилок та оновлення виправлень у вашому інструменті P&R. Кінцевим інструментом STA, який ми використовували, було PrimeTime .

  6. Фізична перевірка макета. Після того, як макет був сформований інструментом P&R, вам потрібно переконатися, що конструкція відповідає правилам проектування процесу (Перевірка правил дизайну / DRC) і чи макет відповідає схематичному (Макет проти Схематичний / LVS). Ці кроки слід дотримуватися, щоб переконатися, що схема розміщена правильно та технологічно. Знову ж таки, деякі засоби фізичної перевірки - Ассура , Діва або Калібр .

  7. Моделювання остаточної конструкції. Залежно від складності, ви можете зробити моделювання рівня на транзисторі за допомогою Spectre або HSPICE , симуляції «швидкої спеції» за допомогою HSIM або повністю цифрового моделювання за допомогою ModelSim або VCS . Ви повинні мати змогу генерувати моделювання з реалістичними затримками за допомогою інструмента STA або P&R.

Почати з наявної бібліотеки воріт - це величезна економія часу, а також використання будь-яких макросів, які приносять користь вашому дизайну, таких як пам'ять, мікроконтролер або альтернативні блоки обробки. Управління складністю дизайну також є важливою частиною - один дизайн годинника буде легше перевірити, ніж схема з кількома доменами годин.


2
Оскільки ви згадали про Virtuoso, Cadence забезпечує повний ланцюжок інструментів для дизайну (я думаю, це називається Opus), де можна починати зі схем, розміщувати єдину клітинку, оцінювати паразитичні ефекти, характеризувати її та потім будувати на верхньому рівні .
clabacchio

1
Я думаю, що кожен великий постачальник пропонує повний набір інструментів. Ми в кінцевому підсумку використовували декількох постачальників у нашому інструментальному ланцюжку, і таким чином ми могли використовувати інструменти, з якими ми були найбільш знайомі або мали найкращу репутацію галузі.
W5VO

1
Підбір інструментів для підтримки бібліотеки чи дизайнерського набору - це практично необхідна умова. Якщо ви не використовуєте підтримувану версію певного програмного забезпечення, деякі несумісність може вбити ваш дизайн або дати помилкові читання. Попри це, переважна більшість інструментів EDA я бачив, як вони працюють у системах Unix / Linux. Більшість мають круті криві навчання.
W5VO

1
@MartinThompson Абсолютно. Чим більше ви просуваєте межі вашої технології (ASIC / FPGA), тим критичнішими є ці кроки. Однак, версії цих інструментів ASIC дають вам набагато більше мотузку, щоб ви могли потрапити в біду.
W5VO

1
Зауважте, що 1 і 2 не є загальною частиною дизайну. Ці кроки є частиною так званої "кваліфікації процесів", а результати (повністю охарактеризовані бібліотеки) надає FAB Vendor. Але деякі компанії роблять "повний дизайн на замовлення", і вони повинні заповнити 1 і 2 самостійно.
Але..ченські

7

Відповідь від W5VO має тенденцію зосереджуватися на задньому кінці, і це є одним з основних відмінностей між ASIC і FPGA потоків; але вона пропускає частину перевірки цифрового дизайну.

Якщо дизайн на кремній може коштувати мільйон доларів і більше, і ви можете упакувати набагато більше корисних воріт на ASIC порівняно з FPGA, тоді ви витрачаєте набагато більше часу далеко від лабораторії та друкованої плати перед робочими станціями, що працюють на фермах-тренажерах. і емулятори та письмові тести, щоб більш повно перевірити дизайн ASIC, перш ніж випускати його для виробництва. Дизайнери FPGA, як правило, проводять значну частину своїх тестувань, використовуючи FPGA в системі, до якої вона стане частиною.


Я додам, що базовий робочий процес для цифрового дизайнера не сильно відрізняється між ASIC та FPGA, але ASIC має набагато більшу гнучкість щодо доступних макро / мікроелементів, розміщення та маршрутизації, тоді як FPGA обмежується їх попередньо виготовленими логічними блоками і обмежена у взаємопов'язаній топології. Таким чином, FPGA не може досягти рівнів продуктивності ASIC і може диктувати дещо інші дизайнерські рішення.
Але..ченські

Привіт Алі Чен. Якщо цифровий дизайн і цифрове підтвердження вважаються окремими, то потік чисто цифрового дизайну ближчий для FPGA проти ASIC, але, як я вже згадував, існує велике розмежування в верифікації. :-)
Paddy3118
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.