|
CPLD Clock, вопросы по разработке |
|
|
|
Oct 29 2009, 19:35
|

Участник

Группа: Участник
Сообщений: 21
Регистрация: 29-10-09
Из: Томск
Пользователь №: 53 297

|
Вечер добрый! Возникла задача сделать часы на программируемой логике, по количеству входов выбрал CPLD от Altera - EPM3032. Понимаю что задача совсем не для CPLD/FPGA, а для простенького МК, но такое уж задание (учебное). Итак, время вопросов. Первый вопрос возник по тактированию. Мы имеем 2 входа: GCLK1 и GCLK2, в моей задаче нужен всего один вход тактирования, возьмем GCLK1. Как показал поиск по форуму - в основном используют кварцевые генераторы, но таковых на 32,768кГц не нашлось. Зато нашлись резонаторы. Внимание вопрос: корректно ли будет работать EPM3032 затактированная столь мало частотой? Если да, то какую схему подключения CLK вы бы посоветовали? В данный момент пытаюсь собрать что-то из этого: http://cxem.net/beginner/beginner26.php (внизу станицы) на макетке, но часовой кварц не заводится, наверное из-за не точного соответствия номиналов деталек(просто не все нужные номиналы в наличии), или из за того что микросхема TTL а не CMOS (скоро попробую и КМОП, пока нету нужной). Заранее спасибо за советы!
|
|
|
|
|
 |
Ответов
|
Nov 15 2009, 09:49
|

Участник

Группа: Участник
Сообщений: 21
Регистрация: 29-10-09
Из: Томск
Пользователь №: 53 297

|
Цитата Просто необходимо. Этот параметр напрямую вроде не документируется ("input rise/fall time" в даташите в <=40 нс относится не к клоку, а к любому фронту входного сигнала вообще). Я бы оценил его как "Minimum global clock period", поделенный на 3..4, т.е. для спидгрейда "-10" где-то 2.5 нс. Ставьте 74LVC1G14, гарантировано решит все проблемы. Спасибо!:) Цитата Есть у Вас в проекте асинхронные ("gated") клоки. Например, в триггере для ALARM., cnt6bit, cnt5bit.... Лучше сделать с помощью триггеров с разрешением (DFFE), и все затактировать нужной частотой. Будет полностью синхронный проект, что есть гуд. Хм.. Поясните плз, я похоже совсем в клоках не соображаю. Как это асинхронные клоки? Асинхронные от чего? Как изменить cnt5bit и cnt6bit? Они ведь затактированны от предыдущих элементов (минуты от секунд, часы от минут)? Это сама логика часов, или я чего-то не понимаю? Поясните пожалуйста!
|
|
|
|
|
Nov 15 2009, 11:09
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(skkap @ Nov 15 2009, 12:49)  Спасибо!:) Как изменить cnt5bit и cnt6bit? Они ведь затактированны от предыдущих элементов (минуты от секунд, часы от минут)? имеется ввиду, что можно работать на одноклоковой синхронизации, т.е анализировать весь временной интервал работы в разах периода секунд. Посмотрите предупреждения при раводке проекта. (F1) Посмотрите анализ клоков во временном анализаторе. Во пример, посмотрите в RTL просмотрщике, промоделируйте. Предупреждения исследуйте. Код module ct_r ( input clk, output out_clk_a, out_clk_b );
reg [1:0] cnt; reg del_2a, del_2b;
always @(posedge clk) begin cnt <= cnt + 1'b1; if (cnt == 2'b11) del_2a <= ~del_2a; end
always @(posedge cnt[1]) begin del_2b <= ~del_2b; end
assign out_clk_a = del_2a, out_clk_b = del_2b;
endmodule
|
|
|
|
|
Nov 15 2009, 11:52
|

Участник

Группа: Участник
Сообщений: 21
Регистрация: 29-10-09
Из: Томск
Пользователь №: 53 297

|
Цитата(sazh @ Nov 15 2009, 17:09)  имеется ввиду, что можно работать на одноклоковой синхронизации, т.е анализировать весь временной интервал работы в разах периода секунд. Посмотрите предупреждения при раводке проекта. (F1) Посмотрите анализ клоков во временном анализаторе. Во пример, посмотрите в RTL просмотрщике, промоделируйте. Предупреждения исследуйте. Код module ct_r ( input clk, output out_clk_a, out_clk_b );
reg [1:0] cnt; reg del_2a, del_2b;
always @(posedge clk) begin cnt <= cnt + 1'b1; if (cnt == 2'b11) del_2a <= ~del_2a; end
always @(posedge cnt[1]) begin del_2b <= ~del_2b; end
assign out_clk_a = del_2a, out_clk_b = del_2b;
endmodule Т.е. будет лучше, если счетчик минут будет считать секунды и счетчик часов будет считать секунды (3600)? Это я так понимаю сожрет еще макроячеек, а какой будет выигрыш? я так и не понял  И какое отношение к этому имеет триггер на alarm?
|
|
|
|
|
Nov 15 2009, 16:46
|

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

