PDA

Просмотр полной версии : Специалист на ПЛИС



ivagor
12.12.2014, 16:48
Ультраоблегченная версия специалиста (голый цветной специалист с 4 Кб ПЗУ) для DE1 и DE1-SoC (https://yadi.sk/d/yhHUkk1PdL9MQ) (пока только sofы). Загрузка программ с "магнитофона". Основное ОЗУ - в SDRAM. ПЗУ и видеоОЗУ - в ПЛИС.
Авторы оригинальной версии:

Spetsialist_MX_FPGA beta version
31/01/2012
Fifan, Ewgeny7, HardWareMan
www.zx.pk.ru
www.spetsialist-mx.ru

ivagor
15.12.2014, 12:50
Прикрутил к специалисту xsd dos/запускалку b2mа от его rk86 и выложил в ту же папку (для de1, для de1-soc поленился делать). Теперь можно грузить не только с магнитофона, но и с SD.
1.Стартует, жмем F1, потом ENTER
2.GD000
3.Две команды: DIR и СD. Запускает rksы

Можно посмотреть и в emu с приложенным ПЗУ и конфигом. В конфиге строчку
image="Specialist\SD3.IMG"
надо менять на тот образ, который у Вас есть. Можно сменить на SD.IMG из комплекта emu, только там rksов нет, но можно каталог посмотреть.

b2mу большой респект!

Mick
15.12.2014, 13:13
Я полагаю, что данный вариант Специалиста заточен под Altera DE?
Тогда может стоит изменить тему на соответсвующую, как в других разделах.

ivagor
15.12.2014, 14:14
Назвал по аналогии с соседней темой "Специалист МХ: Реализация компьютера на ПЛИС". Уточнять про DE в названии темы на мой взгляд не стоит, тут нет никакой особой привязки к terasicовским платам.

---------- Post added at 17:14 ---------- Previous post was at 17:09 ----------

Уточню - да, пока выложены sofы только под de1 и de1-soc. Можно еще для de2-115, но туда и оригинальный вариант портируется без проблем. Потом выложу исходники. Мне не очень нравится текущий исходник, если запал останется - перепишу на верилоге большую часть. Ну или выложу как есть.

fifan
15.12.2014, 15:51
Прикрутил к специалисту xsd dos/запускалку b2mа от его rk86
А нельзя ли уточнить как выглядит она (читалка) схемно блоками или на vhdl?

ivagor
15.12.2014, 17:19
Реализация на верилоге здесь (http://bashkiria-2m.narod.ru/index/fpga/0-12), в проектах РК86 и Б2М.
Соответствующий фрагмент четко выделен комментарием
//////////////////// SD CARD ////////////////////

Вроде бы в качестве прототипа был один из вариантов контроллера для MSX (тут лучше сам b2m скажет, я не в курсе исторических подробностей) имеющий некую реализацию на дискретных элементах.

ivagor
15.12.2014, 20:05
Вот (http://zx-pk.ru/showpost.php?p=735821&postcount=127) пост, с краткими комментариями от автора. Очень ценно, что там есть ссылка на исходник читалки, за выкладывание которого b2mу большое спасибо!

ivagor
20.12.2014, 13:15
Выложил в ту же папку еще вариант с 60 Гц разверткой. Для специалистовских программ без разницы, зато покажет на любом мониторе

Ewgeny7
20.12.2014, 13:35
Лучше на 50Гц под ТВ перепиши, так будет канонiчней :)

ivagor
20.12.2014, 14:30
Сорри за оффтоп. Ewgeny7 - пользовался ли ты конвертерами VHDL<->Verilog? Вчера читал про них, один даже скачал, но самые лучшие (по отзывам) просто так не скачаешь.
Да, специалиста можно и вручную перевести, он небольшой, но хотелось бы иметь такой инструмент под рукой

Насчет ТВ-выхода. Я бы легко присобачил компонентный, но не вижу в этом (для специалиста) преимуществ перед 60 Гц вга. А PAL (например вариант svofski из v06cc) прикручивать сложнее.

Ewgeny7
20.12.2014, 22:46
нет, не пользовался, нет нужды.
если совсем приперло - можно и ручками на другом языке написать. а уж просто поправить код на другом языке - вообще просто.
Преимущества есть, к примеру - пц-тюнер. или бабушкин телевизор. или автомобильный.
занимать огромный пц-монитор специалистом - так это проще эмуль запустить...
и так же любоваться на большие квадратные пиксели.

ivagor
22.12.2014, 12:12
Слегка почистил (удалил 2 уже неактуальных sofа) папку из первого поста и добавил туда spec50Hz_xsd_de1.zip
Из спортивного интереса (до этого пробовал только в v06cc) реализовал в этой версии компонентный выход (576p50, т.ч. только для современных ТВ или проекторов). Переключение VGA/YPbPr по SW0. В режиме компонента подключаю через переходник G->Y, B->Pb, R->Pr (если нет желания паять, то такие можно купить в магазинах)

---------- Post added at 15:12 ---------- Previous post was at 15:06 ----------


занимать огромный пц-монитор специалистом
У кого как. У меня мониторы пц маленькие и средние, а ТВ - большие и очень большие :)

ivagor
22.12.2014, 21:17
Неожиданно оказалось, что в предыдущих вариантах не было звука в JET-SET. Хакнул по мере сил (теперь и jet set пиликает) и заменил 50 Гц вариант.
Вобще то в оригинальной версии (Fifan, Ewgeny7, HardWareMan) тоже не должно быть звука в JET-SET или там он был?

---------- Post added 23.12.2014 at 00:15 ---------- Previous post was 22.12.2014 at 22:23 ----------

Окончательно поправил звук и заменил soundhack на soundok

---------- Post added at 00:17 ---------- Previous post was at 00:15 ----------

Теперь, кстати, и в паре hudsonовских конверсий будет местами слышна японская речь

fifan
23.12.2014, 05:45
Звук был и есть. У меня проблемы возникли с выводом звука через таймер ВИ53 под МХ.

ivagor
23.12.2014, 08:14
Звук был и есть.
Т.е. на u10_spets_fpga_rev44 jet set пиликает? Это очень интересно, т.к. я не понимаю, как это может быть

---------- Post added at 10:31 ---------- Previous post was at 10:18 ----------

Уточню, чтобы не было путаницы. Звук при нажатии клавиш в мониторе, в adskok - был и есть. А в jet set (заставка и игра), indian no bouken (когда главгерой помирает) и fire rescue (перед вторым этапом) (версии для специалиста, не для mx) в u10_spets_fpga_rev44 звука не могло быть

---------- Post added at 11:14 ---------- Previous post was at 10:31 ----------

Просмотрел по быстрому несколько игрушек. Вот еще примеры тех, которые в u10_spets_fpga_rev44 были бы без звука: DOWNEART.RKS, LODERUN.RKS, TUTANKH.RKS. Т.е. те, где доступ к биперу не через регистр управляющего слова, а напрямую в порт C

HardWareMan
23.12.2014, 08:48
Это ошибка эмуляции ВВ55. Она никак не относится к МХ2 на дискретах.

ivagor
23.12.2014, 08:51
Это ошибка эмуляции ВВ55. Она никак не относится к МХ2 на дискретах.
Понятное дело. Про MX2 на дискретах я нигде ничего не писал. Тем более в "моем" варианте никакого mx не поддерживается

HardWareMan
23.12.2014, 09:48
Тогда каким боком тут я?

fifan
23.12.2014, 10:51
Звук сначала никак не выходил, потом Ewgeny7 что-то подшаманил и он появился. Причём я то же до сих пор не пойму как это сделано.

ivagor
23.12.2014, 11:42
Тогда каким боком тут я?
Список авторов я скопировал из spets_fpga.vhd
Могу предположить, что Ваш вклад туда - контроллер SD карты, селектор адресов и лоадер. Эти компоненты я в текущем варианте не использую


Причём я то же до сих пор не пойму как это сделано.
А кто еще не понимал? :)
5й бит порта C "системной" ВВ55, остальное можно прочитать в описании ВВ55

ivagor
23.12.2014, 14:05
Выложил еще один sof - spec50i_soundok_xsd_de1.zip
Пробный вариант для ТВ (ч/б, R, G и B=Y, т.е. можно подключить любой). Попробовал 2 ТВ - современный ЖК ТВ и старый маленький ЭЛТ. На обоих показывает
1. ЖК ТВ показывает всю картинку
2. У данного ЭЛТ есть особенность - он обрезает края изображения (проверено с разными источниками, не только с этим вариантом специалиста). Не показывает немного слева и сверху. В принципе можно увеличить пиксельклок и по крайней мере в ширину будет влезать

