150 likes | 157 Views
SpecCharts is a VHDL front-end developed at the University of California, Berkeley, to facilitate the specification of embedded systems. It aims to streamline the process, reduce errors, and enhance design time efficiency. The tool allows for deriving implementations from informal specifications in a functional manner, aiding in early identification of errors and seamless integration with other concurrent systems. SpecCharts introduces Programming State Machines (PSM) for compact, hierarchical, and concurrent FSM descriptions. Translation into VHDL maintains hierarchy and enhances readability, simulation, and synthesizability. Measuring the utility of SpecCharts through human test subjects revealed significant improvements in specification time, error correction, and overall design quality compared to traditional VHDL methods.
E N D
SpecCharts: A VHDL Front-End for Embedded Systems University of California, Berkeley
Motivation • VHDL • Widely used for hardware description • Supported with powerful synthesis and verification tools • Embedded Systems • Functional specification is preferred • Specifying embedded systems in VHDL • tedious, time-consuming, and error-prone • SpecCharts: a VHDL front-end for embedded systems University of California, Berkeley
Specifying Embedded Systems • Derive implementation from an informal specification • “English” to gate-level netlist/C code • Benefits of a functional specification • Functional errors can be identified early in the process • Facilitates integration with concurrently-designed systems • Automated estimation and synthesis tools • Reduce design time • Evaluate alternative implementations • Can redesign for another application without reverse engr. • Isn’t VHDL code a functional specification…? University of California, Berkeley
Embedded Systems • …yes, but not a good one. • Characteristics common to embedded systems: • Sequential and concurrent behavior decomposition • State transitions • Exceptions • Sequential Algorithms • Behavior Completion • Support: A description language supports a characteristic if there is a simple, direct mapping of the characteristic to a language construct • VHDL fully supports sequential decomposition and sequential algorithms, but not the rest University of California, Berkeley
VHDL Limitations for Embedded Systems • Sequential and Concurrent Behavior Decomposition • VHDL supports concurrent decomposition of top-level functionality using processes, but not concurrent decomposition of a process • Q and R and forked sub-behaviors of process Main • Q, R are not concurrently executed with P, S University of California, Berkeley
VHDL Limitations for Embedded Systems • State Transitions • Loop and case statements • Difficult to discern state transitions without mentally executing VHDL code University of California, Berkeley
VHDL Limitations for Embedded Systems • Exceptions • VHDL does not possess a construct to immediately deactivate a process or procedure upon the occurrence of an event • Coerce exception handling by polling for the exception throughout the behavior’s sequential statements University of California, Berkeley
VHDL Limitations for Embedded Systems • Sequential Algorithms • Fully supported • Behavior Completion • Procedure completion supported (return statement) • Process completion is not • Add a signal which is asserted at the end of a process • Monitored by other processes • Could we do better with another language? University of California, Berkeley
Functional Specification Language Comparison • Verilog, Esterel: support fork/join, behavior disable, but not state transitions • Communicating Sequential Processes (CSP): fork/join, but not state transitions or exceptions • Statecharts, Argos: permits hierarchical/concurrent FSM, but not sequential algorithms • Specification and Description Language (SDL): state transitions inside processes and behavior completion, but no exceptions or sequential algorithms University of California, Berkeley
SpecCharts • We can coerce embedded system behavior out of VHDL, but: • May be extremely tedious, time-consuming, and error prone • Resulting description may be difficult to comprehend • SpecCharts • Introduce Programming State Machines (PSM) • Hierarchical/concurrent FSM with programming language paradigm • Program state is a three-tuple <decls, status, comp> University of California, Berkeley
SpecCharts • Compact description in SpecCharts University of California, Berkeley
Translation into VHDL • Isn’t this still just VHDL? • VHDL simulators are widely used, fast, and reliable • VHDL is required documentation for many projects • Synthesis and verification tools take VHDL as input • VHDL translation algorithm is focused on readability, simulation efficiency, and synthesizability • SpecCharts behavior -> VHDL process • Hierarchy is maintained • PSM program states each represented by its own process • Synthesis of SpecCharts • Tools assume 1 controller, 1 datapath per process • Sequential behaviors should be flattened in translation University of California, Berkeley
Measuring the Utility of SpecCharts • Human Test Subjects • Specification Capture • Specification Comprehension • Specification Quantification • Design Quality • Translation • E.g. Six subjects (three using VHDL, three using SpecCharts) given documentation for an existing aircraft traffic-alert and collision-avoidance system. Subjects took 2.5x time more time to specify the system in VHDL, 2/3 VHDL specifications contained a major control error, and only 1/2 was able to correct that error in the allotted time. University of California, Berkeley
Measuring the Utility of SpecCharts • Specification Comprehension • Modelers given VHDL specification took 3x longer to understand the general behavior, e.g. “What happens when the Enable signal goes low”, average 2/14 wrong answers. • Specification Quantification • SpecCharts specification uses ~4x less words than even hierarchical VHDL, and 1/2 as many states as Statecharts • Design Quality • Design derived from English/SpecCharts specification show little difference in final transistor count • Translation • Simulation of translated SpecCharts code is slower than handwritten VHDL, but by less than an order of magnitude (550s as compared to 220 and 250s) University of California, Berkeley
Conclusion • Existing languages don’t support direct specification of common embedded system characteristics • New conceptual computation model, PSM • Language based on that model, SpecCharts • Built on a popular standard language, VHDL • Fits well with current methodologies • Can lead to fewer functional errors and easier integration of system models • Fewer design iterations, fast time-to-market, improved product support University of California, Berkeley