Tesla

Тестирование Проекта Quartus

8 сообщений в этой теме

Tesla    46

Возник вопрос: создал, допустим, я в Quartus'е проект - модуль, сопрягаемый с внешним микроконтроллером. Перед изготовлением реального устройства хочется как следует потестировать в симуляторе ПЛИСину и микроконтроллер в связке. Но вот беда - Proteus ничего не знает про ПЛИС, а Quartus - про её периферию. Есть ли какая-нибудь возможность получить из проекта квартуса модель, подцепляемую протеусом или другим симулятором, или специализированный софт для симуляции ПЛИС и периферии?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexus    987

Я задавался подобным вопросом, но, похоже, что такой возможности нет.

В Quartus и MaxPlus есть возможность подключить файл вектора входных сигналов (*.vec). Внутри файла возможно описание любых входных сигналов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Tesla    46

А нельзя ли к Quartus'у подключиться через какой-либо API, чтобы, грубо говоря, программно рассчитывать входные сигналы для ПЛИС на следующем шаге исходя из выходных сигналов предыдущего шага, т. е. создать обратную связь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexus    987

API - вряд ли. В принципе, обратная связь в синхронных проектах работает без проблем. Можно попробовать в проект Квартуса (на время описания конфигурации и моделирования) добавить модуль, внутри которого разместить таблицу истинности, которая и будет формировать выходные сигналы, исходя из входных.

Что у Вас за проект, если не секрет? Может, получится обойтись одной ПЛИС (без МК). Мне их пришлось совмещать только один раз - когда потребовалось формирование длительных задержек (секунда и более) при основном такте около 30 МГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

Tesla    46

Серьёзного проекта пока нет, хочется просто разобраться на будущее. Но однажды была необходимость разработать недорогое устройство с пятью последовательными портами (для объединения 4 потоков NMEA в один). Тогда я кое-как выкрутился, реализовав 4 UART'а программно (тем более, от них требовался только приём), но это, ИМХО, было некоторым извращением, так как занимало большую часть процессорного времени atmega8 (на 11.0592 мгц), плюс для стабильности работы пришлось отключить все прерывания, кроме таймера. А сейчас я бы попробовал реализовать UART'ы аппаратно, на ПЛИС, оставив основную задачу (буферизация, определение границ пакетов, проверка контрольной суммы) на микроконтроллере. Мне кажется, что такое комбинированное решение обошлось бы дешевле, чем микроконтроллер с 5 UART, или жирная ПЛИС, которая потянет задачу полностью.

P. S. Кстати, ещё не разобрался - для чего в ПЛИС нужна основная тактовая частота? Это ведь не микроконтроллер, где все операции должны происходить синхронно. Или она применяется только для вспомогательных целей (формирование временных интервалов)?

Изменено пользователем Tesla

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexus    987
А сейчас я бы попробовал реализовать UART'ы аппаратно, на ПЛИС, оставив основную задачу (буферизация, определение границ пакетов, проверка контрольной суммы) на микроконтроллере.

Разумно. Я вообще плохо представляю себе ПЛИС в качестве АЛУ. Хоть большие кристаллы с этим и справятся, логичнее использовать ПЛИС в оптимальной для нее среде, то есть ЦОС, а всю арифметику оставить МК.

Кстати, ещё не разобрался - для чего в ПЛИС нужна основная тактовая частота? Это ведь не микроконтроллер, где все операции должны происходить синхронно. Или она применяется только для вспомогательных целей (формирование временных интервалов)?

Основной такт не обязателен. Вам же никто не запрещает сделать на ПЛИС элемент NAND. :) Просто это является расточительством ресурсов. Да и ПЛИС сами по себе очень "гибкие" изделия. То, что можно оформить даже в маленький кристалл EPM7032, едва ли получится заставить работать на дискретной логике при аналогичных требованиях к быстродействию.

В МК работает синхронно только внутренняя переферия и порты I/O, сами же операции несинхронны. Это основной недостаток МК, которого можно избежать только отключением прерываний и полным контролем последовательности выполнения команд, что возможно только при листинге на ассемблере. В ПЛИС этого недостатка нет. Языки описания конфигурации являются параллельными. Более того, моделирование ПЛИС архитектуры CPLD позволяет практически со 100% гарантией вычислить все задержки внутри кристалла. Для архитектуры FPGA несколько сложнее, так как многое зависит от умения разработчика трассировать модули внутри кристалла. Я, например, с FPGA еще не работал и практики в этом нет.