ivagor
23.12.2014, 18:04
Заменил предыдущий вариант на spec50iok_soundok_xsd_de1.zip
Увеличил пикселклок примерно до 9,25 МГц, отцентровал - теперь полностью влезает даже в маленький ЭЛТ ТВ
На выходных может попробую к тюнеру подключить
Забыл написать, что эта версия только для ТВ

fifan
23.12.2014, 22:05
А кто еще не понимал? :)
5й бит порта C "системной" ВВ55, остальное можно прочитать в описании ВВ55
Нет дословно вот так:

if (mode = '0' and portr (7) = '0') then
snd <= not portr (0);
Совпадает только порт РУС (portr), бит 5 тут не участвует.

ivagor
23.12.2014, 22:10
fifan, почитайте любое нормальное описание ВВ55. Есть и советские книжки и забугорные даташиты

ivagor
24.12.2014, 11:34
Оффтоп, но связанный со специалистом. Конверснул (вручную) spets_fpga.vhd->spec.v
Размер уменьшился примерно с 13,5 Кб (без видео, оно в отдельном модуле) до 4,5 Кб
В чем фишка VHDL?

HardWareMan
24.12.2014, 12:25
Оффтоп, но связанный со специалистом. Конверснул (вручную) spets_fpga.vhd->spec.v
Размер уменьшился примерно с 13,5 Кб (без видео, оно в отдельном модуле) до 4,5 Кб
В чем фишка VHDL?
Родились они вместе практически одновременно, но согласно вике:

VHDL (англ. VHSIC (Very high speed integrated circuits) Hardware Description Language) — язык описания аппаратуры интегральных схем. Язык проектирования VHDL является базовым языком при разработке аппаратуры современных вычислительных систем.

Был разработан в 1983 г. по заказу Министерства обороны США с целью формального описания логических схем для всех этапов разработки электронных систем, начиная модулями микросхем и заканчивая крупными вычислительными системами.

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

Verilog, Verilog HDL (англ. Verilog Hardware Description Language) — это язык описания аппаратуры, используемый для описания и моделирования электронных систем. Verilog HDL, не следует путать с VHDL (конкурирующий язык), наиболее часто используется в проектировании, верификации и реализации (например, в виде СБИС) аналоговых, цифровых и смешанных электронных систем на различных уровнях абстракции.

Разработчики Verilog сделали его синтаксис очень похожим на синтаксис языка C, что упрощает его освоение. Verilog имеет препроцессор, очень похожий на препроцессор языка C, и основные управляющие конструкции «if», «while» также подобны одноимённым конструкциям языка C. Соглашения по форматированию вывода также очень похожи (см. printf).

Следует отметить, что описание аппаратуры, написанное на языке Verilog (как и на других HDL-языках) принято называть программами, но в отличие от общепринятого понятия программы как последовательности инструкций, здесь программа задает структуру системы. Так же для языка Verilog не применим термин "выполнение программы".
Мое понимание разницы в том, что VHDL это описание аппаратуры в принципе, а Verilog HDL уже конкретная заточка под алгоритмичность в удобство человека (программиста). Сорт оф.

ivagor
24.12.2014, 13:00
Мое понимание разницы в том, что VHDL это описание аппаратуры в принципе, а Verilog HDL уже конкретная заточка под алгоритмичность в удобство человека (программиста). Сорт оф.
Для себя я пока понимаю так. Возможности veriloga и VHDL практически одинаковые, но исходники на verilog компактнее. Т.е. как минимум мне нужно меньше жать клавиши, а результат тот же
Но некоторые предпочитат VHDL. Это некое субъективное предпочтение ("нравится и все") или есть объективные преимущества?

