Philips Healthcare Develops Smart Digital RF Power Subsystem for MRI Systems

“Simulink helps system architects and hardware designers communicate. It is like a shared language that enables us to exchange knowledge, ideas, and designs. Simulink and HDL Coder enable us to focus on developing our algorithms and refining our design via simulation, not on checking VHDL syntax and coding rules.”


Develop a novel digital RF power subsystem for use in MRI systems


Use Simulink to model, simulate, and verify the design, and use HDL Coder to generate consistent and predictable VHDL code for the FPGA implementation


  • Design issues resolved early in development
  • Tradeoffs rapidly assessed and implemented
  • Process consistency and predictability improved
Van Helvoort (left) and van Bakel with a Philips Healthcare MRI scanner.

Magnetic resonance imaging (MRI) systems apply powerful radio frequency (RF) and strong magnetic fields to systematically align the magnetic moment of protons in human tissue. For an MRI system to produce good quality images, the timing and linearity of the RF power subsystem must be precisely controlled. With the peak power of the RF power amplifiers approaching 40 kW, keeping the signal phase accurate to within a few picoseconds is a significant challenge.

Philips Healthcare engineers used Model-Based Design with MATLAB®, Simulink®, and HDL Coder™ to develop an innovative digital RF power subsystem for MRI machines. Implemented in VHDL® and deployed on an FPGA, the subsystem uses digital predistortion and feedback control loops to achieve the required precision and linearity.

“Creating VHDL code is an activity we have to do, but it is not one to which we add much value,” says Mark van Helvoort, senior manager at Philips Healthcare. “Simulink and HDL Coder enable us to focus on developing our algorithms and refining our design via simulation, not on checking VHDL syntax and coding rules.”


On previous projects, it was often difficult for Philips Healthcare hardware engineers to translate algorithm ideas developed by system architects in C into bit- and cycle-accurate FPGA implementations. These translation issues, combined with variations in amplifier linearity and differences in the VHDL programmers’ coding styles, made the development process less predictable.

Hand-coding HDL slowed design iterations, making it difficult to debug existing algorithms, test new algorithm ideas, and evaluate design tradeoffs to ensure that the entire design would fit on the target FPGA. Philips Healthcare engineers needed a way to assess design modifications and tradeoffs before hardware testing, and to accelerate implementation of the validated design on their FPGA.


Philips Healthcare used Model-Based Design to develop the MRI digital RF power subsystem and implement it in VHDL.

The engineers used Simulink to model an architecture consisting of a digital RF receiver and comparator, an RF waveform generator, and an amplifier. In this architecture, the amplifier’s forward and reflected output is sensed and fed back into the digital receiver, where it is compared with the required effective signal input. A corrected target signal is created using digital predistortion and sent to the waveform generator.

The RF waveform generator submodel in Simulink included a carrier NCO, SSB mixing, and cascade integrator-comb (CIC) and finite impulse response (FIR) filter components, in addition to a multiband modulator. The digital receiver and comparator submodel included analog-to-digital converter, demodulation, and digital down-converter blocks, as well as additional filters.

The team modeled these subsystems using floating-point precision in Simulink and then simulated the model to test, debug, and optimize the RF transmission chain.

They converted the model to fixed-point precision and ran additional simulations to verify the conversion.

Using HDL Coder, they generated VHDL code from their Simulink models and packaged the code into libraries. After importing the libraries into Mentor Graphics® ModelSim®, the team integrated the generated code into the overall FPGA design. After running simulations in ModelSim to prove that the overall design was correct, they deployed the code to a Xilinx® Virtex® FPGA.

Issues identified during hardware tests were replicated, diagnosed, and addressed in the Simulink model before the team generated new VHDL libraries and updated the FPGA for further testing.

Philips Healthcare plans to use the innovative digital RF power subsystem, including code generated by HDL Coder, in a production MRI machine.


  • Design issues resolved early in development. “Fixed-point simulations in Simulink revealed a spurious frequency that our system architect identified as unacceptable,” says Marcel van Bakel, electronics designer at Philips Healthcare. “Using Simulink, we traced the problem to a rounding error. Model-Based Design enabled us to resolve this problem early in development.”

  • Tradeoffs rapidly assessed and implemented. “An early design included a 24-stage FIR filter, but we saw that it would consume too many FPGA resources,” says van Bakel. “In 30 minutes, we modeled a simpler filter, verifying it using a spectrum analyzer in Simulink. This kind of change would take a week to hand-code in VHDL and test on hardware.”

  • Process consistency and predictability improved. “Unlike VHDL code written by different developers, the code generated by HDL Coder is consistent, which means the downstream tools using it behave predictably,” says van Bakel. “Generating code not only saves time, it also lowers risk and reduces the chance of introducing an error.”