scar is the Architecture Refinement Tool for the SpecC Language and System Level Design Methodology. scar automatically transforms a SpecC Specification Model into an SpecC Architecture Model, directed by design decisions about architecture allocation and mapping. Design decisions are given to scar in the form of SpecC annotations (see below).
Using the first command syntax as shown in the synopsis above, a brief usage information is printed to standard output and the program exits. Using the second command syntax, the specified design is refined. scar reads the SpecC SIR file written in SIR format, and generates desired architectrure model in SIR.
specifies the name of the specification model, e.g., the tool will search for file design.sir in current directory as its input file. Unless specified with "-o" option (see below), the output architecture model is written to file design_arch.sir.
-i
input_SIR_file specifies the input SIR file.
-o
output_SIR_file overwrites the default output SIR file name design_arch.sir with output_SIR_file.
-t
top_level_behavior overwrites the top level annotation in the SIR file.
-b
enables Behavior Refinement.
-m
enables Variable Refinement.
-s
enables Schedule Refinement. If none of them is given, all three refinements will be performed.
-v
turns on the verbose mode. With verbose switch-on, a detailed progress report is printed to standard output.
The following 4 types of annotations are needed to make scar 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 _AR_TOPLEVEL = "TopBehaviorName";
gives a list of names of allocated components. It is required and must be attached to the design. For example, note _AR_PES = "componentName1,componentName2,...";
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 execution order of sub-behaviors inside a concurrent-composition behavior. It can be omitted. For example, note _AR_SCHEDULE = "childName1,chilName2,...";
The following steps show how to use scar. 1) Create an annotated specification model. Method 1: a) type in annotate design decisions in example.sc b) compile into SIR with 'scc example -sc2sir' Method 2: a) compile un-annotated specification into SIR with 'scc example -sc2sir' b) open GUI (Respect) to annotate design decisions
2) Call scar to refine the design. 'scar example'
3) Use GUI (Respect) to display architecture model "example_arch".