Onboard processing of sensor data is becoming a game changer and mission enabler in the near future. A small research team at MDA is experimenting and evaluating FPGA/System-on-Chip (SoC) based development processes to efficiently implement algorithmic intensive applications, such as real-time Synthetic Aperture Radar (SAR) image formation and information extraction onboard a spacecraft. The entire design flow from specification generation, algorithm evaluation, test bench creation, system modeling, design synthesis, placement and routing, resource utilization, timing closure, power utilization and design reliability are all aspects being investigated. The successful candidate will join our team as an entry-level development engineer.
We are looking for engineers comfortable on both sides of the hardware/software divide, but an emphasis on hardware programming experience is required. This will be an exciting opportunity to demonstrate your knowledge and expertise in a multitude of embedded design areas. You will work in a small team environment and help establish and apply engineering processes and work with integrated technologies, such as MATLAB algorithms, Simulink/System Generator models and Vivado Integrated Design Environment to help establish efficient processes to port algorithms to Xilinx FPGA/SoC based devices. Successfully solving these problems will involve hard work, a passion for quality, an inquisitive mind with the ability to do research and self-educate. Primary Activities
As a hardware engineer, you will have the opportunity to establish ownership and demonstrate your abilities, including:
- Working with algorithm specialists and system engineers to develop an understanding and ownership of the algorithms we wish to implement - mostly done by MATLAB code exchange
- Participate in the definition of the system architecture and identification of subsystems/modules and their interfaces
- Participate in the test data generation to create MATLAB-based test datasets for algorithm and model validation
- Design and implement the hardware of subsystems using a suitable design flow - Simulink models using the Xilinx System Generator for DSP Blocksets to generate the HDL netlists for synthesis and implementation using Vivado Integrated Design Environment
- Evaluate the implemented design for resource utilization, floor planning and perform bench-mark runs to scale-up the solution to full scale implementation and perform timing and power analysis
- Participate in the integration and test of the subsystems into each release
- Create, review and maintain technical documentation, such as Hardware Design Descriptions, design implementations and test results
- 2-5 years' experience
- A university degree in engineering, computer science or other relevant discipline, or an equivalent combination of education and experience
- Two to five years of experience in embedded system design
- Good digital hardware design and hardware acceleration knowledge
- Good software programming knowledge and experience
- Good hardware/software co-design knowledge and experience
- Solid grounding in digital signal processing with knowledge of Fast Fourier transforms, matched filtering, filtering, windowing, state estimation, spatial filtering, error correction and signal detection
- Understanding of test data generation, reference simulations and creation of test vectors for hardware validation
- Familiar with HDL coding, code review and optimization of auto-generated HDL code
- Numerical methods and fixed-point math
- Excellent verbal and written communication skills
- Experience with formal configuration management processes
- A team player
- Experience with Xilinx FPGA and Zynq SoC devices, such as KC-705, VC-707, ZC-706 and KCU110 evaluation kits
- Experience with Xilinx IP cores, such as AXI interfaces, FFT/IFFT, CORDIC, memory interface generators, DSP, BRAM/FIFO, MicroBlaze, timers and interrupt controllers and clock managers
- Experience with Hardware Description Languages such as VHDL and Verilog
- Experience with all aspects of Xilinx Vivado Integrated Design Environment, including the IP integrator, High-Level Synthesis
- Experience with MathWorks MATLAB/Simulink integrated with Xilinx System Generator for DSP
- Experience with programming languages C/C# and operating systems such as Linux/Petalinux/RTOS
Positions are based in Richmond, BC and may include travel.
Successful candidate(s) must be able to obtain and hold security clearance at the Reliability level, and pass security assessment for the Controlled Goods Program.
MDA provides customers around the world with essential information solutions used for decision making. Using the latest technology to change the world. Our employees enjoy challenging careers with opportunity for growth and learning.
MDA is an Equal Opportunity Employer.