|
Остановка счетчика, Qartus 7.1, EPF10K10TC144 |
|
|
|
Aug 11 2014, 14:10
|
Участник

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

|
Не получается остановить счётчик после тога как он досчитает до 320! В других симуляторах все работает, но в quatus-e ни в какую не хочет… Плюс еще появляется не понятные провалы при переходе счётчика с 255>256?
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 11 2014, 14:15
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(all505 @ Aug 11 2014, 18:10)  Не получается остановить счётчик после тога как он досчитает до 320! В других симуляторах все работает, но в quatus-e ни в какую не хочет… Плюс еще появляется не понятные провалы при переходе счётчика с 255>256? Беда вовсе не в Квартусе... А догадайтесь в ком? Это абсолютно неправильный путь и он называется асинхронное проектирование. Если хотите подробнее, то могу по скайпу рассказать...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Aug 11 2014, 14:44
|
Участник

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

|
Сильно не ругать т.к. опыта программирования fpga очень мало. Если в двух словах как правильнее? Кстати это же схема в 3032 работала нормально.
|
|
|
|
|
Aug 11 2014, 15:00
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(all505 @ Aug 11 2014, 17:44)  Если в двух словах как правильнее? Как правильно смотреть тут. http://youtu.be/ZKpz9PFFh4Y
|
|
|
|
|
Aug 11 2014, 15:09
|
Участник

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

|
Попробовал такой вариант – работает! Но правильный ли он? Пошел смотреть видео…
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 11 2014, 15:15
|
Гуру
     
Группа: Модераторы
Сообщений: 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
|
|
|
|
|
Aug 11 2014, 15:40
|
Местный
  
Группа: Участник
Сообщений: 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-кодом.
|
|
|
|
|
Aug 11 2014, 16:14
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(count_enable @ Aug 11 2014, 19:07)  Если очень вкратце, то внутри плис не суповой набор из логических элементов, а сложная структура, которая может эмулировать логические схемы. При этом она эмулирует не абстрактные матмодели, поэтому у нее есть временные характеристики, ограничения и т.д. К счастью софт для синтеза очень умный и учитывает все эти показатели. Поэтому в 99% случаев он синтезирует схемы гораздо лучше и производительнее чем ручная отрисовка. Не говоря уж о том что работать с кодом в проектах сложнее счётчика значительно легче. Это всё понятно. В данном случае есть затруднения с синхронным проектированием, а это основа основ, и при не понимании этих базовых понятий как-то странно предлагать начинающему разбираться в HDL. Кроме того, если не представлять как схема может выглядеть на рассыпухе сложно написать качественный код, имхо.
|
|
|
|
|
Aug 11 2014, 16:28
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(count_enable @ Aug 11 2014, 19:23)  но копировать схемы с рассыпухи в плис не стоит. Но почему не стоит, если данная "рассыпуха" не противоречит законам построения схем на плисах? Лишь только потому-что это дольше по времени чем HDL-код?
Сообщение отредактировал Jackov - Aug 11 2014, 16:29
|
|
|
|
|
Aug 11 2014, 16:37
|
Участник

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

|
В общем, посмотрел видео: везде намек на синхронность, но не пойму где у меня не синхронность? Сам счетчик? Пока остановился на таком варианте – судя по симулятору, работает правильно? Плисина оказалась сложнее, чем я думал.
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 11 2014, 16:38
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

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

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

|
Т.е. счетчик нужно останавливать другими путями, но только не разрывая тактовый сигнал?
|
|
|
|
|
Aug 11 2014, 16:49
|
Участник

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

|
А если мне нужно: досчитать до 320, остановить счетчик и сбросить, переключить вход “clock” счетчика к другому тактовому генератору (медленному). Как поступить?
|
|
|
|
|
Aug 11 2014, 16:52
|
Местный
  
Группа: Участник
Сообщений: 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
|
|
|
|
|
Aug 11 2014, 17:10
|
Участник

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

|
Со счетчиком вроде разобрался. Последний вопрос: как правильнее или на чем организовать делитель тактовой частоты? Что бы можно было управлять скоростью счётчика!
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 11 2014, 17:40
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(all505 @ Aug 11 2014, 20:10)  Последний вопрос: как правильнее или на чем организовать делитель тактовой частоты? Что бы можно было управлять скоростью счётчика! Вообще так делать не рекомендуется, поскольку счётчик он же не сам по себе, он чем-то управляет, и наверняка он управляет какими-то регистровыми устройствами. Если Вы переключите счётчик он у Вас начнёт работать асинхронно с устройствами которыми он управляет, их тоже надо переключать. Короче куча проблем возникает. Меня могут заругать, ну да ладно... Сигнал С - искомый изменяемый тактовый сигнал. Мультиплексор переключать синхронно сигналу CLK. Схему не проверял, но должна работать. А вообще, на сколько я знаю, существует специальная мегафункция переключающая клоки корректно, но не во всех плисинах такие есть, сам ни когда не использовал.
|
|
|
|
|
Aug 11 2014, 17:54
|
Участник

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

