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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Остановка счетчика, Qartus 7.1, EPF10K10TC144
all505
сообщение Aug 11 2014, 14:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



Не получается остановить счётчик после тога как он досчитает до 320!
В других симуляторах все работает, но в quatus-e ни в какую не хочет…
Плюс еще появляется не понятные провалы при переходе счётчика с 255>256?

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 11 2014, 14:15
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(all505 @ Aug 11 2014, 18:10) *
Не получается остановить счётчик после тога как он досчитает до 320!
В других симуляторах все работает, но в quatus-e ни в какую не хочет…
Плюс еще появляется не понятные провалы при переходе счётчика с 255>256?

Беда вовсе не в Квартусе... А догадайтесь в ком?
Это абсолютно неправильный путь и он называется асинхронное проектирование.
Если хотите подробнее, то могу по скайпу рассказать...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
all505
сообщение Aug 11 2014, 14:44
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



Сильно не ругать т.к. опыта программирования fpga очень мало.
Если в двух словах как правильнее?
Кстати это же схема в 3032 работала нормально.
Go to the top of the page
 
+Quote Post
Jackov
сообщение Aug 11 2014, 15:00
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(all505 @ Aug 11 2014, 17:44) *
Если в двух словах как правильнее?

Как правильно смотреть тут.
http://youtu.be/ZKpz9PFFh4Y
Go to the top of the page
 
+Quote Post
all505
сообщение Aug 11 2014, 15:09
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



Попробовал такой вариант – работает!
Но правильный ли он?
Пошел смотреть видео…

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 11 2014, 15:15
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Jackov @ Aug 11 2014, 19:00) *
Как правильно смотреть тут.
http://youtu.be/ZKpz9PFFh4Y

Нет, это старая технология для рассыпухи... Это не для ПЛИС!
Смотреть сюда:
http://habrahabr.ru/post/137643/

Или у меня на сайте "Краткий Курс"...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Jackov
сообщение Aug 11 2014, 15:40
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(all505 @ Aug 11 2014, 18:09) *
Но правильный ли он?
Пошел смотреть видео…

Тоже нет.
Про правила проектирования цифровых синхронных схем смотреть тут с 14:40
http://www.youtube.com/watch?v=uW8DPE6TRxM...etailpage#t=877

Ошибочка вышла, первая видюшка про счётчики тут
http://youtu.be/XzkkSdmNszs

Цитата(iosifk @ Aug 11 2014, 18:15) *
Нет, это старая технология для рассыпухи... Это не для ПЛИС!

Раскройте, пожалуйста. Чем для ПЛИС не годится, тем что не HDL?
Ну так для начинающего в самый раз, суть происходящего как она есть, без замыливания HDL-кодом.
Go to the top of the page
 
+Quote Post
count_enable
сообщение Aug 11 2014, 16:07
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



Если очень вкратце, то внутри плис не суповой набор из логических элементов, а сложная структура, которая может эмулировать логические схемы. При этом она эмулирует не абстрактные матмодели, поэтому у нее есть временные характеристики, ограничения и т.д. К счастью софт для синтеза очень умный и учитывает все эти показатели. Поэтому в 99% случаев он синтезирует схемы гораздо лучше и производительнее чем ручная отрисовка. Не говоря уж о том что работать с кодом в проектах сложнее счётчика значительно легче.
Go to the top of the page
 
+Quote Post
eugen_pcad_ru
сообщение Aug 11 2014, 16:14
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353



Выход счетчика звенит, что Вы и наблюдаете. Поставьте по выходу регистр.
P.S.: То, что годилось для россыпи, для ПЛИС обычно не подходит. И дело тут в том, что логика на россыпи работала с учетом "размывания" фронтов в связи в физическими резистивно-емкостными характеристиками выводов микросхем, печатных дорожек и т.п. И всё замечательно работало. А вот когда возникает желание впихнуть всё в один корпус, часто возникают проблемы, аналогичные Вашим.


--------------------
Правильно сформулированый вопрос содержит в себе половину ответа.
P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
Jackov
сообщение Aug 11 2014, 16:14
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(count_enable @ Aug 11 2014, 19:07) *
Если очень вкратце, то внутри плис не суповой набор из логических элементов, а сложная структура, которая может эмулировать логические схемы. При этом она эмулирует не абстрактные матмодели, поэтому у нее есть временные характеристики, ограничения и т.д. К счастью софт для синтеза очень умный и учитывает все эти показатели. Поэтому в 99% случаев он синтезирует схемы гораздо лучше и производительнее чем ручная отрисовка. Не говоря уж о том что работать с кодом в проектах сложнее счётчика значительно легче.

