реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Помогите с делителем частоты
Infine
сообщение Jun 3 2005, 16:01
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 3-06-05
Пользователь №: 5 718



Доброе время суток, господа.
Не могли бы вы мне помочь ?
Необходимо на триггерах(не важно каких) собрать делитель частоты на 27, нужна структурная схема этого устройства.
Все это потом будет реализовываться вXilix на Spartan II-E.
Заранее благодарен, завтра зачет по ЦУ и МП.
Go to the top of the page
 
+Quote Post
vovic
сообщение Jun 3 2005, 19:59
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 7-08-04
Пользователь №: 464



По шагам
1. Посмотри лекции (или учебник) и найди как устроены двоичные счетчики.
2. Нарисуй пятиразрядный счетчик.
3. При появлении числа 26 в двоичном виде надо устроить сброс счетчика в ноль (простая схема на элементе "И")
4. Сигнал сброса лучше пропустить через D-триггер, а уже затем на сброс основных триггеров счетчика. Этот же сигнал будет поделенной частотой.

А структурную схему нарисуешь сам smile.gif
Go to the top of the page
 
+Quote Post
KA_ru
сообщение Jun 4 2005, 08:37
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 424
Регистрация: 4-10-04
Из: Berlin
Пользователь №: 775



emu naverno nado 50/50 ???? smile.gif
Go to the top of the page
 
+Quote Post
Андрей Харитонов
сообщение Jun 4 2005, 11:30
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 53
Регистрация: 26-03-05
Пользователь №: 3 700



тоже не сложно. поставить счетчик по обоим фронтам
Go to the top of the page
 
+Quote Post
sergunas
сообщение Jun 4 2005, 12:12
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 441
Регистрация: 7-12-04
Пользователь №: 1 373



как ещё вариант, могу посоветовать поставить последовательно 3 делителя частоты на 3.
А вариант делителя частоты на 3 сам XILINX предлагает, вот ссылка.
Go to the top of the page
 
+Quote Post
mkalexey
сообщение Jun 15 2005, 14:04
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 12-04-05
Пользователь №: 4 066



-- Покладов Александр
-- Делитель частоты
-- Выходная частота равна 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;


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 15 2005, 14:33
Сообщение #7


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(mkalexey @ Jun 15 2005, 09:04)
-- Покладов Александр
        -- Делитель частоты
        -- Выходная частота равна 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;
*

класс smile.gif) осталось только AHDL в VHDL/Verilog перевести smile.gif


--------------------
Go to the top of the page
 
+Quote Post
sazh
сообщение Jun 15 2005, 19:15
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



"класс осталось только AHDL в VHDL/Verilog перевести "

//-- Покладов Александр
//-- Делитель частоты
//-- Выходная частота равна Fout = Fin * (cDiv / (2 ^ cRg))
//-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//-- ! Fout не может быть больше Fin, т.е. cDiv < (2 ^ cRg)
//-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Constant cDiv = 6; -- коэффициент деления
//Constant cRg = 3; -- количество разрядов в регистре фазы

module fr_div
(
input Fin,
output Fout
);

parameter cDiv = 3'd6;
parameter cRg = 3;


reg [cRg:0] fv; //-- Регистр сумматора
reg rgF_tff;

wire Fin_X_2;

assign Fout = fv[cRg]; // -- Выход частоты
assign Fin_X_2 = Fin ^ rgF_tff; // -- Умножение на 2 Fin

always @(posedge Fin_X_2) // -- Удвоенная частота
begin
rgF_tff <= rgF_tff ^ 1'b1;
fv <= fv + cDiv; // -- Сумматор фазы
end

endmodule
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 16 2005, 04:07
Сообщение #9


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(sazh @ Jun 15 2005, 14:15)
"класс  осталось только AHDL в VHDL/Verilog перевести "

