К тому что там написано "Исходный VHDL-код свободно доступен в сети Интернет" с ходу не нашел. Может здесь какие-то ссылки разместить, для реализации СРР модели, в БКашках (модули расширения) она тоже применялась.
У нас тут целая тема есть. 8910/12 особо реверсить не рвусь, просто сделаю панорамы, пусть полежат. С существующими моделями 8910 вроде не совсем все гладко, как я понимаю. Дойдут руки до прикручивания 8910 к ПЛИС-реплике БК - увидим, есть ли реальные проблемы с ней и надо ли их будет решать раскопкой 8910. Кристалл там маленький, нормы относительно большие, структура простая, поэтому подъемно.
В исходниках Speccy2010 есть реализация YM2149.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В CPP-коде модели обнаружилась ошибка формирования значения reg.plir, что впрочем никак не влияло на работоспособность, наверное потому что, пока не возникало требований немаскируемых прерываний.
Исправленный вариант вот: VM1CPPr006.rar
Кроме всего прочего там проведено множество изменений, вроде как считающихся оптимизациями, но изменение метода вычислений wires свело всё на нет. Работать прога стала даже медленней.
А из-за того, что даже в релизном варианте со всеми оптимизациями под x64 частота модели не превышает 320кГц (без распараллеливания и только задействуя одно ядро ЦП 4ГГц, что крайне удивляет). И это при полностью отключенном всём выводе диагностики и на экран, то дальнейшая работа как-то утрачивает смысл. Эмуляция процессора в реальном времени не получается.
plir только на начальный старт влияет, это режим ожидания деактивации nACLO.
Я микрокод потихоньку разбираю, скоро буду документировать. Может быть имеет смысл делать не эмуляцию всех схем как таковых, а именно микромашины? Пример - для АЛУ задана операция сложения, можно не вычитать все разряды поочередно, а просто выполнить сложение и выставить флаги. Аналогично для других операций. Тогда растактовка сохранится с отчностью до такта, возможно будет неточность на уровне полутактов, но сама суть независимо-работающих блоков и их растактовка сохранятся.
Изначально было понятно, что V-модель имеет смысл главным образом как "калибровочная" для настройки потактово идентичной A-модели.
Можно запустить эмулятор ДВК с адаптером МПИ и убедиться, что единственным внешним отличием поведения A-модели от поведения V-модели является в 20 раз более высокая скорость эмуляции.
- - - Добавлено - - -
Научный смысл в этом точно есть - можно будет сравнить быстродействие потактово идентичных V-, M- и A- моделей одного и того же процессора.
- - - Добавлено - - -
В 6-й версии V-модели есть ошибка, приводящая к отставанию на один такт фазы записи в циклах DATIO.
Вместо:
Код:wire.dout_start = wire.dout_req_rc && wire.qbus_flag_rc && !reg.rply_ack[3];
Должно быть:
Код:wire.dout_start = wire.dout_req_rc && wire.qbus_flag_rc && !reg.rply_ack[2];
Последний раз редактировалось Patron; 16.12.2015 в 20:43.
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)