Важная информация

User Tag List

Страница 52 из 67 ПерваяПервая ... 484950515253545556 ... ПоследняяПоследняя
Показано с 511 по 520 из 661

Тема: Еще один Орион на ПЛИС

  1. #511
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    256кб - ни то ни сё. Какие вообще ПЗУ максимальной емкости есть в планаре с 8-битной организацией? На память приходит только 27/28x040 (512кбайт). А есть ли более ёмкие параллельные TTL-совместимые ПЗУ? 27с322 не предлагать - у них 10 лишних ног для возможности 16-разрядности (хотя и таки да - 4Mбайт в одном кристалле!), а тут лишние ноги на плату не влезают. Или влезет?
    При текущей компоновке - уже даже 2 дорожки дополнительных от CPLD до ПЗУ не влезут - и так уже плотненько, а на втором слое я питание разводил. Если пихнуть больше трасс - где-то вполне может просесть "общий". Не хочу потом напаивать провода вдоль трасс для увеличения пропускной способности по току
    По ПЗУ - путаю, у меня заложена 29F040, то есть 512Кб. На материнских платах их хватает. Да даже на Али чуть больше 1$ за корпус стоят. Дальше - уже другие корпуса, если рассматривать корпуса PLCC-32.
    Вот внешний вид платы на данный момент - остались только сигналы прерываний. Верх и низ.

    И да - на плате не уместились ни клавиатура, ни ROM-диск. Всё это придётся делать отдельной платой, подключаемой через системный разъём. Так что потом ещё долго буду думать - "а всё ли я туда вывел?"
    Сейчас, как видно из картинки, получилось 26 корпусов (2 из них - одногейтовые инверторы). Весь видеовыход собран на логике. Во второй CPLD ещё достаточно свободных ячеек имеется для организации чего-либо (например, через свободные пины подвесить что-либо из периферии, если вывести их на системный разъём и т.д.). Основное назначение этих пинов на данный момент - использование в случае, если я что-либо "забыл" при переносе, что бы не паять к выводам волоски
    "Байт-48"

  2. #511
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #512
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Итак, в отладке через ЛА нашел косяки в реализации и исправил их.
    Сейчас вроде бы что-то запускается, но не полностью - на экране остаётся мусор, не отображаются символы. В общем, буду дальше отлаживать. Уверен на 95%, что ошибка опять в менеджере памяти (по схеме ПРО - правый верхний угол первой страницы, я там очень много перевёл в другой базис и мог напортачить).
    Так что - сижу и дальше пошагово сверяю с эмулятором и декомпилом...

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

    Мда, а дальше - Ж*** с разбором кода. Оный копируется по кусочкам в оперативу, откуда и выполняется. Пока всё "сошью" в IDA, задолбается уже =/
    "Байт-48"

  4. #513
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хм, нашел место, которое выполняется некорректно - сверял с эмулятором на том же ROM'е.
    Исполняемый код:
    Код:
    seg005:F3F2 sub_F3F2:
    seg005:F3F2                 push    bc
    seg005:F3F3                 push    hl
    seg005:F3F4                 inir
    seg005:F3F6                 pop     hl
    seg005:F3F7                 pop     bc
    Данный сегмент зануляет один столбец экрана и вызывается в цикле до конца экрана.
    Команда INIR - читает из порта (C) и пишет в (HL), при этом увеличивая HL и уменьшая B, пока B не станет равен 0.
    При выполнении этого кода "в железе"наблюдается отсутствие приращения для регистра HL - картинка с ЛА по ссылке
    Буду копать причины такого поведения - до этого момента всё выполнялось вполне нормально.
    Самый первый столбец обнуляется совсем другим кодом:
    Код:
    seg007:F448 sub_F448:                               ; CODE XREF: seg007:loc_F42Fp
    seg007:F448                                         ; seg007:F438p
    seg007:F448                 push    bc
    seg007:F449                 push    hl
    seg007:F44A                 ld      d, a
    seg007:F44B                 cpl
    seg007:F44C                 ld      e, a
    seg007:F44D
    seg007:F44D loc_F44D:                               ; CODE XREF: sub_F448+9j
    seg007:F44D                 call    sub_F3C0
    seg007:F450                 inc     l
    seg007:F451                 djnz    loc_F44D
    seg007:F453                 pop     hl
    seg007:F454                 pop     bc
    seg007:F455                 inc     h
    seg007:F456                 dec     c
    seg007:F457                 ret
    
    seg004:F3C0 sub_F3C0:                               ; CODE XREF: sub_382E+1Ep
    seg004:F3C0                                         ; sub_F448:loc_F44Dp
    seg004:F3C0                 ld      a, (iy+0)
    seg004:F3C3                 and     d
    seg004:F3C4                 ld      c, a
    seg004:F3C5                 ld      a, (hl)
    seg004:F3C6                 and     e
    seg004:F3C7                 or      c
    seg004:F3C8                 ld      (hl), a
    seg004:F3C9                 ret
    seg004:F3C9 ; End of function sub_F3C0
    Сделано не самым оптимальным кодом, но авторам, видимо, было виднее...

    PS: Очень бесит, что по одним и тем же адресам в памяти пишутся разные подпрограммы. Раз - одна записана, через пару вызовов - уже другая и с другим стартовым адресомМоя не понимать, зачем так писалось...
    Завтра попробую понять причину некорректности обнуления памяти - из-за этого в дальнейшем каша на экране. А возможно и отсутствие символов связано с этим...
    "Байт-48"

  5. #514
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Область F000..F3FF - непереключаемая область страниц в режиме Ориона-128 и как переключаемая, так и нет в режиме ПРО (зависит от портов управления). В непереключаемой области места мало (плюс там еще системные переменные Монитора), а для межбанковских процедур его надо прилично (особенно это жмёт в режиме Ориона-128) - поэтому там и пишут процедуры одна поверх другой в мизерных не задействованных ничем областях.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  6. #515
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Область F000..F3FF - непереключаемая область страниц в режиме Ориона-128 и как переключаемая, так и нет в режиме ПРО (зависит от портов управления). В непереключаемой области места мало (плюс там еще системные переменные Монитора), а для межбанковских процедур его надо прилично (особенно это жмёт в режиме Ориона-128) - поэтому там и пишут процедуры одна поверх другой в мизерных не задействованных ничем областях.
    Если быть точнее, то это касается всей области F000-FFFF.
    Но вот причину такого поведения процессора я не могу понять. Может софтовое ядро проблематичное - сейчас я с ним работаю, поскольку с реальным пока имеются аппаратные проблемы.
    "Байт-48"

  7. #516
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Это исключит возможность использовать Альтаир-ДОС из ПЗУ. Конечно, в ПЗУ есть еще и ПРО-ДОС, но она несамодостаточная (там только код ОС и Нортон, и никакой файловой системы - чтобы что-то делать обязательно нужен дисковод FDD), тогда как в Альтаир-ДОС полноценная файловая система на весь расширенный (выше первых 64к) объем ПЗУ и файлы туда можно положить любые - это автоматизировано в моем TotalCommander (DoubleCommander, Far) плагине для работы с файловыми системами CP/M. Также, в пустые места первых 64к ПЗУ ROM2 я встроил "псевдо ромдиск-Ордос" (чтобы не делать для этого отдельную плату расширения) на 8к, управляется этим же плагином.
    Возвращаясь к теме - для компактного варианта платы я не нашел в продаже таких ёмких чипов. Может я что-то не так ищу, ткните носом...
    А так - можно обойтись и 1 корпусом. Просто в верхних 2Кб будет размещён ROM1-BIOS, выборка которого будет происходить "автоматом" путём выставления на всех старших адресах (А13 и далее) лог.1 - реализуется подобное достаточно легко. Ну и плату придётся чутка подправить, что бы все адресные ноги были заведены на логику.
    И самое главное - что бы чип был достаточно быстрым, поскольку время чтения составляет всего-то около 150ns при максимальной тактовой частоте (по результатам симуляции, по факту надо ориентироваться на ещё меньшую цифру, скорее всего). Вот кусочек захвата как раз с чтением из ROM2 (шаг выборок - 10ns):

    Из подобной быстрой памяти я нашел только SST39SF040 - в худшем случае скорость доступа составляет 70ns, что покрывает потребность "с запасом". Если надо будет увеличить разрядность - будет проще использовать несколько таких чипов, судя по всему.

    PS: И сейчас я всё-таки подумываю об отделении процессора с его логикой и ROM-ом на отдельную платку - тогда будет куда проще в остальном. Ну и на плате видео появится место для "творчества", о котором говорили ранее. ПГД будет проще организовать с такой же МС памяти, по таймингам она вполне удовлетворяет требованиям.
    "Байт-48"

  8. #517
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Итак, вопрос по памяти - насколько нужны 3-х и 4-х битный видеорежимы?
    Думаю всё-таки отделить основную память процессора от видеопамяти и разместить на плате видеоадаптера 1 чип двухпортовки (64К*16). К этой же памяти будет обращаться и процессор, а всё что выше - на плате процессора чипами обычной SRAM уже, если надо.
    Просто для 2-х битовых режимов (стандартных для простого Ориона) хватит и 1 чипа, а для более "широких" режимов смысл от установки 2-х чипов двухпортовки теряется уже - дешевле будет поставить более сложную схему управления обычной статикой и разместить всю память на плате видео (как сейчас).
    "Байт-48"

  9. #518
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всё, платы ушли в производство - видеомодуль и кроссовая.
    Картинки для видео:

    Скрытый текст

    [свернуть]

    Память поставил двухпортовую, 2 чипа по 64К*16. Порты F8 и FA выполнил на ТМ9 - ИР35 тяжело достать, пришлось отказаться.
    Вся схема выполнена на рассыпухе с применением GAL - здесь их 3 штуки (2 для счётчиков и 1 на видеовыход). Дешифрация портов и сигналы управления памятью будут заведены с процессорного модуля, где (скорее всего) будет стоять уже CPLD'шка.
    Так же добавил на будущее посадочные места под чип памяти в PLCC32 и 3 чипа в SOIC-16 (для последних разведено и питание).
    Так же очень много перфорации на полигоне с "землёй" для уменьшения количества "узких" мест для тока.
    Кроссовая плата - для подключения 5-и модулей и подачи питания на них (2 разъёма MOLEX, как для питания IDE).
    Пока запланировано 3 модуля - видео, процессорный и периферия (клавиатура, дисковод/эмулятор и прочее. пока ещё даже не думал над ним).

    Дополнено: Чип памяти 1.
    Последний раз редактировалось andreil; 28.08.2018 в 08:30.
    "Байт-48"

  10. #519
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    778
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andreil Посмотреть сообщение
    Память поставил двухпортовую, 2 чипа по 64К*16.
    А какую двухпортовку использовал (маркировка, питалово)? Чипы у тебя уже есть? Почём брал и где? Почему/зачем две двухпортовки?
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  11. #520
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    А какую двухпортовку использовал (маркировка, питалово)? Чипы у тебя уже есть? Почём брал и где? Почему/зачем две двухпортовки?
    1 - IDT7028L15PFI, 5В.
    2 - Уже идут, если что - возьму у другого продавца.
    3 - 45 юаней за штуку, на тао
    4 - Потому что имеется поддержка видеорежимов Орион-ПРО, где нужно 4 плоскости (32 бита). В текущем варианте все видеоданные идут напрямую с памяти на сдвиговые регистры, без защёлок и прочего.
    "Байт-48"

Страница 52 из 67 ПерваяПервая ... 484950515253545556 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Эмулятор ZX-Poly
    от Raydac в разделе Эмуляторы
    Ответов: 106
    Последнее: 24.01.2024, 11:52
  2. ОРИОН-2010 на ПЛИС.
    от Ewgeny7 в разделе Орион
    Ответов: 447
    Последнее: 23.11.2016, 12:27
  3. Еще один Ленинград 48
    от Ewgeny7 в разделе Ленинград
    Ответов: 0
    Последнее: 16.10.2007, 22:31
  4. Ещё один Д.Р.
    от GNTB в разделе Поздравления
    Ответов: 4
    Последнее: 19.07.2006, 01:52
  5. Ещё один подраздел
    от CityAceE в разделе Форум
    Ответов: 2
    Последнее: 22.05.2005, 11:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •