Перейти к содержанию
    

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

Losik

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Losik

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

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

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

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

 

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

 

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

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо!

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно ли для этих целей использовать Modelsim? Скармливать ему sdf и нетлист из design compiler?

Уступает ли этот метод тому же vcs?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

это post-layout ?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

ncsim> analog -reltol 0.01

ncsim> run 100 ns

ncsim> analog -reltol 0.002

ncsim> run 100 ns

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще вопрос.

Питание я задаю в amscf.scs с помощью конструкции

amsd{

ie vsup=1

}

 

А как задать температуру? И можно ли как то менять Process?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...