ac6-formation, un département d'Ac6 SAS
EN
EnglishFrench
go-up

ac6 ac6-formation Programming FPGA

FPGA

Programming and using programmable logic components


A microcontroller executes instructions one after another. An FPGA does not: it becomes the circuit you describe to it. A thousand operations can proceed at once, because they occupy a thousand distinct areas of silicon.

That is where the whole difficulty of learning lies. You are not writing a program, you are describing hardware. VHDL and SystemVerilog look like programming languages and are not: a loop is not a repetition in time but a replication in space, and a signal is not a variable. Beginners who approach VHDL as if it were C produce circuits that simulate correctly and fail to meet timing.

When an FPGA is the right answer

Three cases keep coming back: genuine parallelism, when dozens of channels must be handled simultaneously; deterministic latency, when a response is due within tens of nanoseconds, which no software interrupt can guarantee; and interfaces nobody sells, a proprietary protocol or a sensor with an unusual format.

Outside those cases a microcontroller stays simpler, cheaper and quicker to bring up. An FPGA is paid for in design time and in power consumption.

Describe, verify, integrate

Design is done in VHDL or SystemVerilog. SystemC comes in higher up, to explore an architecture before freezing the RTL.

Verification often weighs more than design itself. UVM is the industry standard methodology for building reusable testbenches: an unverified circuit is not a finished circuit.

Finally, most current FPGAs carry a processor, either hardened into the silicon like the Cortex-A9 in Zynq and Cyclone V devices, or synthesised into the fabric like MicroBlaze, Nios, Mico32 or a RISC-V core. Designing for these parts means splitting a function between software and hardware, and making the two talk to each other.

Our courses

VHDL Language Basics (V1) and Advanced VHDL for FPGA (V2) form the main path, from syntax to design methodology. SystemVerilog (U1) and UVM (U2) cover the verification side, Design with SystemC (V3) high-level modelling, and FPGA Optimization (V4) the work on performance and area. Programmable components fundamentals (V0) is the entry point for those starting from nothing.

On the device side, the courses follow the main vendors: AMD Zynq (HX5) and MicroBlaze (HX4), Cyclone V Cortex-A9 (ALT1) and Nios (ALT2), Lattice Mico32 (H1) and Diamond (H2), Microchip SmartFusion2 (MSP). RISC-V Architecture (RV1) covers the instruction set that has become hard to avoid for synthesised cores.

Hands-on work runs on real boards on site, and remotely on remotely accessible hardware or on the simulation tools we develop. A timing problem is only understood by watching it happen.

Available Courses

A practical, end-to-end Nios on Intel FPGA course: from SoC creation in Platform Designer to firmware bring-up, drivers, interrupts, DMA, and RTOS. We add external memory/boot options, a custom Avalon-MM peripheral, and wrap with performance tuning, SignalTap debug, and production checklists.
This course provides a comprehensive overview of the RISC-V architecture and instruction set for attendees. They will learn the basics of RISC-V, including RISC-V Assembler and Simulator, writing and running assembly code, and RISC-V C Programming. The course covers topics such as interrupt and exception handling, memory management, multiprocessing and concurrency, performance optimization, hardware and system design, and future developments. Hands-on experience will be provided through lab sessions.
This training is intended to professional who want to use or maintain programmable components