Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по применению ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
smk
Здравствуйте! Опыта в применении ПЛИС нет совсем. Прошу проконсультировать. Нужно считать импульсы с частотой не менее 100 МГц. Счетчик в МК хорош но не подойдет т.к. там из-за конструкции входа импульсы импульсы считаются с предельной частотой F(io-тактовая)/4. Обратил внимание на то, что ПЛИС судя по всему быстрее умеет. Собственно вопрос. А получится ли посчитать с такой частотой. Сигнал - меандр с амплитудой ТТЛ. Хотел бы на первый раз использовать EPM3032ALC44-10N как дешевую. Спасибо.
RobFPGA
Приветствую!

Цитата(smk @ Apr 16 2018, 08:59) *
Здравствуйте! Опыта в применении ПЛИС нет совсем. Прошу проконсультировать. Нужно считать импульсы с частотой не менее 100 МГц. Счетчик в МК хорош но не подойдет т.к. там из-за конструкции входа импульсы импульсы считаются с предельной частотой F(io-тактовая)/4. Обратил внимание на то, что ПЛИС судя по всему быстрее умеет. Собственно вопрос. А получится ли посчитать с такой частотой. Сигнал - меандр с амплитудой ТТЛ. Хотел бы на первый раз использовать EPM3032ALC44-10N как дешевую. Спасибо.

Получится - как раз для таких задач ПЛИС и заточена - а 100 MHz и не большая частота для такого.
На выбранной Вами CPLD можно много чего наворотить но только прежде чем покупать чип - прикинете функционал который Вы хотите впихнуть в логику. Какой разрядности счетчик надо, как старт - стоп будет делается, как вывод данных на внешний MK, ... Потом можно все эти хотелки попробовать реализовать и просимулировать в среде разработки Quartus.
Ну а потом уж можно и закупаться тем чипом в который влезут Ваши фантазии.

Удачи! Rob.


iosifk
Цитата(RobFPGA @ Apr 16 2018, 10:22) *
Получится - как раз для таких задач ПЛИС и заточена - а 100 MHz и не большая частота для такого.

Именно так и надо поступать...
И еще только добавлю.
Все дело в том, что 100 Мгц TTL по плате идут плохо... LVDS - уже гораздо лучше. Но если импульсы могут иметь еще и помехи в виде иголок, наложенных синусоид, колебателностей на фронтах, то можно сделать небольшую фильтрацию и на это надо заложить резерв ресурсов...
toweroff
Смотря какие интервалы для счёта будут на такой частоте...
счетчик на 24 разряда переполнится через почти 170мс, а уписАть в оставшиеся 8 разрядов какую-то сериальную машину... ну можно, наверное
Но если что, можно в сторону 3064 посмотреть. Там и счетчик уже 42 секунды не переполнится, с 32-мя разрядами-то
smk
Счет - 1 сек максимум. 32 бита с головой. Отсылка? SPI вероятно. Можно подумать о параллельном интерфейсе. Наверно даже лучше так. Интервал предпочтительно иметь возможность делать кратным 10 в сторону уменьшения. Например 1 сек, 1/10 сек, 1/100 сек и т.п. Я вот тут с проблемой столкнулся. Получается MAX3000 Quartus 13.1 не знает? Надо 13.0 SP1? Кстати... а формирование интервала на ПЛИС ведь тоже можно сделать? Если тактировать от стабильного 10 МГц?
RobFPGA
Приветствую!
Цитата(iosifk @ Apr 16 2018, 10:48) *
...
Все дело в том, что 100 Мгц TTL по плате идут плохо... LVDS - уже гораздо лучше. Но если импульсы могут иметь еще и помехи в виде иголок, наложенных синусоид, колебателностей на фронтах, то можно сделать небольшую фильтрацию и на это надо заложить резерв ресурсов...

Ой не пугайте TC - ему и так страшно - нормально ttl 100 MHz по плате ходят - а если еще и согласующий резистор в линию впихнуть то и 300 MHz толпой пробегут без проблем sm.gif. Ну и у CPLD-шки на входе обычно триггер Шмитта стоит чтобы всякий иголки фильтровать.

Удачи! Rob.
iosifk
Цитата(smk @ Apr 16 2018, 11:05) *
Кстати... а формирование интервала на ПЛИС ведь тоже можно сделать? Если тактировать от стабильного 10 МГц?

А как Вы без этого будете измерять частоту?
smk
Цитата(iosifk @ Apr 16 2018, 11:12) *
А как Вы без этого будете измерять частоту?

Думал внешний. А вот если вывести пин - "готов" и параллельно отдать, то вообще песня получается.
iosifk
Цитата(smk @ Apr 16 2018, 11:16) *
Думал внешний. А вот если вывести пин - "готов" и параллельно отдать, то вообще песня получается.

