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

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

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

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

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

|
тоже не сложно. поставить счетчик по обоим фронтам
|
|
|
|
|
Jun 4 2005, 12:12
|
Местный
  
Группа: Свой
Сообщений: 441
Регистрация: 7-12-04
Пользователь №: 1 373

|
как ещё вариант, могу посоветовать поставить последовательно 3 делителя частоты на 3. А вариант делителя частоты на 3 сам XILINX предлагает, вот ссылка.
|
|
|
|
|
Jun 15 2005, 14:33
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 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; класс  ) осталось только AHDL в VHDL/Verilog перевести
--------------------
|
|
|
|
|
Jun 16 2005, 04:07
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 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 уже и пошутить нельзя
--------------------
|
|
|
|
|
Jun 22 2005, 10:39
|

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
|
|
|
|
|
Jun 24 2005, 08:04
|

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
|
|
|
|
|
Jun 24 2005, 10:29
|

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
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|