|
Цитата(skkap @ Nov 15 2009, 15:52)  Т.е. будет лучше, если счетчик минут будет считать секунды и счетчик часов будет считать секунды (3600)? Это я так понимаю сожрет еще макроячеек, а какой будет выигрыш? я так и не понял  Имеем тактовую частоту 1 Hz - clk_1hz, подаем ее на счетчик секунд ( sec_cnt по модулю 60). Формируем сигнал munute_ena, равный "1" при значении счетчика 59. Этот сигнал подаем на вход разрешения счета следующего счетчика ( minute_cnt, также по модулю 60). Тактируется minute_cnt также сигналом clk_1hz. Делаем сигнал разрешения hour_ena аналогичный minute_ena и подаем его на последний счетчик ( hour_cnt - по модулю 24), который тактируется clk_1hzПолучаем полностью синхронный проект. Цитата(skkap @ Nov 15 2009, 15:52)  И какое отношение к этому имеет триггер на alarm? Он тактируется "gated clock", как и остальные части в проекте. Кстати, а индикацию сделали-бы динамическую - сэкономили-бы на пинах (11 против 28)
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Nov 15 2009, 17:52
|

Участник

Группа: Участник
Сообщений: 21
Регистрация: 29-10-09
Из: Томск
Пользователь №: 53 297

