Soc Emulation Engineer - Hardware Emulation Infrastructure

Tenstorrent · Semiconductors · Santa Clara, CA · SoC

This role supports hardware emulation infrastructure and internal chip design teams by integrating transactors, developing Python test frameworks, and providing technical support. It requires proficiency in Python, C++, and SystemVerilog, with experience in chip design, verification, or emulation. The role also involves using AI tools for code generation and debugging.

What you'd actually do

  1. Ability to integrate vendor and custom transactors into RTL testbenches while handling clock domain and tri-state resolution.
  2. Experience building Python APIs (using pybind11) and maintaining CMake-based compilation flows for emulation libraries.
  3. Solid understanding of standard chip interfaces, bus protocols, and hardware synchronization (resets/clocking).
  4. A commitment to triaging and debugging the full stack, spanning from Python tests and C++ bindings down to hardware.

Skills

Required

  • Python
  • C++
  • SystemVerilog
  • chip design
  • verification
  • emulation
  • hardware transactors
  • Python APIs
  • CMake
  • chip interfaces
  • bus protocols
  • hardware synchronization

Nice to have

  • pybind11
  • Synopsys Zebu

What the JD emphasized

  • Background in Electrical/Computer Engineering or Computer Science with 1-3 years of experience in chip design, verification, or emulation.
  • Proficient in Python for automation and test development, with a working knowledge of C++ and the ability to navigate SystemVerilog RTL.
  • Skilled at using modern AI tools (Claude, ChatGPT, Copilot) to accelerate code generation, debugging, and documentation analysis.
  • Ability to integrate vendor and custom transactors into RTL testbenches while handling clock domain and tri-state resolution.
  • Experience building Python APIs (using pybind11) and maintaining CMake-based compilation flows for emulation libraries.
  • Solid understanding of standard chip interfaces, bus protocols, and hardware synchronization (resets/clocking).
  • A commitment to triaging and debugging the full stack, spanning from Python tests and C++ bindings down to hardware.