Проблема в том, что за один f2, который является enable, проскакивает несколько posedge clk? Наверное это можно решить добавив еще один сигнал, который по posedge clk и f2 сделает disable. Но его тоже надо как-то сбрасывать. В общем это та еще возня![]()
Больше игр нет
Пытаюсь разобраться в эмуляции на плисе "580vm80a" и что-бы хоть что-то в ней найти, ещё и пытаюсь экспериментировать с modelsim...
Написал программку в несколько строк, скомпилировал для проекта "580vm80j", всё остальное в архиве уже есть для симуляции в modelsim.
Сам проект "vm80" без изменений, заменил только код программы выполняемой процессором при симуляции.
Запускаю, разглядываю графики, и ни как не могу понять, почему после команды 05h - "dcr b", на шину адреса попадает состояние регистровой пары "BC"...
Скриншот в прицепе.
С моей точки зрения, при выполнении команды "dcr b", значение пары "ВС" не должно попадать на шину адреса... или я что-то не понимаю?
А после команды 23h - "dcx h", на шину адреса вылазит значение пары "DE" (предположительно).
https://disk.yandex.ru/i/el8u23GE4oYNmg
Последний раз редактировалось KTSerg; 04.09.2022 в 19:45.
Oleg N. Cher(04.09.2022)
А по какому признаку определяется валидность адреса на шине? Я позабыл. По идее все время, пока этого признака нет нет, там может быть любой мусор. А в этих процах все кишками наружу торчит.
Больше игр нет
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Проверить, не попадает ли на ША содержимое регистровых пар сравнительно просто, например так
Скрытый текст
Код:loop: lxi d,0123h lxi h,4567h lxi b,89ABh lxi sp,CDEFh dcx b lxi d,1230h lxi h,5674h lxi b,9AB8h lxi sp,DEFCh dcx b jmp loop[свернуть]
Если мне не изменяет память, для декремента/инкремента регистровых пар используется то же исполнительное устройство, что и для PC, возможно это сказывается.
Особого криминала на временной диаграмме не видно, когда на ША "странные" адреса сигналы чтения и записи не активны.
В модуле процессора нашел вот такие стоки:
mxo - содержит значение регистровой пары с которой, в данный момент, идет работа.Код:module vm80a( ... assign mxwadr = t3363 | (t4f1 & ~id_dad & ~id_hlt); ... always @ (posedge clk) if (f2) begin if (mxwadr) a <= mxo; ...
Приведённый кусок фактически говорит, что на каждом 4-ом такте, на шину адреса выкидывается содержимое текущей регистровой пары.
А 4-ый такт в моей тестовой проскакивает часто, включая команды: inx h\ inx d\ dcr b.
Посмотрел свои старые сканы ВУ, сделанные с настоящим процессором и с ПЛИС-вариантом.
ШАВВ идентична, а так как она часть шины адреса процессора, то можно считать, что и у настоящего процессора на ША выкидываются "потроха"...
Но когда совместил графики сканов ПЛИСа и реального процессора в одной анимации, то обнаружил интересную фишечку...
У ПЛИС-процессора изменения ШД, ШАВВ, ЧТЗУ - происходят по фронту CLK (6МГц), а у реального процессора - по спаду.
анимация сканов - https://disk.yandex.ru/i/QvpWt2JQWRtFsw
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)