Говоря об обратной связи в цифровой технике, я всегда подразумеваю наличие синхронизации, так как в асинхронных проектах ОЧЕНЬ велика вероятность получить метастабильные состояния. В Вашем случае можно использовать тактовую частоту для ПЛИС 22.1184 MHz и все внутренние операции выполнять синхронно с этим тактом. А для синхронизации с портами МК, внутри ПЛИС поделить mclk на 2 и тактировать МК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Tesla    46

Спасибо за ответ!

Если я правильно понял, то тактовый вход ПЛИС отличается от остальных только оптимизированной разводкой внутри кристалла?

Изменено пользователем Tesla

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexus    987
Если я правильно понял, то тактовый вход ПЛИС отличается от остальных только оптимизированной разводкой внутри кристалла?

Да. Это так называемые глобальные входы. Их, как минимум, три - тактовый, сброс и разрешение. Но совсем не обязательно их использовать по назначению. Можно не использовать вообще. Главное преимущество глобальных линий - это малое время распространения по кристаллу даже у "тормознутых" грейдов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • Реверс - меняет каналы местами, левый \ правый - один канал раскидывает на обе колонки. P.S. Дизайнеру или как их тогда называли - 10 лет расстрела за такую гнусную морду.
    • Посчитать то я могу  - а раз можете посчитать, зачем задавать глупые вопросы? Я дал Вам критерий определения пригодности сердечника. Вполне простой и понятный. Берёте линейку и калькулятор, и находите произведение площадей. Если меньше 120-ти - не пригоден. Больше или равно - пригоден. Это что, настолько недоступно? А, если доступно, то давайте и Вы, "без пены". 
    • Ох, уж, эти сельские электрики. Вот опять новый термин, "от Василича" - Линейная верхняя полка. А нижняя какая? Нелинейная, что ли? Меандр, Василичь, это всегда и везде, периодический сигнал - сумма бесконечного ряда синусоидальных нечётных гармоник, с уменьшающейся, по определённомку закону, амплитудой. А раз это периодический сигнал (набор синусоид), то и резец, и пластинка, и игла,  и динамик смогут воспроизвести меандр. Понятно, не идеально. С конечной точностью. Как и всё в этом мире. Любая система, будь то резец или транзисторный усилитель, имеют конечную скорость нарастания сигнала (перемещения) и ограниченный, с двух сторон, частотный частотный диапазон. Это и делает меандр на выходе менее "меандровым", чем на входе. Василичь? Откуда ты такие бредовые цифры высасываешь? Говоришь, с интернетом любой профессор? По ходу тебе даже интернет помочь не способен. Открыл бы Википедию, что ли. 48.3, Василичь, а не  60 - 80! И, это, при учёте бесконечного числа гармоник. Впрочем, если учесть, скажем, первые 200 (меандр 100 Гц, полоса 20 кГц), то Кг уменьшится ненамного - до 48 %. Даже для 1-го кГц (20 гармоник), будет 47%.  Про сделать "лабораторку", которыми ты тут хвалишься, просто молчу. Зачем? "Ребята" всё схавают. 
    • Это ж Америка 60-х! Картон и контакты. Это реле на выходные сетевые розетки. 5А макс. и 500Вт максимум общей. Да, ТО-3. Не видно, какие. Сверху на крышках ничего не написано. Сбоку не видно. Все оригинальные комплектующие 65г. В схему особо не вникал, но банки по 2200мкФ 100В. 2шт. вместе запараллелены, на них 100В и на двух по 50В. На 2-х коллекторах по 100В, на 2-х других по 50В.  Так что +/-50В. Квази-комплементарный выход. Радиаторы изолированы. На малом сигнале еле тёплые. Реле на выходе нет.  Переходной процесс при включении в колонках. При  выключении ничего не слышно особо. Без сигнала в колонках тихо, только ВЧ чуть шумят. Со 100В резистором гасится 76В 40мА на стабилитрон 24В для лампочки (зелёной) индикации ТБ и фильтров. Кнопки под крышкой.
      Со 100В гасится 52В 17-19мА на это пресловутое картонное реле. Жесть, в общем. Кстати - не понятно назначение некоторых положений переключателя режима.
      Стерео и моно понятно, а вот реверс и правый, левый - нет. При переключении ничего особо не меняется. Чуть заметно что-то на реверсе только.
    • Допустим проблема диалога брелок -приемник   Есть чем посмотреть что брелок вещает приемнику при нажатии на кнопку?
    • не страшно, иди копать ЯМЫ, разгружать ВАГОНЫ и т.п., а ремонтом и обслуживанием ПРОМЭЛ займутся те, кто в этом специалист ... и , поверь, их услуги - не дешевы.   забудь, если не авторизован и не дилер.
    • чушь, бред, гадание, жажда халявы ...   Просто к мастеру или за новой. Ремонта "по словам и фото" - не будет, да и не готов ты к нему.