реклама на сайте
подробности

 
 
> Проблема с задержками прохождения клока
studert
сообщение Feb 13 2007, 08:39
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 6-03-05
Из: Новосибирск
Пользователь №: 3 121



Здарвствуйте.Помогите пожалуйста разобраться с причиной ограничения максимальной частоты тактового сигнала.
Я начал работать с ПЛИС совсем недавно, еще мало что понимаю.Сейчас занимаюсь доработкой старого проекта,который периодически зависает и сбрасывается.В оригинале были использованы инверсные клоки,один умный человек посоветовал мне ввести в проект один глобальный тактовый сигнал высокой частоты (для меня подходит 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.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sazh
сообщение Feb 13 2007, 10:40
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



А как правильно сделать сигнал глобальным клоком?Я использовал примитив global, но стал ли сигнал таковым?Еще я повесил его на ножку dedicated clock.
///////////////////////////////////////////////////////////////////////
Если Вы назначили клок на dedicated clock, синтзатор его автоматом на глобальную цепь повесит. Но и примитив global кашу не испортит. Обычно его используют, когда внутренний source_clk хотят сделать глобальным. Все это в рапортах можно посмотреть.
А схему Вашу наверно надо доработать до общепринятой.

SUBDESIGN posedge
(
source_clk, main_clk : INPUT;
enable_signal : OUTPUT;
)

VARIABLE
ff[2..0] : DFF;

BEGIN
ff[].clk = main_clk;
ff[].d = (ff[1..0].q, source_clk);
enable_signal = !ff[2] & ff[1];
END;
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 02:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016