|
А если так?
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 11 2014, 18:01
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(all505 @ Aug 11 2014, 20:54)  А если так? непонятно чё такое MR, и что это за элемент с Y. Если Y выход, то как он может объединятся Q0? И самое главное если элемент с Y - комбинационная схема, то не годится. У Вас практическая задача, или академическая?
|
|
|
|
|
Aug 11 2014, 18:25
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Jackov @ Aug 11 2014, 19:40)  Ошибочка вышла, первая видюшка про счётчики тут http://youtu.be/XzkkSdmNszsРаскройте, пожалуйста. Чем для ПЛИС не годится, тем что не HDL? Ну так для начинающего в самый раз, суть происходящего как она есть, без замыливания HDL-кодом. Еще раз! То, что годится для рассыпухи не работает в ПЛИС, так что не надо нагружать ТС ненужными примерами. И дело не в HDL, дело совсем в другом. Есть понятие клокового дерева. Это значит, что по этому дереву разветвляются тактовые и они идут с минимальным разбегом. И реальных клоковых деревьев в кристалле мало, потому они ценный ресурс и его надо беречь. А нужна "другая" частота - делите сигнал разрешения и триггер будет работать только в нужное время... Поэтому на ПЛИС - только синхронное проектирование, и коммутация клока - это повод для увольнения... А на рассыпухе выход одного триггера подается на вход другого. И организуются асинхронные цепи... Поэтому нельзя смотреть на рассыпуху и бездумно переносить ее в ПЛИС... Да еще и компилятор добавит забот. Часть счетчиков он сделает быстрыми, а может и сделать медленными... И тогда - "не получается".... Я веду занятия со студентами и эта тема - одна из важнейших. Так что если хотите присоединиться - пишите.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Aug 11 2014, 18:31
|
Участник

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

|
Немного неправильно нарисовал. Слева счетчик (MR – сброс), справа мультиплексор Задача практическая. Цитата И самое главное если элемент с Y - комбинационная схема, то не годится. Буду тогда пробовать ваш вариант
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 11 2014, 18:46
|
Участник

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

|
Цитата Упорный в нежелании учиться... У меня просто идеи закончились! Хотя вы уже подкинули идею с сигналом разрешения…
|
|
|
|
|
Aug 11 2014, 18:52
|
Местный
  
Группа: Участник
Сообщений: 294
Регистрация: 25-09-13
Из: Н.Новгород
Пользователь №: 78 485

|
Цитата(iosifk @ Aug 11 2014, 21:25)  Поэтому на ПЛИС - только синхронное проектирование, и коммутация клока - это повод для увольнения... А где Вы видели в тех видюшках коммутацию клока? Цитата(iosifk @ Aug 11 2014, 21:25)  А на рассыпухе выход одного триггера подается на вход другого. И организуются асинхронные цепи... Выход Q одного триггера подан на вход D другого триггера, оба тактируются одним сигналом, где здесь асинхронные цепи?
|
|
|
|
|
Aug 11 2014, 19:34
|
Участник

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

|
Все последняя попытка…
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 12 2014, 14:22
|
Участник

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

|
Цитата(iosifk @ Aug 11 2014, 21:25)  И реальных клоковых деревьев в кристалле мало, потому они ценный ресурс и его надо беречь. А нужна "другая" частота - делите сигнал разрешения и триггер будет работать только в нужное время... Тогда для примера. Есть частота 50 МГц. И нужно тактировать схему на кратной частоте. Например, 12,5 МГц. Т.е. поделенной на 4. Правильно заводить на тактовый вход сигнал 50 МГц, а на вход разрешения - сигнал clk25 МГц AND clk12,5 МГц? Тогда на рисунке будет срабатывать триггер только по фронту в 50 нс. Правильно?
|
|
|
|
|
Aug 13 2014, 08:52
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(toshas @ Aug 13 2014, 00:13)  Забудьте про смешивание синхро-сигнала с чем-то еще! Ну не надо так категорически.... Есть случаи (не тот, что у ТС, когда клоки кратные, от одного источника и блок мелкий), когда без этого не обойтись. Например, если этот тактовый сигнал надо вывести наружу ПЛИС, или он тактирует ОЧЕНЬ большой блок (например, ядро процессора), или это прототип ASIC, где clock gating это совершенно обычное явление. Если соблюдать определенные правила, зная, что делаешь, то никаких проблем от этого не будет. Просто надо изучить все вопросы, связанные с построением безглитчевых коммутаторов тактовых сигналов, и все будет ОК. PS Повторюсь еще раз для всяких троллей, что это не для данного конкретного случая, где надо сформировать правильный сигнал разрешения счета, а "вообще", то есть, что не надо "забывать про смешивание". Каждому случаю - свое оптимальное решение.
|
|
|
|
|
Aug 13 2014, 14:21
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|