Это всё понятно. В данном случае есть затруднения с синхронным проектированием, а это основа основ, и при не понимании этих базовых понятий как-то странно предлагать начинающему разбираться в HDL.
Кроме того, если не представлять как схема может выглядеть на рассыпухе сложно написать качественный код, имхо.
Go to the top of the page
 
+Quote Post
count_enable
сообщение Aug 11 2014, 16:23
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



В рассыпухе свои законы. Первооснова это булева алгебра и абстрактная цифровая логика. Не имею ничего прочив лабораторных на 74 серии, они очень наглядны и полезны, но копировать схемы с рассыпухи в плис не стоит.

Кстати, очень советую превосходную всеобьемлюющую книгу "Digital Design and Computer Architecture". В ней есть темы от двоичной арифметики и до написания полноценного процессора на HDL.
Go to the top of the page
 
+Quote Post
Jackov
сообщение Aug 11 2014, 16:28
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(count_enable @ Aug 11 2014, 19:23) *
но копировать схемы с рассыпухи в плис не стоит.

Но почему не стоит, если данная "рассыпуха" не противоречит законам построения схем на плисах? Лишь только потому-что это дольше по времени чем HDL-код?

Сообщение отредактировал Jackov - Aug 11 2014, 16:29
Go to the top of the page
 
+Quote Post
all505
сообщение Aug 11 2014, 16:37
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



В общем, посмотрел видео: везде намек на синхронность, но не пойму где у меня не синхронность? Сам счетчик?
Пока остановился на таком варианте – судя по симулятору, работает правильно?
Плисина оказалась сложнее, чем я думал.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Jackov
сообщение Aug 11 2014, 16:38
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(all505 @ Aug 11 2014, 19:37) *
В общем, посмотрел видео: везде намек на синхронность, но не пойму где у меня не синхронность? Сам счетчик?

В данном случае комбинационная схема на тактовом входе. А это недопустимо.
Go to the top of the page
 
+Quote Post
all505
сообщение Aug 11 2014, 16:43
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



Т.е. счетчик нужно останавливать другими путями, но только не разрывая тактовый сигнал?
Go to the top of the page
 
+Quote Post
count_enable
сообщение Aug 11 2014, 16:44
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



Вместо комб. схем на клоке, сделайте вход CE и управляйте через него.
Go to the top of the page
 
+Quote Post
all505
сообщение Aug 11 2014, 16:49
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



А если мне нужно: досчитать до 320, остановить счетчик и сбросить, переключить вход “clock” счетчика к другому тактовому генератору (медленному). Как поступить?
Go to the top of the page
 
+Quote Post
Jackov
сообщение Aug 11 2014, 16:52
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(all505 @ Aug 11 2014, 19:43) *
Т.е. счетчик нужно останавливать другими путями, но только не разрывая тактовый сигнал?

Да, на тактовый вход сигнал должен идти с генератора (или от куда он там у Вас идёт) напрямую.

Цитата(count_enable @ Aug 11 2014, 19:44) *
Вместо комб. схем на клоке, сделайте вход CE и управляйте через него.

Вот эта галка
Прикрепленное изображение


Сообщение отредактировал Jackov - Aug 11 2014, 16:52
Go to the top of the page
 
+Quote Post
all505
сообщение Aug 11 2014, 17:10
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



Со счетчиком вроде разобрался.
Последний вопрос: как правильнее или на чем организовать делитель тактовой частоты?
Что бы можно было управлять скоростью счётчика!

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Jackov
сообщение Aug 11 2014, 17:40
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(all505 @ Aug 11 2014, 20:10) *
Последний вопрос: как правильнее или на чем организовать делитель тактовой частоты?
Что бы можно было управлять скоростью счётчика!

