PDA

Просмотр полной версии : Содержимое D36/155РЕ3, а возможно и D37



megov
30.01.2022, 23:30
Здравствуйте, коллеги!

Завершив борьбу с Burn_RT 1.1, занялся дальнейшими раскопками и вычитал обе родных РЕ3 со своего Вектора (+сделал копии)

В D36, которая заведует распределением RAS/CAS/MXn и остальных основных сигналов временной диаграммы, я нашел следующее


U8 data[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x99, 0x99, 0x99, 0xD9, 0xDB, 0x9A, 0xDB, 0xDB,
0x05, 0x0D, 0x09, 0x23, 0x07, 0x17, 0x15, 0x1D,
0x9D, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07
};


Это совпадает с тем, что приведено в доке к Астраханской редакции Вектора http://sensi.org/scalar/ware/514/
Но тут на форуме я встречал снятые логическим анализатором USBee диаграммы, к сожалению картинки сохранил,
но автора не запомнил :( Картинка немного переделана для выравнивания на цикл - приятно, когда ИЕ7 в схеме считает с нуля.

https://b.radikal.ru/b22/2201/12/cc67b7c5855et.jpg (https://radikal.ru/big/axrj7qz1wcpwp)

И тут прошивка явно отличается от моей, как минимум в том, что RAS возвращается в 1 не раньше CAS, а вместе с ним.
По картинке были подсмотрены значения ячеек ПЗУ и сохранена альтернативная прошивка.
Для осознания поведения сего аппаратно-программного узла был написан эмулирующий код на GCC, который по
прошивке строит "осциллограмму", отталкиваясь от 12MHz С0 сигнала. Получилось следующее:



Starting Their RE3...
ADDR :1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
:0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F
CLK12 :_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_ ^_^_^_^_^_^_^_^
CLK6 :__^^__^^__^^__^^__^^__^^__^^__^^__^^__^^__^^__^^_ _^^__^^__^^__^^
CLK3 :____^^^^____^^^^____^^^^____^^^^____^^^^____^^^^_ ___^^^^____^^^^
CLK1_5 :________^^^^^^^^________^^^^^^^^________^^^^^^^^_ _______^^^^^^^^
CLK0_75 :________________^^^^^^^^^^^^^^^^________________^ ^^^^^^^^^^^^^^^
A4 :^^^^^^^^^^^^^^^^____________^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
DATA :0 0 0 2 0 1 1 1 9 9 9 D D 9 0 0 0 0 0 2 0 1 1 1 9 0 0 0 0 0 0 0
:5 D 9 1 7 7 5 D D 9 9 9 9 A 6 7 5 D 9 1 7 7 5 D D 7 7 7 7 7 6 7
!RES :^^^^^^^^^^^^^^^^^^^^^^^^^^____^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^__^^
!RAS :________^^^^______________^^^^^^________^^^^_____ _^^^^^^^^^^^^^^
!CAS :^^^^____^^^^^^^^^^__________^^^^^^^^____^^^^^^^^^ ^^^^^^^^^^^^^^^
MX1 :__^^^^________^^^^^^^^^^^^^^______^^^^________^^^ ^______________
MX2 :__________^^^^^^^^^^^^^^^^^^______________^^^^^^^ ^______________
WVR :______^^______________________________^^_________ _______________
W :______________________^^^^_______________________ _______________
SET :________________^^^^^^^^^^^^____________________^ ^______________


На моей прошивке получается так:


Starting My RE3...
ADDR :1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
:0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F
CLK12 :_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_ ^_^_^_^_^_^_^_^
CLK6 :__^^__^^__^^__^^__^^__^^__^^__^^__^^__^^__^^__^^_ _^^__^^__^^__^^
CLK3 :____^^^^____^^^^____^^^^____^^^^____^^^^____^^^^_ ___^^^^____^^^^
CLK1_5 :________^^^^^^^^________^^^^^^^^________^^^^^^^^_ _______^^^^^^^^
CLK0_75 :________________^^^^^^^^^^^^^^^^________________^ ^^^^^^^^^^^^^^^
A4 :^^^^^^^^^^^^^^^^____________^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
DATA :0 0 0 2 0 1 1 1 9 9 9 D D 9 0 0 0 0 0 2 0 1 1 1 9 0 0 0 0 0 0 0
:5 D 9 3 7 7 5 D 9 9 9 9 B A 7 7 5 D 9 3 7 7 5 D D 7 7 7 7 7 7 7
!RES :^^^^^^^^^^^^^^^^^^^^^^^^^^__^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
!RAS :______^^^^^^____________^^^^^^^^______^^^^^^_____ _^^^^^^^^^^^^^^
!CAS :^^^^____^^^^^^^^____________^^^^^^^^____^^^^^^^^^ ^^^^^^^^^^^^^^^
MX1 :__^^^^________^^^^^^^^^^^^^^______^^^^________^^^ ^______________
MX2 :__________^^^^^^^^^^^^^^^^^^______________^^^^^^^ ^______________
WVR :______^^______________________________^^_________ _______________
W :______________________^^^^_______________________ _______________
SET :________________^^^^^^^^^^^^____________________^ ^______________


Что мне пока не до конца ясно, так это то, что в схеме бит адреса A4 заведен как результат обратной связи выхода Q7 ПЗУ
и сигнала 11 шины управления по И/НЕ. Как я понимаю, такой подход делает из простой комбинаторной схемы некое подобие
конечного автомата и бит SET/Q7 как раз переключает ветки выбора (и половинки ПЗУ).
Судя по схеме, сигнал 11 шины управления установлен в 1 при любом обращении к памяти (или на элементе D15.3)

Соответственно, есть вопрос: существуют ли дампы D36 отличные от приведенного здесь, и, если существуют,
можно ли ими поделиться. Ибо 32 байта можно и текстом отписать.

Спасибо!

tnt23
31.01.2022, 00:00
Эмулятор времянок красивый. Что задние фронты (0->1) RAS и CAS не совпадают, в том, по-моему, большой беды нет. Для циклов записи и чтения важны передние фронты (1->0) RAS/CAS/WR, если я правильно помню.

По существу вопроса ничего сказать не могу.

megov
31.01.2022, 00:13
Эмулятор времянок красивый.

Да так, накорябал между делом.

Это понятно, что для DRAM падающие в 0 !RAS и !CAS являются стробами адреса,
но, например у коллег как раз с задними фронтами были проблемы: https://zx-pk.ru/threads/22217-combodevice.html?p=682446&viewfull=1#post682446

Для понимания, какую функциональность воткнули в D36, хотелось бы всю картину обозреть, включая другие прошивки.

Improver
31.01.2022, 06:44
существуют ли дампы D36 отличные от приведенного здесьКажется, в описании ERAM была доработка Вектора с заменой прошивки РЕ3, там как раз что-то менялось в ras/cas. Прошивка и описание было в Вектор-User.

tnt23
31.01.2022, 12:45
Это понятно, что для DRAM падающие в 0 !RAS и !CAS являются стробами адреса,
но, например у коллег как раз с задними фронтами были проблемы: https://zx-pk.ru/threads/22217-combo...l=1#post682446

Там не вполне понятно, о чем речь:


Оказалось, что в цикле обращения к памяти у Вектора сигнал /RAS снимается до /CAS


Можно понять двояко: либо /RAS снимается до активации /CAS (и тогда это что угодно, но не цикл обращения к памяти - а какой-нибудь цикл регенерации), либо /RAS снимается до деактивации /CAS (а тут надо смотреть время удержания /RAS и как оно мешает работе с быстрой памятью).

nzeemin
01.02.2022, 00:01
Для осознания поведения сего аппаратно-программного узла был написан эмулирующий код на GCC, который по
прошивке строит "осциллограмму", отталкиваясь от 12MHz С0 сигнала. Получилось следующее:


Немного оффтоп, но для красивой картинки можно ещё было генерить WaveDrom JSON - https://wavedrom.com/

megov
01.02.2022, 00:34
Оказалось, что в цикле обращения к памяти у Вектора сигнал /RAS снимается до /CAS

Может и двояко, но я понимаю "снятие" как возвращение к неактивному уровню (1). И действительно, на моей РЕ3 !RAS снимается где на такт,
а где и на два раньше !CAS (такт=12Мгц):


C0_12M:_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_ ^_^_^_^_^_^_^_^_^_^_^
RAS:______^^^^^^____________^^^^^^^^______^^^^^^__ ____^^^^^^^^^^^^^^
CAS:^^^^____^^^^^^^^____________^^^^^^^^____^^^^^^ ^^^^^^^^^^^^^^^^^^


В то время, как у коллег снятие !RAS задержано на такт и фронты !RAS и !CAS выровнены в 2х из 3х обращений:


C0_12M:_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_^_ ^_^_^_^_^_^_^_^_^_^_^
RAS:________^^^^______________^^^^^^________^^^^__ ____^^^^^^^^^^^^^^
CAS:^^^^____^^^^^^^^^^__________^^^^^^^^____^^^^^^ ^^^^^^^^^^^^^^^^^^


Я еще не осознал общесистемную циклограмму Вектора, поэтому надо в программулину добавить CPU
с его фазировкой и циклами, чтобы лучше понять взаимодействие. Кроме того мне подозрительна обратная
связь с Q7/D36 на A4/D36 через 2И-НЕ с сигналом 11 шины управления. Сигнал 11 я идентифицировал как
MEM, равный 1 при обращении CPU к памяти, и который переключает половинки РЕ3.

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


Немного оффтоп, но для красивой картинки можно ещё было генерить WaveDrom JSON - https://wavedrom.com/

Так-то, безусловно, спасибо. Но в трудовой деятельности уже настолько поддостали всяческие hi-tech порождения и современные подходы
ничем не ограниченного программистского гения, типа RxJav'ы, Spock'a, Swagger'а и Docker'а с Kubernetes'ом дополненных многочисленными
OpenAPI'ями, YAML'ами и JSON'ами, что сильно хочется на простом С порисовать крестиками и ноликами. :v2_dizzy_rastoman:
Ну и за паяльник взяться с правильной стороны!

svofski
01.02.2022, 12:48
Так-то, безусловно, спасибо. Но в трудовой деятельности уже настолько поддостали всяческие hi-tech порождения и современные подходы
ничем не ограниченного программистского гения, типа RxJav'ы, Spock'a, Swagger'а и Docker'а с Kubernetes'ом дополненных многочисленными
OpenAPI'ями, YAML'ами и JSON'ами, что сильно хочется на простом С порисовать крестиками и ноликами.
Ну и за паяльник взяться с правильной стороны!
Оффтопно солидарен =)