Abstract
The integration of large-scale systems-on-chip warrants thorough verification both at the level of the individual component and at the system level. In this article, we address the automated testing of system-level memory maps. The golden reference is the IEEE 1685/IP-XACT hardware description, which includes implementation agnostic definitions for the global memory map. The IP-XACT description is used as a specification for implementing the registers and memory regions in a register transfer-level (RTL) language, and for implementing the corresponding hardware-dependent software. The challenge is that hardware design changes might not always propagate to firmware and applications developers, which causes errors and faults. We present a method and a tool called Keelhaul which takes as input the CMSIS-SVD format commonly used for firmware development and generates automated software tests that attempt to access all available memory mapped input/output registers. During development of a large-scale research-focused multiprocessor system-on-chip, we ran a total of 32 automatically generated test suites per pipeline comprising 882 test cases for each of its two CPU subsystems. A total of 15 distinct issues were found by the tool in the lead-up to tapeout. Another research-focused SoC was validated posttapeout with 984 test cases generated for each core, resulting in the discovery of four distinct issues. Keelhaul can be used with any IP-XACT or CMSIS-SVD-based systems-on-chip that include processors for accessing implemented registers and memory regions.
Original language | English |
---|---|
Journal | IEEE Transactions on Very Large Scale Integration (VLSI) Systems |
DOIs | |
Publication status | E-pub ahead of print - 2024 |
Publication type | A1 Journal article-refereed |
Keywords
- CMSIS-SVD
- IEEE-1685
- IP-XACT
- memory-mapped input/output (MMIO)
- rust
- test generation
- verification
Publication forum classification
- Publication forum level 2
ASJC Scopus subject areas
- Software
- Hardware and Architecture
- Electrical and Electronic Engineering