Вообще так делать не рекомендуется, поскольку счётчик он же не сам по себе, он чем-то управляет, и наверняка он управляет какими-то регистровыми устройствами.
Если Вы переключите счётчик он у Вас начнёт работать асинхронно с устройствами которыми он управляет, их тоже надо переключать. Короче куча проблем возникает.
Меня могут заругать, ну да ладно...
Сигнал С - искомый изменяемый тактовый сигнал.
Мультиплексор переключать синхронно сигналу CLK.
Схему не проверял, но должна работать.
А вообще, на сколько я знаю, существует специальная мегафункция переключающая клоки корректно, но не во всех плисинах такие есть, сам ни когда не использовал.
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
all505
сообщение Aug 11 2014, 17:54
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



А если так?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Jackov
сообщение Aug 11 2014, 18:01
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(all505 @ Aug 11 2014, 20:54) *
А если так?

непонятно чё такое MR, и что это за элемент с Y.
Если Y выход, то как он может объединятся Q0?
И самое главное если элемент с Y - комбинационная схема, то не годится.
У Вас практическая задача, или академическая?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 11 2014, 18:25
Сообщение #23


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Jackov @ Aug 11 2014, 19:40) *
Ошибочка вышла, первая видюшка про счётчики тут
http://youtu.be/XzkkSdmNszs

Раскройте, пожалуйста. Чем для ПЛИС не годится, тем что не HDL?
Ну так для начинающего в самый раз, суть происходящего как она есть, без замыливания HDL-кодом.


Еще раз! То, что годится для рассыпухи не работает в ПЛИС, так что не надо нагружать ТС ненужными примерами.
И дело не в HDL, дело совсем в другом.
Есть понятие клокового дерева. Это значит, что по этому дереву разветвляются тактовые и они идут с минимальным разбегом.
И реальных клоковых деревьев в кристалле мало, потому они ценный ресурс и его надо беречь. А нужна "другая" частота - делите сигнал разрешения и триггер будет работать только в нужное время...
Поэтому на ПЛИС - только синхронное проектирование, и коммутация клока - это повод для увольнения...
А на рассыпухе выход одного триггера подается на вход другого. И организуются асинхронные цепи... Поэтому нельзя смотреть на рассыпуху и бездумно переносить ее в ПЛИС...
Да еще и компилятор добавит забот. Часть счетчиков он сделает быстрыми, а может и сделать медленными... И тогда - "не получается"....

Я веду занятия со студентами и эта тема - одна из важнейших. Так что если хотите присоединиться - пишите.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
all505
сообщение Aug 11 2014, 18:31
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



Немного неправильно нарисовал.
Слева счетчик (MR – сброс), справа мультиплексор
Задача практическая.

Цитата
И самое главное если элемент с Y - комбинационная схема, то не годится.

Буду тогда пробовать ваш вариант
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 11 2014, 18:35
Сообщение #25


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(all505 @ Aug 11 2014, 22:31) *
Немного неправильно нарисовал.
Слева счетчик (MR – сброс), справа мультиплексор
Задача практическая.


Буду тогда пробовать ваш вариант

Упорный в нежелании учиться...
Больше сюда писать не буду...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
all505
сообщение Aug 11 2014, 18:46
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



Цитата
Упорный в нежелании учиться...

У меня просто идеи закончились!
Хотя вы уже подкинули идею с сигналом разрешения…
Go to the top of the page
 
+Quote Post
Jackov
сообщение Aug 11 2014, 18:52
Сообщение #27


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485



Цитата(iosifk @ Aug 11 2014, 21:25) *
Поэтому на ПЛИС - только синхронное проектирование, и коммутация клока - это повод для увольнения...

А где Вы видели в тех видюшках коммутацию клока?
Цитата(iosifk @ Aug 11 2014, 21:25) *
А на рассыпухе выход одного триггера подается на вход другого. И организуются асинхронные цепи...

Выход Q одного триггера подан на вход D другого триггера, оба тактируются одним сигналом, где здесь асинхронные цепи?
Go to the top of the page
 
+Quote Post
all505
сообщение Aug 11 2014, 19:34
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 15-07-09
Пользователь №: 51 301



Все последняя попытка… rolleyes.gif

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
canny
сообщение Aug 12 2014, 14:22
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 8-07-09
Пользователь №: 51 060



Цитата(iosifk @ Aug 11 2014, 21:25) *
И реальных клоковых деревьев в кристалле мало, потому они ценный ресурс и его надо беречь. А нужна "другая" частота - делите сигнал разрешения и триггер будет работать только в нужное время...


