Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Цифровая схемотехника. Задача.
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Serhiy_UA
Есть сигнал, в исходном состоянии на нем может быть долго 0 или 1.
Если он остается в таком состоянии, т.е. на нем нет меандра, то на выходе обнаружителя должен быть 0.
Если в сигнале присутствует меандр, то на выходе обнаружителя должна появиться 1, с возможной задержкой.
Желательно все сделать в цифровом виде и пока еще без внешней опорной частоты, так как с ней было бы просто.
Частота меандра постоянная и заранее задается.

Какие будут идеи? Реализация в ПЛИС.
A. Fig Lee
Цитата(Serhiy_UA @ Jan 5 2015, 07:17) *
Есть сигнал, в исходном состоянии на нем может быть долго 0 или 1.
Если он остается в таком состоянии, т.е. на нем нет меандра, то на выходе обнаружителя должен быть 0.
Если в сигнале присутствует меандр, то на выходе обнаружителя должна появиться 1, с возможной задержкой.
Желательно все сделать в цифровом виде и пока еще без внешней опорной частоты, так как с ней было бы просто.
Частота меандра постоянная и заранее задается.

Какие будут идеи? Реализация в ПЛИС.


Если ПЛИС, то клок будет значит. Че там думать, на счетчиках сварганить.
Mc_off
Предлагаю простое решение:
Делаете цифровой интегратор с частотой дискретизации значительно выше частоты меандра и с постоянной времени значительно больше чем период меандра.
Выход интегратора выдает значение, пропорциональное постоянной составляющей сигнала в окне интегрирования. Если сигнал соответствует 50% от максимального уровня, то это меандр со скважностью 50%.
Serhiy_UA
Цитата(Mc_off @ Jan 5 2015, 16:43) *
...Делаете цифровой интегратор...

Это что-то типа sin-cos скользящей свёртки, с проверкой порога по текущей накопленной сумме?
Решение понятно.
Но пока хотел бы найти что-то, если можно, без опорной частоты и минимальными аппаратурными затратами...





Dr.Alex
Цитата(Serhiy_UA @ Jan 5 2015, 16:17) *
все сделать в цифровом виде и пока еще без внешней опорной частоты


Неужели не очевидно, что это невозможно? :-))))))))

Если частота "меандра" будет 0.0000000000000001 Гц, то что должна выдать ваша схема? Есть меандр или нет? :-))))))

Скажете, что частота меандра мол в рамках разумного? Но откуда ЦИФРОВАЯ схема БЕЗ РЕФЕРЕНСА может знать, что в рамках разумного а что нет? :-)))))
des00
Цитата(Serhiy_UA @ Jan 5 2015, 19:17) *
Есть сигнал, в исходном состоянии на нем может быть долго 0 или 1.
Если он остается в таком состоянии, т.е. на нем нет меандра, то на выходе обнаружителя должен быть 0.
Если в сигнале присутствует меандр, то на выходе обнаружителя должна появиться 1, с возможной задержкой.
Желательно все сделать в цифровом виде и пока еще без внешней опорной частоты, так как с ней было бы просто.
Частота меандра постоянная и заранее задается.

Какие будут идеи? Реализация в ПЛИС.

последовательный конденсатор + триггер шмитта по входу. логику работы думаю сами поймете wink.gif правда с переходными режимами придется логики немного накрутитьwink.gif

ЗЫ. так сделано у микросхем гальванической развязки от силикон лабса, только вместо вашего сигнала радиочастота, есть заполнение 1, нет заполнения 0 sm.gif
silantis
Надо проверять идею.
Mc_off
Цитата(des00 @ Jan 5 2015, 16:54) *
последовательный конденсатор ...


Так не честно sm.gif
В условии задачи оговорено использование только цифровой схемотехники.

Можно ещё так:

Использовать одновибратор перезапускаемый фронтами входного сигнала.
Это цифровой аналог предложенного варианта с последовательным конденсатором