zebest
24.12.2014, 13:58
ачто, акула как всегда глухая только у меня??
http://www.spetsialist-mx.ru/index6.html
отсюда скачал пару архивов с *.rks. Десятка два файлов пробовал зАпустить (((
каталог с SD считывает, ну кроме латиницы конечно((
запустить ничего не смог.Как всегда извечный вопрос вОзникает...

---------- Post added at 13:58 ---------- Previous post was at 13:56 ----------

spec60Hz_xsd_de1 этот файл заливаю, есичто

ivagor
24.12.2014, 14:23
zebest, какие конкретно rks не запускаются?

---------- Post added at 17:23 ---------- Previous post was at 17:22 ----------

Ну а я конверснул на верилог и видео, практически уже можно выкладывать исходники

zebest
24.12.2014, 15:15
ну никакие же...ксоникс пробовал точно, остальные просто по номерам.. Выложи железно запускаемые, попробую.. с этой же флешки РК86 работает ксоникс. но естессно под РК который. так что флешка вряд ли причем

---------- Post added at 15:15 ---------- Previous post was at 15:05 ----------

http://www.spetsialist-mx.ru/Games/rks_games.rar
и этот
http://www.spetsialist-mx.ru/Soft/01-MAGIC.rar
архивы пробовал
51.rks 0000 0A6B 2E7A Xonix

ivagor
24.12.2014, 15:21
Попробовал XONIX.RKS (длина 2634 байта). Запускается, работает.
Возможно проблема связана с ограничением читалки b2mа - файлы д.б. без фрагментации. У меня на используемой для специалиста карточке файлы точно без фрагментации

ivagor
24.12.2014, 15:31
Понял, 51.rks - с именем, в читалке поддерживаются только rks без имени

---------- Post added at 18:31 ---------- Previous post was at 18:31 ----------

Надеюсь я успел и ты еще не отформатировал

ivagor
24.12.2014, 15:41
Загрузил 51.rks в эмулятор и выгрузил в формате без имени
50384
Так спокойно запускается
Я пробовал игрушки из архивов с сайта Пыхонина и свои (которые с Tim0xой) - они там сразу без имени

ivagor
24.12.2014, 15:42
Например вот сайт Пыхонина (http://emu80.org/dl.html)

HardWareMan
24.12.2014, 15:44
Имя должно отсутствовать внутри RKS файла, либо загружать его надо по I монитора.
http://savepic.org/6716917.png

ivagor
24.12.2014, 15:49
Речь идет не про загрузку с "магнитофона", а с использованием "SD-читалки". Она поддерживает только rks без имени

ivagor
24.12.2014, 17:20
Запускается, да, но после первого закрашивания перестают работать стрелки влево-вправо. Вверх\низ - работает. Чей прикол?? железа или проги??
Первый раз запустил ксоникс - тоже нечто подобное было. Потом перезагрузил и как-то аккуратнее стал нажимать (то ли меньше стал давить, то ли еще что) - стало нормально. Если сравнивать с эмулятором - это особенность/недостаток реализации клавиатуры. Но клавиатурой я точно заниматься не буду

---------- Post added at 19:20 ---------- Previous post was at 19:19 ----------

Сейчас еще раз запустил - такая же фигня. Т.е. по-хорошему клавиатуру надо бы доработать

---------- Post added at 20:20 ---------- Previous post was at 19:20 ----------

Выложил (https://yadi.sk/d/yhHUkk1PdL9MQ) исходник и sof под DE1. Этот вариант имхо заметно легче адаптировать под другие платы. sofы под 50 Гц и под ТВ оставил, пусть лежат.
При необходимости могу еще сделать версии для DE1-SoC и DE2-115

zebest
24.12.2014, 17:38
Этот вариант имхо заметно легче адаптировать под другие платы.
попробую на Speccy2010 перетянуть.
по ксониксу - видимо там ВВ55 как то по своему хитро программится. если ДВЕ клавиши жать - бегает

ivagor
24.12.2014, 18:05
Чтобы в EP2C8 влезло надо, как вариант, память цвета отключить. Или сделать чтение видео из SDRAM, но тогда будет уже не так удобно делать 60Гц развертку при 2/4 МГц на проц.
Насчет клавиатуры - кроме ксоникса проблем пока не видел, но клавиатуру я не трогал и не собираюсь

---------- Post added at 21:05 ---------- Previous post was at 20:55 ----------

Насчет отключения цвета проще всего наверно так - заменить в spec_top.v
.vcdataRd(cdatar),
на
.vcdataRd(3'b111),
при этом использование памяти в ПЛИС уменьшается и на первый взгляд должно влезть в EP2C8

ivagor
24.12.2014, 18:14
Насчет классических лучше пусть знающие люди скажут (помню LAND, PANGO и еще были), а я выложил в ту же папку наши с Tim0xой конверсии с msx. Там везде цвет есть (для некоторых есть 2 варианта: цвет и ч/б)

ivagor
27.12.2014, 06:49
Для галочки - spec50iok_soundok_xsd_de1 на тюнере тоже показывает

fifan
27.12.2014, 22:15
А будет ли расширение данного Специалиста до МХ?

ivagor
28.12.2014, 06:27
Не исключено, что прикручу что-нибудь (левое), но вряд ли в направлении mx

ivagor
28.12.2014, 11:12
Обновил (https://yadi.sk/d/yhHUkk1PdL9MQ) исходник (и sof) - чуть доработал реакцию ВВ55 на ресет

Убрал "старые" ТВ-версии и заменил их "универсальной" specVGA60_YPbPr576i50.zip
В ней SW0
0-VGA60Hz
1-YPbPr576i50 (G-Y,B-Pb,R-Pr)
Можно взять только Y и подключить к обычному ТВ, не поддерживающему компонентный вход

HardWareMan
28.12.2014, 11:24
Все хорошо, но предлагаю заменить богомерзкий Т80 на наш православный ВМ80 (http://zx-pk.ru/showthread.php?t=23349&page=25). Он все необходимые тесты проходит на ура, соответствует настоящему ВМ80 по таймингам и весит гораздо меньше.

ivagor
28.12.2014, 11:46
Было намерение заменить T80 на проц b2mа или Vslavа (в v06cc я их уже пробовал). Но пока остается вероятность, что захочу попробовать в специалисте какой-нибудь изврат, требующий z80

ivagor
28.12.2014, 14:03
Сделал на выбор 3 проца - T80/b2m/Vslav на условную компиляцию (specDE1_SrcAndSof_3cpu.zip, приложенный sof с T80)
Выбор проца в начале spec.v
//Choose your CPU
//Default (without define) - T80
//`define CPU_B2M
//`define CPU_VSLAV

Vslav
28.12.2014, 17:38
Приятно видеть практическое применение результатов реверса в проекте. Воодушевляет на новые работы :)

HardWareMan
28.12.2014, 17:56
Приятно видеть практическое применение результатов реверса в проекте. Воодушевляет на новые работы :)
Ну я стараюсь в массы продвинуть. И сам тоже буду пользовать, 100%. Вот бы весь комплект 580х раздербанить этим путем.

Titus
28.12.2014, 18:23
Ну я стараюсь в массы продвинуть. И сам тоже буду пользовать, 100%. Вот бы весь комплект 580х раздербанить этим путем.

Да, чипы, которые были в РК-86. Контроллеры ЭЛТ и доступа к памяти, если мне не изменяет память.

Ewgeny7
28.12.2014, 18:27
Приятно видеть практическое применение результатов реверса в проекте.
Да, я у себя тоже заменил во всех проектах проц на наш кошерный 580VM80.
Как буд-то душу вселяешь в ПЛИС :)

HardWareMan
28.12.2014, 20:44
Да, чипы, которые были в РК-86. Контроллеры ЭЛТ и доступа к памяти, если мне не изменяет память.
Согласно вике, полный комплект вот такой:


КР580ВМ80А (8080A) — однокристальный 8-разрядный центральный процессор
КР580ВМ1 — 8-битный центральный процессор
КР580ВА86 (8286) — 8-битный шинный формирователь без инверсии
КР580ВА87 (8287) — 8-битный шинный формирователь с инверсией
КР580ВА93 (8293) — приемопередатчик системы микропроцессор-канал общего пользования
КР580ВБ89 (8289) — арбитр шины
КР580ВВ51А (8251A) — контроллер последовательного ввода-вывода
КР580ИК55, позднее КР580ВВ55А (8255A) — программируемый контроллер параллельного ввода-вывода
КР580ВВ79 (8279) — программируемый контроллер клавиатуры и индикации
КР580ВВ79Д (8279-5) — программируемый контроллер клавиатуры и индикации
КР580ВГ18 (8218) — контроллер шины
КР580ВГ75 (8275) — программируемый контроллер дисплея
КР580ВГ76 (8276) — программируемый контроллер дисплея
КР580ВГ92 (8292) — контроллер интерфейса системы микропроцессор-канал общего пользования
КР580ВИ53 (8253) — программируемый интервальный 3-канальный таймер/счётчик (2,0 МГц)
КР580ВИ53Д (8253-5) — программируемый интервальный 3-канальный таймер/счётчик (2,5 МГц)
КР580ВК28 (8228) — системный контроллер и шинный формирователь
КР580ВК38 (8238) — системный контроллер и шинный формирователь
КР580ВК91А (8291A) — интерфейс системы микропроцессор-канал общего пользования
КР580ВН59 (8259) — программируемый контроллер прерываний
КР580ВР43 (8243) — расширитель ввода-вывода
КР580ВТ42 (3242) — адресный мультиплексор и счётчик регенерации динамического ОЗУ
КР580ВТ57 (8257) — программируемый контроллер прямого доступа к памяти (ПДП)
КР580ГФ1 — генератор сигналов специальной формы
КР580ГФ24 (8224) — генератор тактовых импульсов
КР580ИР82 (8282) — 8-битный регистр-защёлка без инверсии
КР580ИР83 (8283) — 8-битный регистр-защёлка с инверсией

Но нам достаточно следующих чипов:

КР580ВМ80А (8080A) — однокристальный 8-разрядный центральный процессор
КР580ВВ51А (8251A) — контроллер последовательного ввода-вывода
КР580ИК55, позднее КР580ВВ55А (8255A) — программируемый контроллер параллельного ввода-вывода
КР580ВГ75 (8275) — программируемый контроллер дисплея
КР580ВИ53 (8253) — программируемый интервальный 3-канальный таймер/счётчик (2,0 МГц)
КР580ВК28 (8228) — системный контроллер и шинный формирователь
КР580ВК38 (8238) — системный контроллер и шинный формирователь
КР580ВТ57 (8257) — программируемый контроллер прямого доступа к памяти (ПДП)
КР580ГФ24 (8224) — генератор тактовых импульсов
Из них сам микропроцессор уже готов, простые буферы и регистры интереса не предоставляют а экзотические контроллеры клавиатур по возможности (ЕМНИП кто-то здесь использовал, а может и на другом форуме было).

Vslav
28.12.2014, 22:53
Мне кажется что нет смысла остальные кристаллы из серии 580 реверсить, они все полностью документированы, все внутренние регистры известны, часть микросхем предназначена для работы исключительно на старой асинхронной шине (типа контроллера DMA ВТ57), которая в FPGA никак не разместится. То есть практический "выхлоп" от их реверса околонулевой, имхо. А реверс только ради реверса не так интересен - хватает много чего более интересного - LSI-11, F-11, 1801ВМ2/ВМ3, возможно J-11. Но если будут желающие на 580-ые, то я мог бы отдекапить, сделать серии фотографий, а дальше уже кто хочет - может сшивать в панорамы и реверсить.

Кстати 580ВВ79 я когда-то практически применял, достаточно капризная, легко ловит помехи по матрице клавиатуры, иногда зависал выход прерывания, в итоге на следующих проектах не прижилась - оказалось дешевле и надежнее использовать ЦП для поддержки клавиатуры и индикации.

Titus
28.12.2014, 23:38
типа контроллера DMA ВТ57

Это очень нужно для точной эмуляции РК-86.
Не стоит все рассматривать с точки зрения повторения в ПЛИСах.

Vslav
29.12.2014, 00:04
Не стоит все рассматривать с точки зрения повторения в ПЛИСах.

Да, наверное, стоит смотреть шире. Как я написал, хотя у меня другие интересы, помогу с реверсом 580-ой серии по мере возможности - сделаю декапинг и фотографии верхнего слоя и диффузии. Можно и BarsMonster-а попросить, тоже, думаю, не откажется помочь.

PS. А что, с ВТ57 остались какие-то невыясненые вопросы для его эмуляции?

Titus
29.12.2014, 00:10
PS. А что, с ВТ57 остались какие-то невыясненые вопросы для его эмуляции?

Не пробовал, может такие вопросы и появились бы.

ivagor
29.12.2014, 07:23
Мне кажется что нет смысла остальные кристаллы из серии 580 реверсить, они все полностью документированы, все внутренние регистры известны
КР580ВМ1 имхо выбивается из этого ряда, хотя для него и известна система команд и назначение выводов.

ivagor
29.12.2014, 15:26
Попробовал в специалисте pal-кодер svofski из v06cc. Работает, но есть 2 проблемы:
1. Тонкие вертикальные детали шириной в 1 точку окрашиваются левыми цветами (хотя бы 2 точки - уже нормально) . Проблема усугубляется тем, что я немного увеличил (до 9 МГц с копейками) пикселклок (чтобы лучше влезало в маленький ЭЛТ ТВ), и яркостная компонента еще сильнее пересекается с цветоразностной, чем от оригинальных 8 МГц. Т.е. качественного композита не получится, только s-video.
2. Частота поднесущей не кратна пикселклоку и картинка немного "дышит"

---------- Post added at 18:26 ---------- Previous post was at 18:09 ----------

Выложил экспериментальный specVGA60_YPbPr576i50_PAL.zip
В нем двумя свитчами можно выбрать режим работы видеовыхода
SW1:SW0
00/10-VGA60Hz
01-YPbPr576i50 (G-Y,B-Pb,R-Pr)
Можно взять только Y и подключить к обычному ТВ, не поддерживающему компонентный вход - будет ч/б
11-PAL композит (G-Y)
Также при этом B-Pb,R-Pr, т.е. можно подключить к компоненту и посмотреть на влияение несущей на картинку

Т.е., подключив G-Y к видеовходу обычного ТВ можно получить цветное изображение (SW1:SW0=11) или ч/б (SW1:SW0=01)

ivagor
30.12.2014, 16:24
specVGA60_YPbPr576i50_PAL2.zip - 4 в 1 (добавил S-Video)
SW1:SW0
00/10-VGA60Hz
01-Компонентный YPbPr576i50 (G-Y,B-Pb,R-Pr)
Можно взять только Y и подключить к обычному ТВ, не поддерживающему компонентный вход - будет ч/б
11-PAL
G-композит
R-Y S-Video
B-С S-Video
Можно взять только Y и подключить к обычному ТВ - будет ч/б

Качество S-Video очень хорошее, намного лучше композита, нет никаких артефактов

---------- Post added at 19:24 ---------- Previous post was at 17:33 ----------

Вроде НГ еще не наступил, а уже проблемы с внимательностью. Забыл выложить specVGA60_YPbPr576i50_PAL2.zip, сейчас выложил (https://yadi.sk/d/yhHUkk1PdL9MQ)

ivagor
31.12.2014, 06:57
Попробовал еще и с тюнером и в specVGA60_YPbPr576i50_PAL3.zip пришлось задействовать еще один переключатель (без него цвета "полосатые"):
SW2 для совместимости с некоторыми тв-тюнерами (aver tv 305/307)
0 - стандартный режим
1 - режим "совместимости с тюнером"

В результате получаются вот такие картинки

ivagor
05.01.2015, 10:18
Доработал композит - теперь пиксельклок кратен частоте поднесущей, добавил переключатель SW3 (чересстрочная/прогрессивная), уменьшил амплитуду цветоразностного сигнала. Теперь композит более-менее пристойный, на некоторых тв или тюнерах возможно придется подобрать комбинацию SW2 и SW3 для лучшего качества. Эта версия называется specVGA60_YPbPr576i50_PAL4.zip, предыдущий вариант на всякий случай тоже оставил (https://yadi.sk/d/yhHUkk1PdL9MQ)

ivagor
05.01.2015, 12:48
Заменил архив PAL4 на PAL5
1. Добавил регулировку насыщенности для PAL
SW4=0 - нормальная насыщенность
SW4=1 - пониженная насыщенность
2. Теперь в архиве два sofа, для DE1 и DE2-115. Версию для DE1-SoC тоже надо бы обновить, а то там ни SD, ни 60Гц vga, ни ТВ, и звук неполный

HardWareMan
06.01.2015, 11:51
А можно исходник применяемого PAL кодера?

ivagor
06.01.2015, 12:07
PAL кодер отсюда (https://code.google.com/p/vector06cc/source/list) (автор svofski). Файл video.v
В последних версиях вектора svofski сделал вариант с частотой поднесущей*16, а я взял более старые варианты (из 300х ревизий) *8 и *4. Единственное, что отличается в специалисте - я сделал чересстрочную (отключаемую) развертку, в векторе это сложновато совместить с точными таймингами, нужными для демок
В последних версиях вектора есть и компонентный сигнал
Так что фактически все исходники открыты

Ewgeny7
07.01.2015, 19:57
ivagor, а можно тебя попросить в порядке личного ознакомления исходники твоего последнего "Специалиста"? ewgeny7(gav)speccy.su

ivagor
08.01.2015, 08:22
Выложил все туда же (https://yadi.sk/d/yhHUkk1PdL9MQ) specVGA60_YPbPr576i50_PAL5src.zip, в папку для DE1 добавил исходники.
Мне хотелось сначала добить pal, чтобы он на любом тв и тюнере показывал в цвете без подстроек, но возможно коллективный разум или наиболее продвинутые его представители сделают это быстрее меня. В свою очередь прошу, если у кого-то получится улучшить pal, выложить доработанные исходники
Так получилось, что версии немного "разъехались" и здесь нет "3cpu", но при желании можно за минуту их добавить, рядом там по прежнему лежит specDE1_SrcAndSof_3cpu

Ewgeny7
08.01.2015, 13:08
ivagor, спасибо!
Мне интересен кодер ПАЛ, хочу привинтить его к Скорпиону на ПЛИС, на EP2C5Q208.
Там только цветного изображения для счастья полного и не хватает.
Также хорошо будет посмотреть работу на примере Специалиста :)

ivagor
08.01.2015, 13:57
Спасибо svofski, что он сделал этот контроллер и выложил исходники.
Да и развертка в v06cc к него корректнее, там синхра сделана практически как по учебнику, только чересстрочность в вектор проблематично впихнуть с сохранением таймингов, нужных для демок

ivagor
08.01.2015, 15:54
8 (БЖГЗПКСЧ) классических цветных полос, чтобы по быстрому проверить правильность цветопередачи. Пробел - выход в монитор

ivagor
08.01.2015, 20:42
На некоторых ТВ данный кодер при включенном режиме изменения фазы в каждом поле (в последних реализациях специалиста активируется при чересстрочной развертке) приводил к мерцанию нескольких десятков верхних строк (и в векторе и в специалисте). Похоже удалось это победить, но я не буду торопиться выкладывать, еще потестирую, а то способ работает, но он довольно странный. Может у кого-то появятся альтернативные варианты

ivagor
09.01.2015, 07:15
Проверил последние варианты на тюнере. Оказалось, что в принципе двигаюсь в правильном направлении - версия PAL5 уже определяется моим averом именно как PAL (при включении прогрессивной развертки), не как NTSC 50, и специальный свитч "под aver" (как в PAL3) не нужен

---------- Post added at 09:15 ---------- Previous post was at 08:54 ----------

Еще касательно базовой частоты кодера. В PAL3 была pal*8, а в PAL5 я (думал, что для 8 цветов специалиста это без разницы) даунгрейдил до pal*4 - это я зря сделал, все же с pal*8 лучше. У svofski, как я уже упоминал, посчитаны коэффициенты и для pal*4 и для pal*8 и *16

Ewgeny7
09.01.2015, 12:40
Ух... китайская грамота... :)
Пока не добрался до кодера, занимаюсь ЮТ-88.

zebest
09.01.2015, 15:11
Насчет отключения цвета проще всего наверно так - заменить в spec_top.v
.vcdataRd(cdatar),
на
.vcdataRd(3'b111),
при этом использование памяти в ПЛИС уменьшается и на первый взгляд должно влезть в EP2C8

Ну что сказать. В первом приближении - работает)) Пока все приятно-зеленоватого цвета, но это поправлю, думаю ч\б соображение сделаю, где то с назначением выводов напуталось видимо.


Или сделать чтение видео из SDRAM, но тогда будет уже не так удобно делать 60Гц развертку при 2/4 МГц на проц.
Тут конечно бы интереснее цвет сделать, чем 60 Гц, но это точно не по мне)
Звук кстати тоже не делал, как совместить кодеки - я не пойму.
Что переделал.
У тебя как бы три тактовых частоты - clk16, clk64 и глобальная CLOCK_50 была. В Speccy2010 тактовый генератор 20Мгц и оказуваеЦЦа PLL нельзя ни каскадировать, ни параллелить, щет), поэтому на PLL завел эти 20, на выходе же с0=64 и с1=20 и заменил CLOCK_50 на clk64, надеюсь ни на что не повлияет)

---------- Post added at 15:11 ---------- Previous post was at 14:18 ----------

с зеленым цветом разобрался) это в DE1 4 бита на цвет, а в speccy2010 - 8 бит на цвет. Вот когда самые младшие биты(output [3:0] VGA_R; ) были задействованы - сильно зеленый оттенок, хотя ничего не перепутано. Если задействую самые старшие 4 бита (output [7:4] VGA_R; )- тогда черно-белое, но видно сетку, возможно что от PAL? чуть подвинул (output [6:3] VGA_R; ) - теперь нормально по яркости и сетки паразитной) не видно.

ivagor
09.01.2015, 15:19
Поздравляю с успешной адаптацией!
Много версий сменилось, но насколько я помню CLOCK_50 использовался как опорная частота pll и при генерации частоты для звукового кодека. Про звуковые кодеки в целом не скажу, но если просто (без пересчета фазового аккумулятора) заменить в том исходнике 50 на 64 МГц, то 8731 работать не будет.
Про clk16 и 64 мне почему-то помнится иначе - 16 получались счетчиком из 64, а второй выход pll генерировал нечто близкое к 19,2 МГц для видео. При 20 вместо 19,2 немного увеличится строчная и кадровая, но в принципе проблем не должно быть

zebest
09.01.2015, 15:32
При 20 вместо 19,2 немного увеличится строчная и кадровая, но в принципе проблем не должно быть
ну да, так и было.. из чисто 20ти трудненько сделать 19,2, да и смысл.
CLOCK_50 у тебя и для тактирования памяти используется.
В принципе на втором PLL я могу сделать 50МГц из 20-ти, но смысла пока не вижу, т.к. пока и так без звука, в Speccy он сделан на DAC 1543a.


Много версий сменилось,
я переделывал которайя 3-в-1. Процы кстати разные пробовал на DE1 компилить, отлично и наглядно получилось, за это отдельное спасибо, за пример..

ivagor
09.01.2015, 15:41
CLOCK_50 у тебя и для тактирования памяти используется.
Сейчас посмотрел
SDRAM - 64
видеопамять - 64 и 19,2
ПЗУ - 16
Если CLOCK_50 используется для памяти - то это не у меня :)

Насчет процов - самый удобный (всеядный) в плане тактирования - T80. Его можно тактировать хоть в духе проца b2mа, хоть проца Vslava, а вот с ними так не получится. Но у них свои плюсы

fifan
09.01.2015, 20:36
Хочу показать на ошибку. Адресное пространство ПЗУ Специалиста объёмом 12 кБайт (http://www.spetsialist-mx.ru/index3.html), а не 8 кБайт как в данном проекте. Я сужу по данному присвоению в файле spec.v:

wire rom_sel=a_buff[15:13]==3'b110;
Должно быть вот так (не знаю как в Verilog'е написать):

А15 А14 А13 А12
1 1 0 0
1 1 0 1
1 1 1 0

ivagor
10.01.2015, 06:18
Хочу показать на ошибку. Адресное пространство ПЗУ Специалиста объёмом 12 кБайт, а не 8 кБайт как в данном проекте.
В данном случае это не баг а фича. Место, откушенное у ПЗУ, используется как служебная область для загружалки c SD. Кроме того реально используемый в проекте объем ПЗУ даже до 8 Кб не дотягивает. Если кому-то нужно большое ПЗУ и не нужна загружалка с SD (или перекомпилировать её с другими адресами служебной области) - то не вижу проблем откорректировать, исходник то открыт

---------- Post added at 09:18 ---------- Previous post was at 09:17 ----------

Вот ВВ55 действительно стоит или допилить или заменить на отлаженный сторонний модуль

ivagor
10.01.2015, 12:45
Все в ту же папку (https://yadi.sk/d/yhHUkk1PdL9MQ) выложил xsd_2cpu_moreSDRAM.zip - пробный (дубовый) вариант с видеоОЗУ в SDRAM. Жертвами дубовости стали 60 Гц (тут 50 Гц VGA), турбо и проц Vslavа.
ОЗУ цвета осталось в плисе. При желании и его можно перенести в SDRAM
50 МГц в этой версии только в качестве опорной частоты для pll, из которого выходит только (примерно) 64 МГц

zebest
10.01.2015, 14:43
Работает. Да , 50 Гц. теперь и на speccy2010 spec в cvete)
Клавиатура конечно ужасно тормозная) две кнопки подряд быстро не нажать. Надо ждать) На реальном специалисте тоже так? в эмуле клава медленнайя так же.
Осталось звук придумать совместить)

zebest
11.01.2015, 03:09
Совершил еще два подвига. Установил аверМедию 509-ю и спаял шнурок RGB=>S-Video + Composit.Собственно вот:
http://savepic.net/6323274m.jpg (http://savepic.net/6323274.htm)http://savepic.net/6302794m.jpg (http://savepic.net/6302794.htm)
Слева композит, справа s-video. SW0+SW1+SW3

ivagor
11.01.2015, 07:38
Это PAL3 или PAL5?
Немного посмотрел вчера насчет звука в 2010. Насколько я понял, там 2 варианта: параллельные 8битные цапы на R-2R и TDA1543, переключаются вроде через ARM. Для TDA надо переделать вывод на звуковой кодек, а на R-2R (если распаяны) можно попробовать просто подать
wire[15:0] pulses = {1'b0,sound,14'b0};

zebest
11.01.2015, 10:23
Это PAL3 или PAL5?
PAL5


там 2 варианта: параллельные 8битные цапы на R-2R и TDA1543, переключаются вроде через ARM.
через АРМ - это в полной версии как бы)) А так и то и другое доступны напрямую в ФПГА, но! R-2R конечно проще вариант, но его вряд ли кто и когда распаивал, рупьзасто, и у меня его точно нет, как и у других:), вообщем остается только TDA1543

