"FPGA Programming in C" is an extensive introduction to software-based FPGA programming techniques, targeted at engineers who have software programming experience and are willing to implement computing-intensive part of embedded software programs in FPGAs to achieve high performance.
With increasing complexity of the application, engineers are seeking for a way to move computing-intensive part to hardware. However, the long learning period of hardware programming techniques in VHDL and Verilog and the need for deep knowledge of hardware are the high thresholds for them.
Our course focuses on the principle and practice of FPGA Programming in C, introduces the basic hardware knowledge required for software engineers. In this course, we will show you how to quickly implement embedded software part in FPGA, how to use software-based methods and tools to generate hardware code, simulate the design, as well as how to write testbench in various languages (VHDL, SystemC, and MATLAB) to verify the design. Most importantly, we will introduce how to implement the design in Xilinx/Altera FPGA.
To enroll please contact training@bitsim.com or +46(8) 54 55 56 00
Duration Two days in Stockholm:
Fee: €1250
1st day, Feb 16:
Basic knowledge of FPGA, brief introduction to VHDL, Impulse C programming and Impulse C program optimization
2nd day, Feb 17:
Hardware generation from Impulse C, CoDeveloper Pro tools, simulation in various environments and FPGA implementation
Who should attend?
- Engineers experienced in embedded software design
- Engineers who have acquired C programming knowledge
- Engineers who are willing to quickly implement design to FPGA in C
Objectives
- Understand the concepts of FPGA and C-to-FPGA
- Understand basic knowledge of VHDL and have capability to read the VHDL code generated from Impulse C
- Understand FPGA design flow and Impulse C-to-FPGA design flow
- Understand the optimization techniques to achieve high performance
- Understand how to integrate Impulse C generated hardware into your own design flow
- Understand how to implement the design in FPGA
Prerequisites
- Basic knowledge of C and software programming
HW/SW Requirements
Software
Impulse C CoDeveloper
ModelSim for hardware simulation
Xilinx XPS, ISE for FPGA implementation
(or Altera NIOS2/Quatus)
Visual Studio
Matlab/Simulink
Hardware
Xilinx or Altera FPGA board |
Structure and Content
FPGA and Reconfigurable Computing
In this chapter, you will learn:
- The basic components of FPGA
- The advantage of FPGA over general purpose computing and DSP
FPGA Design flow
- Embedded processor in FPGA
VHDL Crash Course
In this chapter, you will learn:
- VHDL entity, architecture, process, component, data type, finite state machine
- How to understand VHDL code
Programming in Impulse C
In this chapter, you will learn:
- Concept of stream programming
- What is the difference between Impulse C and ANSI C
- The basic structure of Impulse C program
- Language constraints of Impulse C when writing hardware process
- The technique of converting a legacy C program to Impulse C
Optimizing Impulse C Program
In this chapter, you will learn:
- The optimization techniques, including loop unrolling, pipelining, etc.
- How to use Impulse C provided pragmas to optimize the program to generate more efficient hardware code
Hardware Code Generation
In this chapter, you will learn:
- Data flow of Impulse C hardware generation
- How to configure the options in CoDeveloper to generate expected hardware code
- Generated VHDL code for stream, signal, array
Protools and Simulation
In this chapter, you will learn:
- How to use Stage Master Explorer to analyze generated hardware code
- How to use Stage Master Debugger to do cycle-based hardware simulation
- How to use Visual Studio to simulate design
- Hardware simulation technique to verify the hardware code using ModelSim
- CoSimulation technique with MATLAB and Simulink to verify the generate hardware
FPGA Implementation
In this chapter, you will learn:
- How to implement the design into Xilinx and Altera FPGA
- Xilinx XPS and Altera SOPC builder design flow
- The embedded system created in XPS and SOPC builder
- How to configure the system
- How to simulate and verify the system
|