Доброе время суток у меня такой вопрос
Ко мне приходит поток 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 не синтезабельна из за отсутствия возможности синхронизации!!
ВОПРОС как поймать фазу!!Сделать привязку к фазе!!Вообще я за вариант с тактовой по-моему так проще!!Кто сталкивался подскажите!!ЖДУ!!
|