ivagor
11.01.2015, 10:41
Заменил moreSDRAM на xsd_2cpu_fullSDRAM.zip
Отличия:
1. Теперь и цвет тоже в SDRAM, внутри ПЛИСа только ПЗУ. В принципе в этот вариант сравнительно легко добавить mx или переделать в орион
2. Вернул турбо. Можно еще турбее, но вроде в этом нет необходимости
3. Перекомпилировал xsd b2mа - сдвинул адреса служебной области (F000-F6FF) и портов SD (F700-F7FF). Теперь под ПЗУ до 12 Кб. Конфиг для emu, который я тут выкладывал (http://zx-pk.ru/showpost.php?p=761603&postcount=2), надо соответственно откорректировать.

Насчет тюнера - получается для 509, как и для 305 нужна прогрессивная. Все попробованные ТВ воспринимают цвет и при чересстрочной и при прогрессивной, интересно, что не нравится тюнерам.
Насчет звука - т.е. имеет смысл изменить формат работы с аудиокодеком на i2s. Это не сложно, но не интересно, т.е. скорее всего сделаю, но не знаю когда

---------- Post added at 13:41 ---------- Previous post was at 13:36 ----------

Все время забываю - наверно стоит еще оттенки поменять, чтобы без "общей" яркости и яркого черного.

ivagor
11.01.2015, 15:13
Заменил предыдущий вариант на xsd_2cpu_fullSDRAMi2s.zip
Звук теперь передается в режиме i2s. На speccy2010 можно попробовать подать
AUD_BCLK на tdaBck
AUD_DACLRCK на tdaWs
AUD_DACDAT на tdaData

Еще слегка поменял цвета, теперь яркость не общая и нет яркого черного

zebest
12.01.2015, 02:07
поменял цвета, теперь яркость не общая и нет яркого черного
это да, приятнее смотрится.
со звуком "влоб" не получилось)

