210 likes | 371 Views
SpecC and SpecCharts. Reviewed and Presented by Heemin Park and Eric Kwan EE202A - Fall 2001 Professor Mani Srivastava. Overview. Current problems in embedded systems development The solution – SpecC / SpecCharts Key feature: Program State Machine Highlight of SpecC Conclusion
E N D
SpecC and SpecCharts Reviewed and Presented by Heemin Park and Eric Kwan EE202A - Fall 2001 Professor Mani Srivastava
Overview • Current problems in embedded systems development • The solution – SpecC / SpecCharts • Key feature: Program State Machine • Highlight of SpecC • Conclusion • Questions
Planning Specification Verification Implementation BIG LOOP!! Prototype Current Design Problem • Prototype debugging occupy 43% of development time • Miscommunication of requirement • Ambiguous specifications • Absence of simulation and synthesis tool HUGE design loop • The reason – lack of a proper specification language
Avoid miscommunication of requirement and incomplete / ambiguous specifications Proper specifications reduce debugging time by 29% Allow development of synthesis and simulation tools Simulate without building a prototype The solution: SpecC & SpecCharts Planning Rapid Prototyping Specification Performance Evaluation Implementation AGILE DESIGN Prototype
System design Algor. IP Capture Communication model Implementation model Architecture model Specification model Architecture exploration Comp. IP Communication synthesis RTOS RTL Proto. IP IP IP Hardware synthesis Interface synthesis Software compilation Backend Design Flow using SpecC Structure / Implementation detail Order / Timing detail SpecC Untimed (causality) Functional Timed (estimated) Structural Bus- functional Timing- accurate Cycle- accurate RTL/IS
Properties of embedded System • VHDL support the following behavior of embedded systems: • Behavior Decomposition (Partial) • Sequential Algorithm • Behavior Completion (Partial) • Not supported: • State Transition • Exceptions
SpecCharts and SpecC • Same Idea, different implementation • SpecCharts is an extension to VHDL to tailored for embedded system design • SpecC –”specification description language based on C” • Both implement the idea of a Program State Machine (PSM)
Program State Machine(PSM) • Hierarchical/Concurrent FSM + Programming language • Program-state(PS) • Status • Inactive • Executing • Complete • Computation • Leaf • Concurrent • Sequential • conditional transition arcs on completion or immediately
... a = 42; while (a<100) { b = b + a; if (b > 50) c = c + d; else c = c + e; a = c; } ... PS1 PS3 PS5 PS2 PS4 Program State Machine(Cont) • SpecCharts • PS described by procedures based on VHDL • SpecC • PS described by procedures in a programming language based on C Sequential Concurrent Leaf PSM model
RemoteOperation hangup=‘1’ CheckCode code_ok=‘0’ code_ok=‘1’ RespondToCmds SpecChart Descriptions behavior CheckCode type leaf is begin code_ok <= true; for (i in 1 to 4) loop wait until tone /= “1111” and tone’event; if (tone /= user_code(i)) then code_on <= false; end if; end loop; end; Graphical-version Textual-version Initial state Transition on Complete(TOC) Complete state Transition immediately(TI) (starts from boundary)
Design Flow using SpecCharts SpecChart Descriptions SpecCharts to VHDL translator VHDL Codes VHDL Verification tool VHDL Simulator VHDL Synthesizer
P1 P2 s1 s2 s3 B1 B2 v1 v2 C1 v3 The SpecC Model • Traditional model • Processes and signals • Mixture of computation and communication • Automatic replacement impossible • SpecC model • Behaviors and channels • Separation of computation and communication • Plug-and-play
The SpecC Language /* HelloWorld.c */ #include <stdio.h> void main(void) { printf(“Hello World!\n”); } • ANSI-C • Program is set of functions • Execution starts fromfunction main() • SpecC • Foundation: ANSI-C • Program is set of behaviors,channels, and interfaces • Execution starts frombehavior Main.main() // HelloWorld.sc #include <stdio.h> behavior Main { void main(void) { printf(“Hello World!\n”); } };
Behavior Ports Channel Interfaces p1 p2 B v1 c1 Variable (wire) Child behaviors b1 b2 The SpecC Language • Basic structure • Top behavior • Child behaviors • Channels • Interfaces • Variables (wires) • Ports
p1 p2 B v1 c1 b1 b2 The SpecC Language • Basic structure interface I1 { bit[63:0] Read(void); void Write(bit[63:0]); }; channel C1 implements I1; behavior B1(inint, I1, outint); behavior B(inint p1, outint p2) { int v1; C1 c1; B1 b1(p1, c1, v1), b2(v1, c1, p2); void main(void) { par { b1.main(); b2.main(); } } };
B_seq B_fsm B_par B_pipe b1 b1 b2 b1 b1 b2 b3 b4 b2 b2 b3 b5 b6 b3 b3 The SpecC Language • Behavioral hierarchy Sequentialexecution FSMexecution Concurrentexecution Pipelinedexecution behavior B_seq { B b1, b2, b3; void main(void) { b1.main(); b2.main(); b3.main(); } }; behavior B_fsm { B b1, b2, b3, b4, b5, b6; void main(void) { fsm { b1:{…} b2:{…} …} } }; behavior B_par { B b1, b2, b3; void main(void) { par{b1.main(); b2.main(); b3.main(); } } }; behavior B_pipe { B b1, b2, b3; void main(void) {pipe{b1.main(); b2.main(); b3.main(); } } };
System design Algor. IP Capture Communication model Implementation model Architecture model Specification model Architecture exploration Comp. IP Communication synthesis RTOS RTL Proto. IP IP IP Hardware synthesis Interface synthesis Software compilation Backend Design Flow using SpecC Structure / Implementation detail Order / Timing detail SpecC Untimed (causality) Functional Timed (estimated) Structural Bus- functional Timing- accurate Cycle- accurate RTL/IS
Conclusion • SpecCharts • PSM: model of computation for embedded system • VHDL base: limited support for embedded software • SpecC • Well-known high-level language with support of PSM • Design environment still developing • Architecture exploration, refinement, communication synthesis,
References • Literature • Vahid, F.; Narayan, S.; Gajski, D.D. SpecCharts: a VHDL front-end for embedded systems. IEEE Trans. on CAD, Vol.14(No.6), June 1995. Pp.694-706. • SpecC: Specification Language and Methodology, by Gajski, Zhu, Dömer, Gerstlauer, Zhao, Kluwer Academic Publishers, 2000. • Circuits and Systems, 2001, Tutorial Guide: ISCAS 2001, The IEEE International • The SpecC Language, pp.5.1_1-5.1_12. • Modeling and Design with SpecC, pp.5.2_1-5.2_12. • SpecC Design Environment, pp.5.6_1-5.6_4. • SpecC Open Technology Consortium, pp.5.7_1-5.7_5. • Online • SpecC web pages at UCIhttp://www.cecs.uci.edu/~specc/ • SpecC Open Technology Consortium (STOC)http://www.specc.org/