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

ТИП МОДЕЛИРОВАНИЯ MODELISM

Возник дурацкий вопрос:

как правильно позиционировать MODELSIM?

 

- event-driven simulator

 

или

 

- cycle-based simulator

 

?

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


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

Возник дурацкий вопрос:

как правильно позиционировать MODELSIM?

 

- event-driven simulator

 

или

 

- cycle-based simulator

 

?

 

 

IMHO, он одинаково поддерживает оба вида моделирования:

 

Cycle-based simulator : Cycle simulation is a technique (i.e. an algorithm) for digital circuit simulation. It does not simulate detailed circuit timing, but instead computes the steady state response of a circuit at each clock cycle. The user cannot see the glitch behavior of signals between clock cycles. Instead the user observes circuit signals once per clock cycle. Cycle based simulators work with only synchronous designs.

 

Event based : Simulation based on events in logic, which means, when ever there is change in a input event, the output is evaluated. This makes the simulation very slow compared to Cycle based simulators. Verilog-XL is an event-driven simulator.

 

Могу ошибаться, но...

 

 

По ссылке есть некоторая информация по вопросу:

http://www-cad.eecs.berkeley.edu/~nardi/EE...ec13_bw_2xp.pdf

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


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

Правильно ли я понял, что если проводится функциональное моделирование (чистый RTL) то это будет тот самый CBS

Если врубаем задержки – все становится EDS...

Все слова применительно к моделсиму.

 

Однако в CBS видимо должен быть специальный CLOCK, относительно которого производятся замеры.

 

 

Кстати, спасибо за доку!

Действительно интересные картинки ;)

Теперь даже рисовать не надо!

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


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

В CBSе чаще всего имеется так называемый системный (опорный) клок, являющийся глобальным событием. Это не пользовательский, а чисто внутренний по отношению к симулятору, но внешний и отдельно бегущий по отношению к моделируемому устройству. По большому счету - CBS - это частный случай EBS. Именно за счет этого глобального клока симулируются проекты, содержащие различные синхродомены. Это из теории разработки подобного ПО. Можно нарыть побольше информации по теме.

 

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

 

Точность моделирования (частота того самого системного клока) задается пользователем и чаще всего составляет 1 ps.

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


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

Хммм... Получается, что моделсим это именно CBS, поскольку в нем есть понятие дискретного моделирования. где величина дискреты задается пользователем например с помощью timescale.

Впринципе эта дискрета может быть интерпретирована как некий внутренний клок.

 

Ведь все события которые могут быть описаны в моделе будут привязаны именно к этой сетке... откуда же тогда EDS?

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


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

Хммм... Получается, что моделсим это именно CBS, поскольку в нем есть понятие дискретного моделирования. где величина дискреты задается пользователем например с помощью timescale.

Впринципе эта дискрета может быть интерпретирована как некий внутренний клок.

 

Ведь все события которые могут быть описаны в моделе будут привязаны именно к этой сетке... откуда же тогда EDS?

 

Думаю, что в случае EDS перерасчет схемы делается по любому событию, приходящему от любого источника. Другими словами, timescale здесь не применяется вообще, ибо нет нужды. Если значение любого сигнала меняется - перерассчитывается все устройство и так - для каждого события.

 

Могу ошибаться, но по логике вещей должно быть так...

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


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

Да, получается именно так.

 

В моделсиме, модель перерасчитывается только по внутренним дискретам, величина которых задавается пользователем.

 

И правильно ли я понимаю, что в EDS понятие модельного времени впринципе отсуствует... Конечно, если пользователь не сделал своего собственно временного таймера?

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


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

Да, получается именно так.

 

В моделсиме, модель перерасчитывается только по внутренним дискретам, величина которых задавается пользователем.

 

И правильно ли я понимаю, что в EDS понятие модельного времени впринципе отсуствует... Конечно, если пользователь не сделал своего собственно временного таймера?

 

Да, модельное время отсутствует в EDS. Его учет не ведется автоматически, и это дело пользователя.

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


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

Вот! Значит родилась истина! ;)

 

Если в системе моделирования отсуствует понятие модельного врмени, значит эта система моделирования позиционируется как

система моделирования типа EVENT DRIVEN SIMULATION.

 

Если в системе моделирования присутвует встренные середства для анализа модельного времени, значит это CYCLE BASED SIMULATION.

 

TEMA ЗАКРЫТА: MODELSIM это CBS.

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


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

Думаю, что в случае EDS перерасчет схемы делается по любому событию, приходящему от любого источника. Другими словами, timescale здесь не применяется вообще, ибо нет нужды. Если значение любого сигнала меняется - перерассчитывается все устройство и так - для каждого события.

 

Могу ошибаться, но по логике вещей должно быть так...

 

Пардон, что вмешиваюсь, но timescale, AFAIK, имеет несколько опосредованное отношение к событиям и шагу моделирования. timescale задает просто размерность временнЫх единиц, используемых при симуляции (и дискретность отображения - то, что там через слэш пишется). А моделирование, по идее, в общем случае всегда получается event-driven - как и было уже сказано, cycle-driven есть частный случай. Т.е. симулятор всегда после события обновляет состояние моделируемой системы. А что там за событие - фронт ли клока или еще какое изменение - это уже другой вопрос.

 

Кстати, ведь на симуляторе, будь он МоделСим или еще какой АктивХДЛ, :) можно моделировать и асинхронные системы. Тут cycle-driven вообще мимо.

 

timescale же просто придает безликим цифрам #n более человеческий смысл - во временнЫх единицах.

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


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

To dxp.

В "железе", которое моделируется программой симулятора, события происходят одновременно. Программма-симулятор может исполнять события только последовательно, поэтому она вводит дискретную переменную - время с шагом, указываемым вторым параметром директивы `timescale, и составляет списки событий - свой список для каждого шага. События из списка выполняются последовательно;

окончив выполнять список симулятор переходит от i временного шага к i+1 и реализует составленный для этого шага список событий.

Такой механизм работы симулятора, по крайней мере Verilog-симулятора, приводился в одной статье по Verilog.

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


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

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

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

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

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

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

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

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

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

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