Тут вот какое дело. Обычно "идеология" разработки на ПЛИС начинается так. "Сюда триггерок, туда триггерок"... Внешняя тактовая нам не нужна... И т.д.
А потом Начинаются проблемы с асинхронщиной... Потом начинаются хотелки, чтобы немного "здесь" и чуть-чуть "там" добавить... А потом выясняется, что не "учли", не "добавили"... И потому хоть сначала начинай...
Ведь про параллельную шину говорили, наверное асинхронную?
Вот и спрашиваю, зачем себе делать выворот яиц?
smk
Параллельная - да, асинхронная.

Идея в том, чтоб ПЛИС жила своей жизнью и по мере готовности "нажитого" отдавала это в МК.
iosifk
Цитата(smk @ Apr 16 2018, 11:36) *
Параллельная - да, асинхронная.

Идея в том, чтоб ПЛИС жила своей жизнью и по мере готовности "нажитого" отдавала это в МК.

Вот именно это Вы и получите. Да, будет жить именно своей жизнью, но не той о которой Вы мечтаете. Будет делать то, что захочет, но может быть иногда и будет что-то делать для Вас... А может быть и не будет...
И все это уже многократно пройдено и описано. Но ведь Вам это не указ, верно? И термин "синхронное проектирование" неизвестен. А может быть на него аллергия? И мечтается, что все дураки темные со своими асинхронными проблемами, а уж у Вас такого никогда не случится...
Plain
iosifk, частотомер по определению асинхронная схема и на ПЛИС решается точно так же без единой проблемы, как и раньше на логических ИС.
iosifk
Цитата(Plain @ Apr 16 2018, 11:55) *
iosifk, частотомер по определению асинхронная схема и на ПЛИС решается точно так же без единой проблемы, как и раньше на логических ИС.

И частотомер и фильтр для помех и интерфейс - все асинхронное и тактовая не нужна? Ведь ТС имеет в виду именно это...
И вот это "частотомер по определению асинхронная схема" - это смотря как делать... Сам только счетчик импульсов - возможно, а все остальное без CDC - вряд ли...
Лучше уж сразу заставить чайника выучить эти проблемы, чем это произойдет "по частям", когда плата уже готова и изменить ничего нельзя... Хотя в данном случае вполне поможет самый дешевый стартовый набор, а в нем как раз все необходимое уже есть, так что тут можно мудохаться "по частям"...
smk
А можно яснее про "синхронное проектирование"? Это в чем я наколоться могу? Действительно не понимаю о чем Вы, но понять не против.
RobFPGA
Приветствую!

Цитата(iosifk @ Apr 16 2018, 12:04) *
И частотомер и фильтр для помех и интерфейс - все асинхронное и тактовая не нужна? Ведь ТС имеет в виду именно это...
И вот это "частотомер по определению асинхронная схема" - это смотря как делать... Сам только счетчик импульсов - возможно, а все остальное без CDC - вряд ли...
Лучше уж сразу заставить чайника выучить эти проблемы, чем это произойдет "по частям", когда плата уже готова и изменить ничего нельзя... Хотя в данном случае вполне поможет самый дешевый стартовый набор, а в нем как раз все необходимое уже есть, так что тут можно мудохаться "по частям"...

Весь частотомер нормально делается полностью в асинхронном варианте тем более на CPLD - и счетчик ( о ужас - полностью Asynchronous (Ripple) Counters laughing.gif ) с входным gate, и мультиплексор шины вывода. Ничего страшного тут нет - если конечно понимаешь что и как работает.
Чайника надо не пугать возможными проблемами, разрывая котелок давлением авторитетов - а налив водички базовых знаний медленно разогревать - объяснять варианты решения тех или иных задач. sm.gif

Удачи! Rob.
Plain
Цитата(iosifk @ Apr 16 2018, 12:04) *
без CDC - вряд ли

Да не было его там отродясь, асинхронным сигналом окна тупо разрешался первый триггер асинхронного же счётчика.
_pv
Цитата(smk @ Apr 16 2018, 12:59) *
Счетчик в МК хорош но не подойдет т.к. там из-за конструкции входа импульсы импульсы считаются с предельной частотой F(io-тактовая)/4.

перед таймером можно поставить какой-нибудь 74AHC1G4210
или пару sn74lvc[2g]74
не проще чем городить счётчик в CPLD c вычитыванием через spi?
Plain
Естественно, поставить пару копеечных триггеров гораздо проще, дешевле и быстрее, но автор хотел некую полную автономность.
toweroff
Цитата(_pv @ Apr 16 2018, 12:41) *
или пару sn74lvc[2g]74

да и одной должно хватить, если тактовая пинов позволяет. Один корпус 74 - уже /4
ТС не указал тактовую своего контроллера
_pv
Цитата(toweroff @ Apr 16 2018, 17:16) *
да и одной должно хватить, если тактовая пинов позволяет. Один корпус 74 - уже /4

