Доброе время суток у меня такой вопрос
Ко мне приходит поток 2Мб/с причем он идет постоянно может идти сутки в принципе сам прием не сложен нарезал по тактовой на куски забил в фифо и вперед!!
Вопрос состоит в седеющем из за нестабильности генераторов на приемной и передающих платах погодных условий и космического ветра)) Может произойти перекос фаз и за сутки накопится неслабая ошибка! Поэтому я хотел бы захватывать фазу сигнала каждый предний фронт я придумал два пути в общем то это 1 путь просто в немного разных исполнениях
1-ый вариант
Есть 2а автомата 1 следит за фазой и обнуляет в торой по переднему фронту сигнала
2-ой Считает до середины импульса и забирает сигнал затем еще столько же и сбрасывается в 0
2-ойвариант
Есть 2а автомата 1 следит за фазой и обнуляет в торой в по переднему фронту сигнала
2-ой выделяет тактовую из сигнала
После чего по тактовой забираем по заднему фронту информацию.
Задумка то хороша!!Но исполнение!!Вот вариант №2
Process (Signal, CLK)
Variable st : integer range 0 to 31;
begin
If signal’event and signal = ‘1’ then
St := 0;
End if;
If ( CLK’event and CLK = ‘1’ ) then
--Сдесь делаем тактовую
Case st is
When 0 => CLK_dcm = ‘1’;st++;
When 15 =>CLK_dcm = ‘0’;st++;
When 31 =>st:=0;
When others =>st++;
End case;
End if;
End process;
Так вот Xilinx Пишет что эта конструкция с st не синтезабельна из за отсутствия возможности синхронизации!!
ВОПРОС как поймать фазу!!Сделать привязку к фазе!!Вообще я за вариант с тактовой по-моему так проще!!Кто сталкивался подскажите!!ЖДУ!!