Your Role and Responsibilities- As a Functional verification engineer, you will be working on the latest generation of IBM high end, state-of-the-art micro-processors used in IBM servers.
- Lead the development of the verification plan, environment, testbenches and writing testcases.
- Develop skills in IBM Functional verification tools and methodologies.
- Work with design as well as other key stakeholders in debugging and fixing logic design issues and deliver a quality design
- Work with development team to ensure coverage criteria is met.
Required Technical and Professional Expertise
- 9 + years of experience in Functional Verification of processors.
- 3+ years of experience in the following fields
- Computer architecture knowledge
- Multi-processor cache coherency, Memory hierarchy/subsystem verification.
- Knowledge of the DRAM specification – DDR4/5, LPDDR4/5
- Knowledge of performance parameters in memory controller designs and ways to stress verify them
- Minimum one full life cycle leadership experience of a processor/SoC verification flow with focus on Memory Controller Verification
- Developed test-plans and test strategies for IP/unit/block level verification of Memory Controller functional blocks in processor/SoC
- Clock domain crossing and reset domain crossing verification
- Good object-oriented programming skills in C++/SV, scripting languages like Python/Perl.
- Knowledge of functional verification methodology like UVM/OVM
- Knowledge of HDLs (VHDL/Verilog)
- Development experience on Linux/Unix environments, GIT repositories and good understanding of Continuous Integration and DevOps workflow
- Exposure in developing testbench environment, write complex test scenario, debugging and triaging fails
- Experience in driving verification coverage closure including performance testing, stress testing and ability to identify corner case scenarios.
Preferred Technical and Professional Expertise
- Good understanding of computer system architecture and microarchitecture.
- Knowledge of design patterns in programming