Проект МЭСМ-6 помаленьку двигается. Уже работают 27 машинных команд (из 49). Евгений x86128 для наглядности перерисовал схему процессора в популярном симуляторе Logisim.
А logisim потянет его эмулировать с какой-нибудь вменяемой скоростью? Или нет такой цели? Я студентам в нём показываю частенько что-то, но по мелочам, а не целиком процессор конечно...
На моей машине core i5 @ 3.1GHz получается примерно 100 маш. циклов в секунду. Люди конечно заморачиваются оставляют моделирование на ночь, либо пишут как плагины большие кусоки процессора, а сам logisim используют как плату для макетирования. В общем скорость совершенно невменяемая :) Цели моделировать в logisim нет (не говоря уже о создании нового функционала процессора), но оценить трудозатраты советского инженера-сборщика-отладчика при потактовой отладке можно. По большому счету я начал рисовать МЭСМ6 в logisim чтобы проверить себя - смогу ли я дальше идти по пути создания настольной интегральной БЭСМ-6. А это как раз и не оценить без модели: 1) отлаженной verilog модели, за что большое спасибо Сергею и Леониду 2) максимально близкой к железу по количеству пучков проводов logisim модели.
Кстати, нашелся симулятор Digital https://github.com/hneemann/Digital Как раз для студентов самое то. Поддерживает 64-битные шины. Пожалуй, я периресую схемы в нем.
Пока с этим Digital собираю грабли: 1) Он прописывает внутри модели абсолютные пути к hex-ам ROM-файлов. И соотв. при переносе между разными машинами ругается. 2) Каждый запуск сбрасывает в 0 все модули RAM, поэтому для работы тестов где есть необходимость в RAM, надо глобально в настройках указывать hex-файл образа памяти и ставить галочку на компоненте DRAM - programm memory. 3) Нельзя поставить симуляцию на паузу для изучения состояния суб-модулей основной схемы, поэтому пришлось её сделать плоской.
Скорость приличная, конечно, пока еще в ALU не доделаны все операции. У меня получается на машине в районе 500кГц
Модель в Digital это баловство, не больше. Но почему бы и нет? :)
Такая модель полезна, чтобы у студентов возникало представление, что стоит за строчками Verilog-кода. С опытом потребность в картинках отпадает. Ровно так же опытные программисты не рисуют блок-схемы алгоритмов: из кода и так всё понятно.
Абсолютные пути это, конечно, западня. Может быть сделать скрипт, который бы их превращал в относительные перед коммитом.
no subject
Date: 2019-03-23 06:37 (UTC)no subject
Date: 2019-03-23 09:35 (UTC)В общем скорость совершенно невменяемая :)
Цели моделировать в logisim нет (не говоря уже о создании нового функционала процессора), но оценить трудозатраты советского инженера-сборщика-отладчика при потактовой отладке можно.
По большому счету я начал рисовать МЭСМ6 в logisim чтобы проверить себя - смогу ли я дальше идти по пути создания настольной интегральной БЭСМ-6. А это как раз и не оценить без модели:
1) отлаженной verilog модели, за что большое спасибо Сергею и Леониду
2) максимально близкой к железу по количеству пучков проводов logisim модели.
no subject
Date: 2019-03-24 02:50 (UTC)Как раз для студентов самое то.
Поддерживает 64-битные шины.
Пожалуй, я периресую схемы в нем.
no subject
Date: 2019-03-24 07:37 (UTC)no subject
Date: 2019-03-25 17:14 (UTC)1) Он прописывает внутри модели абсолютные пути к hex-ам ROM-файлов. И соотв. при переносе между разными машинами ругается.
2) Каждый запуск сбрасывает в 0 все модули RAM, поэтому для работы тестов где есть необходимость в RAM, надо глобально в настройках указывать hex-файл образа памяти и ставить галочку на компоненте DRAM - programm memory.
3) Нельзя поставить симуляцию на паузу для изучения состояния суб-модулей основной схемы, поэтому пришлось её сделать плоской.
Скорость приличная, конечно, пока еще в ALU не доделаны все операции. У меня получается на машине в районе 500кГц
Модель в Digital это баловство, не больше. Но почему бы и нет? :)
no subject
Date: 2019-03-25 17:32 (UTC)no subject
Date: 2019-03-27 23:05 (UTC)Абсолютные пути это, конечно, западня. Может быть сделать скрипт, который бы их превращал в относительные перед коммитом.
no subject
Date: 2019-03-23 21:24 (UTC)