As sophisticated SoCs now routinely contain thousands of programmable registers, creating low level firmware such as power-on/reset, or complex power management routines has become an extremely labor intensive and error prone task. This problem is made more challenging in a parallel development environment in which firmware development has to start and proceed to meet deadlines while the register address map is still constantly being revised.
Beach Solutions EASI Code resolves both of these challenges by providing a powerful software sequence capture environment that draws upon the SoC design register database which is constantly updated as changes are made elsewhere in the design flow.
The engineer describes the sequence of register related events with the EASI Code graphical capture tool using language neutral standard flow chart symbols. EASI Code then draws upon the latest register data stored in the database and auto-generates the code described.
Target applications include the creation of IP or device setup routines (commonly referred to as a Programmer's Model), function libraries, power-management routines, interrupt service routines, and test and verification code.
Using EASI Tools, the auto-generation of correct-by-construction code enables concurrent development for considerable engineering and software test savings. Additionally, the automatic and seamless transfer of device operational information leads to right-first-time system integration and better overall IP reuse.
EASI Code contains:
-- Interactive register behavior capture environment
-- Powerful data checker with built-in extensible rules
-- Register and memory C API (HAL) generator
-- Register sequence function C generator
-- Reference documentation HTML generator
Graphical sequence builder
EASI Code provides a graphical user interface for describing how registers in an SoC design interact with each other by means of a canvas upon which standard flow-chart symbols are placed and connected to create machine readable descriptions of complex sequences. These sequences are then used by generators within Beach EASI Tools Suite to create correct-by-construction C-code. Hierarchical object presentation enables libraries of complex sequences to be rapidly created, encouraging standardization and reuse.
Automatic sequence checker
All register sequences are automatically checked. Syntax errors are fixed on entry and semantic errors are identified before delivery to provide a solid foundation for the generation of APIs and sequence code.
EASI Code auto-generates "correct-by-construction" C code and driver libraries. In addition, a programmer's reference document in HTML can be auto-generated containing a textual description of each sequence with pseudo code, a flowchart diagram and a register access table. Additional output formats can be auto-generated using Advanced EASI Code.
About Beach Solutions
Beach Solutions is the leading provider of commercial tools to manage addressable registers and auto-generate SoC design integration deliverables. EASI Tools require no new language support, are simple to use, and fit neatly into existing design flows. Data is centralized in an XML database from which all hardware, software, verification and documentation deliverables are generated. All project team members then work from a common reference to deliver consistent design files throughout all phases of the development.
Further information is available from the Beach Solutions website: http://www.beachsolutions.com
XLX Solutions LLC
James Colgan, 415-821-9228