ivagor
12.01.2015, 14:53
"О сколько нам открытий чудных..."
Погуглил и оказалось, что есть TDA1543 (c I2S) и TDA1543A (с неким левым форматом). Что интересно, даташит на A я не нашел, хотя под его маркой часть сайтов зачем то выкладывют pdf от неA. И насколько я понял, в 2010 именно TDA1543A. Т.е. мой вариант с i2s не заработает
Можно попробовать добавить в spec_top
reg[5:0]clkDiv;
always@(clk64) clkDiv<=clkDiv+1;
и поменять пару строк в вызове tda1543a
.RESET(reset),
и
.CLK(clkDiv[5]), или .CLK(clkDiv[4])

ivagor
12.01.2015, 17:14
Здесь (https://code.google.com/p/speccy2010/source/browse/trunk/firmware/fpga/src/speccy2010.vhd) похоже реализована поддержка только A и R-2R, т.е. если запаять неА и залить прошивку, скомпилированную по данному исходнику - вряд ли будет звучать. Хотя возможно предполагается, что каждый сам кузнец своего счастья - ставь неA и правь исходник (или я невнимательно посмотрел и это универсальное решение)
Теоретически должна подойти тактовая <=9,2 МГц, т.е. clkDiv[от 2 до 5]

ivagor
12.01.2015, 18:52
(или я невнимательно посмотрел и это универсальное решение)
С ходу не вник, что dacMode м.б. не только 0 или 1

ivagor
13.01.2015, 14:32
Маниакально-специалистовская фаза завершается и нужно немного навести порядок с версиями. Их остаётся 2:
1. 60 Гц вга и разнообразное телевидение (сейчас выложил 3cpu60HzAndTV.zip)
2. fullSDRAM (выложенная ранее xsd_2cpu_fullSDRAMi2s)
Можно объединить и эти два направления, но тогда кое в чем придется пойти на компромисс.
В 3cpu60HzAndTV.zip поборол (имхо) основные имевшиеся недостатки ТВ-выхода (хотя можно еще поработать над улучшением качества композита, но проще и качественнее использовать вместо него S-Video). Назначение SW2 сменилось, т.к. специальный переключатель "под aver" больше не нужен
В fullSDRAM в конце недели отрихтую пару мелочей и, в принципе тоже все

ivagor
13.01.2015, 20:53
Заменил в последнем архиве video.v (и sof) - подкорректировал оттенки (в videoTV.v уже было правильно)

zebest
14.01.2015, 11:08
Можно объединить и эти два направления, но тогда кое в чем придется пойти на компромисс.

теоретически интересно конечно, в Speccy2010 есть оба выхода и S-Video и композит, я то все равно ими не пользуюсь , да и монитор у меня 50Гц держит)

Теперь по звуку. Если вкратце - я его победил!!!!! Трудно теперь сказать, почемуу сразу не взлетело, но может оно и к лучшемуу как всегда - узнал много нового, и про формирование звука, и про I2S, и про кодеки. В процессе изучения, кхе-кхе, выдернул стандартный звуковой генератор и вставил в этот проект, ну чтобы всегда пищало, для проверки. Сразу тоже не заработало, I2C_Controller то жи пришлось перетягивать, чет с твоим облегченным не заработало). Потом внезапно заработалО и на TDA1543a.

Теоретически должна подойти тактовая <=9,2 МГц, т.е. clkDiv[от 2 до 5]
и 4 и 5 то жи подходят делители, но звук рваный получается, очень уж маленькая тактовая получается, это же 1-2 Мгц. Оптимально - 8Мгц, это сlkDiv[2]. Бипы при нажатии на клавиши вроде вполне похожие на настоящие, ну и довольно хороший звук слышно в Диггер-е, поиграл и в него, а так до этого на Fire-c тренировался. В диггере турбо очень не хватает.
Далее вопрос - а в РК86 звук по такомуу же принципу сделан??? а то он у меня тоже глухонемой )) Надо будет поразбираться, но это уже после твоей финальной версии SDRAM-ной)
Из интересных приколов, ну типа как шипение колонок - у меня все гораздо интереснее, после запуска специалиста на Speccy2010 - отваливается вай-фай на роутере, метра полтора до него... Это проверено не раз. Выключаю - появляется:))

ivagor
14.01.2015, 11:54
Звук заработал - это здорово! Бипер еще, например, в jet-set можно послушать. У меня было поползновение прикрутить AY/YM, но тогда надо хотя бы перекомпилировать msxные игрушки (бипер для "голосовых вставок" в fire и indian остался, а YM я везде убрал).
В РК86 звук сделан аналогично

HardWareMan
14.01.2015, 13:43
Из интересных приколов, ну типа как шипение колонок - у меня все гораздо интереснее, после запуска специалиста на Speccy2010 - отваливается вай-фай на роутере, метра полтора до него... Это проверено не раз. Выключаю - появляется:))
Экранировать и заземлять надо. FCC не одобряэ ваш спеки2010.

ivagor
15.01.2015, 14:54
Не про специалист, но пробовал именно на этом проекте.
Легкими движениями рук - изменение частоты цветовой поднесущей, корректировка развертки под 60Гц и отмена изменения фазы поднесущей в каждой строке - кодер PAL превращается в NTSC. Правда для большинства советских компов есть 2 камня преткновения:
1. "Слишком много" активных строк, реально ТВ в ntsc покажут максимум в районе 220
2. Кадровая 60 Гц, что м.б. критично при наличии прерываний, привязанных к кадровой
С ходу разве что ПК8002 вспоминается из подходящих компов, но его реализации на плис (пока?) нет

ivagor
16.01.2015, 16:07
Объединил в один проект многообразное телевидение, 3 (вернее 2.5, т.к. проц VSlava будет без турбы) cpu и full SDRAM. Заодно заметил и исправил одну плюху с палом (делайте больше тестов, хороших и разных)

ivagor
16.01.2015, 16:57
Завтра я пойду еще потестирую на других мониторах и тюнере
Пока выложил spec16012015.zip с sofом (добавился SW5 для ТВ, у которых в чересстрочном режиме в palе моргают верхние строки, остальные свитчи как в последней телеверсии).
Для тестирования цветопередачи добавил "режим 512 цветов" :)
c512.rks как раз выводит все эти цвета на экран

ivagor
18.01.2015, 09:13
Выложил (https://yadi.sk/d/yhHUkk1PdL9MQ) финальную версию (хотя не зарекаюсь, может еще что-нибудь добавлю/доделаю)

zebest
18.01.2015, 09:28
Выложил финальную версию
Цитирование а5 сломали??? Посмотрим на финальную, предфинальную

Для тестирования цветопередачи добавил "режим 512 цветов"
c512.rks как раз выводит все эти цвета на экран
смотрел с цветом).
Немного другой вопрос :)


Поменять частоту шима в векторе я так и не собрался, но зато попробовал видеошим с другой частотой (258,33 МГц) на специалисте - гениусные колонки и в этом случае шумят, звук немного другой.

расскажи, как правильно ВЫКЛЮЧИТЬ! этот DAC, и откуда вообще берется звук, если я вообще сигналы не назначаю:v2_dizzy_botan:

ivagor
18.01.2015, 09:56
А точно шумит аудио? Видеошим шумит в моих неэкранированных гениусных колонках даже без аудиошнурка и независимо от регулятора громкости.
Если шумит именно аудио, то надо учитывать, что у wm8731 есть настройки по умолчанию, по которым, в частности, включена подача на цап сигнала с ацп. Если включить DE1 с дефолтным проектом (тут надо посмотреть, может он тоже настраивает кодек, но с сохранением сквозной подачи звука) и подать что-нибудь звучащее на линейный или микрофонный вход - то услышишь в колонках не только писк проекта, но и звук со входа. Для "борьбы" с этим можно добавить в проект инициализацию (от рк86, вектора, специалиста и т.д.) аудиокодека с I2C_AV_Config.v и I2C_Controller.v

fifan
18.01.2015, 11:43
А нельзя ли вылажить исходники ПЗУ, в частности касающиеся SD интерфейса.

ivagor
18.01.2015, 12:02
Вот (http://zx-pk.ru/showpost.php?p=699892&postcount=51) оригинал, а правленый под реализацию специалиста исходник я сейчас выложил в ту же папку (https://yadi.sk/d/yhHUkk1PdL9MQ)

ivagor
18.01.2015, 22:19
С цветом через тюнер, мой, все плохо.
Для моего avera подходит SW3:SW2=1:1 (естественно при SW1:SW0=1:1). Четыре попробованных телевизора показывают цвет и при других положениях SW2 и 3

"Новаторство" типа 512 и 4096 я удалил

---------- Post added at 01:19 ---------- Previous post was at 01:17 ----------

50 и 56 отличаются только кадровой частотой VGA

ivagor
19.01.2015, 16:18
Выложил обновленный вариант. Жить стало проще, жить стало веселее - переключателей теперь в 2 раза меньше (3 вместо 6), но это именно те переключатели, что надо :)

---------- Post added at 19:18 ---------- Previous post was at 17:36 ----------


