FPGA Software Engineer – EDA

Job Title

FPGA Software Engineer – EDA

Department
Software Engineering
Location
Santa Clara, CA

Achronix Semiconductor Corporation is a fabless semiconductor corporation based in Santa Clara, California, offering high-performance FPGA solutions. Achronix is the only supplier to have both high-performance and high-density standalone FPGAs and embedded FPGA (eFPGA) solutions in high-volume production. Achronix's FPGA and eFPGA IP offerings are further enhanced by ready-to-use PCIe accelerator cards targeting AI, ML, networking and data center applications. All of Achronix's products are supported by best-in-class EDA software tools.

Job Description

You will implement robust software solutions for placement, routing and timing optimization of large standalone (Speedster) and embedded (Speedcore) FPGAs, while leveraging unique features of the Achronix FPGA technology. You will utilize your knowledge of Electronic Design Automation (EDA) algorithms and data structures, in the context of a high-performance timing-driven FPGA placement and routing application, to make significant contributions to the ACE software tool chain. You will have a unique opportunity to collaborate directly with other Achronix Research and Development (RnD) Software team members working on synthesis, detailed routing, global routing, detailed placement, global placement, timing optimization, runtime analysis, and runtime and memory optimizations. You will contribute to a culture of agile innovation and continuous quality improvement.

Required Skills
  • Excellent programming and debugging skills in C/C++
  • Deep understanding of data structures and algorithms
  • Strong analytical and problem-solving skills to understand cause and effect in a large software code base
  • Flexibility to try novel approaches to solve difficult software engineering problems
  • Ability to work independently and with a team in a fast-paced and collaborative environment
Preferred Skills
  • Experience using commercial FPGA EDA tools such as Xilinx Vivado or Intel Quartus
  • Familiarity with both Linux and Microsoft Windows operating systems, compilers, and IDEs
  • Experience with cross-platform development is a plus
  • Familiarity with digital design concepts and hardware description languages (HDLs) such as SystemVerilog, Verilog, or VHDL
  • Knowledge of scripting languages, especially Python, Tcl, Perl, and shell scripting
  • Good understanding of digital circuits with knowledge of boolean optimizations and Karnaugh maps a plus
  • Experience with version control systems such as Perforce, Git, or Mercurial
  • Experience with command-line debugging and profiling tools, such as GDB and Valgrind
  • Knowledge of numerical optimization algorithms such as linear programming, SAT solvers, genetic algorithms, dynamic programming, or simulated annealing is a plus
  • Familiarity with software multi-threading techniques is a plus
Education and Experience
  • Bachelor's degree or higher in Computer Science, Computer Engineering, Electrical Engineering, or other related/applied engineering degree from a top research university