Jump to content

    

Реализация расширенной FPGA-реплики ретро-компьютера

Видеопоток не должен проходить через центральный процессор. Например, перетаскивание окна: ЦП вычисляет и передает только координаты окна(несколько байт * 75Гц), все остальное делает максимально обособленная графическая подсистема. Рисование непосредственно в видеопамяти - это очень медленно, и от этого надо уходить --> ЦП вообще не должен иметь прямого доступа к видеопамяти. Например, текстовый режим: ЦП обращается только к 1777564 и 1777566.

Share this post


Link to post
Share on other sites
Видеопоток не должен проходить через центральный процессор. Например, перетаскивание окна: ЦП вычисляет и передает только координаты окна(несколько байт * 75Гц), все остальное делает максимально обособленная графическая подсистема. Рисование непосредственно в видеопамяти - это очень медленно, и от этого надо уходить --> ЦП вообще не должен иметь прямого доступа к видеопамяти. Например, текстовый режим: ЦП обращается только к 1777564 и 1777566.

Я и не говорю что это процессор будет делать. Просто реализация этих вещей будет внутри основной ПЛИС, поэтому выносить их отдельно - нецелесообразно, да и добавит к и без того не укладывающейся уже в 2000 руб себестоимости, еще денег.

Share this post


Link to post
Share on other sites

Один канал памяти будет? Если да, то ЦП мало что останется (все заберет видеопоток). А если для графики отдельный канал памяти, + ноги на USB/ethernet/звук/... - это сколько всего ног в сумме потребуется?

Имхо, вместо одного универсального решения за 5000 руб(к примеру), лучше модульное решение с диапазоном цен(за систему) в 1000...25000 руб(к примеру).

Share this post


Link to post
Share on other sites
Один канал памяти будет? Если да, то ЦП мало что останется (все заберет видеопоток). А если для графики отдельный канал памяти, + ноги на USB/ethernet/звук/... - это сколько всего ног в сумме потребуется?

Имхо, вместо одного универсального решения за 5000 руб(к примеру), лучше модульное решение с диапазоном цен(за систему) в 1000...25000 руб(к примеру).

 

Процессор к основной памяти обращается в редких случаях, вся работа идет через кэш, но если изображение будет строить видеопроцессор, то ему понядобится определенная часть полосы памяти. Число каналов тут не причем, важна разрядность данных и частота памяти. Основная конкуренция за память будет между выводом и вводом изображения в сравнительно высоком разрешении, но на тот случай в видеоадаптере будет арбитраж доступа к шине с приоритетом и буфер будет на случай задержки данных.

 

Проблема в основном том, что суммарная полоса памяти ограничена частотой и разрядностью шины.

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

Share this post


Link to post
Share on other sites

Хочется простого и удивительного (стержни нигде не соприкасаются друг с другом):

post-9118-1329940289_thumb.jpg

Share this post


Link to post
Share on other sites

Возникла существенная проблема с реализацией mp3-модуля. Изначально предполагалось использование готового модуля vs1011b, но тогда бы возникло противоречие с разным импедансом выходов AY и встроенного усилителя vs1011b (непонятно как их в один объединять). Кроме того, в чипе vs1011b слишком низкокачественный DAC и усилитель. Тогда обратили внимание в сторону DAC CS4344 и усилителя OPA2134. Также был рассмотрен mp3-чип STA013, в котором нет DAC и усилителя. В итоге возникли следующие возможные варианты:

1. Самый оптимальный. Из ПЛИС сигнал поступает на DAC CS4344 и далее на усилитель OPA2134. Декодированием mp3 занимается DSP C54xx, портированный в ПЛИС (лежит на opencores на Verilog), для которого есть открытый код по воспроизведению mp3, разместить который можно будет также внутри ПЛИС.

Такой вариант с любой точки зрения удачен, удобно объединяются в один канал, реальный AY, mp3-звук, несжатый звук, soft-AY (FPGA).

Остается одна проблема - кто провернет эту программистскую спецоперацию с DSP. В частности, чтобы этот DSP умел сам брать из памяти поток данных для воспроизведения. Нет желающих оказать помощь?

