We are looking for several Firmware / Embedded Software Engineers to help us in the development of both the ASIC design and the firmware that will drive it.
You will use your Embedded Software knowledge and experience to develop Subsystem-Level test cases to verify that the Subsystems will cover all their requirements before they are integrated into the ASICs, System on Chip (SoC). We will want you to be a Firmware technical leader within the team, using your experience and skills to ensure that the detailed Subsystem designs can be supported by the wider production FW teams for the market lifetime of the SoC.
To excel in this their needs to be excellent collaboration with IC Designers and IC Verification engineers within the development team, as well as with the IC Architect and the other Firmware developers across multiple sub-teams.
Our Subsystem-Level test cases are written in Embedded C++ and Python that execute in a subsystem-level IC simulator. A subset of these test cases will also be ported to the SoC top-level to aid with integration. These tests will exercise the I2C, SPI, Audio, JTAG and UART interfaces, as well as the internal CPUs, Security Engines and associated AXI system busses.
You will need a good understanding of how to adapt existing production Embedded C++ code to the test setup (including any unit tests), which uses a Linux-based GCC development environment and CMake.
Deep knowledge of embedded CPUs is assumed, including: secure boot ROM development, JTAG source-level debuggers, RTOS behaviours, memory footprints, coding optimisations and caches. A practical understanding of Software Design, Security and Architecture as applied to Embedded systems is also required. Previous experience in an Agile development environment would be an advantage.
Although we program in embedded C++ we are happy to consider embedded C candidates who have a good level of C++ experience in some form.
Not seeing the right role for you? Sign up below and we will get in touch! All your detail will be confidential.