Angel 0 5 марта, 2005 Опубликовано 5 марта, 2005 · Жалоба Использую Xilinx 6.1 + ModelSim. Подскажите пожалуйста как симулировать пост P&R? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gorby 6 8 марта, 2005 Опубликовано 8 марта, 2005 · Жалоба шаг 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gorby 6 8 марта, 2005 Опубликовано 8 марта, 2005 · Жалоба Post P&R симулирование - обязательное (но недостаточное) условие работоспособности вашего дизайна в целом. Рекомендую симулировать на тактовой частоте, процентов на 10 большей чем рабочая. Таким образом вы будете иметь 10%-й запас по скорости на случай высокой температуры, пониженного напряжения и проч. Очень внимательно отнеситесь к предупреждениям Моделсима типа setup time violation, hold time violation и другим. Их наличие обычно означает присутствие в вашем дизайне "тонких" мест, не затронутых констрейнами. По умолчанию загружаются только интерфейсные сигналы вашего дизайна - входы и выходы. Если нужно видеть внутренности, создаем свой собственный вейв: ЗАКРЫВАЕМ окно с временными диаграммами и создаем новое такой командой: add wave -r /* Может занимать много времени на больших дизайнах. Потом как обычно запускаем на моделирование. Не забываем, что моделировать начнет с того места, на котором прежде остановилось. Если нужно с нуля и все сигналы, тогда немного сложнее. На пальцах: Закончить симуляцию Simulation->End Simulation Затем скопировать в буфер строку команды, которую моделсим выполнил для начала симуляции - вы ее увидите в логе. Вставить ее из буфера в командную строку и запустить. А уж потом создать полный вейв и симулировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Angel 0 8 марта, 2005 Опубликовано 8 марта, 2005 · Жалоба Для функциональной симуляции я пользовался макро-файлами, которые запускал через Execute Macro. А как теперь, что с ними делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
13pm 0 8 марта, 2005 Опубликовано 8 марта, 2005 · Жалоба Привет, земляки! :) Это мой первый пост, так что не обессудьте если что не так. ;) Есть некоторый опыт работы с симуляторами, помогу чем смогу, как говорится. :) Итак, моделируются 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grumbler_2002 0 8 марта, 2005 Опубликовано 8 марта, 2005 · Жалоба Зачем такие сложности с компиляцией библиотек? Надо просто скомпилить с помощью ISE, а потом прописать пути к библиотекам в INI-файле Моделсима. Быстро и просто. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Angel 0 8 марта, 2005 Опубликовано 8 марта, 2005 · Жалоба Спасибо за советы, буду копать :) Пишите кто как симулирует. А то я вижу у каждого свои методы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
13pm 0 9 марта, 2005 Опубликовано 9 марта, 2005 · Жалоба Зачем такие сложности с компиляцией библиотек? Надо просто скомпилить с помощью ISE, а потом прописать пути к библиотекам в INI-файле Моделсима. Быстро и просто. <{POST_SNAPBACK}> Почему сложности? :) По-моему выбрать в ISE компиляцию библиотек или набрать в MTI "do comp.do" - одинаково по "сложности". :) А прописывать пути в INI-файле все равно надо, так что какая разница какие? (Хотя, в моем случае эти пути будут "ближе". :)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rok 0 11 марта, 2005 Опубликовано 11 марта, 2005 · Жалоба Казалось бы, все просто, но я предлагаю компилировать билиотеки несколько иначе - непосредственно в 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 ] снять аттрибут "только чтение", так он еще и пути все пропишет в этом файле. Так что тоже удобно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grumbler_2002 0 11 марта, 2005 Опубликовано 11 марта, 2005 · Жалоба В ISE 6.1 и выше, по-моему, не надо запускать никакой файл. Просто в менеджере проекта есть соответствующий пунктик, запустив оный после некоторой настройки, получаешь тербуемый результат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
13pm 0 12 марта, 2005 Опубликовано 12 марта, 2005 · Жалоба Так что тоже удобно. Согласен. :)) Однако, поскольку библиотеки - это что-то относящееся все-таки больше к симулятору, а не к ISE, то лично я люблю "делать это" со стороны симулятора. :)) К тому же, не только Xilinx'овские библиотеки бывает нужно компилировать... ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться