Clashilator Alternatives
Similar projects and alternatives to clashilator
-
clash-pong
Pong in Haskell / Clash, running as software using SDL and as hardware targeting FPGAs
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
clashilator reviews and mentions
-
Show HN: Retrocomputing with Clash: Haskell for FPGA Hardware Design
Debugging via high-level simulation is something my book spends a lot of time on. If you look at the sample chapters, you can see that the same Clash code can also be compiled into software Haskell, which you can then interface with non-synthesizable test benches, such as an interactive SDL frontend. So you can take your HDL logic and run it directly, interactively in real time. You can play Pong by compiling the code as software.
One level lower, you can use Clash's signal-level simulator. Basically it gives you a synchronous stream of signal values, either as a lazy list (for "offline" simulation), or as an automaton that you can turn the crank on by feeding it the next clock cycle's inputs (for "online" simulation, i.e. where you want to do IO to compute the next input from the previous outputs). So at this level, you'd take your Pong circuit and use the automaton interface of the simulator to feed the virtual "pushbutton" states computed from e.g. keypresses, and then consume the output to do the rendering. Or simulate the whole circuit end-to-end and feed its output into a VGA interpreter, which you also get to write in Haskell.
If you need to debug at the Verilog level, you can use Clashilator (https://github.com/gergoerdi/clashilator) to automate FFI-ing into a Verilator-generated simulation.
-
Retrocomputing with Clash: Haskell for FPGA Hardware Design (book)
However, if it is lower-level simulation you want, Clash also has you covered for that. Clashilator makes it easy to interface with the open source Verilog simulator Verilator. This is not covered in the book, but most of the coe repos come with both high- and low-level simulation harnessing included.
Stats
gergoerdi/clashilator is an open source project licensed under MIT License which is an OSI approved license.
The primary programming language of clashilator is Haskell.