Jump to content

    
Sign in to follow this  
v_mirgorodsky

Симуляция верилог совместно со спайс-нетлистом

Recommended Posts

Losik

Заработало, спасибо!

И еще два вопроса.

1. Можно ли в INCISIVE выводить на вейвформу ток питания, и результаты функций калькулятора как в Virtuoso, - интегрировать ток, считать мощность, и т.д.?

2. Как реализовано управление питанием? Если я хочу его повысить/понизить, задать синусоидой и т.д.

Share this post


Link to post
Share on other sites

1. Такие функции в simvision недоступны.

2. Можно описать и подключить источник питания на VerilogA. Например, синус

http://www.eda.org/verilog-ams/models/V_sine_generator.va

Share this post


Link to post
Share on other sites
Можно описать и подключить источник питания на 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, и можно считать мощность?

Share this post


Link to post
Share on other sites
Losik

Заработало, спасибо!

И еще два вопроса.

1. Можно ли в INCISIVE выводить на вейвформу ток питания, и результаты функций калькулятора как в Virtuoso, - интегрировать ток, считать мощность, и т.д.?

2. Как реализовано управление питанием? Если я хочу его повысить/понизить, задать синусоидой и т.д.

 

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

 

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

или вы хотите менять питание на цифре?

 

на верилоге-а не обязательно писать, все должно измеряться для аналоговой части в тесте. нужно использовать probe.

что-то в виде probe -create -flow -shm -ports top.V0.PLUS

ключи в команде могут быть другие, почитайте мануал

Share this post


Link to post
Share on other sites

Спасибо!

Интегрировать я пока не научился (в SimVision калькуляторе такой опции не нашел), но стало понятно, куда копать дальше. Мне нужно считать удельное потребление на операцию в цифро-аналоговом блоке (тестовое окружение на поведенческом верилоге не считается). Думаю, в разрыв питания можно вставить токосъемный резистор 0 Ом, а дальше уже можно что то придумать. Источник на verilog-a я прикрутил - все работает.

Share this post


Link to post
Share on other sites

Меня здесь интересовало немного другое - аналогово-цифровое моделирование. А Вы про цифровое спрашиваете.

Для цифрового, конечно - менторовский Modelsim/Questa вполне подойдут. Тормознее чем vcs или irun, но для небольших проектов - вполне годятся.

Share this post


Link to post
Share on other sites

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

Может быть, можно как то задействовать многоядерность (моделирую в CDS irun/simvision)? Сейчас одно ядро только работает.

 

И еще вопрос. Если перейти с AMS на просто спайс - быстрее будет моделироваться? Мне бы этого очень не хотелось, поскольку тестбенч написан на верилоге, но ради существенного ускорения я готов пойти на жертвы.

Share this post


Link to post
Share on other sites
схема на ~10k транзисторов моделируется 4-6 часов

это post-layout ?

 

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

Share this post


Link to post
Share on other sites

Большинство фич для ускорения поддерживаются только в новых версиях 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.

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

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

 

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

ncsim> analog -reltol 0.01

ncsim> run 100 ns

ncsim> analog -reltol 0.002

ncsim> run 100 ns

Это очень мощно помогло!

Скажите, а можно эти команды (analog -reltol, run) вставлять прямо в тестбенч в конструкцию initial begin .. end?

Share this post


Link to post
Share on other sites

>>К многоядерностью не получилось

тут проблема или в лицензии(посмотрите лог лиц сервера) или в версии программы.

 

>>Скажите, а можно эти команды (analog -reltol, run) вставлять прямо в тестбенч в конструкцию initial begin .. end?

этого не знаю, задавал только через файл или через консоль.

Share this post


Link to post
Share on other sites

В 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 их делайте

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this