JulianKemmerer / PipelineC

A C-like hardware description language (HDL) adding high level synthesis(HLS)-like automatic pipelining as a language construct/compiler feature.
https://github.com/JulianKemmerer/PipelineC/wiki
GNU General Public License v3.0
600 stars 49 forks source link

Build in compiled C based simulation #98

Open JulianKemmerer opened 2 years ago

JulianKemmerer commented 2 years ago

Currently each user/architecture is pretty easily able to put together a custom C "simulation" based on how their design works/is structured. They compile select parts of PipelineC designs typically with some C++ to help structure/drive the main parts of the code. Makes for verifying high level functionality of components very easy - its just simple C functions.

The dream is if instead somehow the entire PipelineC code could be compiled - multiple main functions, multiple clock domains - the whole design without any changes... probably needs good deal of glue/helper C++ idk...

:rainbow:

suarezvictor commented 2 years ago

Another solution for fast simulation, if the behavior differs a bit from C, is to genrrate C after parsing C. So, in the case of unrolled loops, you can generate the unrolled code