Software Development Engineer
Siemens
Job Description
Job ID
Company
Organization
Job Family
Experience Level
Full Time / Part Time
Remote vs Office
Contract Type
We are seeking a highly motivated, responsible and self-starting SW Development Engineer to join our forward thinking SLS TLM Cores R&D team in Cairo, Egypt. This is a role with a truly global scope, and an opportunity to drive continuous improvement of one our most important services.
In this role, you will participate in developing Transaction Level Models (TLM) for Microprocessors, Peripheral Controllers and Interconnects as part of Next Generation SLS products. These models are used to create ESL Virtual Platforms (VPs) that are increasingly adopted in the industry to simulate today’s complex MPSoC designs for early SW/HW co-verification during the design cycle.
Main Responsibilities:
Develop models for Microprocessors, Peripheral Controllers and Interconnects.
Use QEMU and SystemC to develop Models at TLM abstraction level.
Develop SystemC/TLM models that can be used to create Virtual Platforms.
Test existing Microprocessor models using bare-metal and operating system software.
Verify Peripheral models functionality versus behavior using SystemC.
Apply unit test/debug methodology and execute test/implementation plans.
Develop Microprocessor models for architectures including Arm, PPC, RISCV, TriCore, MIPS, etc.
Develop Peripheral/Interconnect models for devices including Interrupt Controllers, Coherent Interconnects, etc.
Simulate and Debug Customer’s Software.
Write professional Functional Specs and Design Documents.
Required Skills, Knowledge and Experience:
B.Sc. or M.Sc. in Electronics and Communication or Computer Engineering with Very Good and Honors degree or higher.
Solid knowledge in C/C++ Programming.
Solid Knowledge about digital and logic design concepts.
Familiar with microprocessor and microcontroller design.
Familiar with modeling using SystemC/TLM is a plus.
Strong knowledge in QEMU is a plus.
Good understanding of Embedded Software (Linux/RTOS) is a plus.
Good programming skills using Shell Scripting, Python, Tcl, Perl is a plus.
Knowledge in Unix/Linux operating system environments.
Highly developed communication skills, including the ability to present ideas and share your knowledge with others.