SystemC vs Sparta #299
Replies: 2 comments 1 reply
-
Event OrderingWhen we started on the development of Sparta back in the day, we (3 engineers) listed numerous requirements Sparta needed to satisfy based on our 20+ years of building performance models and frameworks. A subset of the requirements can be found in this presentation. One of the main requirements, which SystemC lacks, is the ability to order events in simulation. Specifically, when modeling a block that has numerous inputs that are collected in the same cycle to form a single output (think about a mux) knowing when the modeler can calculate that final output is challenging. I believe SystemC solves this issue with the delta cycle, allowing a block to "recalculate" the output if new stimulus is provided in the same cycle. Sparta solves this problem by allowing a modeler to order events within a block or even across blocks. In this fashion the modeler can indicate that the calculation event must be scheduled after all input events are satisfied. No need to recalculate anything. If the calculation event is called, the modeler is guaranteed that all inputs are finalized. |
Beta Was this translation helpful? Give feedback.
-
This is a great thread.
Thanks |
Beta Was this translation helpful? Give feedback.
-
In this discussion, I wanted to elaborate on differences between SystemC and Sparta. This isn't a discussion on why one should use one framework over the other, but there are advantages of using Sparta over SystemC and vice-versa.
For my part of the discussion, I can list what I and others have added to Sparta that differ from SystemC. I hope others that wander into this discussion with a stronger background in SystemC than I can contribute as to the advantages of SystemC over Sparta. Of course, those deficiencies might turn into Sparta enhancements. 😉
Beta Was this translation helpful? Give feedback.
All reactions