Зазвичай дизайн ASIC - це колективне починання завдяки складності та кількості роботи. Я наведу приблизний порядок кроків, хоча деякі етапи можна виконати паралельно або поза порядком. Я перелічу інструменти, які я використав для кожного завдання, але це не буде енциклопедичним.
Побудувати бібліотеку клітин. (Крім того, у більшості процесів є бібліотеки воріт, комерційно доступні. Я рекомендував би це, якщо ви не знаєте, що вам потрібно щось, що недоступно. і будь-які макроси, такі як множник масиву або пам'ять. Після того, як схема для кожної комірки буде розроблена та перевірена, фізична компонування повинна бути розроблена. Я використовував для цього процесу Cadence Virtuoso , а також аналогові тренажери, такі як Spectre та HSPICE .
Охарактеризуйте бібліотеку клітин. (Якщо у вас є стороння бібліотека воріт, це зазвичай робиться для вас.) Кожна комірка у вашій бібліотеці повинна бути змодельована для створення таблиць хронометражу для аналізу статичного часу (STA). Це передбачає взяття готової комірки, вилучення паразитиків макета за допомогою Assura , Diva або Caliber та моделювання схеми за різних вхідних умов та вихідних навантажень. Це будує модель часу для кожного заходу, сумісного з вашим пакетом STA. Моделі синхронізації зазвичай у форматі файлів Liberty . Я використовував Silicon Smart та Liberty-NCXдля моделювання всіх необхідних умов. Майте на увазі, що для правильної роботи більшості програмного забезпечення, напевно, вам знадобляться моделі хронометражу в "гіршому випадку", "номінальному" та "найкращому випадку".
Синтезуйте свій дизайн. Я не маю досвіду роботи з компіляторами високого рівня, але наприкінці дня компілятор або ланцюжок компіляторів повинні прийняти дизайн на високому рівні та створити мережевий список на рівні воріт. Результат синтезу - це перший погляд, який ви отримуєте при теоретичній роботі системи, і де спочатку вирішуються проблеми міцності приводу. Я використовував Design Compiler для RTL-коду.
Розмістіть та направте свій дизайн. Це забирає сінтез на рівні воріт від синтезатора і перетворює його на фізичну конструкцію. В ідеалі це генерує макет «під замовлення», готовий до виготовлення. Налаштувати програмне забезпечення P&R дуже просто, щоб автоматично робити тисячі помилок DRC, тому не всі забави та ігри на цьому кроці. Більшість програмного забезпечення буде керувати проблемами з потужністю приводу та генерувати дерева годинників за інструкцією. Деякі програмні пакети включають Astro, IC Compiler, Silicon Encounter та Silicon Ensemble. Кінцевим результатом від місця та маршруту є остаточний список, кінцевий макет та вилучений паразитичний макет.
Статичний аналіз часу після компонування. Мета полягає в тому, щоб переконатися, що ваш дизайн відповідає вашим специфікаціям термінів, і не має жодних проблем із налаштуванням, утримуванням чи встановленням. Якщо ваші вимоги до дизайну є жорсткими, ви можете витратити багато часу на виправлення помилок та оновлення виправлень у вашому інструменті P&R. Кінцевим інструментом STA, який ми використовували, було PrimeTime .
Фізична перевірка макета. Після того, як макет був сформований інструментом P&R, вам потрібно переконатися, що конструкція відповідає правилам проектування процесу (Перевірка правил дизайну / DRC) і чи макет відповідає схематичному (Макет проти Схематичний / LVS). Ці кроки слід дотримуватися, щоб переконатися, що схема розміщена правильно та технологічно. Знову ж таки, деякі засоби фізичної перевірки - Ассура , Діва або Калібр .
Моделювання остаточної конструкції. Залежно від складності, ви можете зробити моделювання рівня на транзисторі за допомогою Spectre або HSPICE , симуляції «швидкої спеції» за допомогою HSIM або повністю цифрового моделювання за допомогою ModelSim або VCS . Ви повинні мати змогу генерувати моделювання з реалістичними затримками за допомогою інструмента STA або P&R.
Почати з наявної бібліотеки воріт - це величезна економія часу, а також використання будь-яких макросів, які приносять користь вашому дизайну, таких як пам'ять, мікроконтролер або альтернативні блоки обробки. Управління складністю дизайну також є важливою частиною - один дизайн годинника буде легше перевірити, ніж схема з кількома доменами годин.