Проект по СБИС (VLSI) в Колумбийском университете (4321): Мини-процессор

11 minute read

Published:

Авторы: Мин Гун, Шарлотта Чен

В этой серии статей я разберу основы курсового проекта по курсу 4321, чтобы вы смогли создать топовую топологию (layout) уровня «А», даже если вы абсолютный новичок в проектировании микросхем (каким был и я). Вам придется преодолеть огромную кривую обучения, и в этом как раз весь смысл.

Думайте об этом как о процессе последовательных приближений (любимый экзаменационный метод Шепарда): делаете первую попытку, понимаете, насколько всё плохо, узнаете что-то новое, дорабатываете и повторяете заново.

Это руководство призвано помочь вам прийти к результату быстрее, избежав множества ловушек и неверных решений, с которыми мы столкнулись на ранних этапах, и сосредоточиться на том, что действительно важно.

Надеюсь, это убережет вас от лишней боли и страданий и поможет глубже оценить истинную красоту кастомной топологии. Наслаждайтесь!


Содержание

image-right

  1. Введение в топологию СБИС (4321) (эта статья)
  2. Инвертор (PS4)
  3. План проекта
  4. Сумматор и сдвигатель (PS6-7)
  5. SRAM (Статическая ОЗУ) (PS8)
  6. Общий обзор (PS9)

Приложение. Фотографии!
Приложение. Конспекты занятий


О проекте

Характеристики нашей финальной архитектуры:

  • Площадь ядра ~1100 мкм²
  • 4 металлических слоя
  • Шаг бит-линии тракта данных 2.1 мкм (2 столбца SRAM)
  • Полностью пройдены тесты DRC и LVS
  • Тактовая частота 2 ГГц
  • Высокая плотность и регулярность тракта данных
  • Статический КМОП-сумматор с последовательным переносом
  • Логарифмический сдвигатель на проходных транзисторах (с буферизацией)
  • Физическая матрица SRAM 4x16
  • ПЛМ с псевдо-ЭЛД (Pseudo-NMOS) соотношением транзисторов
  • Накопитель типа «ведущий-ведомый» (Master-slave)
  • Шинные формирователи на C²MOS-логике

Дисклеймер

mg-04-io — это личный блог. Он не связан с кафедрами EE или BioEE Колумбийского университета.
Данная статья не является официальным руководством от ассистентов (TA). Она написана независимо от официальных туториалов по САПР

Наш проект ДАЛЕК от совершенства. На самом деле, когда я писал это руководство, я то и дело сокрушался о том, как многого я еще не знаю о Cadence Virtuoso и насколько эффективнее можно было спроектировать топологию в тех или иных местах.

И это нормально.

Цель этого проекта — сделать так, чтобы всё работало, и работало хорошо, а не идеально. Это старый технологический процесс, предназначенный для обучения и практики, так что не стоит рвать на себе волосы.

Нюансы

  • Это руководство основано исключительно на нашем проекте. В процессе эволюции дизайна у нас возникло много нестыковок в названиях. Тем не менее, все наименования должны быть понятны интуитивно и соответствовать контексту.
  • Прошу прощения за разное качество и разрешение изображений. Всё должно быть читаемо, но некоторые миниатюры могут отображаться некорректно. Вы всегда можете скачать их напрямую.
  • В проекте присутствуют не самые оптимальные решения, принятые как на ранних, так и на поздних этапах. Я указываю на очевидные косяки, но если вы:
    • Заметите ошибки или неэффективные решения
    • Захотите предложить улучшения для этого руководства
    • Захотите поделиться своей топологией или опытом

    Смело пишите мне на почту ming.g@columbia.edu. Я буду ОЧЕНЬ РАД добавить ваши материалы!

  • Эти статьи посвящены в основном топологии (layout), но тестирование важно ничуть не меньше.
  • Мы мало использовали функции автоматизации проектирования в Virtuoso. Эту область определенно стоит изучить подробнее.
  • Это руководство ни в коем случае не создавалось для того, чтобы помочь вам списать (да и на практике это нереально).
    • НЕ пытайтесь заниматься реверс-инжинирингом.
  • TSMC, пожалуйста, не подавайте на меня в суд!

