Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Моделирование цифровой схемы с задержками
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Разработка цифровых, аналоговых, аналого-цифровых ИС
TiNat
Добрый день!
Хочу разобраться с маршрутом цифрового моделирования в среде Cadence. Вопрос в следующем. Имеется схема, представленная verilog нетлистом. Я ее промоделировал в NC-Verilog с использованием verilog библиотеки без учета задержек.
Создал lib и tlf формат вентильной библиотеки. Подскажите, использование какого тула Cadence позволит опредилить количество входов вентилей, подключенных к каждому выходу и создать sdf файл задержек. Аналогичный вопрос, как получить sdf файл с RC задержками после создания топологии в Encounter. Сalibre позволяет получить SPEF и DSPF нетлист с паразитами. Как от него перейти к sdf. Может есть какой-либо туториал по моделированию с учетом задержек?

И еще один вопрос. Чтобы не плодить темы, спрошу его здесь. Это отдельная вспомогательная задача. Может кто подскажет с чего начать обучение основам, если нужно разработать отдельную тестовую микросхему памяти СОЗУ (например 64к). Сам вопрос касается больше процесса моделирования. Как моделируют такие схемы? Делают ли verilog описание шеститранзисторной ячейки СОЗУ либо используют какой-либо другой подход? Интересует как совет\ответ прямо на форуме, так и ссылка на литературу.
sleep
По первой части.

Обычно делаем как-то так (Encounter).

[Физические библиотеки не рассматриваю, очень крупными шагами]
Загружается синтезированный нетлист + .lib (tlf) на все используемые библиотеки.
Делается P&R.
Экстрагируются паразиты.
Считается тайминг (например, командой timeDesign), выгружается sdf (write_sdf).

Далее этот post-P&R нетлист с sdf загружается в логический симулятор (IUS).
9_power
Для особо сложных случаев можно выгрузить из Encounter топологию в формате GDS и подать на вход к тулу паразитной экстракции (мы используем Calibre xRC). Экстрагируем данные по самым критичным цепям (клоки, сигналы) в формате SPEF, их подаём в логический симулятор.
Torpeda
Цитата(TiNat @ Nov 11 2014, 10:24) *
Добрый день!
Хочу разобраться с маршрутом цифрового моделирования в среде Cadence. Вопрос в следующем. Имеется схема, представленная verilog нетлистом. Я ее промоделировал в NC-Verilog с использованием verilog библиотеки без учета задержек.
Создал lib и tlf формат вентильной библиотеки. Подскажите, использование какого тула Cadence позволит опредилить количество входов вентилей, подключенных к каждому выходу и создать sdf файл задержек. Аналогичный вопрос, как получить sdf файл с RC задержками после создания топологии в Encounter. Сalibre позволяет получить SPEF и DSPF нетлист с паразитами. Как от него перейти к sdf. Может есть какой-либо туториал по моделированию с учетом задержек?

И еще один вопрос. Чтобы не плодить темы, спрошу его здесь. Это отдельная вспомогательная задача. Может кто подскажет с чего начать обучение основам, если нужно разработать отдельную тестовую микросхему памяти СОЗУ (например 64к). Сам вопрос касается больше процесса моделирования. Как моделируют такие схемы? Делают ли verilog описание шеститранзисторной ячейки СОЗУ либо используют какой-либо другой подход? Интересует как совет\ответ прямо на форуме, так и ссылка на литературу.

"Хочу разобраться с маршрутом цифрового моделирования в среде Cadence. Вопрос в следующем. Имеется схема, представленная verilog нетлистом. Я ее промоделировал в NC-Verilog с использованием verilog библиотеки без учета задержек."
Ну если есть verilog библилтека с 0 задержками то можно и промоделировать....

"Создал lib и tlf формат вентильной библиотеки" - круто. И синтез с ними сработал?
Обычно правда ни входят в комплект DesignKit для целевой технологии.

