Не совсем исчерпывающим. У ВМ1 ещё есть ноги со своими сигналами, не относящимися к МПИ: SEL1, SEL2 и т.п. модель ВМ1 предполагает их использование, даже логика на них завязана, например используются ноги PA (processor number) при работе с захватом шины. Собственно МПИ нужен для связи между объектами.
Я использую не оптимальный способ. у класса VM1 есть ещё внутренняя структура, по типу описанной, но перечисляющая все ноги процессора, допустим VM1_PINS. В функции eval_p() первым делом все данные, являющиеся входными для ВМ1 копируются из структуры МПИ в структуру VM1_PINS, затем выполняется вся логика, и при выходе из eval_p() выполняется обратное копирование всех данных, являющихся выходными для ВМ1, в структуру МПИ. При условии, что копирование разрешено. А то там Z состояние может быть, тогда копирование таких сигналов игнорируется. Сам класс VM1 является обёрткой над vm1_qbus - рабочим телом, у которого входных/выходных сигналов почти в 2 раза больше, чем ног у ВМ1.
Я сейчас не об этом думаю, мне сейчас надо любым доступным способом (желательно с минимумом умственных затрат) добиться работоспособности модели ВМ1, и я делаю это в лоб - эмуляцией шевеления сигналов на ножках процессора (ну такая вот модель у Vslav, он ведь не под программное использование её затачивал, а под хардварное), чтобы ничего нового не придумывать, а использовать придуманное ранее. А когда она заработает - максимально визуализировать внутреннюю логику работы. Делать эмулятор ЭВМ пока даже задача не стоит.
Чтобы модель ВМ1 можно было как-то программно использовать, её сначала надо бы оптимизировать под программное использование.
А оно сильно от Qsync отличается? Просто в архиве vm1_rev12j.rar папка Wsync без v файлов была, так что не с чем сравнивать, да и внутри БКшек тоже МПИ, привычно.





Ответить с цитированием
