what is the difference between FPGA Turnkey and IP Core Generation?

41 views (last 30 days)
In HDL Workflow advisor one could choose between different target workflows such as Generic ASICS/FPGA, FPGA Turnkey, IP Core Generation, FPGA-in-the-loop, Simulink real-time FPGA I/O. I have researched for almost half a day and I couldn't find a clear explanation of differences between these modes. In particular, I would like to know about difference between FPGA Turnkey and IP Core Generation. It is highly appreciated if someone briefly explain this, or cite references where this topic is discussed.
Best regards, Yashar

Accepted Answer

Wang Chen
Wang Chen on 7 Aug 2015
Edited: Wang Chen on 7 Aug 2015
Hi Yashar,
Both IP Core Generation and FPGA Turnkey workflows can help you prototype your Simulink/MATLAB algorithm on FPGA/SoC boards.
IP Core Generation workflow adopts the IP-centric design methodology. You can generate your own custom HDL IP core from your Simulink/MATLAB algorithm. This custom IP core is sharable and reusable, and also comes with a generated IP core report.
You can then integrate the generated IP core into a larger design in FPGA design tools such as Altera Qsys, or Xilinx Vivado/IP Integrator. You can also register your Vivado/Qsys project as a custom reference design, so the IP Core Generation workflow can help you integrate the IP core into the reference design automatically.
FPGA Turnkey workflow does not use the IP-centric design methodology. Instead, it generates the HDL codes for the whole FPGA design, including the algorithm HDL code, the FPGA top level wrapper HDL code, and FPGA Pin mapping constraints, so you can run your algorithm on standard alone FPGA board. FPGA Turnkey workflow targets FPGA boards only, it does not support Zynq/Altera SoC boards
Thanks, Wang
  3 Comments
冰昊
冰昊 on 27 Jan 2024
For this question, I want to know more.
what is the difference between FPGA-in-the-loop, Simulink real-time FPGA I/O?
And, what is the difference between Generic ASICS/FPGA and IP Core Generation.
Thanks.
Kiran Kintali
Kiran Kintali on 28 Jan 2024
Edited: Kiran Kintali on 29 Jan 2024
HDL Coder Workflows:
  • Generic ASIC/FPGA Workflow: Generate Synthesizable RTL (VHDL, Verilog, SystemVerilog)
  • IP Core Generation: Wrap the Generated RTL with custom AXI and other industry standard interfaces, automatically integrate the generated IP core into a bigger reference design system, and optionally generate SW interface to the IP core for HW/SW co-design. See notes here Generate IP Core and Bitstream
  • Simulink RT FPGA IO: Real Time hardware targeting using Speedgoat
  • FPGA IO: Run and verify the HDL Coder generated bitstream from your IP core design on your choice target hardware. Free running FPGA workflow. Send and receive data from MATLAB to target hardware.
  • FPGA-in-the-loop: Simulink runs in lockstep with the supported FPGA board (requires HDL Verifier) for hardware debugging in conjunction with Simulink.
  • FPGA-turnkey: Stand-alone FPGA only (no SoC support) workflow. Now deprecated. Recommend to use the more advanced IP Core and SoC targeting workflows shown above.

Sign in to comment.

More Answers (1)

Kiran Kintali
Kiran Kintali on 28 Jan 2024
Targeting FPGA & SoC Hardware with HDL Coder Workflow
Design a system that you can deploy on hardware or a combination of hardware and software. Deploy your MATLAB® or Simulink® design:
  • As hardware and software on system-on-chip (SoC) platforms, such as Xilinx® Zynq®, Intel® SoC or Microchip SoC.
  • On standalone FPGA boards, such as an Intel FPGA or a Xilinx FPGA board.
  • On platforms that have a separate FPGA and processor, such as the Simulink Real-Time™ target machine with FPGA I/O boards.
If you are using an SoC platform or a platform that has a separate FPGA and processor, you can partition your design to generate hardware that targets the FPGA fabric and software that runs on the embedded processor of the target platform.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!