"использование какого тула Cadence позволит опредилить количество входов вентилей, подключенных к каждому выходу" - ну как минимум синтезатор (RC Compiler) и роутер (Encounter) имеют встроенные команды типа fanout\report_fanout...
А зачем это и как оно с SDF связано?

"создать sdf файл задержек" можно как в RC Compiler так и Encounter (команда write_sdf).
В Encounter можно это сделать построут с большой точностью (используя capTabl & GDS для SPEF екстракта с последующей конвертацией в SDF (всё таже команда write_sdf))

"с чего начать обучение основам, если нужно разработать отдельную тестовую микросхему памяти СОЗУ (например 64к)" - начать изучать аналоговую микросхемотехнику sm.gif

"Как моделируют такие схемы?"
Это смотря для чего моделируют....
Аналоговый дизайнер моделирует аналоговую схему на транзисторном уровне.
RTL цифровой дизайнер использует Verilog поведенческую модель (без задержек)
Моделирование с SDF использует Verilog модель с задержками
Для Синтеза и Роута нужно также LEF & LIB модели
TiNat
Спасибо, Torpeda, за подробный ответ. Экстрагировал из топологии SPEF калиброй и импортировал в Encounter, получил SDF. Таким образом вопрос с проведением post-layout моделирования цифровой схемы решился.
Тогда может быть подскажите, зачем в цифровых библиотеках Design Kits от, скажем, XFAB или др. фабрик в каждом вентиле указана задержка, причем одинаковая. У XFAB и Микрона 0,1. Ведь, наверно, логичней иметь библиотеку с нулевыми задержками, к которой подключать полученный SDF файл и проводить моделирование. А так, задержка 0,1 суммируется с задержкой элемента из SDF файла.
-=Sergei=-
Цитата(TiNat @ Nov 17 2014, 21:34) *
Спасибо, Torpeda, за подробный ответ. Экстрагировал из топологии SPEF калиброй и импортировал в Encounter, получил SDF. Таким образом вопрос с проведением post-layout моделирования цифровой схемы решился.
Тогда может быть подскажите, зачем в цифровых библиотеках Design Kits от, скажем, XFAB или др. фабрик в каждом вентиле указана задержка, причем одинаковая. У XFAB и Микрона 0,1. Ведь, наверно, логичней иметь библиотеку с нулевыми задержками, к которой подключать полученный SDF файл и проводить моделирование. А так, задержка 0,1 суммируется с задержкой элемента из SDF файла.



Добавлено, что бы вы помнили, что они есть, если, например, вставляете в чистый RTL вентили из библиотеки.
При затягивании SDF эти задержки вентилей заменяются на задержки из SDF, а не суммируются.
Torpeda
Цитата(TiNat @ Nov 17 2014, 22:34) *
Спасибо, Torpeda, за подробный ответ. Экстрагировал из топологии SPEF калиброй и импортировал в Encounter, получил SDF. Таким образом вопрос с проведением post-layout моделирования цифровой схемы решился.
Тогда может быть подскажите, зачем в цифровых библиотеках Design Kits от, скажем, XFAB или др. фабрик в каждом вентиле указана задержка, причем одинаковая. У XFAB и Микрона 0,1. Ведь, наверно, логичней иметь библиотеку с нулевыми задержками, к которой подключать полученный SDF файл и проводить моделирование. А так, задержка 0,1 суммируется с задержкой элемента из SDF файла.

И Encounter может SPEF екстрагировать... Лишние тулзы за отдельные деньги необязательны....

" в цифровых библиотеках Design Kits" похоже имеются ввиду Verilog модели вентилей для симуляции....
"в каждом вентиле указана задержка, причем одинаковая." - Ну то что указана одинаковая - это вопрос к создателю библиотеки..это от лени с одной стороны sm.gif
А с другой - именно эта библиотека не содержит реальных задержек. Выбрано какое-то средне-худшее значение. Точные задержки имеются только в LIB.
С учётом того, что применение этой Verilog модели без SDF практического смысла особо не имеет, то фаб и не особо утруждался.
Как уже и сказано было - задержки с SDF перебивают задержки Verilog модели вентилей.
-----
А зачем вам вообще симуляция с SDF?
TiNat
Цитата(Torpeda @ Nov 18 2014, 11:24) *
А зачем вам вообще симуляция с SDF?

