Симуляция компьютеров в Verilator

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
BarsMonster
Senior
Posts: 126
Joined: 21 Jul 2012 15:56
Location: Zürich, Switzerland

Симуляция компьютеров в Verilator

Post by BarsMonster »

Добрый день,

Вижу Proteus успешно используется для симуляции мелких компьютеров.
Но освоил ли кто-то Verilator? Он opensource, может быть быстрее, ну и вообще - Verilator это будущее.
Вопрос конечно упирается в модели. Либо нужны Verilog-модели всего, либо плагины пилить - но наверняка кто-то где-то это уже пилил.

Из первых примеров:
https://projectf.io/posts/verilog-sim-verilator-sdl/
https://youtu.be/K5M7aqQiXSI?t=634
https://ktln2.org/2020/05/24/vga-controller-simulation/
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Симуляция компьютеров в Verilator

Post by Shaos »

Я юзал Верилятор в ноябре-декабре 2018 года для тестирования своей версии RISC-V:
http://www.nedopc.org/forum/viewtopic.php?f=46&t=19179
http://www.nedopc.org/forum/viewtopic.php?f=84&t=10972
Померял скорость в вериляторе (который компилирует верилог в си++) - получилось, что за секунду моя модель RISC-V (см. https://gitlab.com/shaos/retro-v) успевает пробежать 1.8 миллионов тактов, что я считаю ОЧЕНЬ неплохо (т.е. 1.8 МГц частота виртуального процессора - это при в 2 раза большем количестве шагов симуляции т.к. симулируется clk=1 и потом clk=0)

P.S. А на домашнем AMD64 серваке получилось аж 2.2 МГц!!! :o

P.P.S. Прогнал Dhrystone собранный для RISC-V на вериляторе через свою модель (поставив правильное значение HZ для измерения счётчика RDCYCLE, который используется в Dhrystone варианте для RISC-V) ... что есть 1108 / 1757 = 0.63 DMIPS
http://www.nedopc.org/forum/viewtopic.php?p=148913#p148913

т.е. комп целиком так эмулить можно и даже можно на C++ написать эмулятор экранчика и клавки, но сам процык будет симулироваться медленно (порядка 2 МГц) на относительно современном железе...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
BarsMonster
Senior
Posts: 126
Joined: 21 Jul 2012 15:56
Location: Zürich, Switzerland

Re: Симуляция компьютеров в Verilator

Post by BarsMonster »

2МГц - это уже жить можно.
Вопрос теперь в том, где нарыть все модели периферии для nedopc - весь интеловский набор 8080/580 кроме процессора (который точно есть).
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Симуляция компьютеров в Verilator

Post by Shaos »

BarsMonster wrote:2МГц - это уже жить можно.
Вопрос теперь в том, где нарыть все модели периферии для nedopc - весь интеловский набор 8080/580 кроме процессора (который точно есть).
Ну прелесть верилятора в том, что всё недостающее можно написать на C++ ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net