Привет, земляки! :) Это мой первый пост, так что не обессудьте если что не так. ;)
Есть некоторый опыт работы с симуляторами, помогу чем смогу, как говорится. :)
Итак, моделируются 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