sccr performs the tasks of communication refinement on the specified SIR file.
A SIR file is a binary file containing the SpecC Internal Representation of a design. sccr reads the SIR file specified with design and refines the communication in it. When done, sccr writes back the modified design into the same file, unless the -i or -o options are used.
On successful completion, the exit value 0 is returned. In case of errors, an error code with a diagnostic message is written to standard error and the program execution is aborted with the exit value 10. In this case, no output is produced. In other words, the specified design is left unchanged.
specifies the design to work with; if no -i or -o options are specified, the suffix '.sir' will be appended to this name in order to obtain the SIR file to read and write, respectively;
-floose | -ftight | -fall
determines coupling and, in combination with layering mode (option -l),
placement of synchronization functionality in relation to protocol and
media access layers; by default, synchronization functionality is decoupled
and placed next to link layer implementations; -floose will merge
interrupt detection and generation logic with interrupt detection and
generation protocols; -ftight will also merge send and receive flags
with protocol and media-access layers; finally, -fall will merge all
synchronization code, including polling flags and behaviors, with
associated bus protocols;
-h
prints a short usage and version information and then quits;
-i input file
specifies the name of the input file explicitly; the name '-' can be used to specify reading from standard input;
-l
enables layering mode, which wraps all hardware components into an additional bus-functional (or transaction-level, see -t) shell to separate lower protocol and media-access layers from synthesized link-level code;
-n
suppress creation of new log information when generating the output SIR file (default: update log information); see also section ANNOTATIONS below;
-o output file
specifies the name of the output file explicitly; the name '-' can be used to specify writing to standard output;
-t
enables transaction-level model output;
-v
enables verbosity mode; all actions performed are logged to standard error;
The following 5 types of annotations are needed to make sccr sccr run:
specifies the name of the top level behavior to be refined in the design. It is required and must be attached to the design. For example, note _SCE_TOPLEVEL = "TopBehaviorName";
specifies which behavior is mapped to which component. It is required for the Top Behavior and can be omitted for behaviors below the Top Behavior. For behavior without this annotation, scar assumes that it inherits its parent's mapping. For example, note BehaviorName._AR_MAPPED_TO = "componentName";
specifies the connection between ports of components and busses to define the topology of communication architecture. For example, note _NR_CONNECTIVITY = "portName1, busName1, protoName1, ...";
specifies the mapping of channels to busses. For example, note _NR_MAPPED_TO = "busName";
specifies the mapping of channels to addresses or interrupts. For example, note _CR_MAPPED_TO = "busAddr1, intA";