Jump to content

    
Sign in to follow this  
EgorT

Комбинационная логика и TimeQuest

Recommended Posts

Всем привет! Рассматриваю вопрос задания констрейнов для комбинационной логики в таймквесте.

Вобщем простой пример: есть у меня сигнал, который ничем не тактируется, приходит на порт ФПГА, грубо говоря, самопроизвольно и когда захочет, не зависит от каких-либо внешних клоков. Попадая внутрь ФПГА сразу направляется на элемент И-НЕ, после элемента И-НЕ попадает на синхронную логику.

Можно ли вот так подавать сигналы сразу на комбинационную логику?

Как задать в этом случае констрейны в таймквест для входного порта?

Как задать констрейны для пути от входного порта до синхронной логики?

 

Share this post


Link to post
Share on other sites

В общем, так подавать сигналы на комбинационную логику можно. На последовательную тоже можно, но, осторожно...

Возможно, нужно описать set_min_delay и set_max_delay для пути входной порт -> выходной порт, если это важно, и между ними только комбинационная логика...

Возможно, set_input_delay для пути от этого порта к синхронной схеме...

Возможно, надо поставить один-два триггера-синхронизатора....

сложно все это сказать, не зная собственно самой схемы и требований к ней

Share this post


Link to post
Share on other sites

не совсем понимаю какие могут быть констрейны на чисто случайный асинхронный внешний сигнал.

может сразу на входе застробировать его высокой внутренней частотой и потом спокойно использовать?

Share this post


Link to post
Share on other sites
не совсем понимаю какие могут быть констрейны на чисто случайный асинхронный внешний сигнал.

может сразу на входе застробировать его высокой внутренней частотой и потом спокойно использовать?

вмешаюсь немного. а вот если его застробить частотой - тут разве будет корректно работать и не может получиться метастабильности на этом триггере?

Share this post


Link to post
Share on other sites
2 EgorTol

а что у вас приходит на второй порт элемента И-НЕ?

 

Ошибочка вышла, элемент не И-НЕ, а исключающее или.

На второй порт элемента подаётся тоже асинхронный сигнал, который внутри фпга генерируется. Получается, что надо измерить интервал между приходами сигналов.

В общем, так подавать сигналы на комбинационную логику можно. На последовательную тоже можно, но, осторожно...

Возможно, нужно описать set_min_delay и set_max_delay для пути входной порт -> выходной порт, если это важно, и между ними только комбинационная логика...

Возможно, set_input_delay для пути от этого порта к синхронной схеме...

Возможно, надо поставить один-два триггера-синхронизатора....

сложно все это сказать, не зная собственно самой схемы и требований к ней

 

Все сигналы остаются внутри, на выходные порты ничего не идёт, поэтому наверное путь входной порт -> выходной порт не надо описывать. Вот насчет пути от порта до синхронной схемы не знаю.

 

не совсем понимаю какие могут быть констрейны на чисто случайный асинхронный внешний сигнал.

может сразу на входе застробировать его высокой внутренней частотой и потом спокойно использовать?

 

 

Я тоже не понимаю, зачем они нужны, но в таймквесте остаются незаконстрейненные порты и пути, а каких констрейнить, если они асинхронные?

 

Вот мини-схемка:

post-75311-1390892243_thumb.jpg

 

Вобщем таймквест пишет, что не законстрейнен порт AS и не законстрейнен путь от порта AS до триггера D с клоком CLK))

Edited by EgorTol

Share this post


Link to post
Share on other sites
Я тоже не понимаю, зачем они нужны, но в таймквесте остаются незаконстрейненные порты и пути, а каких констрейнить, если они асинхронные?

 

set_false_path -from ["входы"] -to [all_clocks]

???

Edited by the_king_orange_summer

Share this post


Link to post
Share on other sites
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 )

Share this post


Link to post
Share on other sites

Никакой констрейн не нужен вообще в этом случае. И set_false_path тоже - он предназначен для убирания конкретного пути из множества обконстрейненных, так что, сам по себе констрейном не является.

 

Единственное, что возможно нужно - это не один триггер входной, а еще один-два дополнительных перед ним.

 

Этот "бац" - совершенно естественный и нормальный. Он показал, что вот в это время могла бы быть метастабильность. Ищите, как отключить проверку этой ошибки для этого триггера.

Share this post


Link to post
Share on other sites
Никакой констрейн не нужен вообще в этом случае. И set_false_path тоже - он предназначен для убирания конкретного пути из множества обконстрейненных, так что, сам по себе констрейном не является.

 

Единственное, что возможно нужно - это не один триггер входной, а еще один-два дополнительных перед ним.

 

Этот "бац" - совершенно естественный и нормальный. Он показал, что вот в это время могла бы быть метастабильность. Ищите, как отключить проверку этой ошибки для этого триггера.

 

То есть после XOR поставить еще триггер?

Share this post


Link to post
Share on other sites
Я рассчитываю как минимум на 200 МГц. Триггер тактируется 200 МГц. Если получится выше, то сделаю выше.

 

 

Тогда, как минимум один добавить, а лучше два - если схема позволяет там такую задержку.

Share this post


Link to post
Share on other sites
Хорошо, добавлю, спасибо.

 

Но это не снимет проблемы моделирования на первом триггере. Ищите как выключить эту проверку для этого триггера, правда не знаю где искать...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this