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

Cимуляция пост P&R временных моделей

шаг 1.

Добиваемся, чтобы проект синтезировался и разводился.

Похоже, вы этого уже добились.

шаг 2.

Если Тест бенча в вашем проекте еще нет, то надо его создать.

в ISE 6.2 это будет Project->NewSource->VHDL_Test_bench и не забыть поставить галочку на опции "добавить в проект". Оно создаст ЗАГОТОВКУ вашего тест-бенча. Потом его надо поправить руками - завести стимулы.

шаг 3. Стать на этот файл в дереве проекта и и запустить задачу Simulate Post Place & Route VHDL model.

 

Атоматически запустится Моделсим и просимулирует ваш бенч до 1000 наносекунд и остановится. Нужно больше - нажимайте кнопку "Run -all". Не забудьте нажать "Стоп" когда нужное время пройдет. Внимательно поизучайте кнопки на тулбаре Моделсима - они помогут.

 

Если совсем нет опыта, посмотрите мой бенч - для примера. Только расширение vhd not txt - местный форум сказал, что я не имею прав пересылать файл с расширением VHD. :(

bench.txt

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


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

Post P&R симулирование - обязательное (но недостаточное) условие работоспособности вашего дизайна в целом. Рекомендую симулировать на тактовой частоте, процентов на 10 большей чем рабочая. Таким образом вы будете иметь 10%-й запас по скорости на случай высокой температуры, пониженного напряжения и проч. Очень внимательно отнеситесь к предупреждениям Моделсима типа setup time violation, hold time violation и другим. Их наличие обычно означает присутствие в вашем дизайне "тонких" мест, не затронутых констрейнами.

 

По умолчанию загружаются только интерфейсные сигналы вашего дизайна - входы и выходы. Если нужно видеть внутренности, создаем свой собственный вейв: ЗАКРЫВАЕМ окно с временными диаграммами и создаем новое такой командой:

add wave -r /*

Может занимать много времени на больших дизайнах.

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

 

На пальцах: Закончить симуляцию Simulation->End Simulation

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

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


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

Для функциональной симуляции я пользовался макро-файлами, которые запускал через Execute Macro. А как теперь, что с ними делать?

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


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

Привет, земляки! :) Это мой первый пост, так что не обессудьте если что не так. ;)

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

 

Итак, моделируются post-P&R-модели так же как и post-map, да и любые другие. :)

Буду подробно, на всякий случай, т.к. не знаю глубину проблемы Angel'а, и учитывая что за прошедшие 3 дня никто человеку не ответил. :)

В принципе, Angel, основы описаны в документации ISE (Xilinx\doc\usenglish\books\docs\sim\sim.pdf). Мой пост будем считать авторизованным переводом с дополнениями раздела "Verifying Your Design/Simulation Flows/ModelSim Vlog". :)

Рассмотрим моделирование Verilog-модели (Xilinx ISE 6.3.03i + ModelSim SE 6.0a).

 

Заметим, что нетлист (post-P&R-модель) содержит множество инстанций библиотечных элементов (в случае post-P&R нетлиста - модулей из библиотеки simprim). Как правильно замечено в упомянутом документе, есть два пути подключения билиотек :

1) указывать компилятору (vlog) где искать source-файлы и компилировать их в рабочую библиотеку

2) использовать заранее скомпилированную библиотеку simprim, подключая ее при инициализации моделирования (vsim)

 

Учитывая, что в автоматически генерируемом макросе (.tdo) используется второй способ (к тому же, он и более оптимальный), для полного счастья остается только скомпилировать один раз нужные библиотеки. К счастью, Xilinx позаботился и об этом. :)) В меню проекта достаточно кликнуть на девайс и запустить в появившемся ниже "Process View" пункт "Design Entry Utilities/Compile HDL Simulation Libraries". Предварительно в опциях этого пункта надо выбрать для какого симулятора хотим скомпилировать. Откомпилированную библиотеку ISE кладет по умолчанию в Xilinx\verilog\mti_se .

 

Казалось бы, все просто, но я предлагаю компилировать билиотеки несколько иначе - непосредственно в ModelSim'е, чтобы потом симулировать нетлисты можно было не только через ISE (это, в принципе, относится к любому симулятору, Aldec даже для этих целей прикладывает к своим симуляторам уже откомпилированные библиотеки vendor'ов). Для этого надо совершить пару несложных действий:

 

1) собственно, откомпилировать исходники нужной либы (в данном случае Xilinx\verilog\src\simprims\ )

Это, как по мне, проще всего сделать с помощью макроса типа такого:

 

cd $env(MODEL_TECH)/..

vlib simprims_ver

vlog -work simprims_ver $env(XILINX)/verilog/src/simprims/*.v

quit

 

2) прописать в modelsim.ini новую библиотеку

/*Файл modelsim.ini находится в каталоге Modelsim'а и содержит установки по умолчанию.*/

Сделать это нужно в секции [Library], она в самом начале. Прописываем по образу и подобию либ из стандартной поставки, т.е. добавляем строку:

simprims_ver = $MODEL_TECH/../simprims_ver

 

ISE (при соотв. установках) генерирует макрос для MTI, название которого состоит из конкатенации имен симулируемой модели и тестбенча и имеет расширение ".tdo".

В том макросе можно найти такую строку:

vsim ... -L simprims_ver …

Вот этот ключ "-L" и подключает нашу библиотеку.

 

Собственно же моделирование стартуется из ISE выбором файла тестбенча и нажатием пункта "Modelsim Simulator/Simulate Post-Place & Route Verilog Model". :) По сути, ISE просто вызывает ехешник ModelSim'а с макросом в качестве параметра.

 

