Stas 1 3 декабря, 2008 Опубликовано 3 декабря, 2008 · Жалоба Тестировал модель с учетом задержек в Modelsim. На вход устройства (ресинхронизатор) подается сигнал с тактовой частотой, отличной от частоты устройства. Блок ресинхронизации представляет из себя 3 последовательно включенных триггера. В один момент когда для первого триггера ресинхронизатора не выполняется время setup/hold на выходе появляется неопределенный уровень "x". С каждым тактом он продвигается по всем 3 регистрам и проходит внутрь исполнительного устройства, ввергая по пути все сигналы в глубокий 'x'. Как можно переопределить состояние 'x' скажем в 0 или 1 для корректного моделирования подобной ситуации? (для Verilog). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 3 декабря, 2008 Опубликовано 3 декабря, 2008 · Жалоба быстрое решение - использовать двух уровневые типы типа bit вместо reg, если не устраивает, то можно ещё подумать (в сторону каких-нибудь инерциальных задержек) ЗЫ: а потом, если не выполняется setup/hold - то это проблема иного порядка - метастабильность в системе, такого быть не должно (вроде б) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neptune-1 0 3 декабря, 2008 Опубликовано 3 декабря, 2008 · Жалоба Можно задать опцию +no_notifier для vsim. Временные ошибки будут вываливаться, но в Х триггера уходить не будут Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба ЗЫ: а потом, если не выполняется setup/hold - то это проблема иного порядка - метастабильность в системе, такого быть не должно (вроде б) вот как раз в синхронизаторе такое быть должно %) автору либо пачить либо обходить настройками симуляции Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
id_gene 0 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Нужно отключить проверку setup/hold только на регистрах синхронизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim 0 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Можно задать опцию +no_notifier для vsim. Временные ошибки будут вываливаться, но в Х триггера уходить не будут Не знал, спасибо. Как-нибудь попробую. Если такое будет работать, то это круто!!! И не надо никого патчить :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ig_d 0 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба В файле .sdf обнулить setup и hold между clk и D входом для первого!!! триггера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stas 1 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Спасибо. Буду пробовать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lim 0 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Тестировал модель с учетом задержек в Modelsim. На вход устройства (ресинхронизатор) подается сигнал с тактовой частотой, отличной от частоты устройства. Блок ресинхронизации представляет из себя 3 последовательно включенных триггера. В один момент когда для первого триггера ресинхронизатора не выполняется время setup/hold на выходе появляется неопределенный уровень "x". С каждым тактом он продвигается по всем 3 регистрам и проходит внутрь исполнительного устройства, ввергая по пути все сигналы в глубокий 'x'. Как можно переопределить состояние 'x' скажем в 0 или 1 для корректного моделирования подобной ситуации? (для Verilog). Если работаете в ISE 10.1, то есть такое CONSTRAINTS: ASYNC_REG Description The ASYNC_REG timing constraint improves the behavior of asynchronously clocked data for simulation. Specifically, it disables 'X' propagation during timing simulation. In the event of a timing violation, the previous value is retained on the output instead of going unknown. Правда XILINX рекомендует использовать его в КРАЙНЕМ случае, а говорит, что вход надо обязательно синхронизировать. Интересно КАК это сделать не получив на первом триггере "X" ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 14 июня, 2009 Опубликовано 14 июня, 2009 · Жалоба Хоть у меня и новый вопрос, но я решил всё-таки продолжить эту тему, т.к. тема идентична. Есть Xilinx ISE от 8.1 до 11.1 и ModelSim'ы SE 6.2f и SE 6.4c. Везде видел нижеизложенную проблему, хоть и чуть-чуть по разному. Проблема такая: при попытке промоделировать в ModelSim Post P&R VHDL модель (конечно вместе с SDF), внутренний сигнал GSR (Global Set/Reset) поочерёдно проходит 3 состояния: '1', 'X' и '0', естественно после состояния 'X' все триггера раскорячивает в 'X'. В ISE'ях вплоть до 9.2 с ModelSim SE 6.2f удавалось победить такое поведение путём уменьшения импульса GSR со стандартных 100ns до 5 - 20ns - конечно, это было неприятно, но коли удавалось обходить, то и тему не создавал. А вот с ISE 11.1 и ModelSim SE 6.4c не удалось обойти этот неприятный глюк. Может кто подскажет, как победить некорректное поведение Model Sim ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 14 июня, 2009 Опубликовано 14 июня, 2009 · Жалоба Проблема такая: при попытке промоделировать в ModelSim Post P&R VHDL модель (конечно вместе с SDF), внутренний сигнал GSR (Global Set/Reset) поочерёдно проходит 3 состояния: '1', 'X' и '0', естественно после состояния 'X' все триггера раскорячивает в 'X'. В ISE'ях вплоть до 9.2 с ModelSim SE 6.2f удавалось победить такое поведение путём уменьшения импульса GSR со стандартных 100ns до 5 - 20ns - конечно, это было неприятно, но коли удавалось обходить, то и тему не создавал. А вот с ISE 11.1 и ModelSim SE 6.4c не удалось обойти этот неприятный глюк. Сам спросил - сам и отвечу: Всё дело в том, что я моделировал многоПЛИСовый проект, а сигнал GSR находится в VCOMPONENTS... и является общим для всех ПЛИС, поэтому, если в различных проектах по разному задано время GSR, то именно на эту разницу и появляется 'X' (несколько источников сигнала (ROC) работают на одну линию (GSR)). Глюк получился совместным: когда делали библиотеки для ISE явно не предполагали такого моделирования, а ModelSim не смог в DataFlow показать источники GSR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться