Кто-нибудь успешно портировал проект на другие девборды?
Вид для печати
Кто-нибудь успешно портировал проект на другие девборды?
Не совсем портирую, но на проект поглядываю.
На DE0 (не нано) оно прямо не переносится, там нет SRAM. А SDRAМ контроллер я свой пишу, на несколько портов wishbone и с отдельной шиной для видеовыхода (со скандаблером с прицелом на КСМ/КГД, а не только ВП1-037).
ВП1-014 хочется сделать полноценную эмуляцию, чтобы каждая клавиша была представлена отдельным триггером, обрабатывалась как матрица логической репликой ВП1-014, а ставились/снимались через коды, поступающие с PS/2.
Ну процессор, понятно, будет или натуральный на внешнем модуле, или уже реплика по результатам реверса.
В моей БК все очень приблизительно. Мне этот проект чем-то больше Вектора даже нравится потому, что БК-0010 прощает многое и я мог позволить себе какие-то вольности, которые с Вектором никогда бы не прокатили. Ну где еще сделаешь для эмуляции загрузчика MMU собственной конструкции? При этом совместимость мало пострадала.
Так можно же. Проще всего это сделать заинтриговав этим вопросом ivagor-а :)
Подкорректировал проект svofski для новых de1 (на старых тоже должно работать). Ну и заодно немного разобрался, что к чему, можно теперь и на другие платки портануть. Исходники пока не выкладываю, может еще посмотрю на тему SDRAM
Для меня это в некотором роде знаковое событие, т.к. bk0010 - последний проект, из тех что я пробовал сразу после покупки de1 и они тогда не работали нормально. За полтора года со всеми разобрался :)
Небольшое замечание по свитчам - в wiki похоже описана более ранняя версия. Для работы принципиален SW7 - д.б.=1. SW1 - чб/цвет, остальное не важно.
JTAG я тут отрубил, такие дела
Соорудил экспериментальную версию со сдрамом, но без "гиперчарджа"
Насколько без него грустно можно оценить по приложенному sofу
А вот насчет портирования как-то странно - пока совсем не получается
Похоже я все же успел первым портануть БК svofski куда-либо (или остальные скромно промолчали)
sofы для de2-115 и de1-soc - здесь
---------- Post added at 16:46 ---------- Previous post was at 16:23 ----------
Для de1soc выложил еще вариант, использующий внутреннее озу плиса, а то с текущим сдрамным при общении с sd тоскливо
Хочется все же хоть какой-то "гиперчардж" вернуть в сдрамную версию, потом выложу исходник. До портирования заниматься ускорением было не интересно, на de1 то и sramным вариантом можно пользоваться
Выложил в ту же папку исходники. Версия практически с колес, но надеюсь, что грубых ошибок нет. Спасибо svofski за проект и b2mу за исходный вариант контроллера сдрама, который уже долго является для меня неиссякаемым источником вдохновения :)
Будет работать только с CORE_25MHZ, если хотите 50 (в чем для данного проекта со сдрамом практически нет смысла) - надо править
Спасибо! получилось на WXEDA запустить.
Пока без звука, правда.
Спасибо ivagor, спасибо svofski, спасибо b2m!!!
Есть несколько вопросов:
1) можно ли как-то подкрутить vga-развертку, у меня что-то изображение не помещается целиком на экран (левая часть на половине знакоместа обрывается, это уже на максимальном сдвиге вправо средствами самого монитора) ?
2) что есть hypercharge и как оно работает?
3) непонятно куда идет ссылка на ay_sound, так таковой реализации в проекте я не обнаружил.
ivagor, ты монстр!
Жду-недождусь засосать pull request в основное дерево.
При живом svofski лезть поперек нехорошо, если что - удалю этот пост
Турбо в проекте включается или в kernel mode проца (чтобы быстрее шла загрузка с sd) или вручную по key3. То что вручную - обозначено в проекте как hypercharge
Есть догадка, что работа над вектором и бк шла параллельно, а в некоторых случаях последовательно. Похоже этот фрагмент - копипаста из v06cc. Можно туда, например, ковокс подать. Или можно рассматривать как задел на будущее - кто-нибудь как захочет сделает 0011 с ay - а уже кое-что готово :)
svofski - если после изменения нескольких (десятков) строк я монстр, то ты как создатель проекта тогда кто? :)
Насчет pull request - в смысле чтобы я закачал в репозиторий? А может ты сам, как с вектором?
---------- Post added at 18:35 ---------- Previous post was at 17:37 ----------
Можно поиграть циферками в vga1.v
vga_h_sync <= ~((CounterX > 565) && (CounterX < 590));
Например, чтобы сдвинуть вправо
vga_h_sync <= ~((CounterX > 535) && (CounterX < 560));
Я могу и сам, конечно. Но круче смотрится потом, спустя годы, когда у проекта разные участники.
Да я слабо владею этой штукой, как залью что-нибудь не туда. А можно так - ты организуешь бранч (или как там его) а я может потом попробую туда чего-нибудь закомиттить?
Хорошо =)
Насчет изображения - похоже действительно оно при текущих цифрах смещено влево
Для моего монитора (подстройку на мониторе не делал, просто менял цифры в проекте):
Влево максимальный сдвиг от исходных цифр всего на 3 позиции (если больше, то обрезается левый край)
Вправо максимальный сдвиг на 40 позиций (с точностью до единиц не подбирал, может чуть больше)
Код:parameter HSYNC_TIME = 25;
parameter HSYNC_START = 535;
...
vga_h_sync <= ~((CounterX > HSYNC_START) && (CounterX < (HSYNC_START + HSYNC_TIME)));
да, так покрасивее и удобнее будет, все же :) спасибо!
можно еще развить тему, прикрутить к девборде какой-нибудь энкодер ну или там переменный резистор + ацп :) этот параметр ловить на лету, затем куда-нить на sdcard или в eeprom писать :) получится практически аналоговая "точная" подстройка :))) ну и няшные крутилки :)
Все-таки VGA-шный стандарт на то и стандарт, чтобы людей избавить от такой няшности. Просто у меня не было ничего особенно настроено, а мой монитор слишком ловко сам подстраивается под любую кривость, вот я и не придал этому значения.
Провокационный вопрос из зала - какое стандартный режим ты реализовал? На 800x600 не очень похоже
Ну нереально же так вспомнить. А что монитор-то говорит? Могу вечером у своего монитора спросить.
Мой говорит 800x600x57.
PS: Вот порт под WXEDA: https://github.com/andykarpov/bk0010-wxeda
Ну значит и мой вряд ли скажет чего-то другое.
Можно подогнать под 800х600х60. Это ж не Вектор.
Кстати, в сдрамной версии это будет еще проще, т.к. vram отдельный (хотя владельцы совсем бюджетных плисин расточительному использованию озу плиса вряд ли обрадуются). Можно изменить его параметры на вариант с двумя тактовыми и задать любую нужную для чтения (делал так в специалисте и было очень удобно)
Легкий наброс :)
Интересно, почему никто до сих пор не доработал проект svofski до 0011? Сам я не потяну, я не бкшник, но имхо сложность примерно соответствует "апгрейду" 06ц->6128ц, т.е. для человека в теме делов на полдня
Текущая сдрамная версия для этого не годится, там видеоозу прибито к одному месту, но в принципе можно это решить
Навскидку две проблемы:
Для 0011 надо решать вопрос с кадровой частотой - в 11 есть бит, который может читать процессор и определять состояние кадровой синхронизации. На этом строится часть мультиколорных эффектов, просто так 60ГЦ удобных для ВГА не вкрутить.
Также в 0011 есть битик означающий "клавиша нажата", надо доделывать 014-ую, если совсем по "честному" заводить массив триггеров на каждую клавишу и с них снимать ИЛИ. Как более экономный вариант (но менее надежный) - счетчик нажатий/отжатий.
Насчет мультиколора - это проблема в основном для демок, для начала можно и с неправильной разверткой пожить
В основном я думаю это оттого, что для большинства людей, включая меня, вникнуть в чужой проект в достаточной мере, чтобы его расширить, задача трудная и недостаточно себя оправдывающая.
Для меня лично БК интересна была тем, что это довольно абстрактный компьютер без жестких рамок, где можно было безнаказанно проявить некоторые вольности типа как то, что я сделал с управлением памятью, практически без ущерба для совместимости с оригиналом. А БК-0011 для меня мифологический компьютер, которого я не видел в то время, когда это могло бы нарушить мою психику, и который к тому же уже не позволяет себя реализовывать как попало. Я подозреваю, что если начать пытаться решить проблему с разверткой, которую озвучил Vslav, можно столкнуться с изрядным количеством сложностей и в результате может оказаться не проще, чем с Вектором.
Запустил на DE2. Спасибо.Монитор говорит - режим 800х600х56
vazman, здорово!
а где сейчас живут последние исходники этого проекта? там же???
svinka, здесь https://github.com/svofski/bk0010
Но это такой проект... ему 10 лет в обед ;)
Цитата:
initial import from svn
svofski
svofski committed on 17 Apr 2010