это я с запасом, вдруг там avr или pic какой-нибудь который только до 10МГц только считать умеет.
jcxz
Цитата(_pv @ Apr 16 2018, 13:40) *
это я с запасом, вдруг там avr или pic какой-нибудь который только до 10МГц только считать умеет.

А что, ИС счётчиков хотя-бы на 4 разряда - уже не выпускают?
_pv
Цитата(jcxz @ Apr 16 2018, 17:53) *
А что, ИС счётчиков хотя-бы на 4 разряда - уже не выпускают?

да выпускают, только так чтобы и 3 вольта и 100МГц ещё поискать надо.
smk
Тактовая 168 МГц. STM32F4. Счетчики не очень нравятся, но подумаю.

Возможно дурацкий вопрос, но увидел JTAG. Это как и в МК? Т.е. J-link можно?
Plain
Цитата(smk @ Apr 16 2018, 15:33) *
Тактовая 168 МГц

Понадобится три триггера 1G80 и какой-нибудь 1G08, 1G32 или 1G86.
rx3apf
Цитата(_pv @ Apr 16 2018, 13:40) *
это я с запасом, вдруг там avr или pic какой-нибудь который только до 10МГц только считать умеет.

А вот если там "pic какой" - то с ними задача (счет импульсов 100 MHz за максимум 1 сек) превращается в частотомер на PIC, существующий уже больше 20 лет в самых разных вариантах. И даже без какой-либо активной обвязки "переваривающий" минимум 60 MHz по причине асинхронного прескалера ( у меня и на 90 работали на экспериментальном устройстве). А будучи дополненным одним корпусом 74AC74 - сожрет 100...250 MHz без затруднений (в зависимости от производителя). И программируемой логики уже не потребуется.
Plain
Цитата(smk @ Apr 16 2018, 12:09) *
про "синхронное проектирование"? Это в чем я наколоться могу?

Компилятор имеет право разбрасывать триггеры по кристаллу, как вентилятор попавшее на него удобрение, исходя из чего требуется закладывать избыточные интервалы предустановки, опосредованно указанные в паспорте как максимальная тактовая частота, самым простым способом достижения чего является предварительная синхронизация всех управляющих ими сигналов.
RobFPGA
Приветствую!
Цитата(Plain @ Apr 16 2018, 19:14) *
Компилятор имеет право разбрасывать триггеры по кристаллу, как вентилятор попавшее на него удобрение, исходя из чего требуется закладывать избыточные интервалы предустановки, опосредованно указанные в паспорте как максимальная тактовая частота, самым простым способом достижения чего является предварительная синхронизация всех управляющих ими сигналов.
Вы путаете принцип работы компилятора с образом мышления некоторых инженеров sm.gif.
Компилятор же (в отличии от оных) вполне дисциплинирован и в основном делает то что ему скажут.

Цитата(smk)
про "синхронное проектирование"? Это в чем я наколоться могу?
Синхронный это дизайн состояние которого меняется только по сигналу clk.
Соответственно все внешние входы перед использованием в дизайне требуют синхронизации на соответствующий тактовый сигнал.
Понимание внутренненго устройсва CPLD/FPGA и то как реализуются те или иные функции внутри, какие временные задержки возникют при этом позволяет Вам обойти острые места и не"наколотся".

Удачи! Rob.
Plain
Цитата(jcxz @ Apr 16 2018, 13:53) *
А что, ИС счётчиков хотя-бы на 4 разряда - уже не выпускают?

Остался только 74LVC161, но если на его вход разрешения счёта подать сигнал окна с выхода компаратора таймера микроконтроллера, получится классический асинхронный дизайн, в терминах абсолютного зла плисоводов, в результате чего эти внешние младшие разряды всегда будут неопределёнными из-за несоблюдения требования паспортного времени предустановки.
One
Цитата(smk @ Apr 16 2018, 08:59) *
...Нужно считать импульсы с частотой не менее 100 МГц. Счетчик в МК хорош но не подойдет т.к. там из-за конструкции входа импульсы импульсы считаются с предельной частотой F(io-тактовая)/4. ....А получится ли посчитать с такой частотой. Сигнал - меандр с амплитудой ТТЛ. ... использовать EPM3032ALC44-10N ...

посмотрите частотомер Ридико Л.И., получите ответы на ваши вопросы и даже, в качестве примера и основы для изучения, исходники для ПЛИС и МК . Удивительно, но никто из мэтров про эту работу не вспомнил ...
rx3apf
Частотомер Леонида Ивановича в данном случае как из пушки по воробьям, поскольку задача решается еще проще (PIC16 + 74AC74).
smk
Всетаки решил ПЛИС. Так сказать "поиграться" охота. Да и толковей мне представляется. Надо осваивать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.