3.14 0 14 января, 2005 Опубликовано 14 января, 2005 (изменено) · Жалоба ISE + ModelSim verilog. Как коректнее подменить модель регистра из для определенного инстанса. Смысл страданий. Если "правильно" моделировать "синхронизатор" (два последовательных регистра), то возникает трабл с $setup. Можно в UCF для первого регистра поставить констрейн "ASYNC_REG", но хочется и по другому уметь ... Теперь о деталях. Не понятность в том чтоб в результирующем design_timesim.v для первого регистра использовалась моделька не из SIMPRIMS_VER библиотеки, а из компилируемой (поправленной из SIMPRIMS). Можно конечно ручками это творить, ну больно не удобно. Посмотрел в сторону принципа работы с CoreGen, понял следующее: CoreGen-овские библиотеки используются только для "Simulate Behavioral Mode". Изменено 18 января, 2005 пользователем 3.14 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 18 января, 2005 Опубликовано 18 января, 2005 · Жалоба общий ответ, так как смотрю не налетают с конкретными советами :) можно попробовать переопределить блок specify для данного модуля - то есть описать этот регистр отдельно и ему specify вписать чтобы не нарушалось $setup(...) $hold(...) либо вообще ничего не вписывать (вдруг затрет дефолтные) endspecify или ключи вызова синтезатора посмотреть - может там есть запрет на timing check по указанной цепи (в Verilog-XL вроде есть) никогда не делал такого - всегда мусор сыпется :) а его потом разбирал (в *nix-е можно налету через | grep) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 18 января, 2005 Опубликовано 18 января, 2005 · Жалоба <то есть описать этот регистр отдельно и ему ...> Так вот, я бы рад, его отдельно описать, но встает вопрос, как указать чтоб этому регистру бралась "левая модель"? <или ключи вызова синтезатора посмотреть ...> Смотрел для Sinplify, не нашел :( А что такое "*nix"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 19 января, 2005 Опубликовано 19 января, 2005 · Жалоба наверно при моделировании нетлиста так нельзя (я не понял при чем Simplify? ведь вопрос про симуляторы и сорри за мою описку) - так как specparam воздействует на все инстансы *nix - типа Юних, Линух и прочие POSIX-ы ------------------------ ну вот взглянул доку (на моделсим :-) ) команд референс - и вижу там команду assertion pass The assertion pass command configures simulator behavior in response to an assertion pass судя по описанию она позволяет запретить определенное сообщение (от выбраного элемента) или вот tcheck_set вобщем надо разбираться :) ------------------ но кроме назойливых варнингов из синхронизаторов Х-ы лезут - может вторая команда это борет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 19 января, 2005 Опубликовано 19 января, 2005 · Жалоба <...я не понял при чем Simplify?...> Подумал, может для Sinplify есть что то другое, чем ставить XSTшный ASYNC_REG. Похоже еще возникло и взаимное недопонимание из-за терминов, в голову не приходило что ModelSim то же можно назвать "синтезатор". <команд референс - и вижу там команду assertion pass The assertion pass command configures simulator behavior in response to an assertion pass судя по описанию она позволяет запретить определенное сообщение (от выбраного элемента) или вот tcheck_set > У Вас какой MS? У меня 5.7.с, таких команд нет :( Есть просто ключи, но они позволяют только глобально отключить ошибки и т.п. Есть +nowarm<code>, отключающий не нужные варнинги, но при нарушении $setup, появляется ошибка :( <но кроме назойливых варнингов из синхронизаторов Х-ы лезут - может вторая команда это борет > Не понял, когда ставиш ASYNC_REG, X-ы уже не лезут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 20 января, 2005 Опубликовано 20 января, 2005 · Жалоба ключи, но они позволяют только глобально отключить ошибки и т.п. Есть +nowarm<code>, отключающий не нужные варнинги, но при нарушении $setup, появляется ошибка :( Не понял, когда ставиш ASYNC_REG, X-ы уже не лезут. <{POST_SNAPBACK}> это не ключи, это команды tcl скрипта (то, что XST любит расширением .do называть, но вроде для тайм-чека есть и какие-то ключи) а симулятор прямо из местного ftp ну и для полной ясности - когда я назвал ModelSim синтезатором - я описАлся (переклинило слегка) а про то что Х-не лезут - понять не могу - ведь задача $setup, $hold кроме генерации текста - сбрасывают триггер в Х (другое дело, что при правильной разводке этот Х никуда не пролезет, но кроме правильной лично я часто применяю и "неправильную" - лишь бы работало) но мое мнение по теме не изменилось - фильтровать выход, а не пытаться накрутить мозги симулятору Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 20 января, 2005 Опубликовано 20 января, 2005 · Жалоба <а про то что Х-не лезут - понять не могу - ведь задача $setup, $hold кроме генерации текста - сбрасывают триггер в Х (другое дело, что при правильной разводке этот Х никуда не пролезет, но кроме правильной лично я часто применяю и "неправильную" - лишь бы работало) но мое мнение по теме не изменилось - фильтровать выход, а не пытаться накрутить мозги симулятору> Что то мы с Вами где то не стыкуемся ;) Если в ISE приклеить к инстансу ASYNC_REG и подавать не него данные "как попало" симулятор пишет в логе ошибку , а времянку строит правильно (без Х). До настоящего времени, при анализе "синхронизаторов" приходилось следить за временем появления данных на входе, иначе один появившийся Х, рушил все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться