Pull to refresh

Comments 28

Коллеги из Казани, конечно, в курсе забегов ispd? http://www.ispd.cc/?page=contests
Можно сравниваться с международными командами. Плюс брать инфроструктуру.

Как это делается: Алгоритм волновой трассировки.

Не вводите людей в заблуждение. Для трассировки рядов стандартных ячеек используется канальная трассировка.

Вы просто не прочитали внимательно. Я два раза написал, что этот алгоритм «для вдохновения», а не для трассировки standard cells. Вот перечитайте мой пост:

«Хотя этот метод не для стандартных ячеек выстроенных в ряды, а для менее упорядоченного случая с небольшим числом компонент»

«Несмотря на то, что современные программы автоматической трассировки используют другие алгоритмы, алгоритм Ли остается отличным упражнением для тех, кто недавно освоил программирование и хочет написать небольшую программу трассировки сам.»

Далее, в сценарии роснановского курса, который я цитирую, есть и про канальную трассировку:

2.9. Трассировка

Трассировка — это создание геометрических чертежей расположения соединений между элементами микросхемы. Современные алгоритмы трассировки приспособлены к современной организации микросхем, на основе рядов из стандартных ячеек одинаковой высоты. Эта организация позволяет упростить задачу трассировки для очень больших микросхем за счет разбиения ее на подзадачи: сначала делается глобальная трассировка на уровне всего чипа (global routing), потом локальные трассировки внутри каждого канала (channel routing). Кроме этого есть подзадача трассировки областей так называемых коробок переключений (switchbox), которые находятся на пересечении каналов, расположенных в перпендикулярных направлениях.

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

Алгоритмы трассировки следят за соблюдений правил проектирования (design rules). Эти правила программы проектирования берут из набора файлов под названием Process design kit (PDK), который разрабатывает полупроводниковая фабрика. К правилам проектирования относятся минимальные расстояния между соединениями и частями транзистора в разных ситуациях. Также алгоритмы трассировки смотрят, чтобы не возникали проблемы с электрическими помехами, которые возникают, когда соединения находятся слишком близко друг к другу (по-английски это называется crosstalk).

Одно из направлений развития программ трассировки — это трассировка трехмерных чипов. Уже сейчас трассировка учитывает соединения в нескольких слоях, то есть не является чисто двухмерной задачей. Но одновременно возникают и экспериментальные чипы с транзисторами и памятью на разных слоях, либо в «этажерке» из нескольких кристаллов, либо в монолитном трехмерном чипе. Для таких структур нужны новые методы трассировки.

И ни одного упоминания в статье таких инструментов, как graywolf и qrouter. Как так?

А зачем? Это явно не те инструменты, с которых надо брать пример.
Разного рода мелких задачек в полноценном маршруте, которые можно улучшить — вагон и маленькая тележка. Например, «Standard Cell Pin Access and Physical Design in Advanced Lithography», чтобы далеко от задач роутинга не ходить.

Это открытые инструменты, которые можно взять за основу, а не делать всё с нуля.

Для первоначального изучения алгоритмов полезно наделать кучу мелких программок с нуля. А вот потом можно ковыряться в программах побольше. Лично для меня такой комбинированный способ обучения более эффективен.

Это больше про FPGA, но в целом задачи схожие. Если говорить про FPGA, то сюда можно набросить ещё yosys и arachne-pnr/nextpnr.

В такой простейшей постановке задача трассировки весьма подходит для применения Q-learning (нахождение оптимальной траектории + достижение конечной цели). Как водится, штраф за 1 ход + бонус за достижение конечной точки. И для разнообразия — штраф за изменение направления — тогда агент будет стараться избегать поворотов.
Ну почти как здесь, только надо запретить по диагонали ходить:
image

