2016-12-19 15 views
2

У нас есть критическая схема в основе нашей реализации, которая является ограничителем скорости для всего дизайна. Он состоит всего из нескольких десятков ворот. Мы внедрили индивидуальную схему уровня транзисторов для этой функции вручную, сделали ручной макет и сгенерировали GDSII. Мы хотим связать это с нашим кодом Verilog.Как добавить пользовательскую схему ручной раскладки как новую ячейку std и обратиться к ней в verilog?

Вопрос в том, как, в частности, интегрировать эту настраиваемую схему с кодом Verilog?

Пожалуйста, простите наивность этого вопроса. Я знаю, что уровень детализации просил много. У нас есть опыт построения схем и компоновки в команде, но никто не интегрировал пользовательский макет с симулятором Verilog или инструментом для размещения и маршрута раньше. Мы не знаем, с чего начать искать документацию для этого.

У нас есть GDSII макета, и мы выделили параметры и смоделировали поведение.

Теперь, как мы определяем пользовательский объект Verilog, который, когда этот объект вызывается в коде Verilog, место и маршрут заменят GDSII, и симулятор заменит поведение?

Более конкретно, как мы подключаем наш GDSII к пользовательскому объекту Verilog, чтобы место и маршрут были осведомлены о файле GDSII и правильно подключили GDSII? Как мы определяем сигналы внутри GDSII и сопоставляем их с сигналами в нашей пользовательской сущности Verilog, так чтобы место и маршрут соединяли GDSII проводов Verilog с соответствующими портами GDSII нашего макета руки?

Как определить поведение, а затем сделать симулятор осведомленным об этом? Есть ли специальный файл, содержащий поведение? Какую форму выполняет спецификация поведения, это таблица истинности?

Я понимаю, что это расширенный вопрос, который может потребовать немного работы, чтобы все это исправить. Мы действительно ценим любые намеки на то, где искать или что делать.

Многие из вас могут поверить, что мы безрассудны и хотим спасти нас от совершения ошибки при выполнении пользовательского макета. Спасибо вам за это. Мы провели оценку риска и считаем, что выигрыш в этом случае стоит того. Нам нужна ваша помощь с особенностями достижения интеграции.

Спасибо,

Шон

+0

Я не эксперт в области взаимодействия с внешними моделями, но я очень сомневаюсь, что любой симулятор Verilog будет поддерживать взаимодействие с таким файлом. Мое лучшее предложение - создать функциональную модель в Verilog (или CPP, если вы хотите использовать DPI) независимо от вашего файла дизайна и имитировать с этим (обычная стратегия). Если вам нужна больше точности в симуляции и есть инструмент, который может имитировать ваш макет, вы можете связать симуляцию Verilog с этим другим симуляцией через трубы или сокеты или что-то в этом роде; но это, скорее всего, должно быть настраиваемым кодом, который вы должны создать. – Unn

+0

Первая идея, что я рассматриваю ваш вопрос в том, что вы хотите, - это рассмотреть дизайн ручной работы как ячейку библиотеки. Чтобы сделать то, что вы хотите, я бы посмотрел, как поставщики библиотеки описывают свои стандартные ячейки (примитивы verilog). Затем вы можете реализовать свой модуль как стандартную ячейку непосредственно в своем дизайне, а позже в потоке замените его на свой GDSII. Вы также можете определить файл .lib, в котором описан ваш модуль и тот же, что и ранее. Однако вам понадобится специальный набор лицензий для компиляции файла lib в файл db с функцией functionnality. – Krouitch

ответ

0

Проблема, что вы имеете в виду хорошо определен & решена в промышленности СБИС. Правильный способ решить эту проблему - иметь поведенческую модель (Verilog или System Verilog) для целей моделирования hardmacro (схема, которая выложена как пользовательская реализация, называется hardmacro) и модель синхронизации (захваченная в виде .lib) & - физический вид (захвачен в виде .lef) для синтеза и цели PnR.

Инструмент моделирования позволит вам использовать модель для целей моделирования, чтобы проверить правильность конструкции. Но точность модели может быть подтверждена только из-за того, как моделируется пользовательская схема. Если пользовательская схема проста, то моделирование это простая задача. Если это аналоговая схема (например, фильтры), то моделирование может быть затруднено. Лучший способ проверить эту схему - сделать смешанное симуляцию сигналов (Verilog RTL + Analog Spice), которая поддерживается отраслевыми стандартными инструментами.

Модель dot lib используется средствами синтеза и PnR для понимания требований к времени в пользовательской схеме. Точечный левый вид имеет информацию о геометрии пользовательской схемы.Как только PnR стандартной цифровой схемы будет завершена, эти инструменты позволяют импортировать пользовательские GDS для замены вида .lib & .lef, который вы использовали до сих пор. Это объединит GDS для обоих из них.

Надеюсь, это поможет.

-Sanket.