This individual leads, plans, synthesizes ambiguous or conflicting requirements and performs the complex responsibility of performing block level verification for complex, multi-feature designs using the most advanced verification techniques (sim, formal, emulation). Use Assertion Based Verification, Formal Verification, and Emulation to achieve quality design development. Develop deep design knowledge to facilitate creation of verification platforms and ability to debug complex systems. Engage early and often with architecture and design teams to develop appropriate verification approaches. Develop testing strategy and testplan for design unit blocks. Work with microarchitecture and RTL teams to understand the requirements and complexities of the design components. Define all test cases and requirements for exhaustive testing. Review and refine testplan contents with help from design team and verification leadership. Create extensive verification environments for testing of complex design units. Leverage appropriate verification technology for given verification task. Create formal verification testbench (assertions, assumptions, abstractions) for focused design components. Construct emulation capable testbench and components for use on emulation and prototyping platforms. Debug complex systems and designs during the verification process. Investigate test and assertion failures and provide initial triage and debug. Work with design and microarchitecture to resolve all open issues and identify design faults. Build monitors, checkers, and assertions to aid in debug process. Construction of re-usable testbench and debug components for use in various environments (sim, emulation, prototype, bring-up). Follow coding and construction guidelines for all monitor components to enable cross-platform use. Leverage testing frameworks to build required stimulus for a given design unit. Close design coverage and build testcases to reveal critical corner cases. Complete all testplan items necessary to achieve full test coverage. Support and maintain random stimulus generation capabilities to consistently reach expected coverage targets. Work with design and microarchitecture teams to understand coverage holes, and to craft stimulus required to cover those holes. Build functional coverage model to accurately measure transactional and architectural features of the design. Develop and support test material for use in silicon bring-up activities. Contribute to and develop verification automation and methodologies to expand the capabilities of all verification efforts. Build and support common testbench components useful for various design testbenches. Develop scripts and automation in Python, Perl, etc to increase time savings in verification process. Provide support to other team members for common testbench components and testbench framework knowledge building. Collaborate with SOC bring-up and software teams to plan and execute CPU bring-up activities. Work closely with design teams to propose and architect new debug features that enhance future CPU bring-up processes. Partner with CPU Post-Silicon Verification teams to reproduce silicon failures in simulation, emulation, and FPGA environments, create minimal failing tests, wave captures, and debug artifacts to accelerate fix cycles. Acts as a strong contributor at design reviews and project meetings and communicates and implements a development plan.
Stand Out From the Crowd
Upload your resume and get instant feedback on how well it matches this job.
Job Type
Full-time
Career Level
Senior