//-- Покладов Александр
        //-- Делитель частоты
        //-- Выходная частота равна Fout = Fin * (cDiv / (2 ^ cRg))
        //-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        //-- ! Fout не может быть больше Fin, т.е. cDiv < (2 ^ cRg)
        //-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        //Constant cDiv = 6; -- коэффициент деления
        //Constant cRg = 3; -- количество разрядов в регистре фазы

        module fr_div
        (
          input  Fin,
          output Fout
        );
       
parameter cDiv = 3'd6;
parameter cRg = 3;


reg [cRg:0] fv;  //-- Регистр сумматора
reg          rgF_tff;

wire        Fin_X_2;

assign Fout = fv[cRg]; // -- Выход частоты
assign Fin_X_2 = Fin ^ rgF_tff; // -- Умножение на 2 Fin

always @(posedge Fin_X_2) // -- Удвоенная частота
begin
rgF_tff <= rgF_tff ^ 1'b1;
fv <= fv + cDiv; // -- Сумматор фазы
end

endmodule
*

уже и пошутить нельзя smile.gif


--------------------
Go to the top of the page
 
+Quote Post
sazh
сообщение Jun 16 2005, 06:11
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



"уже и пошутить нельзя "
Если кто и пошутил, так это я. Вот пример того, как делать не надо.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Jun 22 2005, 10:39
Сообщение #11


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(Infine @ Jun 3 2005, 19:01)
Доброе время суток, господа.
Не могли бы вы мне помочь ?
Необходимо на триггерах(не важно каких) собрать делитель частоты на 27, нужна структурная схема этого устройства.
Все это потом будет реализовываться вXilix на Spartan II-E.
Заранее благодарен, завтра зачет по ЦУ и МП.
*


Настоятельно всем рекомендую
VHDL code implements 50%-duty-cycle divider
Brian Boorman, Harris RF Communications, Rochester, NY

http://www.edn.com/archives/1997/081597/17di_01.htm


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
sazh
сообщение Jun 23 2005, 10:38
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



"Настоятельно всем рекомендую
VHDL code implements 50%-duty-cycle divider
Brian Boorman, Harris RF Communications, Rochester, NY"
Это хорошо только для тренинга ума.
В реальной жизни применять такое в программированной логике, значит искать себе приключения на одно место.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Jun 24 2005, 08:04
Сообщение #13


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(sazh @ Jun 23 2005, 13:38)
"Настоятельно всем рекомендую
VHDL code implements 50%-duty-cycle divider
Brian Boorman, Harris RF Communications, Rochester, NY"
Это хорошо только для тренинга ума.
В реальной жизни применять такое в программированной логике, значит  искать себе приключения на одно место.
*


А что Вас смущает? Нормальный код, рабочий.
И какие приключения могут случится?
А в Вашем коде умножать частоту на 2 внутри ПЛИС - это нормально !?


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
sazh
сообщение Jun 24 2005, 10:05
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



"А что Вас смущает? Нормальный код, рабочий.
И какие приключения могут случится?
А в Вашем коде умножать частоту на 2 внутри ПЛИС - это нормально !? "
Это не мой код. Мне чужого не надо. И фамилия у меня другая.
Это Вами предложенный код ничем от мной переведенного на верилог кода не отличаются.
В первом случае пички на удвоенной частоте. Если ввести в формулу удвоенную частоту, простой аккумулятор получается.
В Вашем случае таже удвоенная частота. Попробуйте принять выход xor на триггер на первичной. Что от меандра останется.
Я уже не говорю о стандартном подходе к написанию примитива. На входе триггер, на выходе триггер, никаких инверсий несущего клока. А если первичный код от PLL. Ну и так жалее.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Jun 24 2005, 10:29
Сообщение #15


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(sazh @ Jun 24 2005, 13:05)
Это Вами предложенный код ничем  от мной переведенного на верилог кода  не отличаются.

*


?
И еще - нет там никакого удвоения частоты.
Или Вы с авторами постов запутались?


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 04:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01489 секунд с 7
ELECTRONIX ©2004-2016