Здарвствуйте.Помогите пожалуйста разобраться с причиной ограничения максимальной частоты тактового сигнала.
Я начал работать с ПЛИС совсем недавно, еще мало что понимаю.Сейчас занимаюсь доработкой старого проекта,который периодически зависает и сбрасывается.В оригинале были использованы инверсные клоки,один умный человек посоветовал мне ввести в проект один глобальный тактовый сигнал высокой частоты (для меня подходит 100 МГц), завести его в глобальную цепь и подавать на все клоковые входы. Мне необходимо переключаться по передним либо по задним фронтам двух других клоков (они меньшей частоты 12-25 МГц), я выделяю падающие и растущие фронты в виде коротких импульсов шириной как глобальный клок и подаю на enable входы схем.
Я завел сигнал в глобальную цепь, затем подаю main_clk на все клоковые входы
variable
main_clk:node;
...
main_clk = global(ext_clk);
Для выделения переднего и заднего фронтов пользуюсь функциями,
SUBDESIGN rising
(
source_clk, main_clk : INPUT;
enable_signal : OUTPUT;
)
BEGIN
enable_signal = !DFF(source_clk, main_clk, ,) & source_clk;
END;
SUBDESIGN falling
(
source_clk, main_clk : INPUT;
enable_signal : OUTPUT;
)
BEGIN
enable_signal = DFF(source_clk, main_clk, ,) & !source_clk;
END;
Я не понимаю, при таком раскладе максимальная частота клока уменьшается пропорционально с увеличением проекта.Клок что проходит все узлы последовательно? Помогите пожалуйста разобраться.
В проекте использован плис ACEX.