Реализация синтезаторов частоты на ПЛИС
Цифровыми методами могут быть синтезированы только частоты f1 и f2, отношение которых f1/f2 представляет собой рациональное число М1/М2, где М1 и М2 – целые числа. Если М2 = 1, то частота f2 формируется из частоты f1 делителем частоты с коэффициентом деления М1. Если же М2 не равно 1 и М1 не равно 1, то следует использовать более сложные схемы, называемые синтезаторами частот.
В [1] рассмотрены различные схемы синтезато-ров частот и показано, что при выполнении синтезаторов частот на цифровых фазовраща-
телях, фазовые скачки равны периоду сигнала кварцевого генератора То = 1/fo, а расширить
возможности синтеза частот можно последовательным включением нескольких фазо-вращателей. При использовании k фазовращателей следует найти целочисленные решения
Мk, Mk-1, Mk-2, ... , M1 уравнения
1 +/- 1/M2 + /- 1/M3 +- ... 1/Mk = M1*fout/fo.
Показано также, что, в случае положительных коэффициентов Mk, фазовращатели можно заменить сумматором по модулю два, при условии ортогональности сигналов с Mk.
Таким образом, для случая fout <= fo, задача синтеза частот сводится к получению
ряда ортогональных сигналов с Mk и суммированию их по модулю два.
Получение ряда ортогональных сигналов с Mk.
Накапливающий сумматор при поступлении тактового сигнала dH=1 выполняет функцию S = S +1, где S – число, хранящееся в аккумуляторе. Для k-го члена ряда частота
fk будет определяться
fk = fo/2**k.
Величина k определяется необходимой минимальной частотной составляющей ряда Mk.
Ортогонализация сигналов Mk достигается выделением передних фронтов сигналов fk и
нормализацией их длительности.
Преобразователь код-частота.
Для синтезаторов частот на основе фазовой автоподстройки частоты основным элемен-
том является генератор, управляемый напряжением. Вышеописанный метод синтеза частот
можно применить для построения генератора, управляемого кодом. Для этого лишь необходимо произвести оценку (оценки – для случая одновременного формирования нескольких частот) необходимых текущих членов ряда Mk, которая соответству-ет k битам управляющего(их) кода(ов): при наличии k бита в управляющем коде – использовать для
синтеза сигнал fk, в противном случае – нет.
VHDL исходный код двух частотного преобразователя код-частота .
architecture Behavioral of sintez is
process(S,clk,o_sintq0,o_sintq100,codfreeq1)
begin
if(clk'event and clk='1') then
case S(23) is
when '1' => o_sintq0 <='1';
when '0' => o_sintq0 <='0';
when others => NULL;
end case;
end if;
if(clk'event and clk='0') then
case o_sintq0 is
when '1' => o_sintq100 <='0';
when '0' => o_sintq100 <='1';
when others => NULL;
end case;
end if;
if codfreeq1(0)='1' then
ort100 <= o_sintq0 and o_sintq100;
else
ort100 <= '0';
end if;
if codfreeq2(0)='1' then
ort200 <= o_sintq0 and o_sintq100;
else
ort200 <= '0';
end if;
end process;
.........
process(S,clk,o_sintq23,o_sintq123,codfreeq1)
begin
if(clk'event and clk='1') then
case S(0) is
when '1' => o_sintq23 <='1';
when '0' => o_sintq23 <='0';
when others => NULL;
end case;
end if;
if(clk'event and clk='0') then
case o_sintq23 is
when '1' => o_sintq123 <='0';
when '0' => o_sintq123 <='1';
when others => NULL;
end case;
end if;
if codfreeq1(23)='1' then
ort123 <= o_sintq23 and o_sintq123;
else
ort123 <= '0';
end if;
if codfreeq2(23)='1' then
ort223 <= o_sintq23 and o_sintq123;
else
ort223 <= '0';
end if;
end process;
process(ort100,ort101,ort102,ort103,ort104,ort105,ort106,ort107,
ort108,ort109,ort110,ort111,ort112,ort113,ort114,ort115,
ort116,ort117,ort118,ort119,ort120,ort121,ort122,ort123)
begin
fsint1 <= ort100 xor ort101 xor ort102 xor ort103 xor ort104
xor ort105 xor ort106 xor ort107 xor ort108 xor ort109 xor ort110
xor ort111 xor ort112 xor ort113 xor ort114 xor ort115 xor ort116
xor ort117 xor ort118 xor ort119 xor ort120 xor ort121 xor ort122
xor ort123;
end process;
end Behavioral;
process(ort200,ort201,ort202,ort203,ort204,ort205,ort206,ort207,
ort208,ort209,ort210,ort211,ort212,ort213,ort214,ort215,
ort216,ort217,ort218,ort219,ort220,ort221,ort222,ort223)
begin
fsint2 <= ort200 xor ort201 xor ort202 xor ort203 xor ort204
xor ort205 xor ort206 xor ort207 xor ort208 xor ort209 xor ort210
xor ort211 xor ort212 xor ort213 xor ort214 xor ort215 xor ort216
xor ort217 xor ort218 xor ort219 xor ort220 xor ort221 xor ort222
xor ort223;
end process;
end Behavioral;
Литература.
1. Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных схемах; Справочник, - М,; Радио и связь, 1990, - 304 с,; ил.
Автор Карпухин Б.В.
Тестовый проект для MaxPlus или Quartus даст возможность проследить все на диаграме симулятора. Полезно по этому поводу посетить соответствующий раздел литературы по VHDL Verilog
Электроника :
- Техника электроника (11)
- Полезная электроника (4)
- Электроника для всех (5)
- Техника для дома (6)
- Cхемотехника ПЛИС (11)
- Пректирование PCAD (4)
Программирование :
- Микроконтроллеры (9)
- ПЛИС VHDL Verilog (29)
- C++ Builder (7)
- Visual Studio C++ C# (7)
- Java programming (7)
- Matlab programming (4)
Сайтостроение :
- Сайтостроение HTML (5)
- Сайтостроение PHP (8)
- PHP CMS на файлах (3)
- Web инструменты (9)
- Полезное вебмастеру (11)
- SEO раскрутка сайта (4)
- PHP скрипты (3)
Реклама :
Книги и учебники :
- Шаблоны сайтов (6)
- Книги и учебники (2)
Компьютер и интернет :
Поиск по сайту :
Реклама :
Облако меток :
Бесплатная подписка :
Статистика :
- Популярность (3)
- Посещаемость (3)
- Поисковые запросы (3)