EgorT 0 27 января, 2014 Опубликовано 27 января, 2014 · Жалоба Всем привет! Рассматриваю вопрос задания констрейнов для комбинационной логики в таймквесте. Вобщем простой пример: есть у меня сигнал, который ничем не тактируется, приходит на порт ФПГА, грубо говоря, самопроизвольно и когда захочет, не зависит от каких-либо внешних клоков. Попадая внутрь ФПГА сразу направляется на элемент И-НЕ, после элемента И-НЕ попадает на синхронную логику. Можно ли вот так подавать сигналы сразу на комбинационную логику? Как задать в этом случае констрейны в таймквест для входного порта? Как задать констрейны для пути от входного порта до синхронной логики? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 27 января, 2014 Опубликовано 27 января, 2014 · Жалоба 2 EgorTol а что у вас приходит на второй порт элемента И-НЕ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 27 января, 2014 Опубликовано 27 января, 2014 · Жалоба В общем, так подавать сигналы на комбинационную логику можно. На последовательную тоже можно, но, осторожно... Возможно, нужно описать set_min_delay и set_max_delay для пути входной порт -> выходной порт, если это важно, и между ними только комбинационная логика... Возможно, set_input_delay для пути от этого порта к синхронной схеме... Возможно, надо поставить один-два триггера-синхронизатора.... сложно все это сказать, не зная собственно самой схемы и требований к ней Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZASADA 0 27 января, 2014 Опубликовано 27 января, 2014 · Жалоба не совсем понимаю какие могут быть констрейны на чисто случайный асинхронный внешний сигнал. может сразу на входе застробировать его высокой внутренней частотой и потом спокойно использовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
the_king_orange_summer 0 28 января, 2014 Опубликовано 28 января, 2014 · Жалоба не совсем понимаю какие могут быть констрейны на чисто случайный асинхронный внешний сигнал. может сразу на входе застробировать его высокой внутренней частотой и потом спокойно использовать? вмешаюсь немного. а вот если его застробить частотой - тут разве будет корректно работать и не может получиться метастабильности на этом триггере? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EgorT 0 28 января, 2014 Опубликовано 28 января, 2014 (изменено) · Жалоба 2 EgorTol а что у вас приходит на второй порт элемента И-НЕ? Ошибочка вышла, элемент не И-НЕ, а исключающее или. На второй порт элемента подаётся тоже асинхронный сигнал, который внутри фпга генерируется. Получается, что надо измерить интервал между приходами сигналов. В общем, так подавать сигналы на комбинационную логику можно. На последовательную тоже можно, но, осторожно... Возможно, нужно описать set_min_delay и set_max_delay для пути входной порт -> выходной порт, если это важно, и между ними только комбинационная логика... Возможно, set_input_delay для пути от этого порта к синхронной схеме... Возможно, надо поставить один-два триггера-синхронизатора.... сложно все это сказать, не зная собственно самой схемы и требований к ней Все сигналы остаются внутри, на выходные порты ничего не идёт, поэтому наверное путь входной порт -> выходной порт не надо описывать. Вот насчет пути от порта до синхронной схемы не знаю. не совсем понимаю какие могут быть констрейны на чисто случайный асинхронный внешний сигнал. может сразу на входе застробировать его высокой внутренней частотой и потом спокойно использовать? Я тоже не понимаю, зачем они нужны, но в таймквесте остаются незаконстрейненные порты и пути, а каких констрейнить, если они асинхронные? Вот мини-схемка: Вобщем таймквест пишет, что не законстрейнен порт AS и не законстрейнен путь от порта AS до триггера D с клоком CLK)) Изменено 28 января, 2014 пользователем EgorTol Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
the_king_orange_summer 0 28 января, 2014 Опубликовано 28 января, 2014 (изменено) · Жалоба Я тоже не понимаю, зачем они нужны, но в таймквесте остаются незаконстрейненные порты и пути, а каких констрейнить, если они асинхронные? set_false_path -from ["входы"] -to [all_clocks] ??? Изменено 28 января, 2014 пользователем the_king_orange_summer Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EgorT 0 28 января, 2014 Опубликовано 28 января, 2014 · Жалоба set_false_path -from ["входы"] -to [all_clocks] ??? Возможно. А моделсим потом не будет ругаться? Просто вопрос появился из-за того, что моделсим выдаёт ошибку при симуляции, сначала все нормально идёт, а потом бац!: Error: C:/altera/13.1/modelsim_ase/win32aloem/../altera/verilog/src/altera_primitives.v(289): $hold( posedge clk &&& nosloadsclr:3388811 ps, d:3388957 ps, 212 ps ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 28 января, 2014 Опубликовано 28 января, 2014 · Жалоба Никакой констрейн не нужен вообще в этом случае. И set_false_path тоже - он предназначен для убирания конкретного пути из множества обконстрейненных, так что, сам по себе констрейном не является. Единственное, что возможно нужно - это не один триггер входной, а еще один-два дополнительных перед ним. Этот "бац" - совершенно естественный и нормальный. Он показал, что вот в это время могла бы быть метастабильность. Ищите, как отключить проверку этой ошибки для этого триггера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EgorT 0 28 января, 2014 Опубликовано 28 января, 2014 · Жалоба Никакой констрейн не нужен вообще в этом случае. И set_false_path тоже - он предназначен для убирания конкретного пути из множества обконстрейненных, так что, сам по себе констрейном не является. Единственное, что возможно нужно - это не один триггер входной, а еще один-два дополнительных перед ним. Этот "бац" - совершенно естественный и нормальный. Он показал, что вот в это время могла бы быть метастабильность. Ищите, как отключить проверку этой ошибки для этого триггера. То есть после XOR поставить еще триггер? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 28 января, 2014 Опубликовано 28 января, 2014 · Жалоба То есть после XOR поставить еще триггер? А какая реальная частота тактовая? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EgorT 0 28 января, 2014 Опубликовано 28 января, 2014 · Жалоба А какая реальная частота тактовая? Я рассчитываю как минимум на 200 МГц. Триггер тактируется 200 МГц. Если получится выше, то сделаю выше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 28 января, 2014 Опубликовано 28 января, 2014 · Жалоба Я рассчитываю как минимум на 200 МГц. Триггер тактируется 200 МГц. Если получится выше, то сделаю выше. Тогда, как минимум один добавить, а лучше два - если схема позволяет там такую задержку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EgorT 0 28 января, 2014 Опубликовано 28 января, 2014 · Жалоба Тогда, как минимум один добавить, а лучше два - если схема позволяет там такую задержку. Хорошо, добавлю, спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 28 января, 2014 Опубликовано 28 января, 2014 · Жалоба Хорошо, добавлю, спасибо. Но это не снимет проблемы моделирования на первом триггере. Ищите как выключить эту проверку для этого триггера, правда не знаю где искать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться