PDA

Просмотр полной версии : Вектор-06Ц: Altera DE1



Страницы : 1 2 [3] 4

svofski
02.02.2015, 14:55
Избегайте подделок, используйте оригинальные кодеры svofski!
Лол.

Вообще, красота неземная!

ivagor
06.02.2015, 19:53
Давно хотел попробовать rgb ("скарт") с отдельной синхрой. До этого синхру передавал в B, и потом делил B->(B и синхра), что ограничивало динамический диапазон - R:3,G:3 и B:2, и картинка была немного тускловатая.
Прикупил второй переходник VGA->3RCA. Теперь все биты штатного видеоцапа de1 задействовал под изображение (R:4,G:4,B:4 т.е. точность цветопередачи идентична vga), а синхру завел на GPIO->вавешаровский VGA+PS/2->переходник на RCA. В итоге даже пришлось немного зажать видеоусиление в тюнере и получилось так:
http://i.imgur.com/Atk1Qjp.png

ivagor
08.02.2015, 08:48
Сравнительно низкий пиксельклок телевизионной развертки позволяет, как это продемонстрировал svofski для композита и s-video, использовать шим (с доступной для циклона частотой) для увеличения битности видеовыхода. Мне было интересно, прокатит ли это для rgb ("скарта"). Оказалось, что да, это работает (32768 цветов, практически highcolor)! Правда пробовал на специалисте, не на векторе, но в векторе возможно было бы даже лучше, т.к. в специалисте пиксельклок 8 МГц, а частоту шима использовал 256 МГц, а в векторе было бы 12 и 384 соответственно. Увеличение битности видно и по гистограммам сграбленных картинок (хотя они, конечно, не такие ровные, как без шима) и даже невооруженным глазом при просмотре фотографий. Шум от шима заметен при задействовании в картинке младших бит, а если их не задействовать, то шум практически незаметен. Особенно это ценно для девборд или модулей vga с еще меньшей, чем у de1, разрядностью видеоцапа.

ivagor
08.02.2015, 11:00
Увеличил частоту шима до 384 МГц - стало вобще хорошо, почти как настоящие 5 бит/канал. И помеха почти не заметна и на гистограмме уровни более четкие, не такие размазанные, как при 256 МГц

ivagor
12.02.2015, 20:35
Вести с полей и мысли вслух.
Вспомнил, что svofski, до того как встроил jtag, заливал файлы в sram через control panel и перенес для пробы квазидиск в sram (желающие могут количественно оценить мою задержку в развитии относительно svofski). Правда сделал для de2-115, т.к. старая панель для de1 плохо обращается с новым sramом, а для запуска новой нужно танцевать с бубном. Но использовал контроллер srama отлаженный и опробованный в проектах на de1
В принципе так можно заливать не только квазидиск, но и пзу (особенно ценно было бы для de1 с учетом небольшого рама в плис) и основное озу.
Попутно окончательно убедился, что мультиверсия довольно капризная и надо её упростить, в первую очередь стоит отказаться от большой единой базовой частоты, а то при внесении изменений приходится подкручивать, чтобы все было нормально

ivagor
13.02.2015, 15:37
Попробовал на львове, но ничего не мешает сделать так же и для вектора - можно заливать файлы в de1 старой (1.0) панелью в sdram, а не в sram. Только надо векторовский контроллер немного переделать

ivagor
20.02.2015, 19:05
Немножко доразбираюсь с palом, переписал расчетный скрипт на matlabе, стал смотреть, какие значения достигаются.
Столкнулся с неожиданной (для меня) штукой. Обратил внимание, что clrs в композите выглядит более гладко, чем в s-video (и то и другое без шима). Посмотрел на гистограмму - у s-video 9 уровней яркости (по использованной формуле с учетом квантований так и должно быть), а у композита - 18. Как оказалось, дополнительные уровни яркости (!) дает цветоразностная составляющая, если её не добавлять к cvbs - будет ч/б с 9 (не с 18) уровнями яркости.
С шимом и композит и s-video дают 18 уровней яркости

---------- Post added at 22:05 ---------- Previous post was at 20:30 ----------

Пересчитал для s-video яркость, теперь там 14 уровней (без шима), а с шимом 28!
Скриншот шимного s-video с включенным в тюнере шумоподавлением:
http://i.imgur.com/ssuX1j8.png
Также еще раньше пересчитал uv и uw, чтобы не переполнялись

svofski
20.02.2015, 19:06
Обалденно круто. Надо каких-нибудь еще скриншотиков. И в репу это все.

ivagor
20.02.2015, 20:03
Для сравнения бесшимные s-video
Как было (это уже без переполнения красного и голубого):
http://i.imgur.com/3Uogdbo.png
как стало:
http://i.imgur.com/tMsjLXu.png

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

---------- Post added at 22:30 ---------- Previous post was at 22:15 ----------

Обнаружился у этой красоты побочный эффект - АРУ (по крайней мере тюнера) дуреет от таких уровней и завышает яркость. На тюнере я могу отключить АРУ и вручную бегунком отрегулировать уровень сигнала, да и на некоторых ТВ можно отключить, но для старых ТВ это может оказаться неприемлемо. Досадно. Возможно удастся найти компромисс

---------- Post added at 23:03 ---------- Previous post was at 22:30 ----------

Насколько я понял, АРУ отталкивается от абсолютных значений и от соотношения уровня синхры и максимальной яркости в Y s-video. Нормально автомат тюнера работает при максимум 10 уровнях яркости (без шима), т.е. всего на 1 уровень больше, чем было. Для шима, соответственно, 20 уровней вместо 18. Лучше чем ничего, но слабовато.

svofski
20.02.2015, 20:08
Старый телевизор еще поискать. Оставь лучше красоту.

ivagor
20.02.2015, 20:41
А у тебя тюнер позволяет вручную регулировать уровень входного сигнала?

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

