Algo-Logic Systems is seeking an experienced FPGA logic designer to implement next-generation CPU/FPGA hybrid systems for data centers, key-value stores, Internet of Things, accelerated finance, and other application domains.
Algo-Logic IP cores have been proven in real-time embedded systems and we are extending them to fulfill the needs of next-generation applications in other domains. We are seeking an experienced FPGA logic designer to implement continuously evolving logic on a variety of system architectures. In most cases this will be new functionality, not an incremental modernization that must maintain backward compatibility.
Algo-Logic FPGA based accelerators are implemented in both discrete PCI cards and cache-coherent tightly coupled CPU/FPGA hybrids, meaning the designs must support both a classical PCI interface (MMIO and interrupts) as well as modern cache-coherent interfaces (read-modify-write atomic operations). Experience with coherent memory models like IBM's CAPI and Intel's CCI-P/QPI are highly desirable.
Job Responsibilities
- Design and implement end-user algorithms directly in FPGA logic using RTL
- Work closely with kernel driver developers to implement fine-grained communication and synchronization between software and hardware
- Develop design architecture for reusable and composable RTL cores of internal and user application logic
- Correctness and performance testing of FPGA/CPU interface
- Working directly with customers and vendors to define and interpret requirements and specifications
- Attend technical conferences
- Simulation and performance modeling of experimental and evaluation designs
- Validate design in target system
Required Skills
- Verilog/System Verilog
- Pipelined access of on-chip RAM, off-chip DRAM, and PCI-based MMIO
- Debugging of hybrid hardware/software systems
- Hands-on testing of FPGA logic and complete systems
- Verification using randomized testing
- Understanding of IP Layers 1 & 2, UDP, multicast
- Understanding of latency optimizations for programming and networking
- Writing user and reference documentation
- At least one scripting language such as: Python and/or Perl, shell (bash, csh, etc.) scripting, Makefiles
Preferred Skills
- Working with reconfigurable systems based on FPGAs
- Simulation using Questa Modelsim
- MMIO, DMA, and MSI-X over PCIe
- Git repositories
- Key-value stores (MongoDB, Redis, Memcache, etc.)