Closed listing
Formal Verification Engineer
- Markham, ON, Canada
$140,000 to $250,000 USD / year · Full-time
This opening has closed.
The original listing is kept below for reference.
Job details
- Pay
- $140,000 to $250,000 USD / year
- Job type
- Full-time
- Closing date
- Experience
- 15+ years (Principal) or 4+ years (Senior Engineer) of design-verification experience, with hands-on formal verification.
- Posting language
- English
- Posted
Similar jobs hiring now
Search current openingsOriginal job description
Archived listing. The details below describe a past opening.
- Multiple Levels
- US / Canada / India
THE ROLE
- Plan & Strategy: Drive the verification scope and formal test plan for each verification problem - turning the micro-architecture specification into the properties to prove.
- Formal Environment: Build the formal environment - assumptions, constraints, assertions, and cover properties - plus reusable, optimized formal models.
- Proof & Bug Hunting: Apply model checking, equivalence checking, and abstraction to reach full or bounded proofs, and hunt deep bugs in areas such as cache coherence, memory consistency, and speculative execution.
- Debug & Design Feedback: Debug counterexamples to root cause and partner directly with designers to fix and improve the micro-architecture.
- Flow & Automation: Build and maintain the end-to-end formal flow - automation (Python/TCL), assertion libraries shared across formal and simulation, and tool-issue resolution with vendors.
- Cross-functional Collaboration: Review formal setups and proofs with the design team, and partner closely across the DV team.
- Degree in Electrical/Computer Engineering, Computer Science, or Mathematics, or equivalent practical experience.
- 15+ years (Principal) or 4+ years (Senior Engineer) of design-verification experience, with hands-on formal verification.
- Hands-on formal techniques - model checking and/or equivalence checking - through to proof convergence.
- Strong Verilog/SystemVerilog and assertions / temporal logic.
- Strong knowledge of CPU micro-architecture and digital logic.
- Strong scripting (Python; TCL/Perl a plus), analytical, and debug skills.
- Proficiency with industry formal tools (e.g. Cadence JasperGold, Synopsys VC Formal, Siemens Questa Formal).
- Taking complex verification problems to proof closure - abstraction, bounded-proof management, and equivalence checking (LEC/SEC) against golden references.
- Formal verification of CPU domains such as cache coherence, memory consistency, speculative execution, or data path.
- Security formal verification or theorem proving.
- Understanding of how formal complements dynamic simulation, and shared assertion libraries.
- Mentoring engineers and collaborating across distributed teams.
More about this job
Responsibilities
Develop formal verification plans and environments by translating CPU microarchitecture specifications into properties, assumptions, constraints, assertions, and reusable models. Use model checking, equivalence checking, and abstraction to prove designs and find bugs, debug counterexamples with designers, and maintain formal automation and shared verification flows.
Requirements
Requires a degree in Electrical or Computer Engineering, Computer Science, or Mathematics, or equivalent practical experience, plus hands-on design verification and formal verification experience: 4+ years for Senior Engineer or 15+ years for Principal. Candidates should have experience with model checking or equivalence checking, strong Verilog/SystemVerilog and temporal-logic assertion skills, CPU microarchitecture and digital logic knowledge, and scripting and debugging abilities.
Skills
- Formal Verification
- Model Checking
- Equivalence Checking
- Verilog
- SystemVerilog
- Assertions
- Temporal Logic
- CPU Microarchitecture
- Digital Logic
- Python
- TCL
- Counterexample Debugging
- Formal Modeling
- Cache Coherence
- Memory Consistency
- Speculative Execution
Visa sponsorship
Not detected in the job text
Categories
- Engineering
- Technology
- Software
Keywords
- Formal Verification
- Design Verification
- CPU
- Microarchitecture
- Model Checking
- Equivalence Checking
- Verilog
- SystemVerilog
- Assertions
- Temporal Logic
- Python
- TCL
- Perl
- Formal Environment
- Formal Models
- Abstraction
- Proof Convergence
- Bounded Proofs
- Cache Coherence
- Memory Consistency
- Speculative Execution
- Data Path
- LEC
- SEC
- Cadence JasperGold
- Synopsys VC Formal
- Siemens Questa Formal
- Assertion Libraries
- Dynamic Simulation
- Theorem Proving