As I noted in a recent post, registers appear everywhere in system-on-chip (SoC) design. Architecturally defined registers form the hardware-software interface (HSI), where drivers, embedded software, and other code close to the hardware controls and monitors design functionality. The term “register map” describes the complete set of HSI registers and is an important part of the documentation for both chip designers and programmers. As with any part of your design, it is critical that you verify its proper operation before you spend millions of dollars to commit it to silicon. I’d like to offer three steps to accomplish this verification quickly and easily.
Establish an Executable Specification
You could say that there’s actually a “step zero” to this process: describing your registers in the form of an executable specification. As I hope you know by now, specification automation is what we do at Agnisys. We enable you to specify key parts of your designs—including registers—in executable format and we provide solutions that generate design, IP SoC verification, software, validation, and documentation files automatically from these specifications. Automation eliminates all the manual effort traditionally needed to create these files and update them every time that a specification changes.
So I’m assuming that you are specifying your registers in executable form and using our IDesignSpec GDI and IDS-Batch CLI solutions to generate the register-transfer-level (RTL) design for your registers (and memories too, if you wish). The RTL code we generate (in SystemVerilog, Verilog, VHDL, or SystemC) is all ready for simulation and synthesis. We also generate documentation in a variety of formats, which helps keep your development team in sync and gives your technical writers a great starting point for your user manuals. But we do much more to help you test your registers and verify that they work as you intended.
Click here to read more ...