изменение частоты цветовой поднесущей, корректировка развертки под 60Гц и отмена изменения фазы поднесущей в каждой строке - кодер PAL превращается в NTSC
Дополню - нужно еще пересчитать коэффициенты для tvUV (tvUW для ntsc не нужны). Можно воспользоваться питоновской программой svofski из комплекта v06cc (pal.py) заменив коэффициенты для U и V на коэффициенты для I и Q. Ну и еще в uvsum поменять B и R

ivagor
19.01.2015, 20:59
ну терь распиши,че-где))
У меня есть подозрение, что ты не читал readme :)


Цвет без свичей можно вывести на отдельныйе пин-ы? ну чтобы и VGA было и S-Video.
В принципе возможно все, но самый простой вариант - скомпилировать несколько версий, задавая в spec_top tvmode не от свитчей, а жесткими комбинациями - для вга, компонента, palа и типаntsc

---------- Post added at 23:59 ---------- Previous post was at 23:15 ----------

Закругляя тему модификации pal-кодера под ntsc

Ну и еще в uvsum поменять B и R
Все же это некрасивый хак, раз уж все равно менять коэффициенты для U и V на коэффициенты для I и Q, то лучше (и точнее) поменять при расчете cos на sin (и наоборот) и фаза вспышки д.б. на 1 меньше фазы сигнала, используемого для выборки tvUV

zebest
19.01.2015, 21:32
У меня есть подозрение, что ты не читал readme
у меня чет то жи есть такое подозрение:)


SW2
0 - PAL
1 - нестандартный режим, иногда называется NTSC50 или NTSC4.43
ПолучаеЦЦо у мну нестандартный режим PAL?:v2_conf2:

ivagor
19.01.2015, 21:47
ПолучаеЦЦо у мну нестандартный режим PAL?
Строго говоря, это в проекте PAL не совсем стандартный (упрощенный), но использованный вариант наиболее совместимый и стабильный из попробованных
Вот ntsc удалось реализовать практически точно, но он сам по себе проще и для специалиста не годится
Не исключено, что и pal когда-нибудь добью до полной совместимости