Общие вопросы, советы и студенческий фольклор

Это общий FAQ. Специфические советы по отладке вы найдете в последующих статьях

Организационные моменты

Каковы официальные требования для курса (prereq)?

Официально: Электронные схемы (ECircuits) и Основы компьютерных систем (Fundies)
Реально: крепкий позвоночник, способность усваивать кофеин в лошадиных дозах и ведра пролитых слез…


Найдите хорошего напарника.

У половины группы были проблемы с напарниками; вторая половина группы сама являлась ходячей проблемой.


Стоит ли брать этот курс просто ради интереса?

Да, если вам нравятся микросхемы, симметрия, маниакальная оптимизация или особое удовольствие от того, что Шепард вас мучает.

Нагрузка

Правда ли, что домашние задания (PSets) становятся всё сложнее и сложнее?

Зацените несколько пугающе точных отзывов на CULPA

Да. И усложнение идет не линейно, а экспоненциально.
Считайте PS4 абсолютным минимумом. После него вам, скорее всего, придется пережить несколько бессонных ночей.
НАЧИНАЙТЕ ЗАРАНЕЕ!!! Делайте задания в тот же день, когда их выдают!!!


Дают ли дедлайны-продления (extensions)?

Официально нет, но ассистенты (TA) обычно идут навстречу.
Но главный вопрос в другом: поможет ли вам это продление на самом деле?

  • Если вы застряли из-за внезапных багов в последний момент или заболели — безусловно.
  • Если вы фундаментально отстали от программы — почти наверняка нет.

В этот момент вы не выигрываете время. Вы берете кредит под грабительские проценты, которые капают каждый час… пока вы не объявите себя банкротом по топологии.


Как нам с партнером координировать работу?

Внедряйте «Внеочередную топологию» (Out of Order Layout): Большую часть проектных задач можно распараллелить: проектирование, схемы, топологию, тесты и написание отчета. Главное — грамотно разруливать взаимозависимости.

Ресурсы

Задавайте вопросы профессору и ассистентам.

Приносите конкретные вопросы на лекции, семинары и консультации (office hours).


Спрашивайте однокурсников.

Ваши однокурсники знают то, чего не знаете вы.
Они также знают то, о чем вы даже не подозреваете, что не знаете этого.
Общайтесь. Сравнивайте свои топологии. Крадите чужие крутые идеи.


Спрашивайте нейросети.

Языковые модели удивительно полезны, особенно когда нужно быстро найти и прочитать инструкции или мануалы. Само собой, вы не можете загружать конфиденциальные материалы TSMC под NDA в чат, чтобы нейросеть сделала топологию за вас, но она суперски объясняет концепты и расшифровывает логи ошибок.


** Какие еще есть ресурсы?**

Их много. Учебник действительно хорош. Но скоро ваш мозг начнет отторгать любые новые PDF-файлы.
Это руководство как раз служит для того, чтобы отфильтровать терабайты информации и оставить ссылки только на то, что реально помогает.

Проектирование

Запускайте DRC и LVS как можно раньше и чаще.

Мелкие ошибки обходятся дешево на ранних этапах и стоят чрезвычайно дорого на поздних.


Не разводите грязь.

Симметрия и системность спасут вас от ада отладки. «Грязные, но работающие» топологии обязательно вставят вам нож в спину на следующих этапах.


Не стремитесь к идеалу сразу.

Не переживайте, если с первого раза что-то получается неидеально. Вы почти наверняка будете возвращаться, переделывать, а иногда и полностью сносить под корень свои блоки по мере развития проекта. Это естественная часть обучения.


Не верьте Шепарду на слово.

