[an error occurred while processing this directive]
|
На AHDL
Вообще есть предложение создать банк типовых решений
Что скажет www.altera.ru ????
-- 3.02.2001
-- Покладов Александр
-- Делитель частоты
-- Выходная частота равна Fout = Fin * (cDiv / (2 ^ cRg))
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-- ! Fout не может быть больше Fin, т.е. cDiv < (2 ^ cRg)
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Constant cDiv = 6; -- коэффициент деления
Constant cRg = 3; -- количество разрядов в регистре фазы
SUBDESIGN Fr_div
(
Fin : INPUT;
Fout : OUTPUT;
)
VARIABLE
fv[cRg .. 0] :dff; -- Регистр сумматора
rgF :tff;
fin_X_2 :node; -- Удвоенная частота
BEGIN
fin_X_2 = Fin xor rgF; -- Умножение на 2 Fin
rgF.t = vcc;
rgF.clk = fin_X_2;
fv[].clk = fin_X_2; -- Сумматор фазы
fv[] = fv[] + cDiv;
Fout = fv[cRg]; -- Выход частоты
END;
Для получения большей возможной сетки частот следует увеличить количество разрядов в регистре фазы.
E-mail: info@telesys.ru