Вот тут Вы правы! ЭТАП! Я бы даже сказал - ЭТАПЫ!
Этап с выводом осциллки на экран у меня был еще года полтора назад! Я в тупую цифровал то, что подается на АЦП и выводил на экран. Получилось и даже можно сказать работало! Потом был типа этап - фосфор. Но используя память внутри ПЛИС этот этап закончился некоторой неудачей. Сделать фосфор не используя полноценный фрейм-буфер невозможно, это я понял и Вы мне об этом говорили. Это я помню. После наведения в проекте полнейщего беспорядка я понял, что надо все сделать заново и делять это постепенно. Т.е. поэтапно. Я начал почти с нуля с того, что попытался создать полноценный интерфейс и именно этим занимаюсь с Нового года.
Вообще то я уже давно предлагаю всем участникам обсуждения "вскрыть карты". Т.е. сделать что то типа отчетов с фотками, если надо, и рассказать, что у кого и как получается. Но в этой теме мы занимаемся в основном согреванием от трения об осциллограф и не более того уже давно! По ходу этой пьессы у меня то и дело возникают проблемы, которые я решаю один, а попытки задать какие либо вопросы заканчиваются посыланием меня в Википедию. Понимаю, что если никто этих проблем не видит, то значит этими вопросами никто и не занимался, а значит реально осциллосокоп ни у кого никуда не движется.
Ну хорошо, надо же с чего то начинать, вот я и начну!
Концепция моего проекта (может быть пока, в будущем можно все изменить) состоит в том, что я не использую процессор и все процессы у меня жестко-логические. Второй принцип - отсутствие видео-буфера. Вывод на экран жестко-логический. Таким образом для вывода осциллограммы на экран мне вполне достаточно иметь память, обьемом, равным длине экрана Х 1 байт.
Что сделано:
1. К ПЛИС на прямую подключена матрица 7 дюймов с аналоговым вводом инфы и разрешение 480Х240Р. Для осциллоскопа начального уровня этого экрана более чем достаточно. Я много чего прочел про серийно выпускаемы осциллоскопы и понял, что такие матрасики применяются в моделях осциллоскопов начального уровня повсеместно.
2. Создан и успешно развивается Интерфейс. В самом начале проекта на другом форуме один уважаемый спец, так и не сделавший к слову в плане конструирования чего либо ни одного шага, громко заявлял, что создать хоть какой нибудь интерфейс на жесткой логике у меня не получится и что по этой причине мой проект упрется в необходимость процессора. Надо сказать, что этого не только не произошло, но даже более того - я прекрасно освоился и мне нравится развитие интерфейса на жесткой логике. При управлении проектом ни я ни мои друзья, которые заходят ко мне в гости не видят никаких различий между интерфейсами других приборов и моего.
3.Для сохранения осциллограмм я выделил (пока) 4096 байт в памяти. Т.к. это количество памяти сущетсвенно больше, чем возможности экрана по выводу на него инфы, то встал вопрос о навигации и выводе информации из памяти на экран. Создана "ШКАЛА". Это серьезный кусок моего проекта. Смысл ее втом, что она формирует на экране собственно шкалу распределения памяти и указатели, показывающие, что сейчас наблюдается на экране. Шкала выглядит примерно так же, как это сделано у ведущих производителей осциллоскопов, например у Тектроникса и управляется точно так же. Т.е. в пределах памяти записанный сигнал можно сжать, растянуть, промотать. При этом на шкале есть указатель момента начала отсчета времени (точка момента синхронизации). Этот указатель показывает положение момента в памяти при всех перемещениях окна вывода информации по памяти находится в одном положении и соответственно перемещается по экрану и шкале в строгом соответствии с пересчетом его положения относительно других величин.
4.Создан блок управления синхронизацией и он же формирует код для будущего смещения луча по горизонтали. Блок выводит на экран три маркера с номерами каналов и символом (S) для синхронизации и серые пунктирные линии, по которым удобно наблюдать положение "лучей" и уровня синхронизации. Пока нет схемы фронт-энда говорить об смещении сигнала по вертикали нет смысла, поэтому сформированные коды я использую иногда как тестовый сигнал для проверки других схем.
5.Сконструирован орган управления из одного энкодера и четырех кнопок. Сам энкодер содержит в себе еще одну кнопку и всего кнопок получается пять. Это отдельная схема собрана на MAX2 EPM240 (бывший когда то Марсоход1, разобранный и пересобранный на другой макетке) Этот участок работы на мой взгляд полностью закончен т.к. там придумать больше просто нечего. Все события на этой части схемы просто передаются в основной проект и уже EP3C10 разбирается, что и куда отправлять в зависимости от нажатия тех или иных кнопок.
6.В прошлые выходные проект был подвергнут тотальной синхронизации. Из проекта удалены все счетчики кроме одного большого и главного делителя всех частот и получения всех кодов и отсчетов. Все остальные сигналы внутри проекта получаются методом математических пересчетов этого единого кода во все необходимые числа.
7.Вчера буквально я уперся в недостаток органов и средств управления схемой синхронизации. Эта часть схемы еще не доделана. Вчера я успер сформировать и вывести на экран символ для синхронизации "фронт-бэк", такой значек логического перехода вверх или вниз со стрелочкой и трех надписей режима работы схемы развертки NORMAL - SINGLE - AUTO. Вокруг символов я размастил бордюр, который пока подключил так, что он постоянно светит белым на максимальной яркости, но в перспективе я планирую сделать этот бордюр серым в нормальных условиях и мигающим цветным в режиме, когда соответствующий параметр регулируется.
Сачс попробую прикрутить фотки...