реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Симуляция верилог совместно со спайс-нетлистом, Методы оптимизации симуляций
v_mirgorodsky
сообщение Apr 10 2015, 15:25
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Доброго времени суток,

Ищется простое решение для симуляции спайс-нетлиста совместно с тест-бенчем на Верилог. Точно знаю, что подобная штука есть в Каденсе. Там Verilog-NC запускается совместно со Спектрой и получается автоматический тестовый стенд с очень хорошим покрытием. Верилог генерирует входные вейв-формы и проверяет результаты из Спайса. Получается очень приличное покрытие, практически неограниченная гибкость, авоматические тесты и много других полезностей. Недостатком этого всего является большой прицеп в виде самого Каденса и его слабо вменяемых настроечных файлов.

Еще знаю, что подобное решение запускалось с Наносимом, однако он уж сильно устарел и для "свежих" библиотек его использовать как-то сильно рисковано. Был вариант, когда Наносим был интегратором, а в качестве спайс-симулятора предлагались на выбор xa & hsim. Однако этот маршрут выглядит тоже немного рискованным по причине отсутствия "свежих" версий вышеупомянутых симуляторов.

Недавно прочитал, что есть подобное решение от Синопсиса - VCS-AMS. Сразу пошел искать его в закрома, однако ничего похожего на аббревиатуру VCS-AMS там не нашел.

Соответственно, вопрос. Использовал ли кто-то в работе связки Верилог-Спайс? Если да, то какие програмные продукты использовались, получалось ли у кого в качестве Спайс-симулятора запускать HSPICE?

Есть ли у кого опыт использования VCS-AMS? На сколько сложно увязать нетлисты?

И знает ли кто как скоро он может появиться в закромах?


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
SM
сообщение Apr 10 2015, 16:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(v_mirgorodsky @ Apr 10 2015, 18:25) *
Однако этот маршрут выглядит тоже немного рискованным по причине отсутствия "свежих" версий вышеупомянутых симуляторов.

Вообще, оно вроде хорошо считало и тогда, за это время ничего в математике не изменилось. Так что nanosim C-2009.06 вполне себе решение.

А из современного - совместная ко-симуляция XA + VCS MX - поищите лабы по части XA-VCS mixed-signal simulation
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Apr 11 2015, 02:12
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Был у меня опыт использования Наносим для динамических гейтов на UMC 65нм. Наносим симулировал быстро и неправильно. По какой-то причине он разряжал динамические ноды намного быстрее, чем это предполагалось. Пришлось выбросить в топку. HSPICE, XA, HSIM симулировали нормально, результаты немного отличались между собой, но не критично. Как показала практика, ближе всего к правильному ответу был HSPICE, дальше всех лежали результаты XA, HSIM довольно точно повторял поведение HSPICE с некоторыми особенностями. Ну и как не странно, HSPICE практически без проблем поднял post-layout extracted нетлист на 200000 транзисторов и выдал результаты симуляции часов через 20, тогда как HSIM просто "упал" с ошибкой по памяти. Симуляция проводилась на 48 процессорном сервере с 384GB памяти.

Сейчас надо симулировать "всего" тысяч 50 транзисторов, но техпроцесс сильно тоньше. Фактически, производительно рисовать full-custom под этот тех-процесс можно только в честно купленном Каденсе. Все остальное, что имеется на рынке или плохо поддерживает дабл-паттернинг, или никак его не поддерживает. Вместе с рисовалкой были честно куплены очень ограниченное количество лицензий под Спектру и APS. Там и получилось запустить миксед моде симуляцию с Верилогом, однако меня не устраивает гибкость полученного решения, его точность и скорость. Вот и ищу варианты "улучшения" ситуации.

Цитата
А из современного - совместная ко-симуляция XA + VCS MX - поищите лабы по части XA-VCS mixed-signal simulation

На сайте Synopsis новостей об обновлении XA я не нашел. В закромах есть версия за 2013 год. Если правильно помню, то для проекта с 65нм использовал все же что-то более ранее. Можно попытаться запустить эту связку. А у вас нет какого-нибудь простого примера на эту тему?

Все же очень хотелось бы научиться использовать HSPICE в связке с VCS, потому как оба продукта регулярно обновляются в закромах и дают необходимую точность и скорость работы. По идее, VCS-AMS предоставляет необходимые возможности. Потому ищется этот подукт, или другое решение, позволяющее организовать ко-симуляцию любого из доступных Верилогов с HSPICE.



