- BK-SVGA
- [+] Старые сообщения (20)
-
? Kisser - 08.01.2014 13:14
То ММ:
1. Ну вот когда найдется, тогда и поговорим. Пока же переходник есть только у 1 (одного) пользователя, который его всем устраивает. И не было еще криков что "Аааа дайте два, только с палитрами!". Там же еще, кстати, есть мелкий косяк с переключением регистра сдвига - на том же киберноиде на заставке есть небольшие подергивания. И как это устранять? Писать экран целиком на 50 Гц? А теперь внимание вопрос - а много ли игр идет под РТ-11, и, еще, под блок ВМ3? ))) Вообщем, предлагаю решать проблемы по мере их поступления. И, желательно, тем, кому оно нужно )))
2. Для палитр достаточно ОЗУ 256х4. Если же совсем повторять экран БК, то да - 2х512 кБит минимум. Я вот только все не могу понять - для чего? Как в анекдоте - размер ракеты определяется шириной конской задницы. Почему бы программерам в таком случае не написать дему под 60 Гц? или спросить при старте, какова частота развертки?
-
? anonymous - 08.01.2014 13:15
Кстати, MM или вам в ваших блоках не помешало бы таки ввести программируемый аппаратный таймер быстрый, умеющий генерировать прерывания. Будет много пользы, особенно когда речь идет о стандартизации и написании программ под ОС. Стандартный быстрый программируемый таймер для PDP-11 сидит по адресам 01777х540 - регистр состояния, 01777х542 - регистр начального значения, аналог 0177706, 01777х544 - собственно регистр-счетчик, аналог 0177710. Где х - либо 7, либо 2, стандартное значение по-умолчанию в RT11 - 0172540, второй таймер на 0177540, а регистр на 0177546 - сетевой таймер, который 50/60Гц. Программируемый таймер умеет выдавать прерывания с частотой до 100кГц, частота счета задается 1 и 2 битами регистра состояния и бывает 100кГц, 10кГц, 60Гц и 4я частота - пользовательская, для удобства можно для совместимости с J11 800Гц использовать. 0й бит запускает счет, 3 бит определяет непрерывный счет или режим одновибратора, 4 бит определяет направление счета регистра счетчика, 5 бит вызывает единичный счет сразу с перезаписью регистра-счетчика по одному тику, 6 бит разрешает прерывания, 7 бит устанавливается и вызывает прерывание, если счетчик переполнился либо перешел через 0, в зависимости от бита 4, и 15 бит - ошибка переполнения, устанавливается, если процессор обратился к регистру состояния после второго перехода через 0. А сетевой таймер по адресу 017777546 содержит два бита - 7 бит устанавливается каждым 50Гц тиком и сбрасывается после чтения регистра или записи в него, а 6 бит разрешает прерывания. По стандарту таймер 0172546 дает вектор 0104, а таймер 0177546 - вектор 0100.
-
? MM@ - 08.01.2014 13:36
По тесту производительности ВМ3А с 7.5 мгц ( кварц - 30.0 мгц ) , то лучше команду делать : 010010 , где в R0 - адрес СОЗУ 0 тактов. Предположительное время выполнения при закороченном на общий сигнале SSYNC - 800-1200 нс. Очень важно располагать такие команды в рядок - ввиду особенностей предвыборки ВМ3А.
Методика измерений : располагаем зацикленный тест в СОЗУ, запускаем, потом в включенном виде проволочкой коротим ногу SSYNC с 09 ножкой - и меряем осциллоскопом - все равно результат будет +- 5% - т.к. у меня нет хорошего осциллографа с циферками.
*
Вот вопрос к уважаемому anonymous : как поднять производительность ВМ3А до уровня, когда сигнал SSYNC закорочен на общий ?
В текущей реализации все равно 1 такт ускользает - на опознание адреса.
-
? MM@ - 08.01.2014 14:35
Вообще-то разработчик блока с ВМ3А - уважаемый господин Kisser, не знаю, как он к этому отнесется ...
-
? anonymous - 08.01.2014 14:35
Опознание адреса асинхронно производить можно, не защелкивая его, как это делает ваша ненавистная ВП1-119, если любой или оба из A21 и A20 в нуле, то на SSYNC подается 1, а на вход BS (36 нога) ВП1-119 - 0, тогда, отработав внутри задержку, ВП1-119 выдает сигнал на выход SSYNC (7 нога), который прижимает SSYNC процессора. Если же адрес попадает в ОЗУ, то на BS (для исполнения с 4мб), A21 и A20 (для исполнения с 1мб), A18..A21 (для исполнения с 256кб), оказываются все единицы, которые непосредственно с выхода элемента И-НЕ их перемножающего через ЛП9 прижимают SSYNC процессора. Я в плиске таким же образом поступил, адрес обрабатывается асинхронно, единственное усовершенствование, которое ввел - не позволяю SSYNC дрыгаться внутри цикла.
-
? MM@ - 08.01.2014 15:05
Я тоже экспериментировал с асинхронным SSYNC - но все равно он давал баг с предвыборкой последующего слова - например, ЕМТ спонтанно начинали траповать и т.п. баги. У меня появилось предположение, что для нормального максимально - быстрого режима по SSYNC его надо держать на уровне 0 в. до начала выдачи сигнала ТА - т.е. какой-то пакетно-монопольный режим образуется, совсем неприемлемый В БК.
Возможно, имеют какой-то смысл и уровни сигнала SSYNC после сигнала SYNC - но это надо по наносекундам выверять, с совсем непредсказуемым результатам, или поднимать тактовую частоту блока до 48 мгц - для использования сдвиговых регистров для реализации четких таймингов.
-
? anonymous - 08.01.2014 15:13
Возможно, у вас еще какие-то факторы влияют, т.к. SSYNC имеет смысл только после такта, на котором SYNC выставляется, и анализируется он на каждом последующем такте.
-
? Vslav - 08.01.2014 18:09
Тема очень интересная, я как раз временно прерываю "аржеологию" и буду заниматься БК/FPGA, вопрос "правильного" видеовывода стоит остро. Пока предполагаю сделать несколько вариантов, выбираемых перемычками или "прошивкой".
- кадровая 50Гц, сотое прерывание 50Гц, вывод на бытовой ТВ, полная реплика штатного режима
- кадровая 60Гц, сотое прерывание 50Гц, вывод на VGA/DVI (1024x768, 1280x1024 и возможно 1680x1050, 1920x1080, 1920x1200)
- кадровая 60Гц, сотое прерывание 60Гц, вывод на VGA/DVI (1024x768, 1280x1024 и возможно 1680x1050, 1920x1080, 1920x1200)
¤
В режимах когда частоты прерывания и развертки не совпадают будет использоваться буфер "поллитры! 256*4 (отличную идею в этой теме подкинули, спасибо). Режимы высоких разрешений имеют смысл для DVI, чтобы не "мылило". Для широкоформатных мониторов будут слева-справа полосы, чтобы пропорции кадра сохранить (а у родного БК какие кстати, 1:1, или таки 4:3? А то у меня нет уже ни одного ТВ 4:3, на широкоформатке выглядит типа 1:1)
¤
Что-то надо добавить/убрать из списка?
-
? MM@ - 08.01.2014 23:40
Насчет видеовывода с БК12 - абсолютно не понимаю намерений собирать велосипед по крупицам металла - ведь есть карты ISA SVGA, весьма подробно документированные - элементарный мостик делается, с практически сохранением быстродействия на 80-90%, ну еще накладные классические экраны терминала 80 кодов 25 строк ( эмуль 15-ИЭ-0013 ) и классической БК0011М - через буфер согласования разрешений ( отдельная матричка нехилая ) - так все волки сыты ( любители VGA полноцвета ) и все овцы целы ( любители классической БК11М и 15-ИЭ-0013 ). ИМХО - все вполне влезет в матричку EP3C10E144C8N, ну может десяток 530АП2 никелевых еще добавить ( и ИС СОЗУ - 10 нс ) - и решение ( почти ) готово.
А насчет 3Д - найдите сначала кодера этого самого 3-Д при 50 мгц главном камне ( т.е. 10-15 лимонов рег-рег ), а потом обсудите его оплату - есть ок. 10% вероятности, что он ( кодер ) что-либо напишет так примерно за $1000.
ISA начнет сдерживать процесс передачи данных примерно на 100-200 мгц камне, не менее - что пока недоступно.
Кстати, вполне возможно, что ISA-VGA до сих пор доступны коммерчески в Китае ...
-
? anonymous - 09.01.2014 10:37
Kisser, для 1806вм3 длительность записи в память с 0ws - 1 такт, т.е. 125нс при 8МГц, по переднему фронту тактового импульса dout выставляется и по фронту следующего - снимается, период повторения записей при последовательном выполнении mov rx,(ry) - 1375нс между передними фронтами соседних импульсов dout. Для 1806вм5 - данные те же, деленные на 2, т.к. по ТУ штатная частота для него 16МГц. ПДП тактируется 10МГц и импульс записи выставляет на 2 такта, т.е. режим более щадящий - 200нс.
-
? Kisser - 09.01.2014 11:58
anonymous, спасибо! Ширина импульсов особого значения не имеет (если, конечно, там не 10 нс), а вот расстояние между ними - да. По ВМ3 проблем, думаю, нет. А по ВМ5 надо будет проверить новую версию прошивки - видимо на выходных. Да, а сколько времени-то МЕЖДУ импульсами ПДП?
-
? anonymous - 09.01.2014 18:45
Те же 700..800нс при монопольном захвате, 1375 у ВМ3 выходит т.е. выборка следующей команды чередуется с записью.
-
? Kisser - 10.01.2014 19:24
Думаю, потянет и на ВМ5. Сейчас за цикл сдвига длиной 8*86.7=694нс можно сделать 2 записи. Однако, все, естественно, постигается опытным путем )))
Уж точно надо убрать привязки к ВМ1 - задержки СИНКа и ДАУТа, или изменить их в соответствии с ТУ. А с другой стороны - ВМ5 такая редкость, что ставить его на полку и не дышать. Да и ВМ3, который 1806 - тоже в свободном доступе не сыщешь.
-
? Kisser - 12.01.2014 14:27
Anonymous, можно ли ещё попросить сделать пару измерений? Время от конца ДАУТа (передний фронт) до начала СИНКа (задний фронт). есть предположение, что для всех, кроме вм5, можно убрать доп защелку адреса )))
-
? anonymous - 12.01.2014 18:34
Если получится время найти - попробую, сейчас у нас срыв сроков оборонного заказа намечается, все на ушах стоят и виснут на мне, не продохнуть. :)
-
? anonymous - 13.01.2014 16:01
От конца dout до начала sync - 312нс для 8мгц и 0ws.
-
? Vslav - 13.01.2014 16:10
Там кажется и мультиплексоры адреса можно убрать - поиграться OE буфера и выходов ПЛИС?
-
? Kisser - 13.01.2014 18:46
anonymous, Спасибо! Без защелки, видимо, никак ))) Даже для ВМ1, наверное, лучше оставить. Хотя, попробую поэкспериментировать - но не скоро...
Vslav, спасибо за идею! Я как то и не думал об этом. Можно тоже будет попробывать. Но еще нескорее...
-
? anonymous - 13.01.2014 21:22
Kisser, может, вам честная двухпортовка поможет как-то, если уж от плисок отказываетесь ^^? 16к х 8бит есть, две штуки - как раз два экрана 11й хранить.
-
? Kisser - 13.01.2014 22:39
Не, без ПЛИСок - никуда ))) Речь шла об уменьшении регистров и мультиплексоров... Если без ПЛИС, то как у ММ - полуплата ДВК густо 531й серией набитая. Да и двухпортовка для одного экземпляра подойдет, а где ее потом искать?
-
? anonymous - 13.01.2014 22:53
Я не о том - когда вам на 100к вентилей альтеру предлагал с толернтными к 5в выходами - вы отказались. :)
- << Форум