Key Features of SpectaReg

The following sections outline the key features of SpectaReg that enable you to simplify your memory-mapped register development tasks and achieve better productivity.

Spec-down methodology

Category:

The name SpectaReg is derived from specification-to-generation. Register-map specifications provide a contract between stakeholders from which interdisciplinary register views are generated. This single source approach eliminates register-map inconsistencies...

Rich, Easy to use, User Interface

Category:

Capturing register-map intent into SpectaReg through the UI is easy -- no new language is required and implementation details are abstracted. The graphical environment facilitates collaboration and provides interactive validation.

Open Data Format (SPIRIT IP-XACT / IEEE P1685)

Category:

SpectaReg stores your register-map specifications in an extended version of the SPIRIT Consortium’s IP-XACT XML format (IEEE P1685). This is both a human and machine readable format which can be edited manually using an XML editor and versioned in your source control system.

Open & Extensible Specification Object Model (SOM)

Category:

SpectaReg represents memory-maps in terms of an open-source Python Specification Object Model, derived from IP-XACT but extended to include new classes of memory-map objects, and further extensible to include your custom classes (with your custom attributes and relationships). You can define specific types of RAMs, register-files, counters, interrupts, FIFOs and other memory-map elements – these become available during specification time.

Comprehensive, Open Source Reference Example

Category:

SpectaReg ships with an open source reference example, illustrating how configuration, interrupt, and status registers are specified for hierarchical and channelized / time-sliced components.

Open template-based generators

Category:
SpectaReg generates code and documentation from the SOM by resolving open-source templates to produce your desired outputs. The Python-based templates can be modified to suit your coding style and variable naming conventions.