--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
SM
сообщение Apr 11 2015, 04:27
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



вся тройка - Nanosim, XA и HSIM плавно переросли в продукт под названием "CustomSim", который интегрируется с VCS. В закромах не встречал его. Поэтому новостей и нету. Искать надо этот новый продукт.
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Apr 11 2015, 15:07
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



На eetop.cn говорят, что CustmSIm - это и есть XA. Самая новая версия XA доступная от Синопсис всего на один релиз младше той, что есть в закромах.

Еще ко-симуляцию умеет FineSim Pro двухлетней давности - тоже лежит в закромах. Однако у него серьезные проблемы с лицензиями.

Как бы во всех случаях смущают сравнительно старые версии продуктов, а новых как-то не появляется.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
SM
сообщение Apr 11 2015, 16:39
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(v_mirgorodsky @ Apr 11 2015, 18:07) *
На eetop.cn говорят, что CustmSIm - это и есть XA.

Сомнительно, так как первый ответ фака говорит, что это гибрид HSIM, XA и Nanosim - http://www.synopsys.com/Tools/Verification...tomSim-faq.aspx
Хотя, точной информацией не обладаю...
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Apr 11 2015, 17:10
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



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


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
SM
сообщение Apr 11 2015, 17:21
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(v_mirgorodsky @ Apr 11 2015, 20:10) *
Нашел как запускать XA с VCS. Как оказалось, надо в командной строке указать файлик конфигурации с достаточно простой структурой. На днях попробую, если все получится - выложу какой-нибудь примерчик.

О! Это интересно, и очень полезно будет. Я только наносимом в древности симулировался...
Go to the top of the page
 
+Quote Post
kleverd
сообщение Apr 14 2015, 19:50
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 26-04-14
Из: Москва
Пользователь №: 81 525



Объединение спайс нетлистов с верилогом по слухам существует в Tanner EDA. Там верилогом можно описать ячейку и симулировать все вместе с обвязкой в спайс симуляторе T-Spice.

Сообщение отредактировал kleverd - Apr 14 2015, 19:52
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 2 2015, 11:06
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



А в кэденсе кто нибудь моделировал спайс с верилогом? Я так понимаю, Virtuoso-AMS (бывший ultrasim?) позволяет такое делать.
Go to the top of the page
 
+Quote Post
Poluektovich
сообщение Nov 2 2015, 12:02
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 15-09-08
Из: Зеленоград
Пользователь №: 40 201



В cadence Virtuoso ADE есть симулятор ams. Ultrasim - это fast spice симулятор. AMS симулятор базируется на:
analog engine - spectre
digital engine - ncverilog
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 2 2015, 12:48
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



AMS позволяет behavioral verilog моделировать? Потому что в доке на ultrasim я вычитал, что он только structural verilog понимает. А у меня сейчас задача - хочу написать тестбенч на поведенческом верилоге, при том что тестируемая схема - спайс-нетлист.

И еще вопрос - AMS какой консольной командой вызывается? У меня пакет MMSIM установлен, но я там пока только спектру и ультрасим вижу. Virtuoso ADE, это другой пакет тулов?
Go to the top of the page
 
+Quote Post
Losik
сообщение Nov 2 2015, 13:01
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 453
Регистрация: 22-04-07
Пользователь №: 27 235



Для смешанного моделирования вам понадобится среда virtuoso и симулятор AMS из пакета INCISIVE, без первого можно обойтись, если у вас есть уже готовый спайс нетлист.
посмотрите примеры в INCISIV/tools.lnx86/amsd/samples если есть готовый спайс нетлист или в
IC6/tools.lnx86/dfII/samples/tutorials/AMS если схема в базе даных кэденса.

UPD: по "behavioral verilog ", AMS позволяет а ultrasim нет. считайте что ultrasim это обычный аналоговый спайс симулятор, без поддержки цифры.
AMS позволяет выбирать аналоговый симулятор, spectre или ultrasim.

MMSIM содержит только аналоговые симуляторы, вам нужен пакет INCISIVE.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 2 2015, 13:24
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Я так понимаю, если пакет INCISIVE, то используется команда irun с соответствующими ключами, и среда SimVision. Это здорово, меньше разбираться. Спасибо!
Go to the top of the page
 
+Quote Post
Losik
сообщение Nov 2 2015, 13:28
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 453
Регистрация: 22-04-07
Пользователь №: 27 235



