Hardware is verified using simulators. Software compiled and debugged using compilers and debuggers. When it comes to the hardware/software interface, it’s not so straightforward. The FPGA development process can be fragmented in this first phase of design specification.Take the ARM AMBA® AXI4LITE bus, for example, the most popular bus for interchip communication in Xilinx devices. Hardware designs with configuration and status registers addressable by the AXI4LITE register bus are common. Typically, a user manually creates registers in register transfer level (RTL) code, verifies them using the Universal Verification Methodology (UVM), and generates other artifacts and code fragments for firmware. Yes, RTL code can be produced automatically using a register generation tool, though integration with the rest of the application logic would need to be done and done manually, as would any specification changes. The Vivado Design Suite interface offers an answer to the integration process, though files would need to be generated so that the integration would be possible without any glitches. Another promising solution would be to use a correct-by-construction approach. In this scenario, a specification-driven FPGA design flow combining a tool to generate executable design code with Vivado offers a means to create a design specification with information that flows uninterrupted to the bitstream. The design specification tool captures the hardware specification to enable an architect or system designer to capture hardware/software specifications in any format, including Word, Excel, SystemRDL, IPXACT, RALF or CSV. It generates all possible outputs, such as Verilog, VHDL, SystemVerilog, SystemC, UVM, C headers, SystemRDL, IPXACT, HTML and datasheets without data re-entry or duplication. It can be used to create a variety of outputs and can import various inputs as well. Because information flows from one system to the other, an integrated design flow is devoid of duplicate data entry. The basic linkage is through Verilog files generated by the design specification tool and imported into Vivado. IP-XACT created by the design specification tool has register, pin and parameter information, while Vivado-generated files have constructs that enable it to work inside the Vivado system.
To create a register specification in a format for the design specification tool, a user would generate Verilog RTL code and a Vivado TCL application programming interface- (API) supported script. He or she would start the project in Vivado, source the generated script (ids_vivado.tcl) to automatically add sources, compile the design, and create and package the IP with AXI interface. The packaged IP would go into the user’s IP repository for integration with Xilinx IP, and the generated RTL code could be connected to the rest of the design.For more information about Agnisys and IDesignSpec, visit: www.agnisys.com