С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В свое время… лет 15 назад (уж очень быстро время летит) была идея сравнительного проекта по клонам Спекки. Вкратце: находим подходящий эмулятор, переносим в него схему(ы) и моделируем работу. Оцениваем совместимость (такты, прерывания, задержки) и получаем оценку. Заносим в сравнительную табличку.
Но найти эмулятор, учитывающий реальные особенности тех или иных схем, не удалось. Дело в том, что для «настройки» (чуток странный термин для цифровых автоматов) часто навешивали емкости или RC-цепочки. На задержки (и что хуже питание) влияла конкретная разводка плат. А еще была мешанина из разных серий (155/555/1533). А еще эти серии имели немалый разброс (не говоря уже про память и другие капризные блоки).
В общем вывод был такой: в эмуляторе все может быть неплохо, а на практике клон капризный в работе или сбоит или артефакты на экране. Поэтому считаю, что ничего лучше конкретной практики (сборка/запуск/тестирование) с железом не дает его оценки. Еще раз повторюсь: это для конкретной задачи по старым клонам, а не для моделирования.
Вопрос в том, насколько мелкий этот элемент. Я поначалу так и планировал, но потом пришлось отойти в сторону крупно-блоковой эмуляции. Эмулировать микросхемы на уровне сигналов слишком медленно, и требуется достаточная точность эмуляции этих сигналов. Даже если учесть, что с момента создания первой версии моего эмулятора, скорость наших PC возрасла в 10 раз, то на мой взгляд это пока невозможно. Протеус хотя и может кое-что, но это всё-же пока не realtime, особенно для более сложных поделок, а не просто процессор+ПЗУ+ОЗУ.
Спасибо всем за ответы! Я примерно так себе ситуацию и представлял, но на всякий случай всё-таки решил уточнить.
Тогда следующий вопрос. А существуют ли в природе эмуляторы, которые эмулируют процессор не симулируя поведение каждой отдельно взятой команды, а эмитируя обработку битов, выставленных на адресной шине и шине данных и других сигналов. Немного поясню. У меня за плечами несколько эмуляторов разных процессоров, написанных с нуля. Везде я использовал один и тот же подход: берём байт из памяти и переходим на подпрограмму, соответствующую команде, зашифрованной этим байтом или их последовательностью, а эта подпрограмма уже меняет значение регистров и флагов в соответствии с документацией. Таким образом, при таком подходе нет места каким-то недокументированным командам, если только не написать соответствующие подпрограммы. А хочется чтобы эмулятор процессора пусть и не потранзисторно, но как-то на более низком уровне обрабатывал поступающую информацию, чтобы, например, недокументированные команды и другое недокументированное поведение работаю автоматически. В общем, чтобы написать эмуляцию процессора, а все возможные команды заработали автоматически и максимально правильно (идеально).
С уважением, Станислав.
я делал что то вроде такого, но х.з. насколько правильно https://github.com/raydac/zxpoly/blo...a/z80/Z80.java
подобное например сделали после реверса AY
https://github.com/lvd2/ay-3-8910_reverse_engineered
Код:// This verilog model of the AY chip was made from the transistor-level schematics // recreated by deathsoft. He used high-resolution photos of the AY's decapped die. // // The purpose of this model is to be as close to the schematics as possible, // wihout ever trying to be synthesizable. Suitable only for simulations!
Есть еще смешанный подход. CPU реальный, а все остальное на PC( или другом компе). Я кучу таких плат в Америке напокупал под z80, 8085, 6809 (эти мне спаяли), а 1802 и прочее осталось в виде деталей. То есть видеоконтроллер и прочие причиндалы компа от PC, а процессор какой есть реальный. Правда чтобы прогон обеспечить на 100% скорости приходится дополнительное железо городить. На низкой достаточно AVR.
И никакой Proteus это автоматом не поддерживает. Чтобы начертил схему, вставил CPU в колодку и вперед, экспериментируй сколько влезет.
взять тотже z80 его по транзисторная модель выполняет несколько команд в секунду. интел на 4ггц. зато все недокументированности в наличии
ну тогда должно быть ПО, которое автоматически получает такую модель из транзисторной модели, а та в свою очередь получается из снимков слоев распотрошенной микросхемы. Внешние проявления "жизнедеятельности микросхемы" видны, если записывается состояние всех ее выводов с частотой превышающей ее тактовую частоту.
Есть такие инструменты?
- - - Добавлено - - -
в идеале нужен всего один
zif-сокет в случае ASIC DIP, устройство сопряжения и система с ИИ. Ставишь чип, программа прогоняет его по полной, сравнивая с имеющейся моделью, при несоответствии предлагает разработчику модель скорректировать (пока недообученная система). Затем повышает уровень модели снизу-вверх и вуаля все эмулирует. Как соединить отдельные модели чипов в работоспособную схему это задачка посложнее. Если она и это станет делать без участия человека, то отсюда уже недалеко и до "восстания машин"
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)