У меня есть дизайн, над которым я работаю в Verilog.В части моей конструкции счетчик увеличивается на такт - это происходит за полчаса до того, как выход счетчика фиксируется в регистре сдвига параллельной нагрузки.
В некоторых случаях я хочу УДЕРЖАТЬ счетчик.Для этого я стробировал часы:
assign sync_gated = i_sync || !r_en;
Это комбинационная логика, но я не вижу никаких проблем, так как для выхода счетчика существует полный тактовый цикл (мы работаем на 2 МГц)урегулировать.Несколько нс задержки распространения не вызовут проблемы.
Код синтезирует ОК, но я получаю это предупреждение:
y_ctr / sync_gated_inv (y_ctr / sync_gated_inv1: O) |ОТСУТСТВУЕТ () (y_ctr / r_axis_address_15) |16 |x_ctr / sync_gated_inv (x_ctr / sync_gated_inv1: O) |ОТСУТСТВУЕТ () (x_ctr / r_axis_address_15) |16 |--------------------------------------------- + --------------------------------- + ------- + (*) Эти 2 тактовых сигнала генерируютсяпо комбинаторной логике, и XST не может определить, какие первичные тактовые сигналы.Пожалуйста, используйте ограничение CLOCK_SIGNAL, чтобы указать тактовые сигналы, генерируемые комбинаторной логикой
Это плохой дизайн?если так, то почему?или мне просто нужно добавить какое-то ограничение, чтобы успокоить компилятор?
Спасибо.