Он потрясающий, но у него отлично получается косячить на единицу (off-by-one) — будь то индекс массива, лишний инвертор или поворот элемента на 90 градусов. Так что обязательно вникайте в суть сами.


Что делать, если моя топология — полный отстой?

  • Если это произошло до PS7: ПЕРЕДЕЛЫВАЙТЕ СЕЙЧАС ЖЕ!
  • Если уже после PS8: Смиритесь со своей участью, сдайте проект как есть (налив побольше воды) и жестко ботайте к экзаменам.

Каковы примеры «отстойных» работ?

  • Зайдите на Studocu или подобные сайты. Большая часть того, что там лежит, — полнейший шлак. Люди заливают свои худшие работы и гордо называют это «ресурсами» :)
  • Зайдите в LinkedIn, найдите выпускников или магистров, посмотрите их «проекты». Если они вообще осмелились выложить свою топологию, скорее всего, она тоже так себе.

Ладно, постараюсь не душнить слишком сильно. Я и сам выложил несколько наших неэффективных ранних вариантов в качестве наглядных антипримеров того, как делать НЕ надо.

Оценивание

Этот курс оценивается по кривой (curved), так что если вы студент уровня «А» и сдаете работу уровня «А», то можете рассчитывать на оценку «А».

Как оценивается проект?

Шепард проверяет и оценивает все проекты лично, так что сдать какую-то дичь не выйдет.

На самом деле это огромное благо по сравнению с ситуацией, когда проверку отдают ассистентам (а чаще рядовым проверяльщикам), которые относятся к этому просто как к халтурке ради чека, полностью забивая на какую-либо академическую ответственность.


Каково распределение оценок?

Официальное распределение буквенных оценок за осень 2025 года не публиковалось, но вот статистика конкретно по проектам:

График имеет выраженный хвост с левой стороны. Средний балл примерно такой же, как на экзаменах, но дисперсия (variance) в разы выше.

  • Это значит, что хотя проект весит в два раза меньше финального экзамена, он обладает точно такой же силой вытянуть вас в топ или полностью потопить итоговую оценку.

Как проходят экзамены?

К ним относительно легко готовиться. Экзаменационные задачи делятся на два типа:

  1. Халява Тут всё просто. Некоторые задачи могут требовать объёмных вычислений, но если не паниковать и аккуратно всё посчитать, вы справитесь.
  2. Задачи, которые «отделяют мальчиков от мужчин» (по выражению Шепарда, который при этом «не пытается быть сексистом»)
    Это многоступенчатые гробы, требующие сложных расчетов или применения совершенно новых концепций/уравнений, которых вы раньше в глаза не видели. Иногда их не могут решить даже сами ассистенты. Иногда сам Шепард понимает, что задача не имеет решения. Кто знает…

С годами доля второго типа задач растет, так как у Шепарда «заканчиваются простые вопросы».

Суть в следующем: если вы тонете, то вся группа тонет вместе с вами. Если вы не можете решить заковыристый вопрос, его не решит и большинство остальных студентов. Не парьтесь из-за экзамена слишком сильно.

Я думал написать «Руководство по сдаче экзамена 4321», но мне кажется, что зазубривание экзаменационных уловок непродуктивно в долгосрочной перспективе. Займитесь лучше личной жизнью.

  • Вы можете посмотреть некоторые конспекты лекций здесь.

Продолжение следует…


Особая благодарность

Огромное спасибо следующим людям за помощь и поддержку на протяжении всего проекта:

  • Моей напарнице Шарлотте Чен;
  • Профессору Кену Шепарду;
  • Ассистентам (TA) Кейдену Ду и Джеймсу Ягельскому;
  • Выпускникам Юйси Чжану и Инжуй Вэй;
  • Студентам текущего потока Дэвиду Киму, Стивену Огунмвоньи, Саймону Мао и Нико Аларкону.

Отдельная благодарность Уильяму Вангу за то, что поделился своей топологией ПЛМ.