Для других симуляторов и для VHDL-библиотек процедура аналогичная, меняются только команды/названия. Если нужно - могут расписать в подробностях. ;)

 

P.S. Приаттачил образец макроса для компиляции либы, с расширением .do конечно же нельзя было, пришлось добавить .txt. :)

comp.do.txt

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


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

Зачем такие сложности с компиляцией библиотек? Надо просто скомпилить с помощью ISE, а потом прописать пути к библиотекам в INI-файле Моделсима. Быстро и просто.

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


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

Спасибо за советы, буду копать :)

Пишите кто как симулирует. А то я вижу у каждого свои методы.

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


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

Зачем такие сложности с компиляцией библиотек? Надо просто скомпилить с помощью ISE, а потом прописать пути к библиотекам в INI-файле Моделсима. Быстро и просто.

 

Почему сложности? :) По-моему выбрать в ISE компиляцию библиотек или набрать в MTI "do comp.do" - одинаково по "сложности". :)

А прописывать пути в INI-файле все равно надо, так что какая разница какие? (Хотя, в моем случае эти пути будут "ближе". :))

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


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

Казалось бы, все просто, но я предлагаю компилировать билиотеки несколько иначе - непосредственно в ModelSim'е, чтобы потом симулировать нетлисты можно было не только через ISE (это, в принципе, относится к любому симулятору, Aldec даже для этих целей прикладывает к своим симуляторам уже откомпилированные библиотеки vendor'ов). Для этого надо совершить пару несложных действий:

 

1) собственно, откомпилировать исходники нужной либы (в данном случае Xilinx\verilog\src\simprims\ )

Это, как по мне, проще всего сделать с помощью макроса типа такого:

 

cd $env(MODEL_TECH)/..

vlib simprims_ver

vlog -work simprims_ver $env(XILINX)/verilog/src/simprims/*.v

quit

 

2) прописать в modelsim.ini новую библиотеку

/*Файл modelsim.ini находится в каталоге Modelsim'а и содержит установки по умолчанию.*/

Сделать это нужно в секции [Library], она в самом начале. Прописываем по образу и подобию либ из стандартной поставки, т.е. добавляем строку:

simprims_ver = $MODEL_TECH/../simprims_ver

Ну очень информативный пост, спасибо :a14: .

По-поводу компиляции еще пару строк:

В ISE есть своя програмка, которая компилирует библиотеки, она запускаетя из коммандной строки. Называется она compxlib.

Набираете в команндной строке compxlib -h выдаст полный хелп.

А для того чтобы прокомпилтровать все библиотеки набираем:

compxlib -s mti_se -f all -l all -o c:\xilinx_libs

-s компилируем для mti_se

-f all для всех семейств

-l all для veriloga and vhdl

-o выходная папка

Если же еще с [ m o d e l s i m . i n i ] снять аттрибут "только чтение", так он еще и пути все пропишет в этом файле.

Так что тоже удобно.

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


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

В ISE 6.1 и выше, по-моему, не надо запускать никакой файл. Просто в менеджере проекта есть соответствующий пунктик, запустив оный после некоторой настройки, получаешь тербуемый результат.

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


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

Так что тоже удобно.

Согласен. :))

Однако, поскольку библиотеки - это что-то относящееся все-таки больше к симулятору, а не к ISE, то лично я люблю "делать это" со стороны симулятора. :)) К тому же, не только Xilinx'овские библиотеки бывает нужно компилировать... ;)

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


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

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

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

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

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

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

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

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

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

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