Nordic Semiconductor is considering to include the use of SystemC virtual prototypes into their
System-on-Chip (SoC) design flow. These prototypes would be useful in the development of
embedded software. Nowadays, the software team at Nordic semiconductors tests their software
in two stages, the first one is the Unit test, It’s a set of functional tests of the software, which they
run completely on the machine. And the second one is the Target test, They run more complex
tests, it tests the communication between peripherals. The tests use one or two development
boards, in the case of two devices, One device runs the software under test and the other runs a
test program.
Our goal was to investigate the feasibility of using a virtual prototype in the design flow
of Nordic Semiconductor. We selected some of the tests used by the software team at Nordic
Semiconductor to decide what are the peripherals to be modeled and how detailed these models
need to be. We have then modeled and verified the individual components and the overall
system. Before running the tests, we had to modify them to be compatible with the SystemC
prototype before running them on it. We evaluated the performance of the prototype for the
tests and compare it with the performance of the development boards. The results showed that
the virtual prototype provided a huge speedup in the testing which we believe would increase
the testing productivity and test coverage. The prototype provides more visibility over the
system components, allowing for more debugging capabilities. It is also proven to be easily
expandable, either expanding the system by adding more models or expanding the individual
models by adding extra functionalities.