Цитата(Shivers @ Nov 2 2015, 16:24) *
Я так понимаю, если пакет INCISIVE, то используется команда irun с соответствующими ключами, и среда SimVision. Это здорово, меньше разбираться. Спасибо!

Да, все верно.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 2 2015, 16:28
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Losik
Заработало, спасибо!
И еще два вопроса.
1. Можно ли в INCISIVE выводить на вейвформу ток питания, и результаты функций калькулятора как в Virtuoso, - интегрировать ток, считать мощность, и т.д.?
2. Как реализовано управление питанием? Если я хочу его повысить/понизить, задать синусоидой и т.д.
Go to the top of the page
 
+Quote Post
Poluektovich
сообщение Nov 3 2015, 06:48
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 15-09-08
Из: Зеленоград
Пользователь №: 40 201



1. Такие функции в simvision недоступны.
2. Можно описать и подключить источник питания на VerilogA. Например, синус
http://www.eda.org/verilog-ams/models/V_sine_generator.va
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 3 2015, 08:00
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(Poluektovich @ Nov 3 2015, 09:48) *
Можно описать и подключить источник питания на VerilogA. Например, синус

Спасибо!
У меня питание долго не работало, пока я в amscf.scs не добавил следующие строки:
Код
simulator lang=spice
.global vdd! gnd!
V0 gnd! 0 0
V1 vdd! 0 1

Я правильно понимаю, что источник питания на Verilog-A надо подключать как любой другой модуль, и цепи питания/земли не надо объявлять глобальными?

На Verilog-A я ни разу не писал, поэтому еще вопрос:
Если я включу источник напряжения, за ним нулевой резистор http://www.eda.org/verilog-ams/models/resistor.va , то смогу на verilog-A снимать ток с выводов резистора как I(p,n). И мне для дальнейшего использования надо будет только преобразовать ток в формат real, и можно считать мощность?
Go to the top of the page
 
+Quote Post
Losik
сообщение Nov 3 2015, 08:27
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 453
Регистрация: 22-04-07
Пользователь №: 27 235



Цитата(Shivers @ Nov 2 2015, 19:28) *
Losik
Заработало, спасибо!
И еще два вопроса.
1. Можно ли в INCISIVE выводить на вейвформу ток питания, и результаты функций калькулятора как в Virtuoso, - интегрировать ток, считать мощность, и т.д.?
2. Как реализовано управление питанием? Если я хочу его повысить/понизить, задать синусоидой и т.д.


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

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

на верилоге-а не обязательно писать, все должно измеряться для аналоговой части в тесте. нужно использовать probe.
что-то в виде probe -create -flow -shm -ports top.V0.PLUS
ключи в команде могут быть другие, почитайте мануал
Go to the top of the page
 
+Quote Post
Shivers
сообщение Nov 3 2015, 09:19
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Спасибо!
Интегрировать я пока не научился (в SimVision калькуляторе такой опции не нашел), но стало понятно, куда копать дальше. Мне нужно считать удельное потребление на операцию в цифро-аналоговом блоке (тестовое окружение на поведенческом верилоге не считается). Думаю, в разрыв питания можно вставить токосъемный резистор 0 Ом, а дальше уже можно что то придумать. Источник на verilog-a я прикрутил - все работает.
Go to the top of the page
 
+Quote Post
drozel
сообщение Jan 19 2016, 15:09
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 2-02-11
Пользователь №: 62 650



А можно ли для этих целей использовать Modelsim? Скармливать ему sdf и нетлист из design compiler?
Уступает ли этот метод тому же vcs?
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jan 19 2016, 17:10
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Меня здесь интересовало немного другое - аналогово-цифровое моделирование. А Вы про цифровое спрашиваете.
Для цифрового, конечно - менторовский Modelsim/Questa вполне подойдут. Тормознее чем vcs или irun, но для небольших проектов - вполне годятся.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Mar 16 2016, 18:55
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Ай нид хелп. Опыта совсем мало, столкнулся с проблемой: схема на ~10k транзисторов моделируется 4-6 часов. Использую ключ -fastspice, шаг 1ps/1ns. Как ускорить процесс? Может, минимальный шаг увеличить?
Может быть, можно как то задействовать многоядерность (моделирую в CDS irun/simvision)? Сейчас одно ядро только работает.