Более точные условия задачи дадут возможность предложить оптимальный вариант
Serhiy_UA
Цитата(Mc_off @ Jan 5 2015, 23:05) *
Более точные условия задачи дадут возможность предложить оптимальный вариант

Спасибо всем за советы.
Частота меандра примерно от 100 МГц и ниже до 20 МГц.

По поводу более точных условий задачи.
Есть ПЛИС Cyclone III и внешний генератор 100 МГц. Внутри ПЛИС реализован мой 8-разрядный софт процессор «MiniByte», который я в ближайшее время еще представлю здесь на форуме. Если кратко о нем, там система из 32 одно- или двухбайтных команд, такт 100 МГц, команды выполняются за 1 или 2 такта.

Так вот, плата с ПЛИС уже давно сделана, но на ней пока нет супервизора по питанию, который обычно используется для надежного сброса/рестарта микроконтроллера.
У меня возникает сомнения в связи с отсутствием подобного сигнала сброса для этого софт процессора. По этому решил сделать так, что после загрузки где-то внутри ПЛИС должен бы появиться меандр, сигнализирующий об окончании этой самой загрузки. А до появления/обнаружения меандра держать еще софт процессор в состоянии сброса. Тем самым, обеспечив гарантированный рестарт. Вот от куда и появился обнаружитель меандра.

Схема с внешними конденсаторами и триггером Шмитта, наверное, подошла бы более, но пока еще ищу решение внутри ПЛИС.
des00
Цитата(Serhiy_UA @ Jan 6 2015, 13:29) *
Есть ПЛИС Cyclone III и внешний генератор 100 МГц. Внутри ПЛИС реализован мой 8-разрядный софт процессор

Так вот, плата с ПЛИС уже давно сделана, но на ней пока нет супервизора по питанию, который обычно используется для надежного сброса/рестарта микроконтроллера.

а вы уверены что ваш софт процессор будет работать до конфигурации ПЛИС ? wink.gif которая в том числе слетит, если есть проблемы по питанию ?
Serhiy_UA
Цитата(des00 @ Jan 6 2015, 11:34) *
а вы уверены что ваш софт процессор будет работать до конфигурации ПЛИС ?
работать не будет.

Цитата(des00 @ Jan 6 2015, 11:34) *
которая в том числе слетит, если есть проблемы по питанию ?
ну так сброс, несколько пролонгированный по завершению каждой из конфигурации, асинхронно обнулит программный счетчик и сделает пассивными некоторые из выходных портов.

Да еще, программа для моего софт процессора хранится в двухпортовой ROM, а данные в двухпортовой RАM по 4096*8 каждая, построенных на M9K с применением IP Megafunctions

Много работал с Nios II, в том числе на ките DK-NIOS-2S60N, но как там выполняется сброс софт процессора после конфигурации, так и не разобрался.
des00
Цитата(Serhiy_UA @ Jan 6 2015, 16:49) *
Много работал с Nios II, в том числе на ките DK-NIOS-2S60N, но как там выполняется сброс софт процессора после конфигурации, так и не разобрался.

сбрасывайте от сигнала locked пллки. ну или 8ми битный счетчик, считающий до 128. инициализруется при конфигурации в 0. инверсия старшого бита - сигнал сброса.
Serhiy_UA
Цитата(des00 @ Jan 6 2015, 15:02) *
сбрасывайте от сигнала locked пллки ....

des00 - спасибо за подсказку!
Сигнал locked от мега-функции ALTPLL как раз и подошел.
Для сброса софт процессора после конфигурирования ПЛИС вполне достаточно.
serjj
Я бы еще посоветовал сделать примерно вот так:

Нажмите для просмотра прикрепленного файла

На картинке сигнал pll_locked подключается ко входу fpga_reset, вход in1 reset controller'a, а на in0 подключить сброс формируемый watchdog'ом. В такой конфигурации Nios сбросится 1) при старте, 2) в случае зависания программы
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.