Тогда для примера.

Есть частота 50 МГц. И нужно тактировать схему на кратной частоте. Например, 12,5 МГц. Т.е. поделенной на 4. Правильно заводить на тактовый вход сигнал 50 МГц, а на вход разрешения - сигнал clk25 МГц AND clk12,5 МГц?

Тогда на рисунке будет срабатывать триггер только по фронту в 50 нс.

Правильно?

Go to the top of the page
 
+Quote Post
toshas
сообщение Aug 12 2014, 20:13
Сообщение #30


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Забудьте про смешивание синхро-сигнала с чем-то еще!

Сделайте счетчик до 4х и на 4м такте ставьте Clock Enable (CE) на триггер.

Входные частоты и счетчика и триггера остаются неизменными - 50 Мгц, но срабатывает он только каждый 4х такт.

Если далее идет сложная схема, с большим временем распростанения сигнала (много уровеней логики) и она не укладывается во временные ограничения 50 Мгц, надо использовать multi-cycle path ограничения.
Go to the top of the page
 
+Quote Post
SM
сообщение Aug 13 2014, 08:52
Сообщение #31


Гуру
******

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



Цитата(toshas @ Aug 13 2014, 00:13) *
Забудьте про смешивание синхро-сигнала с чем-то еще!


Ну не надо так категорически.... Есть случаи (не тот, что у ТС, когда клоки кратные, от одного источника и блок мелкий), когда без этого не обойтись. Например, если этот тактовый сигнал надо вывести наружу ПЛИС, или он тактирует ОЧЕНЬ большой блок (например, ядро процессора), или это прототип ASIC, где clock gating это совершенно обычное явление. Если соблюдать определенные правила, зная, что делаешь, то никаких проблем от этого не будет. Просто надо изучить все вопросы, связанные с построением безглитчевых коммутаторов тактовых сигналов, и все будет ОК.

PS
Повторюсь еще раз для всяких троллей, что это не для данного конкретного случая, где надо сформировать правильный сигнал разрешения счета, а "вообще", то есть, что не надо "забывать про смешивание". Каждому случаю - свое оптимальное решение.
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Aug 13 2014, 14:21
Сообщение #32


Знающий
****

Группа: Участник
Сообщений: 599
Регистрация: 28-08-08
Из: Ростов папа
Пользователь №: 39 872



Цитата(iosifk @ Aug 11 2014, 22:25) *
Еще раз! То, что годится для рассыпухи не работает в ПЛИС, так что не надо нагружать ТС ненужными примерами.
И дело не в HDL, дело совсем в другом.
Есть понятие клокового дерева. Это значит, что по этому дереву разветвляются тактовые и они идут с минимальным разбегом.
И реальных клоковых деревьев в кристалле мало, потому они ценный ресурс и его надо беречь. А нужна "другая" частота - делите сигнал разрешения и триггер будет работать только в нужное время...
Поэтому на ПЛИС - только синхронное проектирование, и коммутация клока - это повод для увольнения...
А на рассыпухе выход одного триггера подается на вход другого. И организуются асинхронные цепи... Поэтому нельзя смотреть на рассыпуху и бездумно переносить ее в ПЛИС...
Да еще и компилятор добавит забот. Часть счетчиков он сделает быстрыми, а может и сделать медленными... И тогда - "не получается"....

Я веду занятия со студентами и эта тема - одна из важнейших. Так что если хотите присоединиться - пишите.

В приложении схема реализованная на рассыпухе в 2002 году, когда про язык VHDL знали только в IEEE Std 1076-2002.
Схема рабочая, использовалась в сериях MAX3000,MAX7000,ACEX 1K, Cyclone1,2 ну и щас будем пробовать в четвертом.
Тестировалась еще в MAX Baseline, а про квартус слышали только в америке.
ЗЫ. Это работало и на 555-й серии.
ЗЫ.ЗЫ про синхронность полностью согласен. На всю схему только один клок! Дешифрируйте предыдующую кодовую комбинацию и сдвигайте по выходу сначала задним а потом передним фронтом тактовой.
Прикрепленные файлы
Прикрепленный файл  RX_E1.pdf ( 98.87 килобайт ) Кол-во скачиваний: 66
 
Go to the top of the page
 
+Quote Post

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

 


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


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