UFO just landed and posted this here
Сразу не позовут, но с каких-нибудь алгоритмов нужно начинать. Вот в МГУ студенты даже выиграли международное соревнование по EDA алгоритмам — www.msu.ru/news/komanda-vmk-pobeditel-2015-cad-contest-at-iccad.html С таким достижением и в Samsung, и в Huawei позовут.
Какой тонкий троллинг от американского инженера:
1.«Уничтожить монополию Америки в ЕDA.»
2."… простейшую программу Place & Route может написать студент за выходные, но вот на продвинутую потребуются десятилетия работы сотен людей и миллиарды долларов на R&D."
3."… Россия крупнее Армении и наверное может создать свой Synopsys. В конце-концов, программистов в России много, математиков тоже, а текущая рыночная капитализация Synopsys + Cadence примерно равна затратам на сочинскую олимпиаду."
Вы можете рассматривать это как троллинг, но это и правда тоже. Замечу, что я в свое время продал свои патент и интеллектуальную собственность созданного мною EDA стартапа Synopsys-у — см. en.wikipedia.org/wiki/C_Level_Design
Это просто замечательно. А не поделитесь немного информацией про то, как получать патенты в США?
Я нанимал патентного адвоката на деньги инвесторов — обошлось более чем в 20 тысяч долларов. Процесс довольно нетривиальный, в двух словах не описать. Некоторые делают без адвоката — если идея простая, с малым числом claims. В крупных компаниях делание патентов работниками поставлено на поток — их обслуживает корпоративный юрист.
На практике обычно над таким продуктом работает команда человек 20-40 в течение пары лет. Дальше идет поддержка тем же составом по мере роста базы кастомеров. Потом команда усыхает и продукт переходит в састейн мод.
Другое дело, что для покрытия e2e процессов надо иметь полное портфолио тулов — и тут да, несколько тысяч людей, десятки купленных стартапов, миллиарды долларов.
В результате сейчас _весь_мир_ может позволить себе содержать только Кейденс, Синопсис и Ментор Сименс бизнес. В существенной части это результат того, что производство микросхем тоже сконцентрировано сейчас до предела.
Простите, где там будет проходить следующий межгалактический шахматный турнир?
Если не организовывать шахматные кружки, то точно нигде, а с кружками может появится хоть что-то

Из open-source есть http://opencircuitdesign.com/qflow/ и насколько я понимаю уже весь toolchain есть для FPGA/ASIC http://www.clifford.at/yosys/. Verilator успешно использовали в Tesla для их FSD чипа: Used Verilator, 50x faster than commercial simulators
Также помимо EDA тулов наверное есть смысл делать эмуляторы на FPGA и софт к ним. Как я понимаю без эмулирования дизайна на условном Synopsys ZeBu чип не выпустить. Юрий, у вас нет планов рассказать про эмуляцию и тестирование уже готового чипа ?

Эмуляторы на FPGA — это, что ли вроде FireSim? Кстати, а чем это отличается просто от синтеза под FPGA? Или это синтез под одну FPGA, будто это другая FPGA с другими скоростными характеристиками?

А вы правда думаете, что кому то есть дело до скорости симулятора верилога?)) Это, право, смешно. Любой коммерческий чип упирается в моделирование на транзисторном уровне. Для FastSpice обычно используют XA от Synopsys, для более точного Spice — Spectre от Cadence.
Для понимания масштаба, последний Spectre X умеет разворачиваться в амазоновском облаке и запускаться на большом количестве мультсокетных машин. При этом моделирование может идти от нескольких часов до десятков дней.
На этом фоне скорость цифрового моделирования не интересует вообще никого.
Скорость симулятора верилога для компаний с большими CPU и GPU дизайнами очень важна. Говорю как бывший инженер в команде Synopsys VCS и текущий инженер MIPS.

Когда тест на VCS работает в 60 раз быстрее чем на Icarus Verilog, это сильно меняет дело. Так как в первом случае regression идет overnight, а во втором случае это бы заняло 1 месяц. Ночь или месяц — большая разница.
Это, конечно, здорово, что вам на работе разрешают тестить икарус)) Однако, сравнение его с vcs это запредельная лесть для икаруса. Если мы говорим про коммерческую разработку, то речь явно не о икарусе. И бутылочным горлышком event-driven моделирование явно не является.
Ну и если все же рассуждать про большие дизайны, то значит про UVM. Как дела у икаруса с этим делом? Подозреваю, что примерно никак, потому что UVM нынче в основном бегает на SV, а поддержки SV(SystemVerilog) у него нету.
Лист недочётов икаруса для коммерческой разработки можно продолжать бесконечно, но совершенно бесмысслено. Равно как и сильно вкладываться в движки для цифры, когда аналог моделируется на порядки дольше, а этого самого аналога нынче в самом захудалом SoC — вагон.
Что касается эмуляции, то тут все очень плохо. Не в плане аппаратных решений, а в плане их доступности. Не говоря уже о том, что большая часть компаний не осиливает даже топ-левел смешанное моделирование до тейпаута…
Ну и упреждая возможный вопрос про моделирование на GPU — пока никто не хочет в это вкладываться, потому что фермы с CPU уже у всех больших компаний есть, а тратится на фермы GPU для какого-то одного конкретного тула экономически невыгодно.
Ну и общий тренд на моделирование в облаке сильно упрощает жизнь всяким стартапам, значительно снижая капитальные инвестиции и затраты на обслуживание. А мощностей в облаке, как водится, больше нужного.
Sign up to leave a comment.

Articles