Симуляция компьютеров в 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: 24426
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 МГц) на относительно современном железе...
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: 24426
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

BarsMonster wrote:2МГц - это уже жить можно.
Вопрос теперь в том, где нарыть все модели периферии для nedopc - весь интеловский набор 8080/580 кроме процессора (который точно есть).
Ну прелесть верилятора в том, что всё недостающее можно написать на C++ ;)
User avatar
Lavr
Supreme God
Posts: 16803
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Shaos wrote: 02 Aug 2022 00:54 Я юзал Верилятор в ноябре-декабре 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
Я правильно понимаю, что итогом работы Верилятора будут вот такие графики? (ну или такого типа...)
Verilator-1.png
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 24426
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

Не - в случае C++ обвязки результатом будут логи работы твоей программы :)

А если городить полноценный эмулятор вокруг этой откомпилированной корки:
Shaos wrote: 02 Aug 2022 00:54 т.е. комп целиком так эмулить можно и даже можно на C++ написать эмулятор экранчика и клавки, но сам процык будет симулироваться медленно (порядка 2 МГц) на относительно современном железе...
и результатом будет картинка на виртуальном экранчике эмулируемом программно :mrgreen:
User avatar
Lavr
Supreme God
Posts: 16803
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Shaos wrote: 31 Oct 2025 20:52 Не - в случае C++ обвязки результатом будут логи работы твоей программы :)
...
и результатом будет картинка на виртуальном экранчике эмулируемом программно :mrgreen:
В интернетах этих наших попадалась мне информация, что есть некая САПР TINA (TINA Design Suite) ,
которая якобы позволяет моделировать проекты с ПЛИС в схемотехническом дизайне:
Tina.PNG
Но подробнее почитать времени не нашлось - своими делами занят...
You do not have the required permissions to view the files attached to this post.
iLavr
imsushka
Maniac
Posts: 310
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

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

Post by imsushka »

Lavr wrote: 01 Nov 2025 07:47
Shaos wrote: 31 Oct 2025 20:52 Не - в случае C++ обвязки результатом будут логи работы твоей программы :)
...
и результатом будет картинка на виртуальном экранчике эмулируемом программно :mrgreen:
В интернетах этих наших попадалась мне информация, что есть некая САПР TINA (TINA Design Suite) ,
которая якобы позволяет моделировать проекты с ПЛИС в схемотехническом дизайне:
Tina.PNG
Но подробнее почитать времени не нашлось - своими делами занят...
берешь квартус и рисуешь схему. все.
block diagram / schematic file
User avatar
Lavr
Supreme God
Posts: 16803
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

imsushka wrote: 01 Nov 2025 08:19 берешь квартус и рисуешь схему. все.
И будет графический экранчик, как пишет Шаос, и анимация всего проекта в реальном времени? :no:
iLavr
imsushka
Maniac
Posts: 310
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

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

Post by imsushka »

Lavr wrote: 01 Nov 2025 10:56
imsushka wrote: 01 Nov 2025 08:19 берешь квартус и рисуешь схему. все.
И будет графический экранчик, как пишет Шаос, и анимация всего проекта в реальном времени? :no:
не, будет сгенерированный квартусом код на верилоге или на вхдле
виртуально, на экранчике или на экране, может и работает, но в железе может и не будет работать