2. Использование готового модуля mp3 - STA013. При этом, для универсального использования DAC CS4344, придется выход STA013 завести обратно в ПЛИС (заняв несколько дефицитных ног ПЛИС), а из ПЛИС на DAC CS4344 выводить уже нужный поток (несжатый звук, декодированный mp3 или soft-AY). Jcnfется нерешенной одна большая проблема: кто будет подавать mp3-поток на STA013? Если это будет делать ЦП, то будет сильно тратить на это свой ресурс, если не ЦП, то потребуется дополнительный контроллер I2C и еще контроллер ПДП + SPI, чтобы STA013 сама брала данные из памяти. Можно конечно взвалить все эти функции на PIC32MX, но нужно его для этого соответствующим образом запрограммировать и придумать эффективный протокол взаимодействия с ЦП.

В общем всё сложно.. Может у кого есть идеи..

Edited by VVoland

Share this post


Link to post
Share on other sites
...Декодированием mp3 занимается DSP C54xx, портированный в ПЛИС (лежит на opencores на Verilog)...

Понятия не имею, с чем едят mp3, но на opencores вроде лежит "железный" декодер mp3 (VHDL). А встраивать еще один неоптимизированный для FPGA проц (да еще бета-версию) - перебор, имхо.

Кстати, как с ВМ в FPGA ?

Share this post


Link to post
Share on other sites
Понятия не имею, с чем едят mp3, но на opencores вроде лежит "железный" декодер mp3 (VHDL). А встраивать еще один неоптимизированный для FPGA проц (да еще бета-версию) - перебор, имхо.

Кстати, как с ВМ в FPGA ?

 

Если имеется ввиду этот mp3 - http://opencores.org/project,decoder

То по поводу него разработчик дал следующие комментарии: это тоже не release, конкретно в этом проекте есть некоторый набор базовых модулей и на том все заканчивается, кто будет делать из этого законченный модуль - неясно.

 

Что касается процессора, то собственно вот, уже игрушки простейшие на отладочной плате работают:

dff0f438a98dt.jpg

 

Кстати эта игрушка написана для БК в этом году.

Edited by VVoland

Share this post


Link to post
Share on other sites
Если имеется ввиду этот mp3 - http://opencores.org/project,decoder

То по поводу него разработчик дал следующие комментарии: это тоже не release, конкретно в этом проекте есть некоторый набор базовых модулей и на том все заканчивается, кто будет делать из этого законченный модуль - неясно.

"Железная" реализация mp3 в FPGA, в принципе, представляет "общественный интерес" - в отличие от "софтовой", на неоптимизированном проце.

 

Что касается процессора, то собственно вот, уже игрушки простейшие на отладочной плате работают:

Кстати эта игрушка написана для БК в этом году.

 

Ого. А подробнее? С нуля или на базе какого другого проекта?

 

Зимой "кавалерийский наскок" у меня не вышел, тк дизайн на синтезируемом Верилоге выходил слишком громоздким, и я отказался от низкоуровневого подхода (не люблю громоздкие проекты). На симулируемом Верилоге все компактно(быстро перевел *.pas --> *.v командами CTRL/H и минимальной правкой) --> возникла мысль описать проц на более высоком уровне, и переключился на свой старый проект (кое-какие результаты приводил там:

http://electronix.ru/forum/index.php?showtopic=72901 )

 

Share this post


Link to post
Share on other sites
Ого. А подробнее? С нуля или на базе какого другого проекта?

 

С нуля, но результат мне недоступен, т.к. еще не произведена оплата, которая будет производиться после готовности всей эмуляции, разводки платы, изготовления, пайки и испытания. Сейчас заказываю в Китае нужные микросхемы.

Edited by VVoland

Share this post


Link to post
Share on other sites

Кстати, проект создания реплики потихоньку продолжается. Уже полностью отреверсены матрицы 1801ВП1-014 и 1801ВП1-037, на выходе собственно точная реплика 1801ВМ1, сейчас его на Wishbone переводим.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this