Tools for Quartz Programs
This web page offers teaching tools for compiling and simulating synchronous Quartz programs. The Quartz module must not have module calls, but everything else is allowed. Further examples can be found on Averest examples.
- The first tool translates Quartz modules to equivalent extended finite state machines (EFSMs) using the SOS rules of the language (seen if statements are shown in the states).
- For simulation, at least one driver is required that contains a Quartz statement that computes the inputs to the considered Quartz module. The driver runs in parallel, but is asymmetric in the sense that its steps are executed first, and then the step of the module follows without any feedback behavior to the driver. All given drivers are used for simulation, and the options should be self-explaining (for causality checking, you may want to see micro steps).
- Compilation to guarded actions usually generates an AIF system, i.e., guarded actions that are ready for execution. One can also compile a Quartz module to an AIF module that is not yet linked, and can be called in another module. To that end, it has a compile context where control-flow predicates can be read from.