|
Цитата(Victor® @ Nov 15 2009, 22:46)  Имеем тактовую частоту 1 Hz - clk_1hz, подаем ее на счетчик секунд (sec_cnt по модулю 60). Формируем сигнал munute_ena, равный "1" при значении счетчика 59. Этот сигнал подаем на вход разрешения счета следующего счетчика (minute_cnt, также по модулю 60). Тактируется minute_cnt также сигналом clk_1hz.
Делаем сигнал разрешения hour_ena аналогичный minute_ena и подаем его на последний счетчик (hour_cnt - по модулю 24), который тактируется clk_1hz Получаем полностью синхронный проект.
Он тактируется "gated clock", как и остальные части в проекте. Кстати, а индикацию сделали-бы динамическую - сэкономили-бы на пинах (11 против 28) Очень понятно пояснили, спасибо! Значит триггер тактируется Gated Clock, если его тактовый вход подключен к пину, отличному от одного из глобальных тактовых сигналов, верно? Значит необходимо каждый блок, содержащий триггеры тактировать исходным тактовым сигналом. Остались непонятны две вещи: 1. Зачем оно надо вообще? Чем плохо gated clock? 2. Как описанная вами ситуация будет работать? Вот рисунок:
Ведь схема счета секунд дает задержку, из-за которой я так понимаю не сработает счет минут? что я не так понял? : /
|
|
|
|
|
Nov 15 2009, 19:37
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(skkap @ Nov 15 2009, 20:52)  Ведь схема счета секунд дает задержку, из-за которой я так понимаю не сработает счет минут? что я не так понял? : / У Вас длительность сформированного импульса en нарисована меньше периода рабочего клока. (Сигнал сформированный по глобальному клоку всегда подхватится следующим клоком). Что касается последующих сформированных сигналов EN, вроде бы их по коньюнкции надо объединять (En_sek && en_minut) По идее Вашу первоначальную схему можно заставить работать, почитав что такое констрейны. Одноклоковая синхронизация -самое простое, да и в дальнейшем такой проект легко параметризовать (Меняя например частоту генератора, изменить схемную реализацию одним параметром)
|
|
|
|
Сообщений в этой теме
skkap CPLD Clock Oct 29 2009, 19:35 sazh Цитата(skkap @ Oct 29 2009, 22:35) Вечер ... Oct 29 2009, 19:41 skkap Цитата(sazh @ Oct 30 2009, 01:41) Если уч... Oct 29 2009, 20:13  sazh Цитата(skkap @ Oct 29 2009, 23:13) Вот ка... Oct 29 2009, 20:30 Shtirlits Цитата(skkap @ Oct 29 2009, 22:35) Понима... Oct 29 2009, 20:18 skkap Т.е. схему по типу этой
Нельзя использовать? Не... Oct 29 2009, 20:42 aaarrr Цитата(skkap @ Oct 29 2009, 23:42) Т.е. с... Oct 29 2009, 21:07  alevnew Цитата(aaarrr @ Oct 30 2009, 03:07) Для т... Oct 30 2009, 04:03 Shtirlits Недавно была тема про генератор http://electronix.... Oct 29 2009, 21:18  andrey_s Часы с питанием от сети или от батарейки? Если пер... Oct 29 2009, 22:55 rv3dll(lex) даю код vhdl
правда я не отлаживал - только напис... Oct 30 2009, 09:10 skkap Всм большое спасибо за ответы! Итак, по порядк... Oct 30 2009, 18:47 aaarrr Цитата(skkap @ Oct 30 2009, 21:47) Такие ... Oct 30 2009, 19:53 Джеймс Цитата(skkap @ Oct 30 2009, 22:47) Такие ... Oct 30 2009, 19:55 SLDM Кварцованые генераторы на рассыпухе(равно как и на... Oct 30 2009, 20:11 Victor® Цитата(SLDM @ Oct 30 2009, 23:11) Кварцов... Oct 31 2009, 13:12  aaarrr Цитата(Victor® @ Oct 31 2009, 16:12) И то... Oct 31 2009, 17:11   Victor® Цитата(aaarrr @ Oct 31 2009, 21:11) А Вы ... Oct 31 2009, 17:39    aaarrr Цитата(Victor® @ Oct 31 2009, 20:39) Поче... Oct 31 2009, 18:00     Victor® Цитата(aaarrr @ Oct 31 2009, 21:00) Счита... Oct 31 2009, 20:39      aaarrr Цитата(Victor® @ Oct 31 2009, 23:39) 1-го... Oct 31 2009, 21:08 Евгений Николаев ЦитатаПитание от сети, а в случае отсутствия - от ... Oct 31 2009, 06:14 skkap Всем спасибо за ответы!
ЦитатаНедолго же прож... Oct 31 2009, 21:12 aaarrr Цитата(skkap @ Nov 1 2009, 00:12) Имеет л... Oct 31 2009, 21:34 Victor® Цитата(skkap @ Nov 1 2009, 00:12) Имеет л... Nov 1 2009, 10:24 rv3dll(lex) а забыл написать - проект уместился в 72 сплд кса... Nov 2 2009, 07:15 skkap Цитата(aaarrr @ Nov 1 2009, 03:34) Имеет.... Nov 2 2009, 14:21 Victor® Цитата(skkap @ Nov 2 2009, 17:21) Спасибо... Nov 2 2009, 14:55 skkap ЦитатаВот подумал, что подозрительно громадное зна... Nov 2 2009, 18:34 Victor® Цитата(skkap @ Nov 2 2009, 21:34) Попробо... Nov 2 2009, 18:43 skkap ЦитатаУменьшите R2 до нескольких кил - думаю быстр... Nov 2 2009, 19:03 Victor® Цитата(skkap @ Nov 2 2009, 23:03) А про н... Nov 2 2009, 20:05 skkap Всем снова привет!
Появилась новая "пробл... Nov 14 2009, 08:32 sazh Цитата(skkap @ Nov 14 2009, 11:32) Создал... Nov 14 2009, 08:48  skkap Цитата(sazh @ Nov 14 2009, 14:48) А куда ... Nov 14 2009, 09:28 skkap Вроде сделал прошивку для CPLD!
Прошу указать... Nov 14 2009, 20:36 Victor® Цитата(skkap @ Nov 15 2009, 00:36) Вроде ... Nov 15 2009, 09:12 SM Что-то просматривая все ответы, не заметил главног... Nov 14 2009, 20:52 skkap Цитата(SM @ Nov 15 2009, 02:52) Что-то пр... Nov 14 2009, 21:20  SM Цитата(skkap @ Nov 15 2009, 00:20) У меня... Nov 14 2009, 21:49     Victor® Цитата(skkap @ Nov 15 2009, 20:52) Очень ... Nov 15 2009, 19:49     SM Цитата(skkap @ Nov 15 2009, 20:52) Значит... Nov 15 2009, 20:07 SM Цитата(skkap @ Nov 15 2009, 12:49) Спасиб... Nov 15 2009, 11:25 dvladim Цитата(SM @ Nov 16 2009, 00:07) Для ПЛИС ... Nov 15 2009, 20:30
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|