Hardware Emulation / FireSim (Student Role)

Posted 7 months ago

Are you applying to the internship?

Job Description

Hardware Emulation / FireSim (Student Role) | SiFive

The Tone:
This is a student role at SiFive, located in Berkeley, CA, requiring three days a week in-office. SiFive, as the pioneers of RISC-V, is transforming the future of compute by bringing the potential of RISC-V to high-performance and data-intensive applications. This role is crucial for developing and maintaining an internal FPGA-based hardware emulation tool, which is essential for high-speed verification and validation of SiFive’s RISC-V processor IP. You will contribute to solutions that impact future chip designs across various technology markets.

The TL;DR
• Role: Internship
• Type: Part-time (3 days/week in-office)
• Location: Berkeley, CA (Hybrid)

• Team: SiFive’s FireSim team; reports to the FireSim team.
• Mission: Develop and maintain an internal, FPGA-based hardware emulation tool to facilitate high-speed verification and validation of SiFive’s RISC-V processor IP.
• Tech Stack: Chisel, C++, Scala, Verilog, LLVM, CIRCT

What You’ll Actually Do
• Develop: Create compiler passes within the CIRCT-based emulation compiler.
• Design: Engineer new emulator features using both Chisel and C++.
• Test: Implement robust tests for newly designed features.
• Maintain: Help manage CI/CD systems related to your assigned subsystem.
• Augment: Assist in rolling out new agentic processes to enhance emulator subsystems where appropriate.

The Must-Haves
• Background: Enrolled in a Bachelor’s, Master’s, or PhD program in Computer Science, Computer Engineering, or Electrical Engineering. Early Career.
• Experience:
• For hardware-oriented students: Exposure to RTL design using Chisel or Verilog, and exposure to design for FPGA.
• For software-oriented students: Experience writing performance-optimized C or C++ code, and experience developing within LLVM or CIRCT projects.
• Skills: RTL design (Chisel or Verilog), FPGA design, performance-optimized C/C++ programming, LLVM/CIRCT development, strong communication, and interpersonal skills.
• Bonus: A combination of both hardware and software experience would be ideal.

Related Jobs