Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Vslav, я долго стеснялся показать свое невежество, но рискну.
Не могли-бы Вы написать "Краткое руководство пользователя" к проекту "Верилог 1801ВМ1А/Г (версия 1.4e)".
Назначение кнопок, переключателей , индикаторов.
У меня китайская платка на EP4CE10 https://www.aliexpress.com/store/pro...5bdadf47rF6XKO
Та я сам не помню что там и как на стенде DE0, для выполнения Вашей просьбы пришлось открывать de0_top.v и вспоминать что к чему. Так что стесняться нечего, мне даже приятно что кто-то заглянул внутрь проекта
Переключатели (сигналы de0_sw[]):
- используется только один, нулевой, управляет генерацией прерываний таймера 50Гц, фактически аналог клавиши "ТАЙМЕР" на ДВК
- когда таймер включен зажигается нулевой светодиод, таймер выключен - светодиод не горит
Кнопки (сигналы de0_button[]):
- кнопка номер 2 отвечает за сброс процессора. Программа записывается при загрузке FPGA во внутреннее ОЗУ на М9К, если она в ходе предыдущих исполнений разрушена - может не стартануть. Стартовый адрес - нулевой.
7-сегментные индикаторы - отображают записанное значение в регистры:
- 177714 - младшие два индикатора
- 177715 - старшие два индикатора (обращение словное всегда, по A0 идет различие регистров)
Периферия:
- стандартный консольный порт на скорости 115200, по 177560/177564 c векторами 64/60.
- таймер 50 Гц, на IRQ2, маскируется нулевым переключателем при необходимости
- 8К*16 ОЗУ, с изначально загруженной программой
Ну, в-общем-то, и все. Если есть конкретные вопросы - спрашивайте.
Нет, 4 индикатора по 8 сегментов в каждом - 32 бита всего.
Слово, записанное по 177714 отображается в младших 16 битах, а записанное в 177715 - в старших 16 битах.
Пример подпрограммы (из ztest/test.mac), выводящей в 16-ричном виде значение из R0:
Моя сборка использует RTS/CTS хенд-шейк. Их тоже желательно подключить. Можно попробовать отказаться, но при объявлении модуля uart надо будет подать 0 на вход tx_cts_i.Код:outhex: mov R1, -(SP) ; mov R0, -(SP) ; ; bic #177760, R0 ; movb 1$(R0), R1 ; mov (SP), R0 ; asr R0 ; asr R0 ; asr R0 ; asr R0 ; bic #177760, R0 ; movb 1$(R0), R0 ; swab R0 ; bis R0, R1 ; mov R1, @#177714 ; ; mov (SP), R0 ; swab R0 ; bic #177760, R0 ; movb 1$(R0), R1 ; movb 1(SP), R0 ; asr R0 ; asr R0 ; asr R0 ; asr R0 ; bic #177760, R0 ; movb 1$(R0), R0 ; swab R0 ; bis R0, R1 ; mov R1, @#177715 ; ; mov (SP)+, R0 ; mov (SP)+, R1 ; rts PC ; ; 1$: .byte 077, 006, 133, 117 ; .byte 146, 155, 175, 007 ; .byte 177, 157, 167, 174 ; .byte 071, 136, 171, 161 ;
Такая же как у обычного 1801ВМ1 - переход в пульт (установка 10 в 177716 и переход по вектору 160002)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Спасибо, не сразу, со скрипом, но въехал. Я бы сделал это аппаратно - отправил в регистр 177714 и вывел на индикатор с MAX7219 https://www.aliexpress.com/item/Free...AbTest=ae803_1, это бы заняло 40LE.
Меня здорово смутил нечетный адрес 177715.
С UARTом понятно, нужно пробовать.
HALT тоже ясно.
Мой последний контакт с PDP был 25 лет назад.
Искал-искал темы по сбоям памяти МС1201.03, так и не нашел, спрошу здесь, так как касается напрямую ВП1-119.
Вопрос такой - а что делает на плате перемычка S4, которая между выводами 9 и 39 ВП1-119? Вывод 39 - это "честный" nRPLY, выдается после окончания операций записи и чтения с коррекцией или без. А вот 9 - это "быстрый" nRPLY, выдается примерно через 100 нс после активации выхода nCAS при операциях чтения. Фактически на такт CLK раньше чем на ножке 39. Если коррекции нет, то все нормально, память DRAM успевает выдать данные на шину. А вот если коррекция есть, то nCAS снимается и сразу активируется S1, разрешая 555ВЖ1 выдать скорректированный код. Но это происходит по факту после 100 нс после активного Fast RPLY. И корректированный код может не успеть попасть на шину. Может быть кто видел описание или документацию когда эта перемычка S4 ставится/снимается? Это может влиять на устойчивость чтения из памяти.
- - - Добавлено - - -
Еще замечательное - 9 ножка всегда генерирует ответ, даже если возникла некорректируемая ошибка чтения (фронт на DEF).
Кто-нибудь смотрел исходники теста памяти в РЕ2-134? Двойные ошибки по зависанию шины ловятся или как? Потому что, похоже, что зависания шины при установленной перемычке S4 не будет.
- - - Добавлено - - -
Если со стороны процессора поступил запрос на запись слова в DRAM, то активируется выход nWE, который поступает без изменений через буфер на входы nWE микросхем памяти. Но, если в этот момент поступает запрос на рефреш, то будет выполнен цикл рефреша с соответствующим адресом страницы. Сигнал nWE при этом остается активным. Рефреш выполняется ВП1-119 по схеме CAS-before-RAS и рассчитан на микросхемы 565РУ7. Для микросхем 565РУ5 на плате МС1201.03 используется отдельная схема, подавляющая при рефреше nCAS. Но работает она не всегда идеально, появляются иголки. Итого - выполнение рефреша при активном nWE может приводить к нежелательной записи выставленных данных по адресу рефреша, а не по адресу выставленному процессором. Это может объяснять порчу других ячеек в тесте когда процессор долбит какой-то один адрес, а разрушаются другие адреса.
Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения [email protected]
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)