Перейти к содержанию
    

Отследить наличие клока

Уважаемые, подскажите как определить наличие клока от внешнего генератора? Клок ~27МГц. Т.е. есть клок - выдаю на определенный пин "1", нет - "0".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в логике, без эталонного генератора, никак

ну почему это? используем DCM, а там есть сигнал locked ))))

 

 

второй вариант - создать дополнительный генератор на линиях задержки )))

 

 

 

 

но всё это, конечно, костыли из говна и палок. )))

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну почему это? используем DCM, а там есть сигнал locked ))))

а гун внутри DCM это не эталонный генератор ? :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

использовать счётчик и схему сравнения с эталоном . Досчитал счётчик до 4-х например - значит клок идёт .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну почему это? используем DCM, а там есть сигнал locked ))))

 

 

второй вариант - создать дополнительный генератор на линиях задержки )))

 

 

 

 

но всё это, конечно, костыли из говна и палок. )))

locked без сброса не упадёт, если тактовая пропала. Счётчик обычный покажет частоту, можно через грей код с эталоном сравнить, если есть другая тактовая конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вся прелесть, что есть другой генератор, несинхронный с тестируемым клоком, а их периоды отличаются где-то в 1.3 раза....

Т. Е. счетчик может даже один раз не посчитать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вся прелесть, что есть другой генератор, несинхронный с тестируемым клоком, а их периоды отличаются где-то в 1.3 раза....

Т. Е. счетчик может даже один раз не посчитать...

 

..не понимаю , почему бы не завести контролируемую частоту на вход счётчика , и по второй частоте (делённой на 10 например) время от времени не проверять насчитал счётчик что-нить или нет ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы сначала задал себе вопросы:

- что считать наличием и отсутствием клока

- как быстро нужно реагировать

- синхронным ли должен быть флаг наличия клока и если да, то с каким клоком

 

Потом взял бы клок с "другого генератора", умножил бы его в DCM, например, на 4.

Полученным клоком тактировал бы схему защиты от метастабильности и автомат, который оценивает состояние входного клока.

 

Да, для анализа лучше использовать не сам сигнал клока, а выходы двух регистров, каждый из которых тактируется анализируемым клоком, но на разных фронтах и инвертируют свой вход. Если вычислить XOR по ним, то получится почти исходный клок, но не будет проблемы с разводкой.

 

PS: в default chip SPARTAN 3E сигнал lock падает при продолжительном пропадании опорного входного клока, но заново без ресета не поднимается даже при его восстановлении.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делал подобную вещь:

reg in_clk_det;
reg [19:0] out_clk_det;
reg clk_sync_det;

always @(posedge clk_sync or posedge out_clk_det[1]) begin
    if (out_clk_det[1]) in_clk_det <= 1'b0;
    else if (~in_clk_det) in_clk_det <= 1'b1;
end

always @(posedge clk_0) begin
    out_clk_det[0] <= in_clk_det;
    out_clk_det[19:1] <= out_clk_det[18:0];
    clk_sync_det <= |out_clk_det[19:2];
end

эталонный клок - clk_0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу определения что считать отсутствием клока - очень важны вопрос. Пока не стоит задача определения периода и скважности. Только наличие единицы, а не постоянный ноль. Сча тоже подумал сделать на сдвиговом регистре. Попробую. Еще появилась идея ввести счетчик для опорной частоты и флаг наличия единицы в тестируемом клоке. Если за время счета была хоть одна единица, то клок присутствует, иначе нет.

Как такой подход?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу определения что считать отсутствием клока - очень важны вопрос. Пока не стоит задача определения периода и скважности. Только наличие единицы, а не постоянный ноль. Сча тоже подумал сделать на сдвиговом регистре. Попробую. Еще появилась идея ввести счетчик для опорной частоты и флаг наличия единицы в тестируемом клоке. Если за время счета была хоть одна единица, то клок присутствует, иначе нет.

Как такой подход?

 

Фронты надо выделить, если интересует переход 0->1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в циклоновских PLL, например, есть фича переключения с одного входного клока на другой при пропадании первого. или сигнал locked использовать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в циклоновских PLL, например, есть фича переключения с одного входного клока на другой при пропадании первого. или сигнал locked использовать

Могу использовать только Xilinx.

Важно не переключиться на другой клок, а определить наличие как таковое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может попроще?

имхо определить наличие сигнала (без подсчета параметров) можно простым триггером. А сброс этого триггера делать скажем раз в секунду. И никаких dcm, pll не надо...

Конечно для определения параметров сигнала (частота, скважность и т.п.) это не подходит.

Не устроит?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...