Вообще мы для одного КМОП процесса экстрагируем SPICE-параметры девайсов, а также разрабатываем правлиа DRC, LVS и правила экстракции паразитных элементов для Calibre и Assura. Целью было проверить моделирование с паразитами. Так как у меня только опыт разработки аналоговых схем, то проведение post-layout моделирования для аналоговой схемы не оказалось сложной задачей. А вот c post-layout для цифры я не сталкивался. Мы создали вентильную библиотеку на ~80 элементов. Создали LEF, lib форматы. Был проведен синтез простейшей схемы для примера. В Encounter создали топлогию. И нужно было с использованием наших правил экстракции паразитных элементов провести моделирование с учетом задержек. CapTbl я создавать не умею, как понимаю для этого нужен ICT файл, но что это я не знаю. Поэтому выход получается следующий: получение SPEF в Calibre, Assura, либо как Вы сказали сам Encounter это может сделать.
P.S. Проводил моделирование с задержками в NC-Verilog. Задержки из sdf файла не заменили задержки в verilog представлении вентилей (как Вы написали), а просуммировались. Вероятно причина в моих кривых руках и чего-то я не знаю.
Shivers
Цитата(TiNat @ Nov 18 2014, 22:44) *
Проводил моделирование с задержками в NC-Verilog. Задержки из sdf файла не заменили задержки в verilog представлении вентилей (как Вы написали), а просуммировались. Вероятно причина в моих кривых руках и чего-то я не знаю.

Ни разу не видел, чтобы суммировались. Просмотрите внимательно лог nc-verilog, строку sdf annotate и ниже - были ли ошибки при аннотации? Если были, то скорее всего верилог вентильной библиотеки не соответствует файлу liberty, т.е. криво охарактеризовали. Если же аннотация прошла без ошибок, задержки должны соответствовать. Можете вручную менять дефолтные задержки в верилог моделях элементов - при моделировании с SDF разницы не увидите.

И еще обязательно глазами посмотрите SDF, что там арки соответствует аркам в liberty, и ничего не пропущено. А то часто бывает, что энкаунтер через задницу выписывает SDF с только половиной из необходимых арок, после чего моделирование на верилоге работает без единой ошибки. А копнешь поглубже - половина задержек оказывается нулевая, поскольку в SDF информация о них отсутствует. Особенно часто это случается для триггеров с асинхронными портами. И особенно часто этим грешат российские фабрики, поскольку библиотеки характеризуют через левую пятку.
Torpeda
Цитата(TiNat @ Nov 18 2014, 22:44) *
P.S. Проводил моделирование с задержками в NC-Verilog. Задержки из sdf файла не заменили задержки в verilog представлении вентилей (как Вы написали), а просуммировались. Вероятно причина в моих кривых руках и чего-то я не знаю.

SDF переписывает то что в Verilog модели описано при помощи специальных конструкций типа (забыл как называются):
Код
      (SN +=> QN) = (0.02, 0.02);
      (negedge RN => (QN -: RN)) = (0.02, 0.02);
      (posedge C => (QN -: QN)) = (0.02, 0.02);

      $setuphold (posedge C &&& c_SH_D, posedge D, 0.02, 0.02, NOTIFY_REG,,,
                   delay_C, delay_D);

если библиотека описана так - то должно работать.
Также в вашем SDF должны быть аналогичные пути и чеки описаны (они берутся с LIB - т.е. LIB должен соответствовать Verilog модели).
Ну и правильность загрузки SDF в симулятор по репортам проверьте.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.