Koluchiy 0 10 августа, 2009 Опубликовано 10 августа, 2009 · Жалоба Здравствуйте. Вопрос такой. Есть некая схема, в которой есть сигналы, одни из которых надо обрабатывать с частотой 100 Мгц, другие - 25 Мгц. По 25 Мгц есть довольно сложная комбинаторная логика (кучка ifов, cas'ов и т.д.). Написал я это на Верилоге в таком примерно стиле: always @ (posedge clk100) begin if (ClkEna) output1 <= input1 + input2; end ClkEna равен 1, когда 2хбитный счетчик по частоте 100 равен 0. Трабла в чём. Когда всё это дело компилится, мне Xilinx'овский timing analyzer выдает несоблюдение временных требований как раз по цепям, где на 25 Мгц частоте считается большая комбинаторная логика. Причем он считает, что на рассчет этой логики у него есть 10 нс (как будто ClkEna сигнал может приходить каждый такт, хотя на самом деле - каждые 4 такта и 40 нс). Его можно как-то убедить в том, что ClkEna есть, и его надо учитывать при расчете временных параметров? Или оно этого не умеет. А тогда как им пользоваться? Заранее спасибо за ответы. Да, ISE 9.2. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 10 августа, 2009 Опубликовано 10 августа, 2009 · Жалоба Здравствуйте. Вопрос такой. Есть некая схема, в которой есть сигналы, одни из которых надо обрабатывать с частотой 100 Мгц, другие - 25 Мгц. По 25 Мгц есть довольно сложная комбинаторная логика (кучка ifов, cas'ов и т.д.). Написал я это на Верилоге в таком примерно стиле: always @ (posedge clk100) begin if (ClkEna) output1 <= input1 + input2; end ClkEna равен 1, когда 2хбитный счетчик по частоте 100 равен 0. Трабла в чём. Когда всё это дело компилится, мне Xilinx'овский timing analyzer выдает несоблюдение временных требований как раз по цепям, где на 25 Мгц частоте считается большая комбинаторная логика. Причем он считает, что на рассчет этой логики у него есть 10 нс (как будто ClkEna сигнал может приходить каждый такт, хотя на самом деле - каждые 4 такта и 40 нс). Его можно как-то убедить в том, что ClkEna есть, и его надо учитывать при расчете временных параметров? Или оно этого не умеет. А тогда как им пользоваться? Заранее спасибо за ответы. Да, ISE 9.2. У него есть mylticylce констрейнты. Другой путь отказаться от clk_en и использовать выход clkdv DCM, то есть заводить ещё одну частоту - 25 МГц, синхронность схемы при этом сохранится, ISE учитывает то, что 25 есть производная частота от 100 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 10 августа, 2009 Опубликовано 10 августа, 2009 · Жалоба У него есть mylticylce констрейнты. То есть, ручками для каждого сигнала с ClkEna? Мдя... Другой путь отказаться от clk_en и использовать выход clkdv DCM C этого всё начиналось, но тогда надо городить огород с выбором фазы 25 Мгц сигнала для подстройки под время прихода входного 100 Мгц сигнала... Или FIFO, что в общем не очень получается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 10 августа, 2009 Опубликовано 10 августа, 2009 · Жалоба То есть, ручками для каждого сигнала с ClkEna? Мдя... C этого всё начиналось, но тогда надо городить огород с выбором фазы 25 Мгц сигнала для подстройки под время прихода входного 100 Мгц сигнала... Или FIFO, что в общем не очень получается. Не надо фазу подбирать. С clkdv сигнал синфазной с clk0 dcm, а время установку по clk0 для данных, изменяющихся по clkdv ise сам проверяет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 10 августа, 2009 Опубликовано 10 августа, 2009 · Жалоба То есть, ручками для каждого сигнала с ClkEna? Мдя... Не надо мдякать. Задаётся констрейн только для ClkEna. Примерно так: # clock NET clk100 TNM_NET = clk100; TIMESPEC TS_clk100 = PERIOD clk100 100 MHz; # multi-cycle paths -- clock enables NET ClkEna TNM = ClkEna; TIMESPEC TS_ClkEna = FROM ClkEna TO ClkEna TS_clk100/4; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 11 августа, 2009 Опубликовано 11 августа, 2009 · Жалоба Да, так заработало. Всем спасибо :). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться