Verilator
Я уже писал про симуляцию Verilog HDL проектов в ModelSim и с помощью Icarus Verilog. Однако, конечно, существуют и другие средства. Один из самых быстрых симуляторов, и к тому же свободный и бесплатный, - это Verilator. У него есть свои особенности:
- Verilator позволяет преобразовать Verilog модули в C++ классы, которые потом компилируются в обычную исполняемую программу. Запускаем получившуюся программу - запускаем симуляцию. Это позволяет достичь очень высокой производительности.
- Verilator, может обрабатывать только синтезируемый Verilog, то есть именно тот код, из которого потом получается "прошивка" для FPGA. Поведенческие модели, всякие присвоения с задержками вроде A = #5 ~A; работать не будут.
- Из пункта 2 следует, что тестбенч для симуляции нужно будет писать не на самом верилоге, как обычно, а на C++. Впрочем, в некотором смысле это даже плюс.
Ниже я приведу несколько очень простых примеров использования симулятора Verilator. Я умышленно буду все упрощать, возможно даже слишком упрощать, чтобы было лучше понятно, что из себя представляет Verilator.
Подробнее...