bvn123
Свой-
Постов
161 -
Зарегистрирован
-
Посещение
-
исходное желание - а не увеличить ли разрешение вдвое, не меняя плату и детали на ней. Сейчас самое простое решение - заменить кварцевый генератор, правда, 100МГц - уже есть, а также пошел/купил, 200МГц - заказ
-
да, все это придется учитывать, хотя бы несимметричность источника 100МГц - по докам 50%±10%, а максимальная длительность фронта и спада 6нс для имеющегося на руках кварц.генератора просто не позволит его применить, разве что для себя. Когда все это добро поплывет в температуре... Спасибо, Yuri124, думаю, уже это достаточное основание для отказа от удвоения частоты до 200МГц. Итог: надо приобретать кварц.генератор 200МГц; удвоить частоту 100МГц в EPMxxxx-04, очевидно, можно, но с ухудшением параметров устройства, даже если это будет функционировать.
-
Спасибо. Вы имеете ввиду, что устройство может заработать, а потом отказать при изменении температуры за счет изменения задержек?
-
Synthesis-------- Ignore LCELL buffers - off и Synthesis-------- Ignores GLOBAL buffers - off Если правильно понял, в Quartus II: Settings \ Analysis & Synthesis Settings \ кнопка More settings \ здесь в списке оба Ignore Fitter----------- Auto Global Clock - on нашел здесь же: Settings \ Analysis & Synthesis Settings \ панель Auto Global Options (MAX Devices Only), на ней checkbox Clock - поставил галочку. Соединение выхода буфера lcell cо входом буфера global приводит к ошибке Error: GLOBAL buffer "inst10" must be driven by an INPUT pin or a GLOBAL buffer Вижу замечание "Note: MAX 3000 and MAX 7000 devices do not support logic-driven global signals" на странице Global Primitive здесь: https://www.intel.com/content/www/us/en/programmable/quartushelp/13.0/mergedProjects/hdl/prim/prim_file_global.htm Отдельно проверил добавление 2-х lcell - дополнительно съедается одна макроячейка и сигнал они задерживают на 3нс (симулятор)
-
StewartLittle , понял, спасибо.
-
Такое решение было бы корректнее асинхронной схемы. Эту конструкцию надо добавлять в проекте VHDL? я работаю со схемами, можно ли её куда-то вписать как параметр для синтеза в Quartus? или только генерировать VHDL по схеме, затем в него добавлять эту конструкцию, затем делать проект по скорректированному файлу VHDL?
-
да, проверил в проекте сразу после получения положительного результата с использованием схемы на последней картинке - в симуляторе все работает корректно. Согласен, с тактирования частой 200МГц надо было начинать - выбор "медленной" градации микросхемы -10N вместо -4N выплыл бы быстрее, с другой стороны я не уверен, что продолжил бы этим заниматься, если бы увидел, что счетчик не работает при 200МГц (и микросхеме с градацией -10N - кто бы об этом вспомнил...)
-
Еще раз спасибо за ответы, я написал: "есть микросхемы -10нc, но есть и -4нс.", решил проверить, оказалось, в опциях была выбрана градация -10нс, заменил на -4нс, результат, полученный в симуляторе, на картинке: есть короткие импульсы 200МГц, счетчик их считает. Вопрос 1, поставленный _4afc_, остаётся: А EPM3064 по фронту и спаду работать не умеют? CPLD Xilinx - работали. Если кто-то знает, как это реализовать в CPLD Altera, прошу сообщить, как именно. Вопрос 2. Как правильнее оформить 200МГц как глобальную тактовую частоту: - подключать ли 100МГц к конт.37 (Global Clock pin) или к нему точно не подключать. - может, 100МГц подать на какой-то контакт общего назначения, а сигнал 200МГц вывести на какой-то соседний c 37-м контакт, чтобы соединить с конт.37 (Global Clock)? - или где-то в Quartus определить линию 200МГц с выхода "Искл.ИЛИ" как глобальную и тактовую? Где именно это делается? И можно ли в этом случае подключать 100МГц к конт. Global Clock?
-
Спасибо за ответы. Если кто-то знает, как именно реализовать такую опцию в CPLD Altera, прошу сообщить. Статья интересная, спасибо. Я представляю, как удвоить частоту на цифровых ИС, в том числе как организовать это в Quartus, но в данном случае для частот ниже.100МГц, а в посте писал: "Получить импульсы/паузы порядка 2,5нс в симуляторе Quartus пока не удаётся.". То есть, для более низких частот (например, 25МГц) я могу реализовать удвоение частоты в Quartus с симуляцией сигнала. Конкретизирую вопрос: если по максимуму, хотелось бы получить графики сигналов в симуляторе Quartus при входной частоте 100МГц (на выходе 200МГц). По документации EPM3064 работает до 220МГц, есть микросхемы -10нc, но есть и -4нс. Или понять, что 200МГц организовать a) не получится, b) получится, но в симуляторе корректного отображения не будет. На вложенных картинках фрагмент схемы из предложенной статьи и его реализация с симуляцией при Fin = 25МГц (нормальная симуляция) то же при Fin-100МГц + окно с установками Timing Settings - может, там что-то поправить для работы на 100МГц, чтобы получить 200МГц на выходе в симуляторе? Или это невозможно?
-
Я пробую в Quartus II для EPM3064 организовать тактирование от источника сигнала частотой 100МГц (период 10нс, импульс 5нс, пауза 5нс) по фронту и спаду, чтобы получить тактовую частоту 200МГц. Кварцевые генераторы 100МГц доступны, организация внешнего генератора 200МГц не интересует. Получить импульсы/паузы порядка 2,5нс в симуляторе Quartus пока не удаётся. Пробовал наращивать логические элементы (например, четное число элементов "not"), чтобы организовать задержку фронта, задержанный и прямой сигналы подать на "исключающее ИЛИ" - очевидно, выполняется оптимизация, задержка остается очень коротко, не зависящей от количества элементов; использовал D-триггер с выполнением асинхронного сброса сразу после появления "1" на его выходе Q (разные варианты триггера из библиотеки - и примитив, и из серии 74xx) - импульс в симуляторе порядка 6,5нс формируется только на каждый второй фронт; для инвертированного сигнала 100МГц.(чтобы организовать импульсы по спаду исходного сигнала) тот же результат. Подключал также источник 100МГц не к глобальному тактовому входу (EPM3064 \ конт.37) а к произвольному контакту, чтобы вывести импульсы 200МГц на конт.38 и соединить его физически с конт 37. Устанавливал в Settings \ Timing Analysis Settings : Clock Settings : Default required f max 200 MHz, также оставлял поле пустым. Самый непредсказуемый результат симуляции - на одном входе "исключающего ИЛИ" сигнал частотой 100МГц, второй вход соединен с выходом. Возможно, вариант с несколькими элементами для организации задержки прошел бы без симуляции, но будет проблема с оценкой скважности сигнала - нет подходящего осциллографа, поэтому хотелось бы увидеть корректный результат в симуляторе. Кто-нибудь пробовал получить тактирование по фронту и спаду поступающих импульсов? Когда-то обращался в поддержку Altera с вопросами по асинхронной работе, внятного ответа не получил.
-
драматичненько, скорее, "на какой топливной смеси катать?" Спасибо, это по сути. Если gcc единственный компилятор для ESP, вопрос, наверное, можно считать решенным. Для avr я тестировал три компилятора (и ассемблер), они давали разную производительность и размер; поэтому полагал, что и для ESP могут быть варианты. Посмотрел, что предлагает Espressif (все-таки производитель ESP) - API и те же сторонние toolchain и среду Eclipse. Что остается - может, в какой-то среде оказалось бы проще все это связывать и/или поддержка лучше... Но в этом плане с эклипс на каком-то уровне уже разобрался. <По умолчанию в GCC используется уровень оптимизаций “-O0”.> ("Оптимальные опции для x86 GCC" Блог компании Intel Компиляторы *C *) - сведения из сети; уровень доверия соответствующий. Проверить с вводом разных ключей оптимизации несложно, тратить время не вижу смысла.
-
Исходная цель - выбор среды разработки для ESP8266, пост размещался до того, как я разобрался с запуском эклипс+mingw+ESP8266 NONOS SDK. Поэтому хотелось сравнения от разработчиков устройств на ESP8266, ESP32 с опытом работы в разных средах разработки для ESP под Windows, что именно лучше, эффективнее из средств разработки и почему: Espressif Systems (производитель ESP8266, ESP32), arduino под ESP, PlarformIO, Eclipse, VS (это то, что мне попалось). Вроде таких: работал в VS, eclipse и..., но перешел на среду ..., потому что... Пока выводы следующие: ардуино - очень дружественная среда: без каких-либо статей и уроков установил, в течение нескольких минут запустил пример http-сервера, заменил IP, пароль и текст 'Hello world' на гипертекст, споткнулся на загрузке в ESP, быстро нашел установку COM-порта, загрузил, получил сервер с html-страничкой эклипс - возился несколько дней до загрузки проекта в ESP; наткнулся на 3 проблемы, ответов на форумах eclipse и mingw не получил, на electronix.ru по крайней мере натолкнули на решение одной из них, в итоге решил методом тыка. Эти же вопросы без ответов встречал в сети - наверняка многие на этом остановились. По результатам моего теста пока предпочту эклипс. Может, есть что-то более дружественное, но эффективное? До публикации результата сравнения ни одного ответа не было; после публикации - ни одного ответа по исходному вопросу. Если говорить о результатах сравнения, предложите, что сравнить - чтобы было просто и показательно; фразу 'я работаю с ESP' писать не надо, это подразумевается. Отладка в ассемблере? Она в Ардуино есть? Оптимизация в ардуино есть? Если да, как оптимизировать приведенную выше программу, чтобы получить исполнение одного цикла не за 10мкс, а как в эклипс, за 1,2мкс? С моими познаниями в ардуино и эклипсе пока мне проще посмотреть изменения осциллографом. Оптимизация в Eclipse - ключ оптимизации при компиляции в gcc не использовался, ожидал, что по умолчанию '-O0', ошибся? Сравнение разных библиотек, управляющих пином? Почему нет? Даже если исходники библиотек открыты, я планирую только использовать их в готовом виде. Интересно было бы мнение разработчиков именно под ESP в ардуино и в других средах разработки, работавших под windows.
-
В чем показательность использования таймера или встроенного управляемого генератора (если бы он был) для сравнения средств разработки? одна среда разработки с "медленным" кодом установит регистры МК, управляющие генератором (таймером), за 100мкс, альтернативный код - за 10мкс, результат работы - одинаковая частота на выходе такого генератора. Попалось аналогичное сравнение: https://habr.com/ru/post/254163/ Общие соображения... Чего-либо нового для себя (кроме Клавы - не понял, о чем это, искать интереса нет) в Ваших сообщениях не нашел.
-
Т.е., какую-то другую периферию модуля ESP8266... Какую именно? Думаю, простое переключение состояния вывода микроконтроллера показательно в этом плане. Если бы среди периферии ESP8266 оказался, например, ГУН, он управлялся бы через функции SDK - скорее всего максимальная частот ГУН была бы одинакова, независимо от того, какие среда/компилятор обращаются к этим функциям SDK. Пока я использую ESP8266, и ответы на вопрос темы "ESP8266, ESP32: сравнение средств разработки по эффективности: минимальный размер кода, максимальное быстродействие - где посмотреть?" меня интересуют, но хотелось бы конкретики и именно по вынесенному в тему вопросу.
-
Как применить Ваши рекомендации к приведенному примеру для сравнения параметров импульсов в ардуино и эклипсе? Оптимизация в Eclipse не использовалась, для этого примера в ардуино она тоже вряд ли использовалась. Я хочу определиться со средой разработки, можете ли Вы что-то сообщить по вопросу темы? С ардуино не разбирался - в нем просто запуститься не составляет труда; с эклипсом повозился. Я не знаю, как в ардуино напрямую вызвать функции ESP8266 NonOS SDK и организовать цикл while() вместо loop(); большинство пользователей ардуино будет лишь слегка изменять готовые примеры, не углубляясь. Если Вы можете изменить пример ардуино File\Examples\Basics\Blink так, чтобы получить меньший период импульсов, было бы интересно посмотреть. Хорошо бы и задержки с шагом 1мкс вставить из ESP8266 NonOS SDK...