ivagor
25.01.2015, 17:20
Сделал развлекательную версию (https://yadi.sk/d/yhHUkk1PdL9MQ) - spec12bpp.zip (sof, тест и картинки)
В ней реализован режим 12 бит/точку (4 бита/канал, на DE1 просто такая разрядность штатного видеоЦАПа, для, например, DE2-115 можно и truecolor сделать). Приложил тестик, выводящий все цвета на экран и несколько картинок (как загрузить картинку - в readme).
Собственно к специалисту это, конечно, имеет мало отношения, но выглядит забавно

ivagor
26.01.2015, 16:15
Все же сделал и выложил (https://yadi.sk/d/yhHUkk1PdL9MQ) truecolor для de2-115. Версию для de1 (и тест для неё) обновил для совместимости по адресу порта выбора режима

ivagor
31.01.2015, 18:03
Я остановился вот на таком PAL, он работает на всех попробованных тв и тюнерах

ivagor
31.01.2015, 18:47
Значит надо думать или speccy2010 смотреть

ivagor
02.02.2015, 11:31
Обновил развлекательную версию для de2-115 - добавил компонентный выход, переключение по SW0
Пара картинок, захваченных модерновым тюнером
http://i.imgur.com/y3m9V5J.png
http://i.imgur.com/xs7wref.png

ivagor
05.02.2015, 11:56
Сделал более корректную развертку (всякие короткие/длинные/средние синхроимпульсы). Это влияет на опознавание цветности сильнее, чем я думал.
Развертка "более корректная", а не просто "корректная", т.к. все же прогрессивная, не чересстрочная, и в стандарте такого нет

ivagor
06.02.2015, 11:09
Стало повеселее, все же виден свет в конце тоннеля. Какая марка проектора?

ivagor
23.02.2015, 18:48
Выложил (https://yadi.sk/d/yhHUkk1PdL9MQ) версию с доработаным PALом. Увеличил насыщенность, было бледновато. Радикально улучшилось качество композита - теперь не рябит. Обращаю внимание, что поменял соответствие vga rgb и композита с s-video (исходники открыты, т.ч. при необходимости можно легко поменять)

andykarpov
24.02.2015, 23:10
Попробовал запустить проект на ZrTech WXEDA.
Вроде получилось, пока проблема только одна - впаянная на плату пъезо-пищалка.
Она, как бы это сказать - возбуждается :) Сама.

Читал в сети, что это из-за неточности (jitter) PLL и с этим ничего не поделаешь.
Может есть какие-то рекомендации, как побороть этот писк?

ЗЫ: К ней пальцем дотрагиваешься (до пластикового корпуса) - возбуждаться перестает, вроде бы. жмешь ресет - опять пищит... Может какой фильтр к ней допаять ?

andykarpov
25.02.2015, 16:01
И еще одна проблема нашлась - клавиша Backspace, она неправильно как-то настроена в spetskeyboard.v. Вместо ожидаемого удаления символа - рисует символ "_". Или это только у меня так ?

HardWareMan
25.02.2015, 16:20
Если она выдает символ "забой", то оно так и есть.

andykarpov
25.02.2015, 16:22
Если она выдает символ "забой", то оно так и есть.

То есть кнопка "забой" в мониторе специалиста работает не так, как например на рк86 ? Хм. что ж делать ? :)

ivagor
25.02.2015, 16:51
Здорово, что заработало на wxeda!
Насчет backspace - бог с ним с монитором, а вот в sd-оболочке основной версии я забыл исправить. Исходники b2mа с правками под специалист лежат в папке, там в функции READLN нужно заменить CPI 7FH на CPI 5FH. В "развлекательной" версии (которая для просмотра картинок) я это давно сделал, а тут забыл

andykarpov
25.02.2015, 18:48
Здорово, что заработало на wxeda!
Насчет backspace - бог с ним с монитором, а вот в sd-оболочке основной версии я забыл исправить. Исходники b2mа с правками под специалист лежат в папке, там в функции READLN нужно заменить CPI 7FH на CPI 5FH. В "развлекательной" версии (которая для просмотра картинок) я это давно сделал, а тут забыл

Это имеется в виду архивчик xsdSpecSrc.zip ?
Нашел в dos.asm этот CPI 7FH, но скомпилировать нечем;
Насколько я помню, там компилятор самописный был какой-то, под винду, у меня их систем сейчас есть только osx и linux в виртуалке :(

ivagor
25.02.2015, 19:19
Заменил проект специалиста и исходники xsd на вариант с рабочим backspacом в досе
Не пробовал, но скорее всего tasm в dosboxе работает

andykarpov
25.02.2015, 21:09
Заменил проект специалиста и исходники xsd на вариант с рабочим backspacом в досе
Не пробовал, но скорее всего tasm в dosboxе работает

Спасибо, теперь вообще все отлично работает!!!
Вот репозитарий git, если интересно: https://github.com/andykarpov/specialist-mx-wxeda

fifan
25.02.2015, 21:23
Прикольно!

ivagor
25.02.2015, 21:47
mx в названии может навести человека, впервые увидевшего проект, на неправильные мысли

andykarpov
25.02.2015, 21:59
Дельное замечание, спасибо! https://github.com/andykarpov/specialist-wxeda

ivagor
27.02.2015, 16:29
Еще немного улучшил композит (в s-video разница незаметна) - меньше паразитная окраска мелких деталей. Добавил "NTSC443" на SW2
Добавил в readme.txt пару копирайтов

ivagor
27.02.2015, 17:04
как бы эти свитчи привязать на кнопки клавиатуры
Как-то даже не думал про это. Может как-нибудь потом


из каких внутренних побуждений сделано то?
Брат заказал мне (очередной) переходник на али. Предположительно у него такая (http://pinouts.ru/VideoCables/matrox_tvout_pinout.shtml) распайка. И в такой распайке есть смысл. Y точно надо на G, т.к. у adv7123/25 (которые в de2-115, de1-soc и еще много где) сигнал SYNC влияет только на G, а полезен он только для Y. Остаются R и B - ну тут возможны варианты, но композит на R и цветость s-video на B - хорошо запоминается по порядку (понятно, что это очень субъективно)

Ewgeny7
01.03.2015, 14:19
Привинтил кодер к спектрумовской конфигурации на EP2C5Q208.
Никак не выставить PLL на нужную частоту, уже убился ап стену, но с кварцем 28МГц выше 252МГц не завести :(
В "оригинале" ведь используется генератор на 50МГц? Какая синтезируемая частота будет самой оптимальной?

ivagor
01.03.2015, 14:44
Лучше отталкиваться от последних версий, там используется частота поднесущей PAL*4=17.734475 МГц. Так то я генерирую её фазовым аккумулятором из 144 МГц, но при необходимости можно пересчитать. Вот (http://electronicsfun.net/archives/699) очень удобный калькулятор, сделанный одним из (бывших?) участников форума, за что ему большое спасибо. Там сразу можно оценить погрешность по частоте и по скважности

---------- Post added at 17:44 ---------- Previous post was at 17:39 ----------

Для спектрума, кстати, можно переделать на PAL-N*4=14.328225, если еще пикселклок сделать кратным (и если доступные ТВ поддерживают)

ivagor
01.03.2015, 17:20
Уточнение - это в последних версиях вектора из 144, а в последних версиях специалиста из 128 МГц

Ewgeny7
01.03.2015, 17:20
ivagor, сырок последней версии доступен для ковыряния? :)

ivagor
01.03.2015, 17:22
Он все там же (https://yadi.sk/d/yhHUkk1PdL9MQ). В первом посте (и еще во многих постах этой ветки) есть ссылка на ту папку. Содержимое менялось много раз, но папка остается

ivagor
02.03.2015, 14:09
Злостный оффтоп. Но некоторое отношение к теме имеет, т.к. использован PAL-кодер отсюда

Ewgeny7 раздразнил и мне захотелось посмотреть, как же будет выглядеть данный кодер применительно к его спектруму. Использовал технологию опробованную на специалисте - перевел основной файл на verilog и добавил кодер
Получилось не так уж плохо. Похвастаюсь скриншотами ТВ-теста:
Цветные полосы (http://imgur.com/a/tRUee)
Тесттаблица A (http://imgur.com/a/yeZez)
Тесттаблица B (http://imgur.com/a/D90k8)
Сначала во всех случаях композит, потом s-video и компонент


Забрал кнопку ScrollLock, в этом проекте она вроде не нужна?
Наверно ты все же другую кнопку взял, насколько помню scroll lock - это ресет


Львов ПК-01 SDRAM-ный выложишь полный проект?
Надо собраться и перевести на верилог, а потом еще доделать кое-что

Ewgeny7
02.03.2015, 14:30
раздразнил и мне захотелось посмотреть, как же будет выглядеть данный кодер применительно к его спектруму
Композит - не очень, да... Но так всегда было с ПАЛкодированием.

ILoveSpeccy
02.03.2015, 16:48
Ибо как то у ILoveSpeccy не все работает правильно ((:
ILoveSpeccy допилил ту фичу с доп.ОЗУ. Теперь грузится почти всё (кроме многофайловых). Сегодня в репу закину

ivagor
03.03.2015, 07:21
Для спектрума, кстати, можно переделать на PAL-N*4=14.328225, если еще пикселклок сделать кратным
Можно, но не нужно - качество получается хуже

fifan
19.03.2015, 19:50
Что-то вас всех куда-то понесло. При чём здесь Специалист?

ivagor
19.03.2015, 20:30
Ну я тоже потер весь недавний оффтоп, тем более выглядело бы как "тихо сам с собою я веду беседу"

Если по существу, то было полезно узнать об ограничении читалки. При использовании больших карточек с ним вполне реально столкнуться

HardWareMan
20.03.2015, 18:50
Ладно, пусть играются здесь, только тред отдельный создайте: SoC Специалист. Пышто сам бывает использую его как SoC контроллера, т.к. много софта под него готового. Я одобряю, если все будет в таком ключе.

fifan
27.08.2015, 21:04
Прочитал всю тему и ... все ссылки на Яндекс.Диск похерились. Может имеет смысл залить информацию хотя бы мне на сайт на вновь заведённую страницу касаемую сборки Специалиста на DE1?

fifan
29.08.2015, 08:33
Что-то автор темы не откликается. Может у какого-то есть архив с исходниками на DE1? На Zr-Tech я уже выложил (http://spetsialist-mx.ru/index9.html).

ivagor
29.08.2015, 08:52
Предыдущий пост я как-то проглядел. Почти та версия есть выложена у andykarpov (порт на wxeda), а сам я ее выкладывать не хочу. Есть намерение переписать клавиатуру (на вариант b2m), тогда полностью уйду от исходников прототипа. Плюс ускорение sd (это уже). Только не знаю, когда до специалиста дойдут руки

fifan
29.08.2015, 16:21
Почти та версия есть выложена у andykarpov
Почти, но не такая. В любом виде могу сохранить у себя на сайте. И не важен прототип источника.

Ewgeny7
30.01.2016, 18:46
Ewgeny7 раздразнил и мне захотелось посмотреть, как же будет выглядеть данный кодер применительно к его спектруму.
А у тебя не осталось сырков этого "слияния"?
Не понял, как ты там яркость привинчивал...

ivagor
31.01.2016, 07:10
Убирать весь мусор из исходников поленился, но videoTV почистил, думаю с ним все будет понятно. Входной tvmode можно просто занулить.
Такой момент - не знаю, какая у тебя битность видеоЦАПа, но тут я рассчитывал минимум на 4 бита/канал (tv_cvbs[4:1], tv_luma[4:1], tv_chroma_o[4:1]). С пятью, понятное дело, будет лучше, с тремя не пробовал.

Ewgeny7
31.01.2016, 11:22
С пятью, понятное дело, будет лучше, с тремя не пробовал.
Три, ёлки-моталки... :)
Спасибо!

ivagor
15.03.2018, 16:54
Переделал специалист в пробную версию Эврики (старый sof убрал, выложил новый).
Стартует сразу в xsd b2mа. Там с использованием DIR и CD доходим до нужного .RKE и запускаем. .RKE читается в доп. память, затем управление передается загрузчику (патченому) Эврики.
Телевизор пока отключил, поэтому свитчи не влияют на изображение, выводит только на монитор 50 Гц.
Кнопки не изменились:
Scroll Lock - рестарт
Page Up - турбо
Page Down - нормальная скорость процессора

ivagor
16.03.2018, 16:45
Доработки Эврики.
1. Заметно ускорил загрузку с SD
2. Частично поправил и вернул ТВ. Теперь SW1 - VGA/Компонент. Соответствие сигналов: G-Y,B-Pb,R-Pr
Обновленный sof (был здесь), старый убрал. Еще вчера забыл написать, что sofы для DE1.

ivagor
19.03.2018, 17:00
1. Еще ускорил загрузку/запуск с SD.
2. Полностью вернул телевизор:

SW1:SW0
00-VGA
10-Компонентный YPbPr576p50 (G-Y,B-Pb,R-Pr)
01 или 11-композит и S-Video
R-композит
G-Y S-Video
B-С S-Video
Можно взять только Y от S-Video и подключить к обычному ТВ - будет ч/б

SW2 (влияет при SW1:SW0=01 или 11)
0 - PAL
1 - нестандартный режим, иногда называется NTSC50 или NTSC4.43

- - - Добавлено - - -

Забыл sof (https://yadi.sk/d/vSgBODJc3TXnWy)

zebest
19.03.2018, 19:06
LodeRunner/ Ниче так цветастенько/ а на std Специалисте был такой цветной??

ivagor
19.03.2018, 19:17
LodeRunner/ Ниче так цветастенько/ а на std Специалисте был такой цветной?
На специалисте есть цветной LAND (LODE RUNNRER эврики это модификация LANDа, жаль только врагов недоперерисовали нормально в цвете) и есть "настоящий" LODE RUNNER со спека (цветной).

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

zebest
19.03.2018, 19:21
так твоя же Fire , но файл называется firec :)

ivagor
19.03.2018, 19:40
Ага, похоже firec - это цветой вариант Fire Rescue, понятно.
Не уверен, что я правильно понял насчет модуля двухпортового SRAM. У меня нет (и не планируется) платок с двухпортовым SRAM (а для внутриплисового, понятное дело, есть альтеровские модули), поэтому я таких модулей не искал/не делал.
Или вопрос про первые версии специалиста, которые я тут раньше выкладывал? Я же потом и полностью SDRAMного исходники выкладывал, и его потом andykarpov на WXEDу портировал (https://github.com/andykarpov/specialist-wxeda). Там и цвет из SDRAMа читается и много внутренней памяти остается.

worker_vl
11.06.2020, 10:39
Взяв за основу разработку ivagor, адаптировал под платформу Aeon-light. Основное сообщение https://zx-pk.ru/threads/21992-novyj-aeon.html?p=1067697&viewfull=1#post1067697.
Всем, чьими трудами воспользовался при работе над проектом, огромное спасибо!