ChiselSim is not a single tool but an ecosystem of simulation strategies integrated with Chisel. At its core, it leverages the fact that Chisel generates both synthesizable Verilog and a software-based simulation model in Scala/Java. Instead of running a separate Verilog simulator (like Icarus or ModelSim) after generation, ChiselSim allows designers to using a test harness that interacts with the generated circuit as if it were a software object.
Two main approaches define ChiselSim:
class CounterTest extends AnyFlatSpec with ChiselScalatestTester behavior of "Counter" it should "count when enabled" in test(new Counter) c => c.io.en.poke(false.B) c.clock.step(5) c.io.out.expect(0.U) // remains zero chiselsim
: Designed for RawModule subtypes. It does not include an initialization procedure; you must manually provide the reset stimulus and clock signals. Getting Started with ChiselSim ChiselSim is not a single tool but an
refers to the simulation and verification ecosystem built around Chisel (Constructing Hardware in a Scala Embedded Language). As a modern hardware construction language embedded in Scala, Chisel allows engineers to use high-level programming concepts like object-oriented and functional programming to generate synthesizable RTL (Register-Transfer Level) code for FPGAs and ASICs. As a modern hardware construction language embedded in
: Specialized libraries like berkeley-hardfloat are developed entirely in Chisel to perform complex floating-point arithmetic with custom recoded formats for high-performance computing. Hardware Acceleration Platforms