И еще вопрос. Если перейти с AMS на просто спайс - быстрее будет моделироваться? Мне бы этого очень не хотелось, поскольку тестбенч написан на верилоге, но ради существенного ускорения я готов пойти на жертвы.
Go to the top of the page
 
+Quote Post
krux
сообщение Mar 16 2016, 19:11
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата
схема на ~10k транзисторов моделируется 4-6 часов

это post-layout ?

вобщем-то, альтернатива - это Mentor Analog FastSPICE, но мы его не покупали, поэтому не подскажу.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Mar 16 2016, 19:17
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(krux @ Mar 16 2016, 22:11) *
это post-layout ?

Нет, это голая транзисторная схема, без паразитов.
Go to the top of the page
 
+Quote Post
Losik
сообщение Mar 17 2016, 07:32
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 453
Регистрация: 22-04-07
Пользователь №: 27 235



Большинство фич для ускорения поддерживаются только в новых версиях INCESIV(например с 13.1)
AMS обычно медленнее чем AS.
Для ускорение моделирования аналоговой части посредством спектры нужно ей передать пару ключей
+aps и +mt=8 это подключит более быстрое ядро для расчетов и распределит на 8 процессоров(можно больше, если позволяют лицензии)
+errpreset= liberal установит низкую точность моделирования, если не хватит то нужно установить moderate или conservative
ncsim -analogControl ./amsControlSpectre.scs -simcompat spectre -spectre_args +aps +errpreset= liberal -spectre_args +mt=8
также точность можно установить передав параметры аналоговому ядру через файл amsControlSpectre.scs
simulator lang=spectre
simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12

или же ввести их в консоли:
ncsim> analog -reltol 0.001
ncsim> analog -vabstol 1m
ncsim> analog -iabstol 1e-12
они влияют на точность моделирования. можно делать так, запустить схему с низкой точностью
ncsim> analog -reltol 0.01
ncsim> run 100 ns
потом, когда в ней все установится, переключиться на большую точность
ncsim> analog -reltol 0.002
ncsim> run 100 ns

можно также использовать UltraSim симулятор(он включен в пакет INCESIV), он позволяет более быстро моделировать смешанные схемы посредством указания точности моделирования для каждого блока в отдельности, также поддерживает в новых версиях опцию +mt.





Go to the top of the page
 
+Quote Post
Shivers
сообщение Mar 17 2016, 10:59
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Это просто праздник какой то, спасибо!

К многоядерностью не получилось (возможно, лицензия такая, надо выяснить), а вот
ncsim> analog -reltol 0.01
ncsim> run 100 ns
ncsim> analog -reltol 0.002
ncsim> run 100 ns
Это очень мощно помогло!
Скажите, а можно эти команды (analog -reltol, run) вставлять прямо в тестбенч в конструкцию initial begin .. end?
Go to the top of the page
 
+Quote Post
Losik
сообщение Mar 17 2016, 13:02
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 453
Регистрация: 22-04-07
Пользователь №: 27 235



>>К многоядерностью не получилось
тут проблема или в лицензии(посмотрите лог лиц сервера) или в версии программы.

>>Скажите, а можно эти команды (analog -reltol, run) вставлять прямо в тестбенч в конструкцию initial begin .. end?
этого не знаю, задавал только через файл или через консоль.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Mar 17 2016, 15:17
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Еще вопрос.
Питание я задаю в amscf.scs с помощью конструкции
amsd{
ie vsup=1
}

А как задать температуру? И можно ли как то менять Process?
Go to the top of the page
 
+Quote Post
psygash
сообщение Mar 17 2016, 15:44
Сообщение #30


Частый гость
**

Группа: Свой
Сообщений: 199
Регистрация: 8-09-05
Из: Зеленоград
Пользователь №: 8 390



В amsControlSpectre.scs задается:
simulatorOptions options temp=27.0 tnom=27 scale=1.0 scalem=1.0 \
reltol=100e-6 vabstol=1e-6 iabstol=1e-12 homotopy=all limit=delta \
gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 digits=5 pivrel=1e-3 \
checklimitdest=psf

Process в смысле модели?

как include их делайте
Go to the top of the page
 
+Quote Post
Shivers
сообщение Mar 17 2016, 16:45
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(psygash @ Mar 17 2016, 18:44) *
simulatorOptions options temp=27.0 tnom=27

Здорово, спасибо! Помогло.
Про Process ерунду спросил, сорри. Забыл, что модели для разных углов есть.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 10:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01599 секунд с 7
ELECTRONIX ©2004-2016