Имеется внешний приходящий lvds clk, который потом в DCM_SP умножается итд.
Вообщем после того, как DCM станет LOCKED, начинает работать схема.
Этот lvds clk периодически может пропадать и возобновляться, т.е. на DCM
надо подавать RST после таких "провалов". В системе, для ПЛИС больше нет
дополнительных источников clk, кроме вышеописанного. Трабл в том, что после резкого
пропадания clkin сигнал LOCKED может продолжать оставаться в еденице, и по сути
LOCKED не гарантирует наличие clkin.
Вопрос в том, как сделать надежную систему сброса DCM при пропадании clk?
Думаю не я первый этим озадачен. Ставить внешню схему, которая отслеживает clk
и выдает RST, не очень то хочется, разве что это будет небольшая(по кол-ву ног)
и недорогая микросхема. Хотелось бы это сделать внутри ПЛИС.
Погуглив, я нашел ранее обсуждаемую аналогичную тему:
http://www.fpgarelated.com/usenet/fpga/show/9713-1.php
там дядька из Xilinx рекомендует следующий алгоритм, суть которого заключается в
периодической проверке наличия CLKIN (status[1]) и при его отсутствии выдавать
RST на несколько тактов, но дело в том, чтобы переодически делать это в ПЛИС,
надо иметь дополнительный надежный clk, а его как раз и нету см. выше.
Дале, там идет дискуссия на эту тему с вопросом/предложением
о том, чтоб встроить такую ф-цию(auto RST DCM при пропадании clkin) в кристал,
на что дядька из Xilinx как бы пообещал это дело передать в отдел разработки.
Это было в мае 2004, но видимо в Xilinx ничего так и не сдалали по этому поводу.
Хотя такая ф-ция в кристалле напрашивается в первую очередь.
Кто как обходится в таких случаях?