В общем чего там мяться - выложил (https://yadi.sk/d/KwTY2YtOeoehX) экспериментальную версию. Выложенный вариант консервативный, "многоуровневояркостные" правки закомментированы. Обращаю внимание, что videomod я тоже маленько перекроил

ivagor
22.02.2015, 10:58
Сделал и выложил (https://yadi.sk/d/KwTY2YtOeoehX) версию для de2-115 c качественным тв-выходом. В ней композит, s-video и компонент 8битные/канал, а для компонента еще использовал VGA_SYNC_N, чтобы получить максимально возможный динамический диапазон. Точная частота процессора (в отличие от мультиверсий), никакого шима (и шума), нет проблем с АРУ. Для de1 тоже можно добиться такого качества (даже лучше, т.к. там допустимая частота 330 МГц, а не 140) через вот это (http://www.wayengineer.com/digiasic-fpga-adv7125adv7123-vga-board-p-160.html#.VOl9ySwW3YQ)

ivagor
22.02.2015, 13:39
Заменил версию для de2-115 на вариант с 4*fpal (было 8*fpal). Несмотря на пониженную частоту, здесь нет разноцветности строк в загрузчике и цветопередача, по крайней мере для вектора, не пострадала. В качестве бонуса - посчитанные значения uv и uw c шагом (2*pi)/32. 7/8 из них не нужны (как и 3/4 значений поднесущей), зато эту версию при желании легко масштабировать

ivagor
22.02.2015, 19:59
И еще один небольшой, но важный штрих. Насыщенность была несколько маловата, поэтому оттюнинговал амплитуду вспышки - уменьшил на четверть. Результат офигенный - на гистограммах цветных каналов стали четко видны 8 уровней для R и G, 4 уровня для B, я думал что с palом так не получится
Композит:
http://i.imgur.com/iRK9j1U.png
S-Video:
http://i.imgur.com/3yImBGB.png

Для de1 вряд ли даже с шимом получится подобное качество palа

ivagor
23.02.2015, 09:27
Не мог не попробовать увеличить насыщенность palа на de1.
Сначала попробовал без шима. Т.к. уменьшить размах вспышки на 1/4 здесь не получится, уменьшил её размах вдвое и уменьшил амплитуду цветоразностного сигнала на треть, что в итоге дает их правильное отношение. Отношение то правильное и насыщенность увеличилась, но цветоразностный сигнал так проквантовался, что смотреть невыносимо.
Остался шим, т.к. для него можно уменьшить размах вспышки на 1/4. Кроме того (раз уж многоплатформенность побоку) запитал pll от 24 МГц и получил для шима 432 МГц, как завещал великий svofski. В чем я после экспериментов на de2-115 был несогласен со svofski - в необходимости pal*8 или даже pal*16 (читал даташиты микросхем, так там часто обходятся pal*4). Сгенерировал pal*4 из 144 МГц, как на de2-115 и цветность (по крайней мере в рамках потребностей вектора) не пострадала.
Вот что получилось (s-video с шумоподавлением):
http://i.imgur.com/kH8yH7G.png
Тут даже на гистограмме цветных каналов стали различимы практически все уровни

Для сравнения предущий лучший результат, который я выкладывал на предыдущей странице:
http://i.imgur.com/ssuX1j8.png

Имхо нормальный pal для вектора возможен или с внешним многобитным (>=5 бит) видеоцапом или с шимом, но тут желательно бы еще фильтр

---------- Post added at 12:27 ---------- Previous post was at 12:02 ----------

Сравнение даже с форой, т.к. "предыдущий лучший вариант" заскриншотен с недружественными к АРУ расширенными уровнями яркости. Если и вариант с увеличенной насыщенностью так сделать, то будет так:
http://i.imgur.com/7yVePXX.png

ivagor
24.02.2015, 16:46
Обновил версию для de2-115 - заменил не особо (имхо) нужный PAL с инверсией фазы поднесущей по полям (SW5:SW4=11) на нечто вроде NTSC (NTSC443 или еще называют NTSC50, мои тюнеры и часть ТВ его поддерживают). PAL без инверсии фазы поднесущей по полям (SW5:SW4=10) конечно остался
Это дает увеличение цветового разрешения по вертикали по сранению с PALом и есть картинки, где это заметно. Зато в композите NTSC виднее паразитная окраска мелких (особенно в режиме 512 точек) деталей. Ну а s-video ntsc просто лучше

ivagor
27.02.2015, 12:34
Желание впихнуть невпихуемое (качественный pal в 4 бита de1 без шима) пока не не отпускает. В последних версиях коэффициенты для uv и uw посчитаны впритык для s-video, а в композите я вслед за svofski брал тот же сигнал, но деленный на 2. Решил посчитать все комбинации композитного сигнала (1024 штуки для 256 цветов и pal*4). Оказалось, что в композите то запас есть и для него можно увеличить амплитуду цветоразностного сигнала и при прежнем размахе вспышки получить практически нормальную насыщенность. И даже еще остается один уровень, который можно использовать для расширения ДД яркости (но с ручной регулировкой яркости на ТВ или тюнере). Но все же результат слабоват

---------- Post added at 15:34 ---------- Previous post was at 15:07 ----------

А лучше пожалуй так - не отдавать "лишний" уровень для яркости, а еще немного увеличить размах цветоразностного. Тогда практически исчезает паразитная окраска мелких деталей в композите (и АРУ спокойно работает). На de2-115 до этого пробовал - уменьшил одновременно размах цветоразностного и вспышки в 4 раза. Цвета остались практически как были, зато заметность паразитной окраски ощутимо увеличилась. А тут наоборот

svofski
15.03.2015, 01:13
С грехом/2 перетащил vector06cc на гитхаб. Пока продолжаю править ссылки, но вроде уже вполне.

http://svofski.github.io/vector06cc/

ivagor, ты же умеешь пользоваться git-ом? ;)

БК следующий.

ivagor
23.03.2015, 20:22
Писал здесь про чудо-тюнер Beholder T8 и высказывал предположение, что он сможет захватывать в цвете советские ретрокомпы без pal-кодера
БК (http://zx-pk.ru/showpost.php?p=790565&postcount=6), как оказалось, захватывает, вполне возможно и вектор поймет.
Только скорее всего укоротить синхру все же придется. В процессе экпериментов пару раз делал слишком длинные строчные синхроимпульсы. Тюнер их понимал, но задирал минимальную яркость и по экрану шли некие шумы. Насколько помню с вектором было нечто похожее - после доработки синхры (минимальная) яркость понизилась

vise
02.06.2015, 15:25
А помогите портировать Вектор на мою платку! У меня есть альтера EP4CE10E22I7N ну и 8 битная SRAM. Естественно ps/2, vga, arm то-же есть. Но меня пока интересует изменение интерфейса с памятью. В вашем проеакте A0 рулит старший/младший байт памяти, у меня же просто 8 бит SRAM. Ну и еще какоето безумное количество клоков. Тут без поллитры не разобраться же! Короче принимается любая помощь!

ivagor
08.06.2015, 10:06
В классических версиях svofski доступ к sram фактически 8битный и если объем srama>=512 Кб, то можно просто убрать все лишнее (в т.ч. jtag) в sram_map.v, например так:

module sram_map(SRAM_ADDR, SRAM_DQ, SRAM_WE_N, memwr_n, abus, dout, din, ramdisk_page);
output [18:0] SRAM_ADDR;
inout reg[7:0] SRAM_DQ;
input memwr_n;
input [15:0] abus;
input [7:0] dout;
output [7:0] din;
input [2:0] ramdisk_page;

assign SRAM_ADDR = {ramdisk_page, abus[15:0]};
assign SRAM_WE_N = memwr_n;

always
if (~memwr_n)
SRAM_DQ[7:0] <= dout;
else
SRAM_DQ[7:0] <= 8'bZZZZZZZZ;

assign din = SRAM_DQ[7:0];

endmodule

---------- Post added at 13:06 ---------- Previous post was at 12:58 ----------

Очевидный момент, но на всякий случай - в vector06cc.v конечно тоже нужно немного подредактировать объявления sramовских сигналов

BYTEMAN
08.06.2015, 21:11
А на xilinx кто-нить портировать пробовал?

ivagor
09.06.2015, 19:04
При прогоне бейсиковской рекламы выяснилось, что эмуляция ВИ53 нуждается в доработке

svofski
09.06.2015, 19:26
Как это, супер тест доволен, а какая-то бейсиковская демка нет?

ivagor
09.06.2015, 21:03
Симптом такой - значительную часть рекламы нет музыки. Попробовал заменить модуль ВИ53 на вариант b2m - все аналогично (большая часть без музыки, меньшая - с музыкой и в тех же самых местах), т.е. скорее всего проблема все же не в ВИ53
Пробовал три варианта v06cc "разных лет", во всех одинаково

---------- Post added 10.06.2015 at 00:03 ---------- Previous post was 09.06.2015 at 22:45 ----------

Простое решение: можно заменить в soundcodec.v в микшере sum[7:2] на sum[7:1]

ivagor
10.06.2015, 08:02
Восстановление исторической справедливости. Попробовал одну из первых сдрамных версий, в которой минимальное количество отличий от версий svofski - там все нормально. Похоже при переходе к стерео я накосячил. Но теперь поправился, лучше поздно, чем никогда

parsec
01.08.2015, 11:00
BYTEMAN, появилась в наличии плата Zedboard http://zedboard.org/product/zedboard. Начал переносить на неё конфигурации. Имеется уже рабочая zx48k сделанная в Vivado 2015.2 и ISE14.7. Сейчас разбираюсь со звуковым кодеком на плате. Клавиатуру PS/2 подключил, возможно подключу через USB. UT88 завёл в минимальной конфигурации.

ivagor
09.01.2016, 14:01
Небольшая хака таймера для приведения в соответствие с тестом (http://zx-pk.ru/showthread.php?t=11029&p=850684&viewfull=1#post850684)
Меняем в 8253.v
0: q <= read_state == 0 ? r_lsb : latched_q[7:0];
на
0: q <= read_state == 0 ? lsbPrev : latched_q[7:0];
и добавляем
reg [7:0] lsbPrev;
always @(posedge ce) lsbPrev<=r_lsb;

svofski
18.01.2016, 15:20
ivagor, а в разных таймеро-чувствительных программах смотрел? Exolon (относительно чувствительный), Black Ice (чувствительный на картинке с телевизором), SkyNet кажется могла свернуться в трубочку на фотографии, если чуть чуть что не так. Может быть еще что-то я забыл?

ivagor
18.01.2016, 16:45
Посмотрел sky net, black ice, exolon - все ок. И еще более универсальный вариант теста (http://zx-pk.ru/showthread.php?t=11029&p=851432&viewfull=1#post851432) (читает не только на ходу, но и с защелкиванием).

svofski
18.01.2016, 16:51
Круто. Чего тогда не выложишь фикс в транк?

ivagor
18.01.2016, 17:06
Ты меня вынуждаешь признаться, что я не освоил гит (позор!). А так уже несколько правок накопилось.

svofski
18.01.2016, 19:08
Надо как-нибудь заняться. Или, может быть, собери правки в кучку, чтобы по форуму не рыскать. Я залью.

ivagor
21.01.2016, 23:06
Еще один момент связанный с таймером. Молчал шим через таймер. Увидел в 8253.v, что в режиме 0 выходной сигнал переключается в 0 только при записи управляющего слова. А в книжке (Щелкунов Дианов) и запись значения счетчика дает на выходе 0. В emu и VV, насколько я могу судить, этот момент сделан как в книжке. В общем я сделал также и шим через ви53 заскрипел (дециматор надо бы подтюнинговать для улучшения качества).

vazman
22.01.2016, 13:20
Пришла мне DE2-35. Хочется запустить на ней Вектора, но я пока в этих платках мало что понимаю. В связи с этим вопросы.
1. Правда, что плата может погореть, если на ней попробовать запустить проект, рассчитанный на DE1?
2. Что, скорее всего, потребуется менять в проекте для этой конкретной платы? Назначение пинов в Assigment editore? Ещё что?
3. Здесь ivagor выкладывал версию для de2-115, но она уже недоступна.Можно ли ещё раз выложить? И надо ли будет её править для де2-35?

Прошу прощения за глупые вопросы

svofski
22.01.2016, 13:55
ivagor, вот если бы ты сразу зачекинил адаптацию для de2, сейчас проблем у vazman-а бы не было ;)

vazman
22.01.2016, 14:47
Лёгких путей не ищем :) если ничего не должно сгореть - ща попробую исправить пины первым делом.. распечатал мануал по де1, открыл мануал по де2, буду пытаться исправлять пины. Потом попробую скомпилировать

svofski
22.01.2016, 15:06
С пинами все просто в принципе, кроме того, что их много разных. Я вот не уверен с разными PLL, там могут быть существенные отличия и vector06cc весьма чувствителен к их настройкам. Поэтому и хочется иметь наработки великого ivagor-а: чтобы не наступать многократно на одни и те же грабли.

zebest
22.01.2016, 15:18
Вот и надо начинать с PLL. если с ним не разберешься - дальше можно не продолжать. Возможно что и с внутренней памятью возникнут заморочки в визарде. Потом можно сменить пины на внешнюю память, видео и скомпилить.. Елси картинка появицца , ну хорошо, и можно менять все отсальное, PS\2 и SD.
А так то да, зачем просто, если можно сложно?

vazman
22.01.2016, 18:29
Всё-таки решил попробовать для начала переделать пины. Переделал.. Вопрос - в де1 два пина CLOCK_27.. в де2 только один. Что делать?

svofski
22.01.2016, 18:49
По-моему фактически используется только CLOCK_27[0].

ivagor
22.01.2016, 18:51
Попробовал переделать мультиверсию и под de2. sof здесь (https://yadi.sk/d/vf4TatxbnZS4x). Если вдруг неожиданно все же заработает, то выложу и исходник.

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

На всякий случай - sw8 д.б. вверху

vazman
22.01.2016, 19:10
С этим .sof, вроде, работает.. По крайней мере, экран загрузки нарисовал. Буду сейчас дальше пытать.
ivagor, а что нужно переделывать было ещё? Просто переделка пинов не помогла - на экран ничего не выводила.. На индикаторе было 378, нет сигнала на мониторе пропадало, но он был просто тёмным. Проектов для de1 ещё немало, хотелось бы научиться их переделывать под свою плату..

svofski
22.01.2016, 19:19
Хотел упомянуть БК, как проект с меньшим злоупотреблением разными клоками, но проверил и осекся. Там тоже не обошлось без и 25 и 50 МГц. На самом деле это все второй Циклон виноват, он очень кривой. В порте Вектора на Cyclone IV для платы WXEDA только один 48МГц клок.

ivagor
22.01.2016, 19:34
Рад, что заработало. Вот исходник (https://yadi.sk/d/1yUyBKYgnZY7H). Это я к мультиверсии (под de1, de2-115 и de1-soc) добавил de2. Но сразу скажу, что в этой мультиверсии я давно разочаровался, зато именно ее проще всего адаптировать "заочно". Там есть недостатки, если не лень можно почитать в этой ветке. Ну и последних правок там нет. Неплохо бы сделать новую мультиверсию.
При адаптации de1->de2 проблему вызовет разве что клок 24 МГц, отсутствующий в de2, в остальном все должно быть просто. РК86, Б2М (оба проекта - b2m), bk0010 (svofski), speccy (MVV), tsconf (TSL/MVV) скорее всего заработают с минимальными усилиями.

vazman
22.01.2016, 19:45
Спасибо.. Не получается почему то загрузиться ни с квазидиска, ни с rom. Буду думать что делаю не так..

ivagor
22.01.2016, 19:50
В каком смысле грузиться с квазидиска? Если как в оригинале svofski (с загрузкой образа по jtag), то здесь такого нет. Делал подобный вариант, но более отсталый (как в самых-самых первых версиях svofski) с загрузкой через control panel.
Загрузка с rom - опять же, речь про загрузку из внешнего roma? Здесь такого тоже нет, но в принципе для de2 можно сделать (для 115 и soc делал).
Или не работает загрузка с магнитофона? Вроде в какой-то мультиверсии была связанная с этим ошибка, может даже в этой.
А с sd грузит?

vazman
22.01.2016, 19:55
с sd ещё не пробовал. С магнитофона тоже. Чуть позже попробую

А образ квазидиска я пробовал грузить через панель управления, да..с адреса 8000

ivagor
22.01.2016, 19:59
Нашел про эту мультиверсию (http://zx-pk.ru/showthread.php?t=8635&p=758111&viewfull=1#post758111). Магнитофон здесь как раз подправлен, надеюсь будет работать и на de2.

svofski
22.01.2016, 20:03
Загрузка через панель управления никогда надежно не работала. Это был самый первый способ загрузить хоть что-нибудь и он помогал отлаживаться в свое время. Но всегда были какие-то проблемы с ней. То вообще не зацепит, то несколько байт испортятся в потоке. Лучше считать, что ее нет.

ivagor
22.01.2016, 20:06
Уже писал про это, но не могу лишний раз не пнуть терасик за безобразие с новыми de1 - в последних версиях панели вместо того, чтобы сделать нормальную загрузку в SRAM EDBLL (который с ECC) просто убрали пункт SRAM

vazman
22.01.2016, 22:02
Да, с образа дискеты удалось загрузиться. Спасибо.
А что за пины ~nCSO~ (PIN_C3) и ~ASDO~ (PIN_C4) в DE1? И какие пины им соответствуют в de2??

svofski
23.01.2016, 14:02
Это особые пины, которые имеют специальную функцию в режиме загрузки Active Serial, но в принципе могут быть I/O после конфигурации. По-моему эти два не используются никаким специальным образом (хотя, если на DE2 тоже Cyclone II, то они там тоже должны быть). Используется nCEO. На DE1 nCEO/W20 мудрость разработчиков не позволила им обойти стороной такой сочный двусмысленный пин, он использован как SD_DAT.

svofski
08.02.2016, 14:58
Прошло достаточно много лет с тех пор, как разные ветки проекта безнадежно разъехались. Я наконец-таки решился попытаться свести их во что-то одно. Процесс был не самый легкий, в виде карты метро это выглядит примерно так:
http://i.imgur.com/nFdqPNE.png

На самом деле почти все тут -- промежуточные результаты мержа. Отправные точки были master (sram), sdram и wxeda-cycloneiv. Все старые ветки остались как есть.

Текущий рабочий вариант называется projects:
https://github.com/svofski/vector06cc/tree/projects

Чтобы не добавлять новых директив условной компиляции, по крайней мере не в процессе мержа, я немного изменил структуру проекта. Теперь проектные файлы лежат в projects/$(TARGET)/vector06cc.*. Модули, которые либо специфичные для разных конфигураций, либо разъехались и не смержились малой кровью, теперь лежат в src/$(TARGET)/староеимя. Например, src/de1sram/soundcodec.v и src/DE1/soundcodec.v -- разные файлы. Проектные файлы для каждой конфигурации, соответственно, включают в себя разные наборы исходников.

Что-то из этого так и останется насовсем (то, что действительно требует разной реализации на разных платах), что-то, типа стерео звука/поддержки RSOUND итп -- просто разъехалось из-за разных историй, где-то может быть проблема с совместимостью клоков итд.. но в принципе его можно склеить обратно.

Новая структура проекта также поддерживает построение из командной строки, с прицелом на автоматические билды. Чтобы построить конфигурацию должно быть достаточно в каталоге build запустить make TARGET=<board>. <board> может быть пока de1, de1sram, wxeda.

Кроме того, cc65 теперь включен подмодулем (бранч vector06cc уже включает в себя таргет "vector") и строится автоматом из того же make. Отдельно компилятор и дисковод можно построить, запустив make в каталоге firmware.

Построение всего я отлаживал только под Линуксом. Пока сил хватило только все собрать и заставить компилиться во всех вариантах. Даже не проверял еще работоспособность. Предполагаю, что Квартусные вещи должны на винде сработать прозрачно -- просто проект открыть из другого места. Компиляторные дела на Винде, в силу известных причин, потребуют еще немного допила в стиле старого cc65winbuilder.

Все это совершенно пока игнорирует труды ivagor-а на поприще multipulti для поддержки разных более продвинутых вариантов плат, но является подготовкой для их последующей интеграции. Ну и вообще, предполагалось сделать это лет пять назад =)

На всякий случай, чтобы взять себе сорцы, надо написать:

git clone https://github.com/svofski/vector06cc/ -b projects

ivagor
08.02.2016, 15:09
Еще раз выскажу мнение, что текущую мультиверсию стоит оставить в сторонке и сделать нормальную. В принципе даже я бы уже сделал лучше, но все не могу собраться.
Интересно, что бы нарисовалось по имеющимся у меня версиям вектора. Там просто адЪ, я сам уже не всегда помню где что.

svofski
08.02.2016, 15:17
Разумеется, она пока и оставлена в сторонке.

Просто теперь, когда ты, или кто-нибудь еще, вдохновишься добавить новые конфигурации, это будет проще сделать.

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

zebest
08.02.2016, 18:35
На всякий случай, чтобы взять себе сорцы
А кнопку "Download" - недостаточно нажать?

svofski
08.02.2016, 18:44
Можно, только выбрать projects сначала:
http://i.imgur.com/vfqXbvN.png

ivagor
08.02.2016, 19:26
Для полноты картины наверно стоит упомянуть варианты адаптированные MVV для Reverse-U8 (https://github.com/mvvproject/ReVerSE-U8/tree/master/u8_vector) и U9 (https://github.com/mvvproject/ReVerSE-U9/tree/master/u9_vector)

svofski
08.02.2016, 19:44
Ого, я и не знал! Расшифруй "упомянуть": засосать порты обратно в проект?

Я бы с радостью, но сил сейчас не хватает и не понятно, как проверять. Вообще, при общем согласии, можно сделать так, чтобы Reverse-* ссылались бы на vector06cc, как на субмодуль вместо того, чтобы хостить свою копию.

ivagor
08.02.2016, 19:57
Не уверен, что имеет смысл обратно что-то брать из вариантов для реверса, все же они сделаны на базе сравнительно старой версии v06cc. Упомянул я их больше не для побуждения тебя к каким-то действиям, а для полноты сведений о портах v06cc для всех, кто будет читать ветку, раз речь зашла об адаптации.

svofski
08.02.2016, 20:08
Ну вот и хороший пример. Сорцы скопированы в другой проект, там они адаптированы, но оказывается уже старые (хотя я не знаю, как они могут быть такими уж старыми с проектом, в котором подавляющее большинство изменений за последние 5 лет -- это изменения в билд системе).

ivagor
08.02.2016, 20:13
Считай, что "старая" в кавычках. Это в моей системе координат, которая начинается с момента, как я сам начал портить (во всех смыслах) твой проект.

svofski
08.02.2016, 20:23
Ну вот тем не менее, кое-какие разъезды нашлись. С клоками и звуком в основном. Но вообще вряд ли там уже так сильно много радикально отличающегося от всех остальных плат? wxeda смержилась с de1, понадобилось только разделить несколько файлов.

ivagor
08.02.2016, 21:21
Из полезного, что есть в версиях для u8 и u9 - вывод звука через tda1543(a). Причем туда идет только ay без бипера и таймера (жестко). "Магнитофонного" входа, кстати, нет. Обращение к sram 8битное. Из интересного - в версии для u9 главный файл переписан на vhdl (я наоборот увлекаюсь переписыванием vhdl->verilog).

ivagor
09.02.2016, 20:01
А что было в notsure.sdc, на который ссылается de1sram?

svofski
10.02.2016, 01:39
I'm not sure.

Видимо какие-то настройки TimeQuest-а.

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

Проверил, что все собирается на трех платформах. Вроде ок, хотя детально проверить времени не было. Но по крайней мере с VGA и S-Video поднимается и с дискеты грузится.

Расстроила WxEDA, или самопальный бластер -- программируется один раз из 20 теперь (раньше было 1 раз из 3).

ivagor
10.02.2016, 10:27
Может в описание мульти добавить ссылку на пост (http://zx-pk.ru/showthread.php?t=8635&p=758111&viewfull=1#post758111)? Или просто дописать, что поддерживается 6128 (в других то версиях 6128 на данный момент нет).

svofski
12.02.2016, 22:46
Я в коментарий к коммиту добавил ссылку на пост.

ivagor
10.03.2016, 07:45
Попробовал k580vi53.v из проекта Saara в v06cc. Режим 0 звучит довольно неплохо (точно лучше, чем мой хак модуля svofski, который я не стал выкладывать из за некачественного звука). Но попробовал пару тестов и в i8253 есть расхождения.

Насчет молчания после ресета удалил, т.к. с ним все стало нормально, после того как добавил переход на 100h

svofski
10.03.2016, 14:43
Интересно. Если в конце концов получится, можно будет заменить мой на Saar-овский.

ivagor
10.03.2016, 17:06
Еще с psg интересно - в skynet в части с буквами как star wars в одном месте слышны лишние призвуки. В эмуляторах их нет. Пробовал уже наверно 4 варианта ay/ym, в т.ч. из проекта Saara, но везде эти призвуки есть

ivagor
01.04.2016, 11:10
Пара слов про компонент. До сих пор проверял компонент на трех LG и одном тюнере. Сегодня проверил на самсунге. Специалист показывал нормально, вектор не совсем. В погоне за лучшей цветопередачей я в векторе уменьшил размах синхры для компонента (чтобы оставить больше уровней для изображения), LG и тюнер отнеслись к этому нормально, а самсунг нет.
В общем, если нужен компонент (например не поддерживается 50 Гц vga и не хочется пала), но он в текущем варианте показывает не очень, то нужно поменять в video.v соответствующие строки:

parameter Y_REF = 4'd4;
wire[11:0] tv_Y_=8'd59*vgavideo_r+8'd115*vgavideo_g+8'd22*vga video_b;
wire[11:0] tv_Pb_={PbPr_REF,8'b0}-8'd33*vgavideo_r-8'd65*vgavideo_g+8'd98*vgavideo_b;
wire[11:0] tv_Pr_={PbPr_REF,8'b0}+8'd98*vgavideo_r-8'd82*vgavideo_g-8'd16*vgavideo_b;
Цветопередача ухудшится (чудес не бывает, 4х бит/канал мало для компонента с вектора, с 8ю битами/канал все отлично), но будет нормальная картинка.

Saar
05.04.2016, 12:11
ivagor,
давно хочу прикрутить компонент в VGA выходу на MiSTе. Там 6 бит на цвет - может и достаточно.
Вот только пока не придумал как примешать синхру к Y. Причем хочется это сделать без сторонних внешних сигналов.
Была идея найти где-нибудь инвертирующий DC-DC преобразователь, запитать его одним из синхросигналов, а на второй выводить синхросмесь и подмешивать к Y с использованием отрицательного напряжения с DC-DC.
Есть какой-нибудь более интересный вариант?

ivagor
05.04.2016, 16:14
Мой вариант упрощенной синхры компонента в v06cc svofski здесь (https://github.com/svofski/vector06cc/blob/ivagor_soundcod/src/video/video.v) начиная с always @(tv_mode==2'b10)

Странное округление в следующих версиях я заменил на
3'b111:begin
tv_Y <=Y_REF+((tv_Y_+8'd128)>>8);
tv_Pb <=PbPr_REF+$signed((tv_Pb_+8'd128)>>>8);
tv_Pr <=PbPr_REF+$signed((tv_Pr_+8'd128)>>>8);
но визуально разницы нет

Saar
08.04.2016, 09:02
ivagor,
то есть яркость гуляет от некоторого Y_REF до максимума, а синхра от Y_REF до нуля?
Мне такая идея приходила тоже, но, к сожалению, она не универсальна. С более цветастых эмуляторов как Amiga или NES уже так не выведешь. Нужно какое-то внешнее решение, но не сильно заумное и не дорогое.

ivagor
08.04.2016, 10:27
то есть яркость гуляет от некоторого Y_REF до максимума, а синхра от Y_REF до нуля?
Да, эту идею я сплагиатил у svofski


С более цветастых эмуляторов как Amiga или NES уже так не выведешь.
На мисте с 6 битами/канал? Для nes этого вполне хватит для компонента, для амиги с ocs рискну утверждать, что тоже как минимум для удовлетворительного отображения хватит (а может и лучше, надо посчитать или попробовать).

svofski
08.04.2016, 13:05
Перед тем, как городить что-то внешнее, я бы попробовал сигма-дельта модуляцию.

ivagor
08.04.2016, 13:14
я бы попробовал сигма-дельта модуляцию
Пробовал, с компонентом (в отличие от композита и с-видео) не получилось. Возможно добавление фильтра помогло бы, но композит и с-видео и без фильтров работают.

svofski
08.04.2016, 14:52
Интересно, именно на DE1? У MiST вроде Циклон побыстрее, можно частоту поднять. Не факт, что если на DE1 не получилось, то нигде не получится.

Но вообще я согласен с ivagorом, 640KB ought to be enough for everybody. 6 бит на канал это роскошно.

ivagor
08.04.2016, 15:01
Кстати, у видеоцапов adv7123 (используются, например, в de2-115/de1-soc) есть удобная фича - в зеленом канале можно дополнительно включать уровень синхры, чтобы не тратить под него часть значений из 256. Использовал ее (фичу) для компонента, когда через 8 битные каналы выводил 8 битные картинки (спецверсия специалиста). Показывало весьма неплохо.

Saar
08.04.2016, 16:09
Сигма-дельта для видео? Хмм.. Например, у БК0010 в ч/б режиме частота пикселей 12мгц. Это же какую частоту для сигма-дельта надо чтобы выводить пикселы на такой частоте?
Я просто исхожу из универсальности метода, когда берется количество цветов по максимуму (скажем как на AMIGA - 4096) и количество писелей, скажем 768 (как у БК и Вектор, полная строка вместе с синхро) - 12мгц.

svofski
08.04.2016, 16:35
Почему нет? На IV циклоне у меня сейчас написано 450 МГц. Субъективно между (не помню сколько было на DE1, немного ниже 300) и 450 МГц на Cyclone IV разница не такая огромная на моем мониторе. Можно и того ниже. Ошибка же размазывается во времени.
Модулятор:
https://github.com/svofski/vector06cc/blob/projects/src/wxeda/video/videomod.v

Saar
08.04.2016, 16:36
Возможно добавление фильтра помогло бы, но композит и с-видео и без фильтров работают.
Думаю, это потому что композит и с-видео достаточно низкочастотные и на входе обычно уже имеют RC фильтр. А компонент может и i1080 принимать - соответственно если там и есть какой-то входной фильтр, то очень недостаточный.
А какую частоту ты брал для сигма-дельта?

svofski
08.04.2016, 16:38
Saar, на всякий случай, ветка про цифрование и аналогизирование разными нетрадиционными методами:
http://zx-pk.ru/showthread.php?t=23833

Saar
08.04.2016, 16:47
Для сигма-дельты, я так понимаю, не желательно управлять всеми битами цвета во-избежании мешанины из-за разницы проводников? Нужно взять один MSB бит и им "трещать"?

svofski
08.04.2016, 17:00
Не знаю, какая бы там взялась мешанина? Другое дело, что больше одного провода на сигнал просто не нужно.

Saar, еще из странного: http://asdasd.rpg.fi/~svo/de1videodac/ -- попытка получить больше бит на скрученных вместе проводах ЦАП-а DE1. Вряд ли это пригодится вне контекста DE1, особенно там, где нужно больше одного сигнала.

ivagor
08.04.2016, 17:26
Думаю, это потому что композит и с-видео достаточно низкочастотные и на входе обычно уже имеют RC фильтр. А компонент может и i1080 принимать - соответственно если там и есть какой-то входной фильтр, то очень недостаточный.
Я тоже так думал, может я даже это писал в теме, но сейчас не буду искать.

svofski, а ты помнишь, что на de1 ты остановился на 432 МГц? Больше ты пробовал (и я пробовал, типа а вдруг), но не завелось.
Вроде на этой частоте я и компонент пробовал шимить

Saar
08.04.2016, 17:27
Другое дело, что больше одного провода на сигнал просто не нужно.
Ну я имел ввиду использование существующего VGA выхода, где на каждый цвет по нескольку бит приходится.
Хотя, наверное можно неиспользуемые биты выставить в Z, а резистор будет частью RC фильтра. То есть на выход достаточно повесить только C.

Я просто тут прикидываю универсальный модуль-конвертер. На вход приходят, скажем 6 бит на цвет. Далее это через сигма-дельта преобразуется в 8 бит, старшие 6 из которых это оригинальный цвет, а 2 младших - это синхронизация.

svofski
08.04.2016, 17:49
Если делать специальную коробочку, то я бы задумался о нормальном ЦАП-е. Или модуль в логическом смысле?

Уж не помню, почему именно, но у меня оставлено только 5 бит на канал. Наверное увеличение числа бит при таком наивном подходе у меня переставало работать.

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


svofski, а ты помнишь, что на de1 ты остановился на 432 МГц? Больше ты пробовал (и я пробовал, типа а вдруг), но не завелось.
Вроде на этой частоте я и компонент пробовал шимить

Я смотрю, что в видеокондиционере у меня частота сигма-дельты 400 МГц. Вообще даже это для второго Циклона выглядит запределом.
Ну и, кстати, у меня все результаты выглядели хорошо только на современных ТВ и мониторах. А при попытке зацепиться за какой-то ЭЛТ монитор с S-Video входом добиться хорошей цветопередачи у меня не получилось. Был цвет, но съехавший куда-то набок. У меня правда тогда не было возможности ничего отлаживать, это все было на CC на коленке. Возможно где-то надо было просто чередование фаз включить-выключить, или повернуть чего-нибудь в другую сторону.

ivagor
08.04.2016, 18:00
Я смотрю, что в видеокондиционере у меня частота сигма-дельты 400 МГц
В последней ревизии (434) из code.google colorpll выдает 432 МГц. Возможно в версиях на github ты уменьшил - я скачал, но не смотрел на эту тему

svofski
08.04.2016, 18:02
В последней ревизии (434) из code.google colorpll выдает 432 МГц. Возможно в версиях на github ты уменьшил - я скачал, но не смотрел на эту тему

Угу. Я кроме того в другом проекте смотрел. Разница не принципиальная в общем.

Saar
08.04.2016, 18:36
у мну вот так получилось при выводе на VGA:
Все 6 бит каждого цвета выводят PWM:
56756

Только старшие биты выводят PWM а остальные в Z:
56757

Это без конденсаторов. Сейчас все подключено фабричными закрытыми кабелями. Подлезть конденсатором некуда.
Частота 500мгц.

При выводе шестью битами видно что помех больше - возможно биты между собой еще начинают модулировать паразитные помехи.

Темновато. И довольно сильно. Возможно, конденсатор поднимет яркость.

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

Немного оффтопик, но всё же в тему:
Почему я всё пытаюсь уйти от VGA выхода - так это в его неуниверсальности. Был бы HDMI - там была бы поддержка и PAL и NTSC и VGA разрешений стандартно. Проблема усугубляется еще и тем, что даже преобразователей универсальных из VGA/PAL/NTSC в HDMI нет.
Вся надежда в компонентном выходе. Там, насколько я знаю по Wii приставке, есть как минимум 480p60 стандарт.

svofski
08.04.2016, 18:48
Вообще не так и плохо, если это полная VGA (?)

Конденсатор вряд ли сделает ярче, но у ТВ-сигнала все сильно медленней и он должен легче прощать всякое.

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

Re: HDMI прямо на LVDS ножках безо всякого PHY:
http://www.fpga4fun.com/HDMI.html

Analog Devices тоже считают, что нет ничего невозможного:
http://www.analog.com/library/analogDialogue/archives/47-02/HDMI_VGA.html

ivagor
08.04.2016, 18:55
Так есть же пример Reverse-U16 (http://zx-pk.ru/showthread.php?t=23528)

Saar
08.04.2016, 21:42
HDMI прямо на LVDS ножках безо всякого PHY:
у меня уже готовая плата. Так что это ко мне не относится.
Да и если я на проводках сверку накрячу, это будет только у меня. И так MiST не распространена, а будет вообще уникальный вариант.


Вообще не так и плохо, если это полная VGA (?)
Обычное VGA подключение к MIST с выводом цветов с PWM.
А почему нельзя ярче сделать? Разве при 6'h3F на входе в сигма-дельта на выходе не дает статичную 1?

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

svofski,
ivagor,
а если я всё таки попробую подключить HDMI параллельно VGA разъему, могут ли помешать резисторы RGB матрицы?
Я могу взять выходы с наибольшими резисторами чтобы уменьшить влияние. Наибольшие резисторы в матрице 18к, 9.1к, 4.3к.
Они могут помешать если их не выпаивать?

ivagor
08.04.2016, 21:53
Сразу скажу, что это далеко за пределами моих знаний. Имхо MVV скорее всего знает.

svofski
08.04.2016, 21:54
В HDMI дифференциальные сигналы, они электрически не совместимы с LVTTL.

Saar
11.04.2016, 17:04
Еще с psg интересно - в skynet в части с буквами как star wars в одном месте слышны лишние призвуки. В эмуляторах их нет. Пробовал уже наверно 4 варианта ay/ym, в т.ч. из проекта Saara, но везде эти призвуки есть
а из проекта Суски пробовал psg?
http://experiment-s.de/en/download

ivagor
11.04.2016, 17:34
Нет, этот не пробовал. Еще не пробовал вариант, исправленный участником данного форума (к сожалению забыл ник) для спека, но он просто не влезает в v06cc для de1 вместе с fdd (почему то не собрался попробовать на более жирной плате)

Saar
11.04.2016, 18:41
ivagor,
а есть линк или сам файл?

ivagor
11.04.2016, 18:52
Не смог найти пост на форуме, вот архив (https://yadi.sk/d/ImWR2QbdquX6X), который я тогда скачал. Это версия спектрума 128 by Mike Stirling (http://www.mike-stirling.com/retro-fpga/zx-spectrum-on-an-fpga/), автор модификации Anton Vasilenok (указан в файлах). Насколько помню, разница в звучании YM заметна в cybernoid (или cybernoid 2, не помню точно). Запускал на de2-115, только переделал пзу на внутри плис, прошивать флэш когда sram плиса свободен имхо не стоит.

vazman
14.04.2016, 09:46
Занимался тут цифрованием кассет что у меня появились для истории.. Делал это на железном векторе.. Теперь вот надоело, что он место занимает, решил делать это на де2. Так вот похоже, что на де2 кассеты читаются хуже, чем на реале. При том же магнитофоне. Правда, магнитофон то 302-1, соответственно, подключен к де2 только на один канал. Может - из за этого..

ivagor
14.04.2016, 10:04
Тут м.б. несколько причин:
1. Возможно на реал подается другой канал, не как в v06cc (можно перекомпилировать с другим каналом)
2. Возможно чувствительность меньше. Можно увеличить усиление аудиокодека
3. Возможно загрузчик в v06cc хуже чем в конкретном реале. Сейчас я сам пользуюсь теми хакнутыми загрузчиками, которые недавно выкладывал на форуме, с PC в v06cc они точно грузят лучше, может и с магнитофона в реал тоже.

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

Хотя если грузишь lromом, не загрузчиком, то п.3 соответственно отпадает

vazman
14.04.2016, 10:19
гружу loadr, так что третий пункт отпадает. Магнитофон подключен через переходник дин5-тюльпан и, соответственно, подключен один канал из двух. на одном канале не грузиться вообще, на другом грузиться, но немного хуже, чем на реале. Пункт один, тогда, тоже отпадает? магинтофон то выдает один канал. Остаётся пункт два, но это мне пока не под силам, не настолько я еще знаю верилог, точнее, не настолько разобрался в описании вектора на нём.

ivagor
14.04.2016, 10:55
Если магнитофон моно, то п.1 тоже отпадает
Для регулировки усиления или перекоммутации записи с линейного на микрофонный и т.п. какие-то тонкости верилога не нужны, надо посмотреть даташит аудиокодека и подкорректировать соответствующие константы инициализации в I2C_AV_Config.v

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

Кстати, еще один момент, который влияет - величина гистерезиса в soundcodec.v

svofski
14.04.2016, 14:31
Кстати, еще один момент, который влияет - величина гистерезиса в soundcodec.v
Его бы убрать вообще. В реале его не обнаружено.

ivagor
31.07.2018, 06:59
В ветках с моим участием kvaz.v с КД Баркаря правильно отвечает на 5 из 8 комбинаций "адресности", что можно поправить изменив 3 строки:

wire cr_ram_on = |control_reg[7:5];
wire [2:0] adsel = address[15:13];
wire addr_sel = adsel==3'b100&control_reg[6]==1|(adsel==3'b101|adsel==3'b110)&control_reg[5]==1|adsel==3'b111&control_reg[7]==1;//Barkar

svofski
10.08.2018, 13:15
Неожиданное эхо популяризации Вектора-06ц. Один мой друг сделал себе вот такой корпус для платы WxEDA:

http://c.rpg.fi/v6c_print1.jpg

KTSerg
10.08.2018, 19:54
Неожиданное эхо популяризации Вектора-06ц. Один мой друг сделал себе вот такой корпус для платы WxEDA:
...
Интересный корпус. Не копия, но смотрится прикольно.
Если напечатан, да ещё целиком, за раз, это вообще круть...

svofski
10.08.2018, 20:05
KTSerg, за один проход, с суппортами.

KTSerg
18.11.2020, 18:14
Неожиданное эхо популяризации Вектора-06ц. Один мой друг сделал себе вот такой корпус для платы WxEDA:
http://c.rpg.fi/v6c_print1.jpg
Up-ну тему.
На фото вроде не DE1 ?
Для этой платы была альтернативная сборка проекта?
Возможно пропустил, сколько места Вектор в Альтере занимает, в ячейках (или в чём там измеряется) ?

svofski
18.11.2020, 20:37
Это плата WxEDA на Cyclone IV, для нее есть проект

https://github.com/svofski/vector06cc/tree/master/project/wxeda

Сколько ячеек я уже не помню, но с уверенностью могу сказать, что влезает в EP4CE6E22C8.

KTSerg
18.11.2020, 20:53
Это плата WxEDA на Cyclone IV, для нее есть проект

https://github.com/svofski/vector06cc/tree/master/project/wxeda

Сколько ячеек я уже не помню, но с уверенностью могу сказать, что влезает в EP4CE6E22C8.

Ясно.
Я по случаю обзавёлся платой Cyclone IV EP4CE10.
По сравнению с DE1 просто лысая: такое чувство, что на VGA разъём просто с выхода Alter-ы 5 проводов идут через резисторы, только один кварц на 50МГц, звуковухи и SD-карты нет...
Это так, только беглый взгляд на плату.

svofski
18.11.2020, 23:03
Не попробуешь не узнаешь. Это какой-то очень маленький циклончик, но я больше переживаю за M9K, а не за LE. А SDRAM на плате есть? В среднем в случае китайских плат лучше иметь голую плату и приделывать к ней свое, чем отковыривать всякий нелепый бред типа ик-приемников и индикаторов, которые они вклячили противоестественным образом, израсходовав на них драгоценные пины.

Кварца на 50 МГц с IV циклоном должно хватить. Для VGA конечно лучше иметь побольше резисторов, но возможен творческий подход (см. S-Video -- думаю, что и к VGA аналогичный подход применим).
Звуковухи и SD карты нет и на WxEDA. Мой плач об этой плате начинается примерно на 30-й странице этой темы. Но минимум два человека воспроизвели v06cc на WxEDA.

Для начала попробуй просто собрать проект WxEDA, поменяв чип в проекте на свой. Сразу будет видно влезает, или нет.

KTSerg
19.11.2020, 05:19
... А SDRAM на плате есть? ...

Кварца на 50 МГц с IV циклоном должно хватить. Для VGA конечно лучше иметь побольше резисторов, но возможен творческий подход (см. S-Video -- думаю, что и к VGA аналогичный подход применим).
...

Для начала попробуй просто собрать проект WxEDA, поменяв чип в проекте на свой. Сразу будет видно влезает, или нет.
Если верить даташиту на чип HY57V641620FTP-H - Synchronous DRAM Memory 64Mbit (4Mx16bit) 133MHz.

В картинках к плате предлагают VGA,SD и прочее подключать к разъёмам отдельными платами.

Для начала нужно вообще софтом озадачиться. С ней в комплекте ничего нет. :(

ivagor
19.11.2020, 06:22
я больше переживаю за M9K, а не за LE
В 4ce10 больше памяти чем в 2с20, этот циклон даже лучше для v06cc (полный конфиг вектора c fdd задействует часть LE 2c20 для памяти и это, по крайней мере у меня, очень замедляло компиляцию)


думаю, что и к VGA аналогичный подход применим
У меня "обычный" ШИМ на vga не получился, но я пытался шимить со штатных vga выходов. Подсмотрел (и использовал, только не в векторе) в ZPU хитрый способ временного дизеринга, могу ошибаться, но он как минимум давал +1 бит/канал, а может и два.

svofski
19.11.2020, 10:14
Для начала нужно вообще софтом озадачиться. С ней в комплекте ничего нет.
То, что к ней не прислали забитую китайским пиратством нечитаемую болванку DVD, или 4-6 болванок, — это тоже плюс. Весь необходимый софт тут — бесплатный Quartus Prime Lite.

USB Blaster у тебя есть?


(полный конфиг вектора c fdd задействует часть LE 2c20 для памяти и это, по крайней мере у меня, очень замедляло компиляцию)
Гы. Я вот сейчас как раз надеялся запихнуть часть памяти (не v06cc) в LE на C10LP и как-то это больше не работает. Строго M9K или AUTO, то есть M9K.


Если верить даташиту на чип HY57V641620FTP-H - Synchronous DRAM Memory 64Mbit (4Mx16bit) 133MHz.
Это хорошо, должно заработать. SD карту и звук подпаять можно и на соплях. Еще с клавиатурой непонятно как, ps/2 там есть? Ну тоже можно на соплях, все это дела нехитрые.


У меня "обычный" ШИМ на vga не получился, но я пытался шимить со штатных vga выходов. Подсмотрел (и использовал, только не в векторе) в ZPU хитрый способ временного дизеринга, могу ошибаться, но он как минимум давал +1 бит/канал, а может и два.
Странно, отчего бы могло не получиться?

KTSerg
19.11.2020, 11:27
... Весь необходимый софт тут — бесплатный Quartus Prime Lite.
Ясно. Буду смотреть.


USB Blaster у тебя есть?
USB Blaster есть.


...
Еще с клавиатурой непонятно как, ps/2 там есть? ...
Есть. Но меня смущает, что сигналы дата и клок подтянуты к 5V. И в цепи нет диодных сборок как на DE1.

svofski
19.11.2020, 11:37
P.S. Да, я чего-то ступил. Если влезает в EP4CE6, то в EP4CE10 влезет и подавно.

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


Есть. Но меня смущает, что сигналы дата и клок подтянуты к 5V. И в цепи нет диодных сборок как на DE1.
Если это поможет, вот схема WxEDA, которая вообще ужасная, но работает. Подтяжек на ней нет, но есть последовательно включенные 100 ом.
https://hselec.files.wordpress.com/2017/07/cyclone4-fpga-boardschematic_v200.pdf

KTSerg
19.11.2020, 14:53
...
Если это поможет, вот схема WxEDA, которая вообще ужасная, но работает. Подтяжек на ней нет, но есть последовательно включенные 100 ом.
https://hselec.files.wordpress.com/2017/07/cyclone4-fpga-boardschematic_v200.pdf
Получается, что Altera не боится 5V ?

IanPo
19.11.2020, 15:52
Для Cyclone IV E максимум - 4.2 В. Рекомендуется не более 3.6В. С вкл. PCI-clamp диодами (держат 10 мА) и последовательными резисторами - может когда-нибудь сдохнуть, зависит от % времени превышения уровня ( в справочном листе есть таблица ). А может и не сдохнуть, если сопротивление достаточное.

KTSerg
19.11.2020, 17:11
Для Cyclone IV E максимум - 4.2 В. Рекомендуется не более 3.6В. С вкл. PCI-clamp диодами (держат 10 мА) и последовательными резисторами - может когда-нибудь сдохнуть, зависит от % времени превышения уровня ( в справочном листе есть таблица ). А может и не сдохнуть, если сопротивление достаточное.
Вот и я к тому-же.
Что мешало поставить в цепь один полевик с парой резисторов, и получить безопасную и двунаправленную развязку по напряжению.

svofski
19.11.2020, 17:37
KTSerg, это какая-то доступная плата? Поделись пожалуйста ссылкой, если можно.

KTSerg
19.11.2020, 18:22
KTSerg, это какая-то доступная плата? Поделись пожалуйста ссылкой, если можно.
Не тот конкретный лот, что я взял, но много описания и картинок.
Плата: OMDAZZ ALTERA Cyclone IV EP4CE10E22C8N

На Али (https://aliexpress.ru/item/32868368072.html?spm=a2g0v.12010612.8148356.8.bd1f 4655KEq8zY&_ga=2.153936638.736755705.1605713748-299792956.1599067223)

Ещё один "сюрприз" на плате...
На кой-то впиндюрили датчик температуры LM75A.
Его выход "OS" - имеет открытый коллектор, и срабатывает при превышении температуры некторого (программируемого) значения.
Так вот этот выход припаян напрямую к +3.3V, даже без резистора !!!

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

svofski
19.11.2020, 18:57
Да, эта плата идейно очень похожа на WxEDA. WxEDA тоже не назовешь шедевром проектирования, но она хотя бы включалась без дыма какое-то время.

Вот ничего комплект для более современных забав: C10LP, Ethernet PHY, загрузчик на QSPI (NiosII может работать с него напрямую через XiP, если конечно они не перепутали плюс с минусом, как принято), выхлоп на hdmi. Наверняка тоже косяков уйма, конечно, но все ж — https://aliexpress.ru/item/32944436801.html

KTSerg
19.11.2020, 20:25
Очуметь... ядро 3 тыра, а доска с набором разъёмов к ней 5 тыр...

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

Как-то не по феншую регистрация у интелёф, для скачивания "бесплатного софта" для винды, да ещё с указанием в анкете номера телефона и без запроса почты. А в пояснении - ждите на почту ссылку активации аккаунта...

svofski
19.11.2020, 21:26
KTSerg, это все профанация, еще и глючная. Вот прямые ссылки:

Для Линукса (http://download.altera.com/akdlm/software/acdsinst/20.1std/711/ib_tar/Quartus-lite-20.1.0.711-linux.tar)

Для винды (http://download.altera.com/akdlm/software/acdsinst/20.1std/711/ib_installers/QuartusLiteSetup-20.1.0.711-windows.exe)

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

Вот кстати еще платка, в этот раз как будто что-то пошло не так, рука дрогнула и пошла в производство плата без ИК-приемника и драгоценного 7-сегментника с регулировкой яркости:

https://www.aliexpress.com/item/1000006634063.html

Совсем все плохо, у этой платы даже есть полная документация на гитхабе:

https://github.com/ChinaQMTECH/QM_Cyclone10_10CL006

KTSerg
19.11.2020, 22:54
KTSerg, это все профанация, еще и глючная. Вот прямые ссылки:
...
Для винды (http://download.altera.com/akdlm/software/acdsinst/20.1std/711/ib_installers/QuartusLiteSetup-20.1.0.711-windows.exe)
Спасибо.
У интелёф там-же в списке закачек видел отдельно библиотеки и какой-то "modelsim".
"QuartusLiteSetup" будет достаточно, или библиотеки нужно подключать?
"modelsim" - на сколько я понял для симуляции/тестирования сборки без загрузки в железо?




Вот кстати еще платка, в этот раз как будто что-то пошло не так, рука дрогнула и пошла в производство плата без ИК-приемника и драгоценного 7-сегментника с регулировкой яркости:
https://www.aliexpress.com/item/1000006634063.html

Совсем все плохо, у этой платы даже есть полная документация на гитхабе:
https://github.com/ChinaQMTECH/QM_Cyclone10_10CL006
Да, симпатичная доска. А какой простор, свобода для пайки/подключения периферии...

svofski
20.11.2020, 01:10
Спасибо.
У интелёф там-же в списке закачек видел отдельно библиотеки и какой-то "modelsim".
"QuartusLiteSetup" будет достаточно, или библиотеки нужно подключать?
"modelsim" - на сколько я понял для симуляции/тестирования сборки без загрузки в железо?

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

KTSerg
20.11.2020, 05:32
Они предлагают варианты скачать один сверхтолстый архив, или по частям ядро, поддержку семейств итд. Сетупа из ссылки должно быть достаточно, это интегральный архив, куда включена поддержка всех устройств. modelsim это пакет для симуляции, верно.
Сетуп из ссылки только Лайт. В нём нет библиотек оборудования. При установке было окно с лементами установки, там был только сам Quartus.
Ещё возникла проблема с установкой драйверов на Бластер.
Вин7/64, сколько уже подключал к ней всяких внутрисхемных программаторов и ставил драйверов, реально первый раз увидел сообщение, что драйвер без цифровой подписи. :(

Нагуглил кучу прямых ссылок на сайт альтеры, и библиотеки и 18-ый релиз.
Буду пробовать.

svofski
20.11.2020, 11:17
Да нет же, все должно быть там. Лайт это не библиотеки, лайт это версия без лицензии.

KTSerg
20.11.2020, 11:38
Да нет же, все должно быть там. Лайт это не библиотеки, лайт это версия без лицензии.
Я это знаю.
Почитал предварительно статейки.
Вот тут по ссылке про установку 18-го релиза.
https://marsohod.org/intel-quartus-prime/392-ustanovka-intel-quartus-prime-lite-edition

Но на 4-ом пункте "Select Components" в 20-ом релизе только ДВЕ верхние строки.
Пункт "Devices" вообще отсутствует.

По ссылкам уже накачал кучу всего, вечером буду пробовать.
Главное с Бластером разобраться.
На Али в отзывах на заказ читал, что кто-то 20-ый релиз не смог поставить. Накатил 18-ый и всё взлетело.
Может мой случай.

svofski
20.11.2020, 11:54
Хм, понятно. Почему-то для винды в инсталлятор они не запихнули все сразу, как для Линукса. Вот ссылка на 20.1 для винды со всеми девайсами (http://download.altera.com/akdlm/software/acdsinst/20.1std/711/ib_tar/Quartus-lite-20.1.0.711-windows.tar).

KTSerg
20.11.2020, 19:45
Хм, понятно. Почему-то для винды в инсталлятор они не запихнули все сразу, как для Линукса. Вот ссылка на 20.1 для винды со всеми девайсами (http://download.altera.com/akdlm/software/acdsinst/20.1std/711/ib_tar/Quartus-lite-20.1.0.711-windows.tar).
Скачал, глянул в архив. Там редми... 20-ка только на Линуксе и Вин10 (ещё серверные Вин-ы)...

Установил 18. Сразу и драйвера для Бластера нормально установились...

С Бластером странная штука. Я его взял на работу, что-бы попробовать подключить к компу с Вин7/32...
Не видит в упор... пишет "неизвестное устройство". Так и не смог подключить. Думал спалил статикой в кармане пока нёс.
Дома, после установки Лайта18, воткнул, всё махом определилось и установилось... (что-бы не сглазить).

Чё это было (почему на том компе не определился) понятия не имею.

С Лайтом установилась библиотека на Cyclon IV.
Нужно ещё библиотеку на Cyclon II нагуглить.

ivagor
20.11.2020, 20:10
Нужно ещё библиотеку на Cyclon II нагуглить.
Циклон 2, насколько помню, максимально дружит с 13 квартусом.

svofski
20.11.2020, 21:25
Второй Циклон это уже ретро, как 8080, AY и виндуз.

KTSerg
20.11.2020, 22:05
Циклон 2, насколько помню, максимально дружит с 13 квартусом.
Для меня это стало неожиданностью, но погуглив ссылки на библиотеки, пришел к такому-же выводу, что 13-тый квартус для 2-го Циклона крайний.
Хотя первоначально у интелёф где-то читал, что типа "а тут библиотека, со всеми предыдущими Циклонами"...

А два квартуса на одном компе уживутся? Если к 18-му ещё и 13-ый установить.
Или могут начать конфликтовать?

svofski
20.11.2020, 22:45
А два квартуса на одном компе уживутся? Если к 18-му ещё и 13-ый установить.
Уживутся, ничего страшного.

KTSerg
21.11.2020, 09:56
Циклон 2, насколько помню, максимально дружит с 13 квартусом.
Скачал 13.1.0 , установил, накатил апгрейд 13.1.4 ... а в нём нету Цикрон2 ... :(
Нашел 13.0sp1 - вот в нём Циклон 2 есть.
Но до 13.1.4 он не апгрейдится.

Можно начинать читать, что такое Verilog :)

KTSerg
21.11.2020, 13:29
Не попробуешь не узнаешь.
...
Для начала попробуй просто собрать проект WxEDA, поменяв чип в проекте на свой. Сразу будет видно влезает, или нет.

Не знаю, то ли проект собирал. Вроде "WxEDA".
Поменял только чип, ошибок нет, есть куча предупреждений и "Timing Analizer" горит красным.
https://s8.hostingkartinok.com/uploads/images/2020/11/d1fe05b57c62ef0e254514c81b53abab.png

svofski
21.11.2020, 22:22
Пока все ок.

KTSerg
22.11.2020, 05:08
Пока все ок.
Смущает , что в окнах "Assignment Edit" и "Pin Planner" описаны подключения к пинам чипа только сигналы Beep и VGA_G[].
Или просто эти таблицы сбрасываются при смене Чипа?

PS. Точно таблицы сбрасываются при замене Чипа.
Почему эти остаются, пока не понял.

svofski
22.11.2020, 11:43
В любом случае все пины надо пройти вручную и перепроверить для своей платы.

KTSerg
23.11.2020, 19:53
В любом случае все пины надо пройти вручную и перепроверить для своей платы.
Заглянул в файл *.pin проекта "WxEDA", там все порты I/O на 2.5V - из каких соображений выбрано такое напряжение?

Чёт мне с самого начала с этой Альтерой отношения не задались.. :(
Сначала с выбором/установкой софта маялся, сейчас даже не большой проект постоянно крашится, до того, что его приходится каждый раз с "нуля" создавать (благо *.v - файлы не удаляются).

Для эксперимента, "скрестил" два проекта из примеров: в одном вывод счетчика на 8-ми сигментник, во втором сканирование ps/2-клавы и вывод кодов в uart. Сделал проект, в котором сканируется ps/2-клава и код выводится на 8-ми сигментник борды.
Я всё-же поставил в разрывы сигналов ps/2 по полевику, осциллом посмотрел, всё красиво - со стороны клавы амплитуда сигналов 5V, со стороны Альтеры 3.3V. Для работы с клавой быстродействия полевиков вполне хватает.
Первые 3-4 раза заливал в Альтеру, и даже коды видел. А потом синий экран вылетел, и комп перегрузился. После перезагрузки не мог открыть проект. Квартус грузится, но при выборе проекта, просто закрывается, без всяких пояснений. Даже если проект открывается, написано, что отсутствует база с указанием файла *.cmp.* ( "Database error" ).
При попытке что-то сделать - Квартус закрывается.
Вновь созданный проект компилирую, критических ошибок нет, нажимаю "программировать" - Синий экран... и всё с самого начала, открытие проекта вызывает закрытие Квартуса... и т.д.

svofski
23.11.2020, 20:19
Про вольты не помню. Может быть это просто дефолтная настройка, которая на самом деле значит VCCIO.

Что до мучений с Квартусом, увы.. Мы все его искренне любим и с каждой версией он становится еще лучше. Бывает помогает удалить от проекта промежуточные файлы. Еще по секрету скажу, что gui там не нужен. Если с ним совсем никак, можно посмотреть, что там печатается в окошке консоли и открыть для себя способы сборки и программирования из батничка. Поможет ли это синему экрану никто не знает.

KTSerg
24.11.2020, 06:32
В проекте "WxEDA" переназначил пины, после компиляции критических ошибок нет.
Залил, на разъёме VGA, осциллографом есть КСИ, ССИ и на "VGA_В[0]" постоянные импульсы соизмеримые с ССИ (частота вроде чуть выше), но на пиксели не тянет.
На выходах S_VideoC/V - ничего нет. Назначал пины для всех VGA_B[x] - на одном из них постоянные импульсы, на одном "1", на остальных "0".
В итоге, пока не взлетел.
Хотя, скорее всего нужно с чистого проекта начать. Так как после первой компиляции Квартус крашился, и при последующих открытиях проекта были сообщения о "Database error". Но как ни странно, за 4-5 компиляций критические ошибки базы исчезли, и проект компилировался с обычным количеством использованных ячеек.

Я после назначения пинов сделал Экспорт этой таблицы в csv-файл, а вот как её импортировать?

svofski
24.11.2020, 12:21
Файл .qsf, в котором все пины и настройки, текстовый. Его можно куда угодно отправить, редактировать итд.

KTSerg
26.11.2020, 06:42
... Еще по секрету скажу, что gui там не нужен. Если с ним совсем никак, можно посмотреть, что там печатается в окошке консоли и открыть для себя способы сборки и программирования из батничка. Поможет ли это синему экрану никто не знает.
Не знаю сколько ещё "синих экранов" выдержит винда... :(
Обращение к программатору выбывает "синий экран". При этом не только крашится проект, но и слетают настройки самого Квартуса - при запуске после "синего экрана", он не помнит список открываемых проектов, не помнит положение окна программы, слетают на дефолтовые настройки из Tool->Options.
Уже оставлял открытым окно "Программирование", после внесения в проект изменений, возвращаюсь в него, нажимаю любую кнопку интерфейса... и "синий экран"...

Не нашел окошка консоли, вернее одно нашел, открыл, но в нём всегда пусто.

В проекте Вектора, только после установки параметров пинов VGA на 16ма (по току), на экране монитора появились вертикальные зелёные полосы.
Подключение монитора усаживает выход "VGA_G" (на других и так пусто) почти в "0".
А КСИ и ССИ по амплитуде совсем не страдают.
Уточнил, что импульсы идут не по VGA_B[0], а по VGA_G[0].
Один раз, до подключения монитора, осциллографом увидел появление окна с бордюром на канале VGA_G[0]. На загрузочный Вектора он совсем не был похож, просто поле с бордюром. Но повторить это больше не получается.

svofski
26.11.2020, 11:46
Какое-то светопредставление. Попробуй сделать проект помигать светодиодом, убедись, что система вообще способна функционировать. Все симптомы типа не встающих драйверов, каких-то не тех версий, постоянных синих экранов итд намекают на то, что тут дело не в Квартусе.

KTSerg
26.11.2020, 14:28
Какое-то светопредставление. Попробуй сделать проект помигать светодиодом, убедись, что система вообще способна функционировать. Все симптомы типа не встающих драйверов, каких-то не тех версий, постоянных синих экранов итд намекают на то, что тут дело не в Квартусе.
Я ведь писал, что параллельно с изучением проекта Вектора, изучаю азы, для этого скрестил сканирование клавы ps/2 и вывод кода на 8-ми сигментники установленные на борду. Клава сканируется, код на индикацию выводится.
Но программирование аналогичное - раз нормально, потом "синий экран". Сбой от проекта не зависит.
Попробую переставить драйвера Бластера.


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

svofski
26.11.2020, 16:36
Консоль у Квартуса обычно внизу, там 100500 сообщений всегда. Еще он пишет журнал всего, что происходит, где-то рядом с проектом его можно найти.

Подсмотреть еще можно в мейкфайле
https://github.com/svofski/vector06cc/blob/master/build/project/Makefile

Собственно заливка


quartus_pgm --no_banner --mode=jtag -o "P;myproject.sof"

KTSerg
26.11.2020, 17:19
Спасибо. Буду пробовать.

Есть прогресс... :) :) :)

1. Переустановил драйвера Бластера. Взял из комплекта Квартуса 13сп1.
После этого ещё ни разу "синий экран" не появлялся.

Либо дрова на Бластер от Квартуса 18 кривые, либо криво встали. Устанавливал Квартус 18 на двух компах - оба постоянно сваливались в "синий экран".

После заливки в Альтеру Вектора:
2. оказалось, что нажатие "SLock" на клаве, вызывает встроенное меню.
И его можно вызвать при каждой загрузке проекта в Альтеру.

3. 2-3 раза удалось увидеть на экране загрузочную сетку и надпись ВЕКТОР, и вроде рисунок дискеты.
Но изображение в 2 раза шире монитора - на экран помещается только 16 ячеек загрузочной сетки из 32-ух (не считая бордюра, которого на экране тоже нет).

Увидеть загрузочную сетку удаётся оооочень редко. Обычно вертикальные полосы.
Есть вероятность её увидеть, если подать питание на борду, и загрузить проект при нажатой "Кей0", и держать её нажатой ещё секунд 20. Тогда иногда сетка появляется.
Но через некоторое время она начинает разрушаться, экран постепенно заполняется мусором.

Не могу найти описание назначения кнопок доски на русском.
Я понял, что Кей0-Ввод, Кей3-Сбр. Но там ещё что-то написано, не понятное для меня. :(

svofski
27.11.2020, 15:41
Прогресс это хорошо! Если прям видно сетку и надпись, наверное даже работает SDRAM. Но может быть он недостаточно хорошо работает.

Может быть как-то не так настроены клоки? Какие периоды строк и синхры, они похожи на правду? В файле wxeda_clocks_bb.v можно посмотреть какие настройки были. Еще в квартусе можно отрыть wxeda_clocks и по идее должен появиться редактор настроек ALTPLL, где все можно привести в соответствие.

Но странно если в два раза, на WxEDA 48 МГц, у тебя 50, разница не такая огромная. Однако для SDRAM может оказаться критично.

В два раза все шире на S-Video выходе, но вряд ли ты перепутал.

KTSerg
27.11.2020, 16:26
Прогресс это хорошо! Если прям видно сетку и надпись, наверное даже работает SDRAM. Но может быть он недостаточно хорошо работает.

Может быть как-то не так настроены клоки? Какие периоды строк и синхры, они похожи на правду? В файле wxeda_clocks_bb.v можно посмотреть какие настройки были. Еще в квартусе можно отрыть wxeda_clocks и по идее должен появиться редактор настроек ALTPLL, где все можно привести в соответствие.

Но странно если в два раза, на WxEDA 48 МГц, у тебя 50, разница не такая огромная. Однако для SDRAM может оказаться критично.

В два раза все шире на S-Video выходе, но вряд ли ты перепутал.

Получить хоть что-то на пинах S-Video так и не получилось. Там жесткий "0". Пины переназначал, результата нет.
Картинка формируется единственным выходом VGA_G[0] (не считая КСИ и ССИ).
Картинка стабильная, свёрнута, такое впечатление, что часть не вошедшая в строку отображается в следующей строке.
Когда открывается меню по SLock - оно в центре экрана, и занимает 1/9 площади всего экрана.

Нашел маленький тест VGA для моей борды. Скомпилировал, загрузил - картинка есть, все цвета присутствуют (выход VGA - по одному пину на каждый цвет).

С параметрами клоков, буду посмотреть.

svofski
27.11.2020, 16:59
Трудно лечить по словесному описанию фотографии =) Но почему-то вот кажется, что у тебя где-то перепутались VGA и TV. Как бы еще все могло стать в два раза шире.

KTSerg
27.11.2020, 17:17
Трудно лечить по словесному описанию фотографии =) Но почему-то вот кажется, что у тебя где-то перепутались VGA и TV. Как бы еще все могло стать в два раза шире.

Архив с проектом с качал с гитхаба.
Пока глобальных изменений не вносил, а если что-то меняю, приходится удалять и снова вытаскивать из архива первоначальный вариант. :)
Пробовал указать входную частоту для модулей PLL не 48 а 50, совсем стало всё плохо. Вернул 48 - как было не восстановилось...

Наткнулся в главном модуле на использование SW[8], а SW как таковое ни где не определено (закомментировано) - на моей плате их нет, поменял на не использованную KEY[1]. Но ни чего не поменялось. В комментах написано что это было что-то связанное с частотой и отладкой.

svofski
27.11.2020, 17:57
На DE1 потому что была прорва переключателей, а на WxEDA их нет. Обрубок использования SW[8], на который ты напоролся, спрятан за ifdef-ом. Он игнорируется при компиляции.

KTSerg
27.11.2020, 18:02
Закомментил все строки 'define связанные с видео, оставил только WITH_VGA.
В результате пропал даже VGA_B[0].
Сейчас кроме КСИ и ССИ, ни чего нет.
Монитор на них реагирует, в меню показывает, что картинка: 32.5кГц, 52Гц, 800х600

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


... Обрубок использования SW[8], на который ты напоролся, спрятан за ifdef-ом. Он игнорируется при компиляции.
Точно, слона то и не заметил... :(

В проекте есть модуль: mclk24mhz.v
Мышой на него жамкаю, а Квартус его не открывает, пишет сообщение об ошибке, что-то типа: "PLL параметры от Циклона II не могут быть прочитаны".
Это похоже от кварца на 24МГц, и видимо тоже не используется.

Копаясь в модулях обнаружил, что я не те пины на VGA-разъём выводил...
Оказывается VGA_G[0] и VGA_G[1], это выходы S_VIDEO !!!
На выходах настоящих выходах S_VIDEO ни чего нет, а на младших битах зелёного висит выход S_VIDEO.
На VGA правда так ни чего и не появилось, но смог подключить к Тюнеру и сделать скриншоты.

https://s8.hostingkartinok.com/uploads/images/2020/11/d17fcbf05532ee45e92ec120ae37027a.png

https://s8.hostingkartinok.com/uploads/images/2020/11/e8770d362039a0d9ebb1d40f2ea395a4.png

https://s8.hostingkartinok.com/uploads/images/2020/11/1e2b14942492bba6322c7722c2170b29.png

KTSerg
28.11.2020, 06:29
Возможно я что-то не правильно переподключил и что-нибудь испортил, но в данный момент получил SVIDEO на выходах: SVIDEO_Y, SVIDEO_C.
Правда для этого, в главном модуле, в объявлении модуля "videomod" изменил:
.S_VIDEO_Y(VGA_G[0]), .S_VIDEO_C(VGA_G[1]));
на
.S_VIDEO_Y(SVIDEO_Y), .S_VIDEO_C(SVIDEO_C));

PS.
Снова переназначил пины VGA, картинка появилась, и она отличается от картинки на S-VIDEO.
Меню появляется, а вот загрузочную сетку увидеть ни как не выходит...
В VGA на экране одно меню, на S-Video менюшки две (на экране видно текст на менюшках, для фотика видимо фон слишком яркий - засветил меню сплошным квадратом).

https://s8.hostingkartinok.com/uploads/images/2020/11/a44f802a80bfce25a1c0102c04e97505.jpg

svofski
28.11.2020, 12:44
В сообщении №659 — это vga развертка на S-Video, все сжато в два раза и повторяется.
В последнем сообщении картинка слева — правильная, меню выглядит именно так и находится именно там. Даже цвета каким-то образом похожи.

Успех уже очень близок!

KTSerg
28.11.2020, 16:10
...
Успех уже очень близок!

Понять бы ещё, почему меню всегда появляется (ну почти всегда... иногда перестаёт на клавиши курсора реагировать), а Вектор упорно отказывается стартовать.

Пищалка ещё "шипит" постоянно, очень тихо шипит. Пока "Кей0" нажат, шипения нет.

Буду паять переходник для VGA. Имеющийся выход (по одному биту на цвет) совсем тяжелый случай.

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

Я не могу разобраться с PLL.
Открываю модули altPLL через визард, там входная частота установлена как 48МГц.
А если смотреть модули в *.v - формате, там в коде:


module colorclock_altpll
...
defparam
pll1.bandwidth_type = "auto",
pll1.clk0_divide_by = 8,
pll1.clk0_duty_cycle = 50,
pll1.clk0_multiply_by = 75,
pll1.clk0_phase_shift = "0",
pll1.compensate_clock = "clk0",
pll1.inclk0_input_frequency = 20833,
...
и ещё:

module wxeda_clocks_altpll
...
defparam
pll1.bandwidth_type = "auto",
pll1.clk0_divide_by = 2,
pll1.clk0_duty_cycle = 50,
pll1.clk0_multiply_by = 1,
pll1.clk0_phase_shift = "0",
pll1.clk1_divide_by = 4,
pll1.clk1_duty_cycle = 50,
pll1.clk1_multiply_by = 5,
pll1.clk1_phase_shift = "0",
pll1.clk2_divide_by = 4,
pll1.clk2_duty_cycle = 50,
pll1.clk2_multiply_by = 25,
pll1.clk2_phase_shift = "0",
pll1.clk3_divide_by = 2,
pll1.clk3_duty_cycle = 50,
pll1.clk3_multiply_by = 25,
pll1.clk3_phase_shift = "0",
pll1.compensate_clock = "clk0",
pll1.inclk0_input_frequency = 20833,
pll1.operation_mode = "normal",
pll1.pll_type = "auto",
pll1.lpm_type = "cycloneive_pll";
...
Коэффициенты правильные, но что за значение входной частоты: pll1.inclk0_input_frequency = 20833 ?

svofski
28.11.2020, 19:39
Ума не приложу, откуда 20833. Альтера всегда советовала выбирать эти параметры в мегаколдуне, что я и делал. В мегагерцах там прописано 48.000, первый делитель 2, второй 4, множитель 5. 48/4*5 = 60, все вроде сходится. Попробуй сделай с нуля PLL с такими же параметрами, может быть просто старая версия колдуна не может прочитать более новую.

KTSerg
28.11.2020, 20:42
Ума не приложу, откуда 20833. Альтера всегда советовала выбирать эти параметры в мегаколдуне, что я и делал. В мегагерцах там прописано 48.000, первый делитель 2, второй 4, множитель 5. 48/4*5 = 60, все вроде сходится. Попробуй сделай с нуля PLL с такими же параметрами, может быть просто старая версия колдуна не может прочитать более новую.
Странный параметр. В инете не нашел пояснений, по поводу, что это за чудо.
Создал новый PLL, поиграл с входной частотой:
При указании 100МГц - этот параметр будет "10000"
при 50МГц - "20000"
при 25МГц - "40000"
Явная закономерность, с обратной пропорциональностью.
Произведение частоты кварца на этот параметр, всегда равно "1 000 000 000 000".
Если это чудо разделить на 20833, получим почти 48МГц.

Ладно, трогать не буду. Буду копать дальше.

Не понятно, почему Загрузочная сетка не появляется, и как вообще проверить, что проц стартует и начинает ли отрабатывать программу загрузчика.
Похоже нужно придумывать каких-то "жучков" сажать их на межмодульные связи, и ими отлавливать, что на "шине" творится...

svofski
28.11.2020, 21:27
Но у тебя же получалось увидеть картинку на S-Video? Попробуй включить TV_MODE и запустить все в нем.

KTSerg
28.11.2020, 22:18
Но у тебя же получалось увидеть картинку на S-Video? Попробуй включить TV_MODE и запустить все в нем.
После получения картинки на VGA, ещё ни разу не удалось увидеть загрузочную сетку.
Я писал условия, при которых она появлялась (тыцканья на Кей0 и Кей3, запись при нажатых), но сейчас это не работает.
Подключил SD-карту, записал на неё файлы (в указанную папку) *.fdd и *.rom - меню их не видит.

KTSerg
02.12.2020, 06:32
Пока разбираюсь с Verilog, собрал переходник для VGA, по 4 бита на цвет, как в схеме DE1.
Перелопатил тестовый пример VGA от платы (с 1-им битом на цвет), вывел на экран все 4К комбинаций - вроде работает.
Странно, что не чувствуется разницы между настройками VGA выходов на 2.5V и 3.3V. Разница в напряжении почти 30%, а ничего не меняется.

KTSerg
02.12.2020, 19:09
Воткнул в проект модуль, который выводит на 8-ми сигментник состояние шины адреса (в hex-виде).
С загрузчиком, который идёт с проектом, программа постоянно крутится в диапазоне адресов 001D...0021 - там находится цикл очистки памяти. Странно, но я ни разу не выловил выход программы за его пределы, хотя после очистки должно начаться заполнение экрана загрузочной сеткой. Но программа почему-то зацикливается.
Заменил программу загрузчика на штатную заводскую, в ней есть тест ОЗУ (запись/чтение 55AAh).
И программа зациклилась в диапазоне адресов 0012h...0019h - это тест ОЗУ, который зацикливается если читается не 55AAh.

Похоже, что нужно начинать разбираться с SDRAM.

В ходе дела появился вопрос: а обрабатывает ли этот клон нажатие "УС" (для обхода очистки памяти) ?
Мне показалось, что сигнал "reset", который "сбрасывает" Вектор, так-же "сбрасывает" и ps/2-клаву.
Или нет?

svofski
02.12.2020, 20:04
Ресет на клавиатуру заведен с KEY[0], это глобальный такой мегаресет. Но Вектор сбрасывается еще по F11, или через меню.

KTSerg
02.12.2020, 20:29
Ресет на клавиатуру заведен с KEY[0], это глобальный такой мегаресет. Но Вектор сбрасывается еще по F11, или через меню.
Это я видел, в каком-то модуле, там из разных источников проверяются условия на сброс.
Но сброс получается общий, и регистры чтения клавы то-же сбрасываются, и вряд-ли можно принять код нажатой клавиши "УС" до того как проц Вектора пробежит десяток команд до чтения состояния этой клавиши.
Или я не прав?

Но меня сейчас больше заботит, как проконтролировать работу SDRAM ?

zebest
02.12.2020, 20:59
SDRAM чип на твоей плате и в проекте - идентичны? Недавно споткнулся на таком несоответствии(( Так никто и не помог модуль переписать.

svofski
02.12.2020, 21:21
Клавиатурные сигналы получаются из модуля клавиатуры, а на его сброс заведен только один сигнал ~KEY[0]. Из ее kbd_key_blkvvod_phy выходит kbd_key_blkvvod, которая все сбрасывает. Но сигнал kbd_key_ctrl идет прямо на регистр vv55int_pc_in[6] и на вход ВВ55. ВВ55 так же сбросится, как на железном Векторе, и так же сигнал этот прочитает.

Работу SDRAM проконтролировать трудно. Этот контроллер не идеальный, но работает на разных платах и в разных проектах. Скорее всего надо подобрать частоту, еще можно вставить IDLE стейтов. В Шадках я его немного переделал под себя, чтобы легче было настраивать:

https://github.com/svofski/vector06c-lesshadoks/blob/master/quartus/src/sdram/SDRAM_Controller.v

zebest
02.12.2020, 21:41
все бы хорошо, но иногда и чипы другого объема, row\col то жи другие, и что делать в таком случае?

KTSerg
03.12.2020, 05:00
Оооо. Наткнулся на статью, в которой написано, почему у меня Квартус на "синий экран" вылетал...
Фрагмент:

...
Так же приходится качать 13-й квартус и мне с моим USB Blaster-ом. Возможно китайцы сегодня пихают в них более новые прошивки, но мой на Windows напрочь отказывается дружить с драйверами, идущими в комплекте новых Quartus-ов. Хуже того, сочетание нового драйвера с этим USB Blaster-ом приводит к экранам смерти... Забавненько. Хотя мне от старого Quartus-а нужен только лишь драйвер из комплекта. Этот старый драйвер дружит и с виндой 10-кой (подписан, сертифицирован, все дела), и с новыми Quartus-ами и с моим USB Blaster-ом. Он идеален. ...

Improver
03.12.2020, 10:22
Бегло посмотрел эту тему и возникла мысль: а как насчёт того, чтобы сделать на ПЛИС Вектор с процессором КР580ВМ1? Возможно ли это, или трудозатраты на построение ВМ1 будут несоизмеримы с низкой полезностью результата? ;)

svofski
03.12.2020, 14:00
все бы хорошо, но иногда и чипы другого объема, row\col то жи другие, и что делать в таком случае?
Надо читать даташит и подключать сигналы, которых не хватает. Скорее всего можно их просто проигнорировать, завести на лишние адреса нули.

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


Бегло посмотрел эту тему и возникла мысль: а как насчёт того, чтобы сделать на ПЛИС Вектор с процессором КР580ВМ1? Возможно ли это, или трудозатраты на построение ВМ1 будут несоизмеримы с низкой полезностью результата?
Кроме того, что оценка трудозатрат к полезности требует предельного исчисления, непреодолимым фактором по-моему является верификация. На каком основании делать вывод о годности модели?

Просто фантазийные машины можно клепать сколько угодно, можно поставить 1801ВМ1, можно поставить 6502. Лучше сразу поставить ZPU, для него хотя бы компилятор приличный есть =)

Improver
03.12.2020, 14:29
непреодолимым фактором по-моему является верификация. На каком основании делать вывод о годности модели?Да, при отсутствии живых образцов, будет сложно, но можно попытаться хотя бы добиться полного соответствия имеющимся отрывочным сведениям о нём и работе эмуляторов...


Просто фантазийные машины можно клепать сколько угодно, можно поставить 1801ВМ1, можно поставить 6502. Лучше сразу поставить ZPU, для него хотя бы компилятор приличный есть =)Компилятор для ВМ1 на основе TASM, какой-никакой, есть в базисе, и прекрасный ассемблер слегка дополнить, думаю, не будет большой проблемой... Если появится возможность использовать этот процессор.

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

b2m
03.12.2020, 18:39
Лучше сразу поставить ZPU, для него хотя бы компилятор приличный есть =)
Ну да, в ПЛИСе можно и ZPU сделать, а на нём эмулятор i8080 запилить, и пусть по-умолчанию Вектор как обычно работает (только скорости хватило бы). Зато можно будет потом переводить в нативный режим ZPU :)

svofski
03.12.2020, 19:13
Ну да, в ПЛИСе можно и ZPU сделать, а на нём эмулятор i8080 запилить
Уже можно начинать отлаживать эмулятор 8080 в ZPU на zpu8080 :)

b2m
03.12.2020, 20:18
Уже можно начинать отлаживать эмулятор 8080 в ZPU на zpu8080 :)
Не, мне гораздо интереснее: добавить ZPU в свой эмулятор :)

ivagor
04.12.2020, 06:44
Интересующимся вектором, плисами и zpu предлагаю обратить внимание на задачу замены сервисного проца в v06cc с 6502 на zpu. Не то, чтобы это очень надо, но возможно будет полезно для облегчения доработки и модификации сервисного софта

svofski
04.12.2020, 11:16
6502 там гудэнаф. Единственная возможность чего-то выгадать — это использовать меньше blockram за счет более компактного кода. Но кому хоть раз его не хватало, если даже в самый дохленький Циклон все и так помещается?

ivagor
04.12.2020, 12:04
Ты думаешь код zpu компактнее кода 6502? Я то из других побуждений, чтобы можно было использовать более современный компилятор. Мне памяти во втором циклоне не всегда хватало. Было бы здорово немного ужать, чтобы по крайней мере проект в полной конфигурации компилировался быстрее за счет отказа от памяти в LE

svofski
04.12.2020, 12:28
Ты думаешь код zpu компактнее кода 6502?
Я уверен в этом. На 6502 руками плетут чудеса может быть, но cc65 генерит очень рыхлый код.

Но да, для ZPU можно писать на нормальном современном C. Что до C++, что в gcc 3.8 сейчас C++ не назовут, но теоретически есть непроверенный gcc 4.7, а это уже все-таки c++11. Только применительно к Вектору все это такого же уровня полезности, как смена логотипа фирмы.

KTSerg
05.12.2020, 11:34
Переставил в PLL частоту кварца на 50МГц, удалил все внутренние папки проекта "wxeda", пересобрал, залил.
Перехват шины адресов показывает, что программа после "ввод"-а (чаще всего) крутится в диапазоне адресов 0400h...0440h.
Это адреса работы с дискетой.
Но экран остается чёрным, только меню появляется если нажать "ScrL".
После установки частоты 50МГц, меню съехало в самый низ экрана. Зато монитор показывает, что картинка 31.2КГц, 50Гц (а не 52Гц как раньше).
Ещё меня интересует как должно вести себя меню?
При нажатии клавиш курсора, выделение смещается в нужную сторону, но когда клавиша отпускается, то выделение сразу возвращается на "DISC". Это правильно, или при отпускании клавиш курсора, выделенным должен оставаться выбранный пункт?

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

Заменил загрузчик на свой тест Видео-области ОЗУ...
Вывел порт "ПУ" на 8-ми сигментник.
Тест показал, что не исправны все микросхемы ОЗУ во всех банках.
Не знаю, как загрузчик проскакивает проверку ОЗУ. Возможно запись и сразу чтение проходит нормально, а длительное хранение даёт сбой. Значит с регенерацией SDRAM нужно разбираться... :(

tnt23
05.12.2020, 12:43
Надо читать даташит и подключать сигналы, которых не хватает. Скорее всего можно их просто проигнорировать, завести на лишние адреса нули.

Вроде у SDRAM это немного не так устроено. Лишних адресов там нет, все линии адреса и банков, и RD WR CS и что там еще используются для посылки команд в память. Но даташит читать надо, просто подобрать параметры (у хорошего контроллера параметры есть).

svofski
05.12.2020, 14:29
у хорошего контроллера параметры есть
Я бы посмотрел, как хороший контроллер встраивается в синхронную систему.

KTSerg, меню должно возвращаться на центр при отпускании стрелки, это правильно.

Судя по твоим симптомам, у тебя с PLL фарш cat5. Если там нет нормальной частоты основной системы, то и SDRAM-ный клок скорее всего левый. Я бы оставил сейчас твой тест, поскольку он надежно выявляет проблему, и разобрался внимательно со всеми частотами. Когда они встанут на место, если память по прежнему работать не будет, можно попробовать подобрать частоту SDRAM-ного клока, она может оказаться критичной, или повставлять IDLEы и-или REFRESHы. В Шадках например посмотри (https://github.com/svofski/vector06c-lesshadoks/blob/master/quartus/src/sdram/SDRAM_Controller.v#L153) сколько REFRESH-ей. А оригинал почему-то обходится существенно меньшим их числом. Отчего так я не знаю наверняка. Рефрешей должно быть не меньше заданного числа на заданный интервал. Например у моей микросхемы их должно быть 4096 штук на 64 мс.

b2m
05.12.2020, 14:51
А оригинал почему-то обходится существенно меньшим их числом. Отчего так я не знаю наверняка. Рефрешей должно быть не меньше заданного числа на заданный интервал.
Если под "оригиналом" понимается моя версия, то это потому что я там в качестве клока 50МГц взял. Не очень-то стандартно, но почему-то работало. Для 133МГц раза в три больше и надо.

svofski
05.12.2020, 15:33
Если под "оригиналом" понимается моя версия, то это потому что я там в качестве клока 50МГц взял. Не очень-то стандартно, но почему-то работало. Для 133МГц раза в три больше и надо.
Да, твоя. В v06cc версия ivagor-a, но она существенно ближе к твоему оригиналу, чем то, что я запилил в Шадках.

В общем суть в том, что редко получается завести SDRAM вслепую без настройки параметров. Требовательная вещь.

ivagor
05.12.2020, 16:11
Что касается числа тактов в состоянии REFRESH. Это определяется параметром tRC, от команды REFRESH до ACTIVE должно пройти не меньше tRC времени. Если говорить про контроллер в v06cc, то там к тактам с названием REFRESH надо еще прилюсовать IDLE, т.к. путь от REFRESH к ACTIVE будет лежать через него. И все равно может быть легкий оверклок, по крайней мере я лично грешен.

Если есть подозрение именно на SDRAM, то можно попробовать увидеть картинку загрузчика и без SDRAM. Патчим загрузчик, чтобы не проверял память. Отрубаем в проекте все лишнее (fdd). По адресам C000-DFFF ставим двухпортовое внутриплисовое озу (пишет и читает проц и читает видеоконтроллер). Если все стало нормально, то разбираемся с SDRAMом или контроллером SDRAMа.

KTSerg
05.12.2020, 20:33
Что касается числа тактов в состоянии REFRESH. Это определяется параметром tRC, от команды REFRESH до ACTIVE должно пройти не меньше tRC времени. ...
При частоте 60МГц на SDRAM, один такт 16нсек. По докам tRC минимум 63нсек. В модуле контроллера, который работал на плате wxeda, два REFRESH-а. Добавлял и один и два - результата нет.
Скачал доки на свою SDRAM, и ту которая установлена на плату wxeda. Принципиальных отличий нет. Тайминги практически совпадают. Но там контроллер работал, у меня нет.
Читал статью, что при включении нужно выждать время, прежде чем подавать команды в SDRAM, и в контроллер как-то вставляли эту задержку. Поскольку в вопросе "плаваю" не понял где именно задержка, то-ли перед инициализацией, то-ли после инициализации. Но ни чего подобного не увидел в довольно подробном (с кучей графиков) Даташите на SDRAM Winbond с платы wxeda.

ivagor
06.12.2020, 06:35
При частоте 60МГц на SDRAM, один такт 16нсек. По докам tRC минимум 63нсек. В модуле контроллера, который работал на плате wxeda, два REFRESH-а.
+как минимум еще один IDLE, т.е. минимум 50 нс. Как уже признавался - некоторый оверклок, но три опробованные платы работали и у других людей тоже.


при включении нужно выждать время, прежде чем подавать команды в SDRAM
Во всех даташитах, которые читал, пишут, что при инициализации надо выждать, потом выдать несколько обязательных команд. За одинаковость времени сейчас уже не поручусь, но в даташите SDRAM от DE1 (IS42S16400) 100 мкс. В более взрослых контроллерах эта задержка и обязательные команды есть. И даже в этот контроллер я их добавлял, когда разгонял SDRAM, но, конечно, никакого эффекта на разгон стартовая задержка не оказала и я ее убрал (что, строго говоря, нехорошо, т.к. даташиту лучше соответсвтвовать).

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

Не знаю, какая именно SDRAMимна на wxeda, глянул даташиты 3 разных - во всех пишут про стартовую задержку 200 мкс

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

Очень-очень сильно сомневаюсь, что именно отсутствие стартовой задержки приводит к проблемам.

KTSerg
06.12.2020, 07:34
...
Очень-очень сильно сомневаюсь, что именно отсутствие стартовой задержки приводит к проблемам.
Я то-же сомневаюсь, что проблема с SDRAM, или только с SDRAM.
Если бы читался "мусор", то этот мусор был-бы на экране, а экран просто чёрный.
Но при этом меню появляется.
Пока не понимаю.
Ещё не понятки с тестом ОЗУ. Если тест заполняет ОЗУ "шумом", то все "микросхемы" постоянно дают сбой.
Если заполнять ОЗУ в одном тесте байтами "00", во следующем тесте "FF", то часто ошибки дают только два банка в одном из тестов. А иногда ошибки только в одном банке.

svofski, я заметил, что сигнал "clk600" не выходит за пределы модуля clockster, частота "с3 = 600МГц" настраивается в PLL, но не используется ?
Ещё с меню не понял, как им пользоваться, если при отпускании клавиш курсора, выделение возвращается в центр?
Ни "RESET", ни "RESTART" не срабатывают. При нажатии курсорных клавиш, в нижней строке проскакивает что-то про выбор и "Enter", и снова "Insert card".

svofski
06.12.2020, 14:21
Меню никак не связано с обычной памятью, оно работает в эмуляторе дисковода, который пользуется блочной памятью на ПЛИС. Чтобы выбрать пункт надо просто удерживать стрелку и нажать Enter, как будто это джойстик с пружинкой.

600mhz это эксперименты какие-то, я не помню зачем. Можно выбросить, чтобы не отвлекала.

KTSerg
06.12.2020, 18:35
Меню никак не связано с обычной памятью, оно работает в эмуляторе дисковода, который пользуется блочной памятью на ПЛИС. Чтобы выбрать пункт надо просто удерживать стрелку и нажать Enter, как будто это джойстик с пружинкой.
Вроде пробовал удерживая стрелку, нажимать Enter, сброса не происходит. По крайней мере, если нажать Кей0, то Вектор явно перезапускается, и меню исчезает. А стрелка с Enter-ом точно меню не сбрасывает.

600mhz это эксперименты какие-то, я не помню зачем. Можно выбросить, чтобы не отвлекала.
Ясно.

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

Уряяяя !!!
Я увидел "мусор" на экране!!!
Даже видно, как мой тест ОЗУ заполняет его перед тестированием, и пытается вывести изображение "битых микросхем".
Правда там пока полный бардак.

В главном модуле нашел определение шины "realcolor" которое используется далее в 4-ёх строках, но ни где не получает ни каких значений.
При этом рядом с ним определяется шина "realcolor2buf" которая используется в модуле "palette_ram".
Переименовал в четырёх строках (где нашел) "realcolor" в "realcolor2buf", и изображение появилось.

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

Я тут недавно вспоминал про скальпель попавший под плату, во время ремонта...
У меня Дежавю...
Когда стал видеть "мусор" на экране, то заметил, что нажатие на кнопки меняет характер "мусора".
В проект вставил отладочные модули, нажатие Кей1 выводит на 8-ми сигментник состояние шины адреса, Кей2 - состояние порта "ПУ" (результат теста ОЗУ).
Так вот нажимаю кнопки и вижу, что "мусор" меняется... осторожно нажимаю на микросхему SDRAM, и "мусор" то-же меняется... возникает не хорошее ощущение, что такое уже было... Приподнимаю плату со стола... под ней пусто... :)
Похоже китайцы плохо пропаяли плату... :(

svofski
06.12.2020, 21:35
Уровень интеграции повысился, теперь скальпель прямо в плате.

KTSerg
07.12.2020, 21:01
Прогрел феном SDRAM и Alter-у, плата перестала реагировать на изгиб/кручение. :)
Не могу понять как переключить VGA-выход на VGA-режим.
VGA-выход судя по всему работает в TV-режиме. При этом Меню на VGA-выходе одно, а на S-Video их два (уже нормы).

Левый монитор подключен к VGA-разъёму платы. Правый - показывает захват TV-тюнера с S-Video выхода.
Синий оттенок фона на мониторе TV-тюнера это глюки фотика, т.к. реально изображение ч/б.

https://s8.hostingkartinok.com/uploads/images/2020/12/9346806981a570c88f48bdb82b3d3691.jpg

svofski
08.12.2020, 13:59
В файле videomod.v в соответствии с `define из главного модуля подключаются те или иные сигналы. Если нету уверенности, какой именно блок оказывается выбран, можно туда вписать какую-нибудь заведомую чушь, чтобы компилятор выдал ошибку. Тогда будет наверняка известно, что работает именно этот блок.

KTSerg
08.12.2020, 18:39
В файле videomod.v в соответствии с `define из главного модуля подключаются те или иные сигналы. Если нету уверенности, какой именно блок оказывается выбран, можно туда вписать какую-нибудь заведомую чушь, чтобы компилятор выдал ошибку. Тогда будет наверняка известно, что работает именно этот блок.
В главном модуле в define оставлен только WITH_VGA, объявления ТВ, композит и PWM за комментариями.
Объявление SVIDEO на картинку (VGA-выхода) не влияет.
в файле videomod.v компилируется раздел WITH_VGA.
Но картинка на VGA-выходе явно в два раза шире чем нужно и не вошедшая часть отображается в следующей строке. И видно, что картинка по вертикали не помещается на экран.
В общем, при объявлении WITH_VGA, формируется картинка для ТВ, а не VGA-монитора.
Может я ищу то, чего нет? И в проекте не предусмотрен вывод на VGA-монитор?
А на VGA-разъём просто выводится RGB-сигнал для TV ?

ivagor
08.12.2020, 19:10
KTSerg, можно взглянуть на исходник этого проекта?

KTSerg
08.12.2020, 19:42
KTSerg, можно взглянуть на исходник этого проекта?
Я его с гитхаба скачал, это сборка из 3-ёх проектов, для de1, de1sdram, wxeda.
Сейчас ссылку поищу с которой качал, прикреплю.
Вроде эта https://github.com/svofski/vector06cc

ivagor
08.12.2020, 20:25
После просмотра сложилось впечатление, что из video.v для wxeda vga выпилен.

KTSerg
08.12.2020, 20:41
После просмотра сложилось впечатление, что из video.v для wxeda vga выпилен.
Да, куска не хватает, по сравнению с версией для DE1.
Буду сравнивать.
Хотя куски с overlayedcolor есть в главном модуле для wxeda, может туда переносилось.

svofski
08.12.2020, 20:50
Что выпилено? Какого куска не хватает?

ivagor
08.12.2020, 22:12
Хотя куски с overlayedcolor есть в главном модуле для wxeda, может туда переносилось.
overlayedcolor в wxedaшном vector06cc.v формируется на основе realcolor. Может я слепой и/или невнимательный, но не вижу, чтобы realcolor откуда то шел.

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


Что выпилено? Какого куска не хватает?
Лучше сравнить машиной, но на первый взгляд не хватает video_r/g/b и vgavideo_r/g/b. А realcolor_out не востребован в обращении к video в vector06cc.v

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

Скачивать и собирать не пробовал, но возможно если добавить в vector06cc.v в вызов video vidi( строку
.realcolor_out(realcolor), - можно после .realcolor_in(realcolor2buf),
то что-то vgaшное появится.

svofski
08.12.2020, 22:54
Похоже что-то было потеряно при объединении версий. Нашел более старую, 72af7cc28051ec51b7dca45d0a28531d1154ea01, где была строка



.realcolor_out(realcolor),


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

Спасибо desaster за подтверждение, с этой строкой VGA работает. Строка потерялась при мерже.

KTSerg
09.12.2020, 06:18
Похоже что-то было потеряно при объединении версий. Нашел более старую, 72af7cc28051ec51b7dca45d0a28531d1154ea01, где была строка



.realcolor_out(realcolor),


Спасибо desaster за подтверждение, с этой строкой VGA работает. Строка потерялась при мерже.

Ну вот это совсем другое дело.
Я ж приходил к выводу, что к realcolor-у в главном модуле ни где не подключен ни какой выход (т.е. не присваивается ни какое значение). Соответственно и экран постоянно был чёрный.
А вот поискать его в проекте DE1 - не додумался :(
Сейчас нужно разбираться, почему по вертикали не помещается.
https://s8.hostingkartinok.com/uploads/images/2020/12/89f91d3e02bc36950995802dc2eae814.jpg

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


... Лучше сравнить машиной, ...
А это как?

ivagor
09.12.2020, 06:31
А это как?
Сравнить тексты программой, svofski скорее всего так и нашел, а я вручную.

KTSerg
09.12.2020, 07:09
Сравнить тексты программой, svofski скорее всего так и нашел, а я вручную.
Ясно. Я подумал, что речь шла о какой-то возможности сравнить готовые собранные "машины" - скомпилированные проекты, или схемы целиком.

По поводу того, что изображение на моём мониторе не помещается по вертикали...
Есть подозрение, что изображение рассчитано на формат 800х600. А монитор по какой-то причине отображает его в формате 640х480. Вот нижние строки и не помещаются.
Буду хухлить стандарты VGA, смотреть чем отличается 640х480 от 800х600, возможно частотой ССИ.

ivagor
09.12.2020, 07:34
Автоподстройка монитора не помогает (на всех моих помогала)? В v06cc не совсем стандартный режим

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

Кстати, некоторые мониторы совсем не переваривают 50 Гц развертку

KTSerg
09.12.2020, 09:21
Автоподстройка монитора не помогает (на всех моих помогала)? В v06cc не совсем стандартный режим

Кстати, некоторые мониторы совсем не переваривают 50 Гц развертку
Автоподстройку конечно тыкал. Результат на фото которое выложил.
Монитор довольно старый, в свойствах изображения пишет 50Гц.
Для разрешения 480х640 частота строк должна быть около 25КГц.
А в свойствах частота строк около 32КГц (точно не помню). Что значительно ближе к режиму 800х600 50Гц, чем 640х480.
Частота строк 31.5КГц у режима 640х480 60Гц. Возможно этот выбирает, но пишет, что 50Гц.

zebest
09.12.2020, 09:54
Буду хухлить стандарты VGA, смотреть чем отличается 640х480 от 800х600, возможно частотой ССИ.
много обычно чем, в т.ч. и полярностью бывает
http://tinyvga.com/vga-timing

svofski
09.12.2020, 11:16
Режим должен быть что-то типа "768x576@50Hz".

ivagor
09.12.2020, 12:09
Если посмотреть на фото, то видно, что запас сверху есть. При наличии желания и свободного времени можно побаловаться подбором параметров в vga_refresh.v (https://github.com/svofski/vector06cc/blob/master/src/video/vga_refresh.v). Общее число строк и число активных строк лучше не менять, зато можно подвигать vsync за счет front porch и back porch, а в крайнем случае и перераспределить верхний/нижний бордюры. Только по хорошему (если хочется демки смотреть и избежать излишнего мигания спрайтов в некоторых играх) придется еще поправить и привязки векторовской развертки к vgaшной.

KTSerg
09.12.2020, 18:51
Режим должен быть что-то типа "768x576@50Hz".
На мониторе 17шке (который на фото) автоподстройка так корректно режим и не подхватила: 640х480 50Гц 31.2КГц.
Подключил ещё одну 17шку, на ней сразу сообщение на экране: "Режим не поддерживается".
19шка (тоже с фото) сразу подхватила, изображение корректное, показала: 768р 50Гц.
Но пользоваться им для Альтеры, к сожалению не удобно (подключать к рабочему системнику 17шку не хочется). Проще Альтеру к ТВ-тюнеру подключить, благо S-Video в проекте есть, и на тюнере его пока не спалил как композит.
Буду думать по этому поводу.

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

KTSerg
14.03.2021, 14:47
После получения некоторых знаний по Альтере, вернулся к эмулятору Вектора.
Но так и не могу разобраться, как вообще работает меню по "ScrLock" :(
Меню появляется, при нажатии клавиш курсора выделение смешается в нужную сторону, в нижней строке мелькает надпись "Select ...", снова появляется "Insert Card". При отпускании клавиши курсора, выделение возвращается на "DISK".
Если оставить меню на продолжительное время, клавиатура просто зависает.
Если нажимать/отпускать клавиши курсора, через 10-20 нажатий - клавиатура зависает.
Т.е. на контактах PS/2 есть активность, но эмулятор на клавиатуру не реагирует, F11, F12 и ScrLock тоже перестают работать.
Как выбрать нужный пункт меню, не понимаю.
В коде видел, что в меню активны только клавиши курсора и Enter, но что должно произойти при выборе "Reset" или "Restart" - не понятно, так как ни чего не происходит.
Подключил SD-карту, записал ни неё файлы fdd, com, rom (и в корень, и в папку /VECTOR06/) - меню начинает жутко тормозить, но больше ни чего не происходит.
Осциллографом видно, что на выводах SD-карты есть активность, но ни чего не происходит... :(

Оказалось, что на клаву перестает реагировать не только в меню, но и просто нажимая F11, F12 - через несколько нажатий, клаву так-же перестает воспринимать.

svofski
14.03.2021, 15:49
Кнопку-стрелку надо удерживать, Enter нажимать с нажатой кнопкой. Reset и Restart это то же самое, что нажать F11 и F12. Выбор диска не нужен, если в каталоге только один файл .fdd. Я бы не стал тратить время на лечение меню, если не работает sd-карта в принципе. К сожалению не могу ничего конкретного подсказать, потому что я просто не сталкивался с такими проблемами и никто из запускавших у себя v06cc мне тоже о таком не рассказывал. Ни с меню, ни с sd-картой, ни с клавиатурой. Такой ворох проблем по-моему намекает на какой-то системный дефект.

KTSerg
14.03.2021, 17:28
Я упираюсь в то, что инфа о нажатии клавиш уходит в модуль floppy.v
А в нём фигурируют какие-то порты:
IOBASE = 16'hE000
...
PORT_JOY = 3

а потом если адрес CPU == IOBASE+PORT_JOY
то данные о нажатиях клавиш загружаются в регистр порта.
Это явно что-то не Векторовское, какой-то "теневой" БИОС, для работы с клавиатурой, таймером, UART, и ещё чем-то ?

Похоже на DMA, чтение/запись портов как ячеек памяти.

ivagor
14.03.2021, 18:11
KTSerg, так какая задача стоит - разобраться с тем, как устроено меню fdd в v06cc или запустить работу с SD? Если второе, то
1. Другие проекты с SD на этой плате работают?
2. К сожалению у меня сейчас в голове путаются ограничения разных проектов, поэтому не уверен, что все это критично для v06cc, но что точно должно работать: SD карта (не SDHC) с FAT16. Повторюсь, тут я не уверен, что у 06cc такие жесткие ограничения, даже скорее всего нет, но озвученная комбинация наверняка должна работать.

svofski
14.03.2021, 18:30
SD карта (не SDHC) с FAT16. Повторюсь, тут я не уверен, что у 06cc такие жесткие ограничения, даже скорее всего нет, но озвученная комбинация наверняка должна работать.
Оба требования почти 100%.


Это явно что-то не Векторовское, какой-то "теневой" БИОС, для работы с клавиатурой, таймером, UART, и ещё чем-то ?
Эмулятор дисковода это вещь в себе. В ней другой процессор, своя память, свои порты ввода-вывода. Не теневые. С точки зрения Вектора это просто другое устройство.

KTSerg
14.03.2021, 18:52
KTSerg, так какая задача стоит - разобраться с тем, как устроено меню fdd в v06cc или запустить работу с SD?
Надеялся разобраться почему не работает меню fdd, возможно и глюки с SD где-то рядом.

Если второе, то
1. Другие проекты с SD на этой плате работают?
Нет, других проектов с SD не пробовал.


2. К сожалению у меня сейчас в голове путаются ограничения разных проектов, поэтому не уверен, что все это критично для v06cc, но что точно должно работать: SD карта (не SDHC) с FAT16. Повторюсь, тут я не уверен, что у 06cc такие жесткие ограничения, даже скорее всего нет, но озвученная комбинация наверняка должна работать.
SD простенькая.
Пару раз замечал, что после подключения SD-карты к Алтера, комп переставал читать карту, писал, что файловая система повреждена (но такое не всегда).

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


... Эмулятор дисковода это вещь в себе. В ней другой процессор, своя память, свои порты ввода-вывода. Не теневые. С точки зрения Вектора это просто другое устройство.
Ясно.

ivagor
14.03.2021, 19:12
Если уверенности в работоспособности sd части пока нет, то возможно стоит посмотреть на что-то более простое, например (https://github.com/andykarpov/specialist-wxeda). Там точно надо SD (не SDHC) и FAT16.

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

Хотя может к платке идут какие-то современные примеры без всякой ретрокомпьютерщины.

KTSerg
14.03.2021, 20:09
Если уверенности в работоспособности sd части пока нет, то возможно стоит посмотреть на что-то более простое, например (https://github.com/andykarpov/specialist-wxeda). Там точно надо SD (не SDHC) и FAT16.
Буду посмотреть.


Хотя может к платке идут какие-то современные примеры без всякой ретрокомпьютерщины.
К сожалению нет примеров с SD-картой.
Элементарные мигания светодиодами, кнопки, простые последовательные интерфейсы.

svofski
14.03.2021, 20:11
Еще в можно попробовать вызвать меню когда SD-карта не вставлена. Это отфильтрует гипотетическую ситуацию, когда эмулятор дисковода затыкается и все убивает, пытаясь безуспешно проинициализировать непонятную ему SD-карту, или встретившись с какой-то неслыханной файловой системой. Заодно посмотреть, будет ли комп продолжать читать карту, которой Альтерой пригрозили, но вставлять не стали.

Шутки шутками, а у меня однажды один карточей запорол по черному две карты, прежде чем я понял, в чем дело. И в другой раз чуть не случилось то же самое, но то по-моему был плохой проводок. Немедленная отправка в отставку таких девайсов и проводков.

KTSerg
14.03.2021, 21:52
Еще в можно попробовать вызвать меню когда SD-карта не вставлена. ...
Я писал, что в меню без карты, пункты Ресет и Рестарт не срабатывают, да и с картой тоже не срабатывают.

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


Если уверенности в работоспособности sd части пока нет, то возможно стоит посмотреть на что-то более простое, например (https://github.com/andykarpov/specialist-wxeda). Там точно надо SD (не SDHC) и FAT16.
...
Странно, что-то я в этом Специалисте, не нашел ни S-Video ни Композита.
SW переставлял на tvmode, а куда Y выводится не понял.

b2m
14.03.2021, 23:42
Странно, что-то я в этом Специалисте, не нашел ни S-Video ни Композита.
SW переставлял на tvmode, а куда Y выводится не понял.

SW1:SW0

00-VGA
10 (только при компиляции варианта по умолчанию, с VGA 50 Гц)-Компонентный YPbPr576p50 (G-Y,B-Pb,R-Pr)
01 или 11 - композит и S-Video (R-композит, G-Y S-Video, B-С S-Video)
Можно взять только Y от S-Video и подключить к обычному ТВ - будет ч/б
Я так понимаю - G(reen).

KTSerg
15.03.2021, 05:50
Я так понимаю - G(reen).
Это я видел.
Просто на моей плате Альтеры однобитные выходы цвета RGB выхода, нет матрицы резисторов.
Осциллогафом перетыкал по всем 16-ти выводам RGB что есть у эмулятора, видео-сигнала не увидел.
tv-Y 4-ёх битный, буду пробовать смешивать.

ivagor
15.03.2021, 06:06
на моей плате Альтеры однобитные выходы цвета RGB выхода, нет матрицы резисторов.
Тогда наверно проще использовать vga вариант.

KTSerg
15.03.2021, 07:14
Тогда наверно проще использовать vga вариант.
VGA сложнее, по объективным и субъективным причинам ;)
Матрицу резисторов я уже паял при попытке подключения эмуля Вектора по VGA. Просто нужно эту матрицу от того переходника отделить, или новую спаять - не особая проблема. Лишь-бы заработало.

В сборке Специалиста есть модуль ПЗУ (вроде), элемент собран на М4К, а на плате М9К. Проект собирается, но этот элемент "подсвечивается" с ругательствами на иностранном языке :) А как его конвертировать я не разобрался. Похоже проще удалить и сделать новый уже на М9К.
После загрузки в Альтеру, бипер начинает пищать. После нажатия key3 - видно, что клава инициализируется, загораются и гаснут на ней все светодиоды. После нажатия F1 - писк прекращается.
Можно предположить что эмуль фунциклирует, осталось картинку увидеть и можно испытывать SD-карту.

Кстати, интересно, но на эмуле Вектора, похоже другая реализация поддержки клавы.

svofski
15.03.2021, 12:07
Кстати, интересно, но на эмуле Вектора, похоже другая реализация поддержки клавы
Я свою сам писал.

KTSerg
16.03.2021, 07:46
Кипиш отменяется... :)

Еще в можно попробовать вызвать меню когда SD-карта не вставлена. ...
В итоге оказалось, что меню корректно работает только при установленной и рабочей SD-карте. Тогда и Ресет и Рестарт из меню работают.


И в другой раз чуть не случилось то же самое, но то по-моему был плохой проводок. Немедленная отправка в отставку таких девайсов и проводков.
Заливка в Альтеру эмулятора Специалиста позволила локализовать источник проблем.
Поскольку Специалист немного информативнее, не подвисает при проблемах с картой а просто пишет, что нет файлов, а когда карта есть можно увидеть их список, то получилось вычислить, что проблема в разъёме переходника между Альтерой и SD-картой.

По результату.
Эмулятор Вектора видит SD-карту.
Образ дискет читает, грузит со служебных дорожек, файлы с образа дискеты загружает.
Меню с подключенной SD-картой работает корректно.

Интегрировал в эмулятор Вектора свой проект подключения TFT-дисплея. Сейчас к Альтера подключен TFT-дисплей. Изображение маловато по размерам, но цветное :)

Клавиатура продолжает зависать. Буду искать другую. Т.к. подключал свою рабочую, она даже не инитится.
Возможно нужно Альтеру запитать не от USB (как сейчас), а от нормального БП.

svofski
16.03.2021, 12:28
Я припоминаю, что вообще-то тестировал отсуствие SD-карты и ее последующее обнаружение. Но это было во-первых страшно давно, во-вторых я мог сломать то, что изначально работало.

Круто, что все-таки все завелось.

KTSerg
16.03.2021, 21:04
Другая клава так-же зависает.
Запустил тест клавиатуры в "Тесте устройств".
При "зависании" клавиатуры начинает постоянно мигать клавиша которую нажал в момент зависания. Типа она постоянно нажата, и нажатие других клавиш уже не срабатывает.
Нажатие Key3 (Сброс) не разблокирует клаву. В чувство её приводит только Key0 (Ввод).

KTSerg
18.03.2021, 07:11
Порылся в модуле "ps2".
Мне показалось, что watchdog срабатывает всегда, даже когда код корректно принят, его перезапуск возможен только когда он сработает, а счетчик рассчитан на интервал 1.36мс - это на границе начала второго байта кода клавиши.
Немного подправил условия watchdog-а и зависания клавы на меню полностью прекратились.
Правда "Тест устройств" показывает, что клавиатура Вектора иногда теряет отпускание клавиш, типа клавиша остается нажатой. При этом меню можно вызвать курсор в нём работает.
Ещё нажатие/отпускание 4-ёх определённых клавиш всегда вызывает нажатие/отпускание клавиши "СС", которая вроде как сама по себе "LShift".
Буду дальше ковыряться.
Правда вчера словил странную фигню... внёс очередные изменения (добавил однобитный регистр) в модуль ps2, а после компиляции получил "разбитое" изображение на TFT - как будто размер буфера (М9К) дисплея уменьшился. Глянул ресурсы - полно всего... и критических предупреждений не было.

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

Ещё вопрос.
В коде я видел модули реализации RS232. Он там для чего-то конкретного, или им как-то можно пользоваться по своему усмотрению?
Мне показалось, что встречаются только функции TX, и они не имеют выхода в главный модуль и на контакты Альтеры.

svofski
18.03.2021, 10:51
Через rs232 tx эмулятор дисковода печатает отладочную информацию.

KTSerg
20.03.2021, 12:37
Квартуса ставил в ноябре. Сегодня выскочило сообщение, что типа 30 дней осталось... :(
Сюрпризом оказалось. Возможно что-то читал по этому поводу, но уже точно забыл.

svofski
20.03.2021, 13:07
Может быть есть смысл почитать чего именно осталось 30 дней?

KTSerg
20.03.2021, 14:48
Может быть есть смысл почитать чего именно осталось 30 дней?
Окно "License Notification".
Жаль текст в буфер не копируется, пришлось переписывать и набирать в онлан-переводчик.
Общий смысл: Ваша подписка на обслуживание Quartus заканчивается через 30 дней. Продлить подписку нужно до срока её окончания. Продление подписки позволит загружать обновления и новые релизы в течение следующих 12 месяцев.

Что-то типа этого. Вроде об ограничении функционала речи не идёт.

svofski
20.03.2021, 16:18
У меня стоит Quartus Prime Version 20.1.0 Build 711 06/05/2020 SJ Lite Edition. Насколько я помню, лицензия в нем автоматическая, не требует никаких действий, ни даже регистрации (регистрация как будто требуется на сайте для получения ссылки на скач, но это все фуфло). Там лицензии-то как таковой нет — если открыть диалог про лицензию, в нем пусто. Лицензии начинаются, если ты вдруг решаешь перейти на коммерческую подписку с поддержкой продвинутых девайсов, синтезом в ASIC итд. И еще есть лицензии на разные виды IP, типа поддержки Hyperbus. Но ничего этого для проектов типа Вектора не требуется.

KTSerg
20.03.2021, 17:00
У меня стоит Quartus Prime Version 20.1.0 Build 711 06/05/2020 SJ Lite Edition. Насколько я помню, лицензия в нем автоматическая, не требует никаких действий, ни даже регистрации (регистрация как будто требуется на сайте для получения ссылки на скач, но это все фуфло). ...
У меня тоже стоят Lite Edition 13-я , 18-я и 20-я.
И вот такое выскочило.
Сейчас припоминаю, что читал ещё тогда, якобы для установки Lite лицензия не требовалась.
18-ую сейчас использую. 20-ю совсем недавно поставил, пробовал открыть в ней проект, просит конвертировать - пока не стал экспериментировать - закрыл.

svofski
20.03.2021, 17:20
Так а сейчас это выскочило это из какой версии?

KTSerg
20.03.2021, 17:35
Так а сейчас это выскочило это из какой версии?
Из 18-ой. Я только ей пользуюсь.

svofski
20.03.2021, 17:59
Не могу сравнить, у меня 17.1 и новая 20.1. Обе ок. Вроде 18 попадает в промежуток =)

KTSerg
21.03.2021, 11:32
Чем больше занимаюсь Альтерой - тем меньше понимаю, что происходит...

Для выяснения причины "зависания" клавиатуры, интегрировал в проект модуль RS232 из примеров к плате.
Адаптировал его, добавил выходную тестовую шину в описание модуля клавиатуры (раньше я это уже делал, только выводил скан-коды на 8-ми сигментный дисплей), прокинул вывод значения этой шины на RS232... скомпилировал, загрузил, и фсё... клава не зависает, хоть тресни... работает стабильно, впервые за последние несколько месяцев экспериментов ...

Это напоминает сборку схемы на макетной плате... вроде все проводки воткнул правильно, а схема глючит...
Похоже нужно учиться читать сообщения о не критических предупреждениях. Вернее выделять важные.

ivagor
20.10.2021, 16:03
Под влиянием темы (https://zx-pk.ru/threads/33813-the-100-mhz-6502.html?highlight=6502+100) сдул пыль с de2-115 и по-быстрому хакнул на предмет турбы 120 МГц версию v06cc использующую для озу и кваза внутренюю память плис. Как и ожидалось - работает (причем турба в данном случае без торможения проца по 4-тактным циклам). Штатный эмулятор флопа, как думаю заинтересованные люди помнят, работает максимум на 12 МГц, поэтому его отключил. При желании вместо флопа можно перетащить из другой версии xsd (который без проблем работает на частотах >12 МГц) и грузить с sd как минимум romы, а если доделать программу, то и edd. Думаю, что 120 - не предел, просто у меня эта частота уже была в той версии и более высокие не пробовал.

svofski
20.10.2021, 17:33
1.21 жигагерца это круто, осталось найти этому применение. А ты не пробовал погонять на обычной версии свои новые биперные плееры?

ivagor
20.10.2021, 19:03
1.21 жигагерца это круто, осталось найти этому применение.
Несколько лет назад действительно было туго с применением, с тех пор ситуация улучшилась. Можно некоторое время посмотреть на рейкастер и 3dкрутилку, а потом максимально неэффективно запрограммать что-нибудь на сях. И еще есть эмулятор 8080 на 8080, можно развить его до эмулятора какого-нибудь компа. Все же когда в 40 (и даже больше) раз быстрее - это качественный скачек.

А ты не пробовал погонять на обычной версии свои новые биперные плееры?
Не пробовал, т.к. несколько лет назад я пробовал свои старые шимные эксперименты и звучали они так себе. Причем, насколько помню, они звучали только после хакания штатного 8253 или после замены на 8253 Saara, его вариант получше.

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

Нашел пост (https://zx-pk.ru/threads/8635-vektor-06ts-altera-de1.html?p=861805&viewfull=1#post861805) с очень краткими впечатлениями от шима в v06cc с таймером Saara.

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

Максимум получился 135 МГц, на 144 уже глюки с палитрой. Думаю можно их побороть и еще увеличить частоту, но это отдельная история, 135 не так уж плохо.

svofski
20.10.2021, 19:27
Доделать таймер, не важно мой или Saar-а, было бы полезным делом.

ivagor
20.10.2021, 20:11
Если я правильно понял, то здесь на форуме он зарегистрирован как Saar, а более известен как Sorgelig (и так указан в таймере). Прошу прощения, если это два разных человека.
Таймер Sorgeliga не доделан разве что по точности эмуляции отдельных специфических вещей, шим в нем нормальный. Для повышения качества шима надо звуковой фильтр дорабатывать.

ivagor
21.10.2021, 17:00
Попробовал на DE1 новые биперные проигрыватели.
Нешимный фазЁр - отлично, но тут проблем и не должно быть.
Остальные шимные (тритон, октод, стокер) - удовлетворительно. По моей субъективной оценке - слушать можно, звучит лучше, чем в emu. Если нужен шим в v06cc - используйте таймер Saara/Sorgeliga (уточнил, это один человек с разными никами).