Регулировка рабочей частоты модуля в Verilog
Я создаю довольно сложный модуль, который включает в себя временный анализ двух модулей, каждый из которых имеет собственный алгоритм, но принимает в качестве входных данных 2 числа со знаком и выводит число со знаком.
Я проектирую этот модуль для FPGA в Verilog, используя Xilinx в качестве инструмента для синтеза. Теперь я понимаю, что Xilinx обычно дает анализ времени худшего случая для любого модуля. Это означает, что если у меня есть диапазон чисел, который занимает 250 пикосекунд, от ввода до вывода, включая время маршрутизации, если есть хотя бы один набор входов, который занимает 400 пикосекунд, временной анализ, показанный Xilinx, составит 400 пикосекунд.
Моя цель - найти:
1) Если модуль 1 быстрее, чем модуль 2 для любого набора чисел.
1) Диапазон номеров, для которых модуль 1 быстрее, чем модуль 2.
Единственный логический подход, который я могу придумать, заключается в увеличении рабочей частоты модуля. Это означает, что оба модуля выдают свои результаты, скажем, через 300 пикосекунд, а не 400 пикосекунд.
Очевидно, что если я увеличу рабочую частоту, некоторые входы в тестовом стенде будут выдавать ошибочные выходы. Моя гипотеза состоит в том, что модуль, который начинает выдавать ошибочные ответы первым, имеет алгоритм.
Так что мои сомнения:
1) Можно ли увеличить рабочую частоту модуля в Verilog, используя Xilinx (некоторые настройки, которые я должен применять при синтезе или анализе). Если нет, то есть ли лучший инструмент для анализа времени?
2) Является ли этот подход жизнеспособным? Если не считать синтеза уровня вентиля с использованием Cadence, могу ли я узнать фактический анализ временной задержки для каждого набора чисел со знаком для каждого вентиля с использованием Verilog?
1 ответ
Вы правы, предполагая, что Xilinx всегда сообщает о наихудшем времени для всего проекта, когда речь идет о тактовых частотах. Не воспринимайте результаты синтеза как очень точные - они могут сильно различаться после того, как вы разместили и разгромили дизайн.
Я думаю, вы могли бы взять список соединений после PAR-Verilog и смоделировать его с различными входами, использующими разные имитированные тактовые частоты - если есть медленные пути, которые не используются для определенных входов, вы должны быть в состоянии запустить симулированные часы быстрее для этих входы.
Звучит как очень трудоемкая задача, и я не уверен, в чем суть. Откуда я родом (автомобильный) "наихудший случай" - это единственное число, на которое мы можем с уверенностью смотреть!