Случилось!!!!!
Схема прошивки из графического представления была переведена на vhdl и сегодня была найдена ошибка преобразования! Плата заработала на этом варианте описания прошивки!
Вид для печати
Случилось!!!!!
Схема прошивки из графического представления была переведена на vhdl и сегодня была найдена ошибка преобразования! Плата заработала на этом варианте описания прошивки!
Э... В общем - невольный конфуз :) Об успешности я.. как бы поторопился :) На следующий вечер - полное фиаско - вообще отказалось запускаться после прошивки синтеза на том же файле.. Но... Вроде всё не так плохо и есть обнадежка. Но пока не проверю ещё раз завтра вечером (гыгыгыгыгы)... В общем, подожду писать - саксесс :)
Ну что, теперь у меня больше уверенности в том, что получился рабочий файл после преобразования графики в текст :)
После того, как вроде как взлетевшая прошивка сказал блюэээээ, вернулся к предыдущему файлу, который не работал, но по крайне мере визуально хоть что то выдавал и начал пытать его. После очередного изменения прошивка сдвинулась в направлении АДавайтеПоработаем ещё и через какое то время меня, похоже, посетило внутреннее озарение, потому что потупив в один из моментов в экран минут пять, я вернулся к исходному VHDL (сразу после преобразования) и внёс буквально пять изменений - переопределил 4 сигнала, поправив ссылки со старого варианта сигналов на новые, и выкинул 4 строчки (явные косяки преобразование). После чего синтез, заливка - и вуаля!!
Плюсы
- минимум воздействия на результат преобразования (и была взята для преобразования последняя версия проекта)
- вариант полностью (ТТТ) аналогичен по работе исходному проекту
- поскольку вариант работоспособен, будет понятен любой косяк в работе после редактирования
Минусы
- Я тааааак продвинулся в красивом переименовании и причёсывании сигналов...
В общем - хороший прорыв. Работа продолжается.
И благодаря прорыву (а так же - знакомству с одним из вариантов, на котором может быть посажено преобразования) можно будет вернуться к прошивке мультиконтроллера. Ибо там я тоже сел на неработоспособном преобразовании. А с графической схемой, в отличии от vhdl, мне пока работать тяжелее.
Одна хотелка (не влияющая на работоспособность) пока не даётся...
Ждем, когда можно посмотреть на исходники.
Ну, сами по себе без платы или хотя бы её схемы особого смысла не имеют. К тому же - я не совсем автор, так что только если автор решит выложить. Но пока работа над платой не завершена...
- - - Добавлено - - -
Вдогонку. Сейчас vhdl файл - это массовое скопление операторов типа такого.
SYNTHESIZED_WIRE_216 <= DFF_inst210 or SYNTHESIZED_WIRE_80;
Теоретически, разобраться можно, а практически - для начала его надо хорошо причесать. И это моя первая цель. Кроме того, есть некоторые вопросы к функционированию. И это моя вторая цель. Но вопросы к функционированию касаются именно этой платы, на, скажем 1201.04 их просто не возникает в силу того, что на ней многого нет, а многое сделано по другому...
Однако :) На барахолке появилась интересная тема :)
- - - Добавлено - - -
Продолжаю шлифовать прошивку. Интегрировал одно существенное изменение из прошлого подхода. Во-первых - всё ещё работает, во-вторых - минус три макроячейки. Если сравнить с исходным графическим вариантом - то минус 11 макроячеек (было занято 243 из 256)
Ради интереса попробовал COP/DEV/NOQ VM: NL: с замером времени. Получилось примерно 250 кб/с. Последний вариант драйвера был в районе 200-210 кб/с. Хм.. Стремиться особо некуда...
- - - Добавлено - - -
Не совсем прав. Стремиться есть куда - но не в PIO :)
Продолжаю развлекаться с vhdl. Вроде как сегодня было неплохое изменение - прошивка стала работать стабильней, но учитывая недавний фэйл... Пока тестирую :)
Однозначного!
:):) Хорошо экипирован :) Мне не хватает паяльной станции, но для этого проекта она не горит :)
- - - Добавлено - - -
В первом сообщении - ссылка на исходники прошивки FPGA
Слегка приведу в порядок исходник ПЗУ и драйвера, выложу и добавлю ссылку. Ну и по мере изменений - буду добавлять версии
Ню.. Я опять откатился к исходнику VHDL, только теперь внёс и предыдущее изменение (минус две страницы назад писал) и ещё одно новое.
Пока тесты говорят, что устранены две эпизодические проблемы.
Причёска VHDL (баааалин, я опять ТАААААК причесал код....) приостановлена.
Данный вариант прошивки запущен на большое тестирование.
Хотелка по прежнему на даётся...
- - - Добавлено - - -
Ээээ.... Больше слов нет...
.RUN ZF:SPEED
ТЕСТ БЫСТРОДЕЙСТВИЯ
КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 1664
КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 416
КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 80
КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 336
.
- - - Добавлено - - -
Или вот
.RUN ZF:SPEED
ТЕСТ БЫСТРОДЕЙСТВИЯ
КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 1680
КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 416
КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 80
КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 336
.
- - - Добавлено - - -
Если что, вот что было в прошлый раз:
.RUN ZA:SPEED
ТЕСТ БЫСТРОДЕЙСТВИЯ
КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 1248
КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 424
КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 88
КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 336
.RUN ZA:SPEED
ТЕСТ БЫСТРОДЕЙСТВИЯ
КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 1264
КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 424
КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 88
КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 336
.
- - - Добавлено - - -
Проц один и тот же, прошивка FPGA разная :)
- - - Добавлено - - -
Ишо в догонку. Клок - 5 МГц :)
- - - Добавлено - - -
Ну теперь надо делать кабель и цеплять к стенду VT220 :) Давно хотимый янтарный цвет :)
Хм.. если поставить кварц на 24 МГц, тактовая будет 6 МГц и мы получим 2016 тысяч операций сложения регистр-регистр в секунду
С янтаркой пока облом. Макс скорость у терминала 19200, а на этой или более низкой не проходит (по крайне мере пока) синтез прошивки гайки... Думаю...
Посмотри вот это https://m.habr.com/ru/post/278005/
Может чем-то будет полезно.
С терминалом и серийником, разбираюсь, а на затравку, после долгого перерыва... :
Код:***** ДОСТУПНОЕ ОЗУ - 3,7 M *
@ 001000
@B
$ZF5
RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM
.BOOZF
XDT: 87
##T>G
RSX-11M-PLUS V4.6 BL87
>
>SAV /WB
RSX-11M-PLUS V4.6 BL87 1920.KW System:"KXX001"
>RED ZF1:=SY:
>RED ZF1:=LB:
>RED ZF1:=SP:
>MOU ZF1:"RSX11MPBL87"
>@ZF1:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
c;
SET -- Inquire cannot determine
>;
>; Please ignore any random characters that may have printed on your
>; terminal just now. They came from a SET /INQUIRE=TI: command.
>; Evidently your terminal does not recognize escape sequences.
>; This will not affect the running of this command file.
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: 8:14 27-NOV-2019
>TIME 8:14 27-NOV-2019
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>
В драйвере для RSX всё таки есть ошибка. Была слабая надежда, что из проблем в прошивке гайке, но увы. Мой косяк. Ню, бум посмотреть. Драйвер похож на драйвер WQ, но и там осталась (правда, другая) неисправленная ошибка :)
С янтарником пока прогресса нет...
- - - Добавлено - - -
Монтирование системного диска при загрузке - 18-20 секунд
Подсчёт свободного места (на гигабайтном диске) - 63 секунды
Где то в этой теме вроде приводил цифры про WQ, но там был восьмигиговый диск.
Насколько мне помнится - монтирование системного диска при загрузке - порядка пяти минут.
Ну то есть в целом работает побыстрее :)
Вместо тысячи слов...
... и одного романа :)
Пардон за качество, с утра, уже собираясь на работу. Переделаю на более качественное, возможно в грядущие выходные :)
И плюс ещё в том, что в наличии как RS232, так и токовая петля :) А RS232 вообще с переходником идеально лёг - даже паять ничего не пришлось :)
- - - Добавлено - - -
А, да, вдогонку. На самом деле цвет гораздо красивее :)
- - - Добавлено - - -
Полистал старые сообщения. Некоторое количество комментов по ним с учётом новых знаний.
По поводу кэширования. Смысла нет - сама по себе карта уделывает ВМ3 по скорострельности, даже на PIO режиме под RT отставание от VM не сильно значительное. А VM - это копирование память-память, то есть по сути - та же кэш память. Ну то есть под RSX включить можно - думаю, операции с каталогами будут побыстрее, но учитывая скорострельность памяти - вот ООООООЧЕНЬ сильно подозреваю, что реализация DMA уделает всё и всех.
По поводу фразы "как я уже писал, была инфа (про подключенную карту CF), что оно работает с фантастической скоростью - на уровне драйвера VM:". Ну это точно подтвердилось, вот только оказалось, что скорость VM... как бы это помягче сказать - сильно преувеличена в ощущениях :) 250 кб/с примерно. Против (примерно) 210 кб/с для CF. Ну да, получается скорости не в разы отличаются :)
По поводу установки режима PIO. С учётом скоростей ВМ3 и CF - особого смысла нет, да и карта исходно работает в PIO4.
Погонял тесты. Пока всё говорит о том, что ошибки в прошивке исправлены - даже после замены реализации uart-а проблем с выводом на экран или ошибок записи на CF не было
Попытка передать цвет свечения
Попытки будут продолжаться :)
Вопрос по зависанию RT-11 по Ctrl/S-Ctrl/Q
Проблема в реализации Uart. Все детали пока не понятны, только один момент нашёл. К сожалению, меня сбило то, что в RSX всё работает - я и грешил на RT, потому что всё остальное тоже самое. Начал писать тестовые проги и - вылезло.
Данная ситуация - подтверждение моей мысли - open source - не серебряная пуля. Другие люди тоже могут ошибаться и если использовать что то (написанное не тобой), не понимая, как оно работает - на выходе будет глючная поделка.
Сейчас есть два варианта реализации модуля Uart:
- на verilog-е (я его очень плохо знаю, поэтому что то поправить не смогу) - у него проблема раздуваемости синтеза при увеличении соотношения тактовый клок к скорости работы порта
- реализация на VHDL - ну а в ней, похоже, просто неудачный алгоритм, приводящий в определённых сценариях к ошибкам.
Есть ещё реализация от PDP-2011, но боюсь там размер синтезированного большой получится.
Попробую VHDL реализацию привести в чуйства
Хорошая картинка у терминала, мой 220-й даёт гораздо более бледную и мутную картинку, надо будет забраться внутрь и подкрутить немного...
https://photos.app.goo.gl/ZzUJ7wK8J9bnzkY76
А у него разве нельзя шрифт подгружать снаружи через ESC?
Я очень умный и доставучий, но ещё и тормозной :) Определил причину косяка, который Андрей упомянул в теме продажи 1201.2018:
"Изменений два
1. Изменён модуль консольного порта. На тот, который в проекте был изначально
Вернулся некритичный глючок. При старте платы в надпись ****Доступное ОЗУ - 3.7М* бывает, что добавляется лишний символ между
первыми звёздочками. Но появилась возможность изменять скорость порта."
Комментарии. Во первых, не добавляется, а рисуется вместо звёздочки разная (зависит от скорости порта) хрень. Во вторых - у меня он стабилен.
По идее, причину косяка надо ещё вчера вычислить, но.. Уж как получилось :) Причина тривиальна (но как раз такие имеют привычку хрен ловиться).
Во первых - хрень рисуется вместо третьей звездочки. Во вторых - саму третью звёздочку рисует T3. А происходит следующее. Т3 отправил(!!) звёздочку в консольный порт (типа я начал работать) - она начала (!!) передаваться, в это время T3 завершается свою работу (там проверка прерывания по несуществующему адресу -всё быстро заканчивается) и возвращается в родителя (T0), а родитель уходит на вычисление - скоко у нас памяти то есть?? - и в начале этого кода выполняется команда RESET. Опаньки!! Все быстро сбрасываются, включая серийник, который успел(!!) начать передачу и вдруг резко замолчал. С другой стороны (терминал) об этом ни сном ни духом - для него передача идёт и он рисует то, что считает принятым. То есть у меня на скорости 19200 прилетал код 376, который VT52 Патрона рисовал как русское Ч, а VT220 - перевёрнутый знак вопрос (вроде у него это - я не понял, чё принял, нарисую что смогу :D ). С моей точки зрения - это неправильно - если серийник начал передачу - пусть закончит. По сути устройство общения с терминалами в PDP состоит из двух половинок - интерфейсная часть на шине и интерфейсная часть на последовательной линии. То есть первую половину благополучно сбрасываем (в 1201.2018 тут всё оки), а вторую не трогаем (злобно порезал весь код сброса). Теперь у меня претензий к выводу нет.
Осталось разобраться с зависанием по Ctrl/S.
А ВП1-035 и -065 по сигналу INIT не сбрасываются. Точнее, у них по INIT'у сбрасываются только триггеры разрешения прерываний, а остальное продолжает работать. Сбрасывается оно только низким уровнем на К ПОСТ Н В (DCLO, да?). И, ИМХО, это скопировано с чего-то оригинального, т.е. так вело себя оригинальное железо PDP-11.
Так если бы отвисало - это было как бы штатное поведение - Ctrl/S приостановить выводы, Ctrl/Q - продолжить. Прикол ещё в том, что под RSX никаких проблем, написанная тестовая прога, работающая по прерыванию или по опросу - никаких проблем, RT - при поиске проблем проверил даже версию 5.0 (другие - руки не дошли, да и подозреваю, что будет то же самое) - зависон. И с VT220 прикол небольшой. Если на экран ничего не выводится, то факт нажатия Ctrl/S Ctrl/Q он фиксирует, но в линию ничего не отправляет. Несколько затрудняет залезание в ядро RT, но мысли есть - как.
Вроде как нащупал причину и устранил её - для вывода. Теперь тесты.
Несмотря на все мои издевательства (надо текстом уарта), вывод продолжает держаться. Но до главного теста (издевательства над текстом основной прошивки) пока не добрался..
Ввод по прежнему виснет, предположения есть, до проверок (предположения) ещё не добрался.
Стал обладателем такой платы :)
Подскажите, как записать образы на CF карту? Карты есть только на 256МБ..
Поздравляю :)
Ну, самый просто способ - использовать что то типа ISOBuster.
Как вариант - делаете под эмулятором Патрона образ (на 32 мб) с нужным софтом, потом заливаете (в начало) CF карты.
То есть ZF0: - для переноса, всё остальное - для чего то рабочего.