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

 
 
> Требуется создать делитель частоты, 10МГЦ->1Гц
TIT0
сообщение Nov 3 2009, 22:17
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 25-10-08
Пользователь №: 41 178



Здравствуйте уважаемые. У меня задача поделить частоту 10МГц до 1 Гц затем эту поделенную частоту(1Гц), синхронизировать по фазе с другой, тоже 1Гц. Сделал это на рассыпухе, с двумя Д-триггерами для синхронизации, да 7 счетчиками к155ие9, но многа жрет собака и мне посоветовали сделать это на ПЛИСе, поиск по форуму так и не дал мне пока ничего интересного, поэтому я решил создать тему и спросить мнение знающих людей. Реально ли сделать это на плисе? Если да то какой плис для этого лучше выбрать, я никогда не имел опыта работы с плисами, программировал только контроллеры.
Условия задачи
1. По возможности быстродействующий, минимальное время задержки сигнала вход->выход.
2. Малое энергопотребление.
3. Прошивка должна храниться в энергонезависимой памяти, чтобы не прошивать каждый раз при запуске.
4. "Быстрое" освоение.
Желательно Атмел. И я так подозреваю, что нужен будет программатор и среда программирования, какие лучше использовать.
Задание одноразовое так что особо "с запасом" ничего не надо.
Спасибо за внимание.

Сообщение отредактировал TIT0 - Nov 3 2009, 22:18
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TIT0
сообщение Nov 4 2009, 09:53
Сообщение #2





Группа: Участник
Сообщений: 5
Регистрация: 25-10-08
Пользователь №: 41 178



Спасибо за ответы,
Цитата
асинхронно ресетить от входной частоты 1 Гц
, я так и делаю, просто я сделал схему на микросхемах к155ие9 и кp1533тм2, а они все вместе много потребляют, поэтому я решил переделать на плисах, собственно вопрос не в том как, а в том на каком плисе это проще и лучше сделать.

Точность 1Гц у меня на микросхемах получилась 0.1мкс. То есть один импульс от 10МГц.

Сообщение отредактировал TIT0 - Nov 4 2009, 10:05
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 4 2009, 10:24
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(TIT0 @ Nov 4 2009, 12:53) *
собственно вопрос не в том как, а в том на каком плисе это проще и лучше сделать.


Так это элементарно:
1) нужен 1 триггер на синхронизатор входного 1 герца с 10 МГц-ами.
2) нужно два триггера на ловилку фронта входного 1 Гц.
3) нужно делить на 10E6, это вроде как 24 триггера.

Пункты 1..3 требуют 1+2+(24) = 27 ячеек ПЛИС.
Так как счетчик не по модулю 2^N, то будет еще компаратор на сброс, накинем еще пару ячеек.
Итого 29 ячеек. Это грубая прикидка. Точно влезет в EPM3064, возможно влезет в EPM3032.

теперь пишем RTL:
Код
module tsts (clk, in, out);
input clk, in;
output out;

reg [2:0] sync;
always @(posedge clk)
  sync <= {sync[1:0], in};
  
wire clr;
assign clr = (sync[2:1] == 2'b10);

reg [23:0] cnt;
always @(posedge clk)
  if (clr || (cnt == 24'd9999999))
    cnt <= 24'h0;
  else
    cnt <= cnt + 1'b1;
    
assign out = cnt[23];

endmodule


Синтезируем - получаем 30 ячеек и EPM3032.

Теперь если нужен на выходе меандр, перецентрируем счетчик, не 0...9999999, а 3388608...13388607.

Код
module tsts (clk, in, out);
input clk, in;
output out;

reg [2:0] sync;
always @(posedge clk)
  sync <= {sync[1:0], in};
  
wire clr;
assign clr = (sync[2:1] == 2'b10);

reg [23:0] cnt;
always @(posedge clk)
  if (clr || (cnt == 24'd13388607))
    cnt <= 24'd3388608;
  else
    cnt <= cnt + 1'b1;
    
assign out = cnt[23];

endmodule


Синтезируем - 32 ячейки - опять EPM3032, но совсем под завязку, на 100%.
Проверяем тайминг - на EPM3032ATC44-10 получаем Fmax > 60 MHz. Все ОК.

А, забыл, цель-то потребление. Тогда однозначно выбираем ПЛИС серии ispMACH 4000ZE , тоже наверное 32 ячейки (только надо проверить, так как тут притык, я не буду синтезировать). Докучи она 5-вольт-толерантна по входам. Вот и все, задача решена. В результате мой выбор - LC4032ZE-7TN48C, цена примерно $1.6 за сотню при покупке через ABN Universal. Только, повторю, так как тут впритык, надо проверить синтезом под это семейство. А то может, если меандр нужен, переделать конструкцию в последовательные делитель на 5000000 и на 2 вместо центрированного счетчика с загрузкой, это вернет (должно вернуть) на 30 ячеек.

ЗЫ. Касаемо освоения - lattice/altera/xilinx будут примерно одинаковы. Главное освоить verilog, для чего достаточно какого нибудь симулятора. А вот с Вашим любимым атымелом можете и повозиться, они сдирательством занимались, и софт там... И потребление... Ну в общем не буду продолжать smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TIT0   Требуется создать делитель частоты   Nov 3 2009, 22:17
- - Джеймс   Что-то не врубаюсь. Если у Вас уже есть частота 1Г...   Nov 3 2009, 22:44
- - TIT0   Сейчас объясню, пусть у нас есть сигнал с частотой...   Nov 4 2009, 08:10
- - Andrew Su   Добрый день. Для начала найдите возможность раздоб...   Nov 4 2009, 08:14
|- - DmitryR   Надо просто делитель частоты 10 МГц -> 1 Гц (эт...   Nov 4 2009, 09:39
|- - Sergey'F   Цитата(TIT0 @ Nov 4 2009, 01:17) Здравств...   Nov 4 2009, 09:51
- - BORIV   Цитата(TIT0 @ Nov 4 2009, 01:17) Сделал э...   Nov 4 2009, 09:58
- - TIT0   Цитатазаменить серию на менее жрущую - 1533, 7 мик...   Nov 4 2009, 10:36
|- - BORIV   Цитата(TIT0 @ Nov 4 2009, 13:36) 7 микрух...   Nov 4 2009, 11:00
- - TIT0   ОЙ, только заметил опечатку в своем первом посте, ...   Nov 4 2009, 12:14
|- - SM   Цитата(TIT0 @ Nov 4 2009, 15:14) 1. Среда...   Nov 4 2009, 12:18
- - eliza   MaxPlus устарел, но использовать тяжеловесный Quar...   Nov 4 2009, 14:18
|- - SM   Цитата(eliza @ Nov 4 2009, 17:18) MaxPlus...   Nov 4 2009, 14:20
- - Евгений Николаев   Решал похожую задачу. Там тоже опорный сигнал (гор...   Nov 5 2009, 06:40


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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:37
Рейтинг@Mail.ru


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