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

 
 
> CPLD Clock, вопросы по разработке
skkap
сообщение Oct 29 2009, 19:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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 (скоро попробую и КМОП, пока нету нужной).

Заранее спасибо за советы!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
skkap
сообщение Nov 15 2009, 09:49
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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? Они ведь затактированны от предыдущих элементов (минуты от секунд, часы от минут)?
Это сама логика часов, или я чего-то не понимаю?
Поясните пожалуйста!
Go to the top of the page
 
+Quote Post
sazh
сообщение Nov 15 2009, 11:09
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
skkap
сообщение Nov 15 2009, 11:52
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 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)? Это я так понимаю сожрет еще макроячеек, а какой будет выигрыш? я так и не понялsmile.gif
И какое отношение к этому имеет триггер на alarm?
Go to the top of the page
 
+Quote Post
Victor®
сообщение Nov 15 2009, 16:46
Сообщение #5


Lazy
******

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



Цитата(skkap @ Nov 15 2009, 15:52) *
Т.е. будет лучше, если счетчик минут будет считать секунды и счетчик часов будет считать секунды (3600)? Это я так понимаю сожрет еще макроячеек, а какой будет выигрыш? я так и не понялsmile.gif


Имеем тактовую частоту 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
Go to the top of the page
 
+Quote Post
skkap
сообщение Nov 15 2009, 17:52
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 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. Как описанная вами ситуация будет работать? Вот рисунок:
Прикрепленное изображение


Ведь схема счета секунд дает задержку, из-за которой я так понимаю не сработает счет минут? что я не так понял? : /
Go to the top of the page
 
+Quote Post
sazh
сообщение Nov 15 2009, 19:37
Сообщение #7


Гуру
******

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



Цитата(skkap @ Nov 15 2009, 20:52) *
Ведь схема счета секунд дает задержку, из-за которой я так понимаю не сработает счет минут? что я не так понял? : /


У Вас длительность сформированного импульса en нарисована меньше периода рабочего клока. (Сигнал сформированный по глобальному клоку всегда подхватится следующим клоком).
Что касается последующих сформированных сигналов EN, вроде бы их по коньюнкции надо объединять (En_sek && en_minut)
По идее Вашу первоначальную схему можно заставить работать, почитав что такое констрейны.
Одноклоковая синхронизация -самое простое, да и в дальнейшем такой проект легко параметризовать (Меняя например частоту генератора, изменить схемную реализацию одним параметром)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


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


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