vak: (Default)
[personal profile] vak
МЭСМ-6 уже проходит несколько тестов: работают команды uj, vtm, utm, mtj, vzm, v1m, j+m, vjm, vlm, utc, wtc.

Я добавил в фазу decode автоматическое приращение счётчика команд (PC), теперь некоторые команды выполняются за один такт (vtm, utm, mtj. j+m).

Описание микроархитектуры по мере разработки постепенно образуется на странице: https://github.com/besm6/mesm6/wiki/Microarchitecture

Date: 2019-03-23 05:36 (UTC)
x86128: (Default)
From: [personal profile] x86128
Тут вот как раз есть над чем подумать.
Либо сделать панель на общей схеме и смотреть. Либо сделать панель внутри процессора и там смотреть.

Сейчас big picutre без эстетики такой:


Надо модули подвигать и выполнить остальные тесты - ведь наверняка там еще куча ошибок. Только в команде UJ было 2 ошибки поскольку в коде написан был селектор источника PC не в порядке значений констант в условии. Ну и ошибки в вычислении upc_next так как я срисовал с wiki а не из кода. Потом еще микрокод менялся и пришлось чуть чуть переделать секвенсер.

Date: 2019-03-23 09:40 (UTC)
x86128: (Default)
From: [personal profile] x86128
Я об этом думал. Сам Logisim хранит модель в виде xml файлов с достаточно простой структурой.
Сложность представляет алгоритм автоматического layout по поверхности. Я там понял там совсем всё не тривиально судя по активности в проектах типа nextpnr и др. для реальных ПЛИС и ASIC.

Да и особо смысла нет, так как моделирование очень медленное получается.

Date: 2019-03-24 07:53 (UTC)
x86128: (Default)
From: [personal profile] x86128
Если посмотреть внутренности xml-файла который сохраняет logisim, то там видно что провода привязаны не к пинам элементов, а к координатам.
Если бы там хранился обычный netlist то я думаю была бы уже целая куча подобных тулов.
В Digital так же привязано к координатам всё.