File Exchange

image thumbnail

HDL Coder Self-Guided Tutorial

version 1.2 (1.94 MB) by Jack Erickson
Learn how to deploy an algorithm to an FPGA using MATLAB and Simulink


Updated 19 Jul 2019

View License

Editor's Note: This file was selected as MATLAB Central Pick of the Week

This tutorial will guide you through the steps necessary to implement a MATLAB algorithm in FPGA hardware, including:
* Create a streaming version of the algorithm using Simulink
* Implement the hardware architecture
* Convert the design to fixed-point
* Generate and synthesize the HDL code

Cite As

Jack Erickson (2019). HDL Coder Self-Guided Tutorial (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (12)

Jing Ma

Jack Erickson

Hi Suranga - thanks for pointing that out. In 2019a Simulink changed the way it names the simulation workspace data. We have updated the kit for 2019a.

The example doesn't work with 2019a. I get the error "Undefined variable "logsout" or class "logsout.getElement"" when trying to run the model.

Figured out the answer to my own question - posting in case some one else makes the same mistake. I used the first simulink "from workspace" I saw. That block , from a comment in this link "From Workspace blocks are not able to import "just plain data". From Workspace blocks are intended to deliver data at a particular time: they are blocks for execution of a model, where as importing plain data is something that would be used in a procedural language.”".

As it turns out there are two simulink from workspace block. One specifies “signal from workspace” and can be used to import “just plain data”.

Summarily, make sure to use "signal from workspace". You'll get an error otherwise.

Eric Cigan

Eric Cigan

Very helpful step-by-step guide for users new to HDL Coder.



Updated for R2019a


Minor edits to two slides


Updated for R2018b

MATLAB Release Compatibility
Created with R2018a
Compatible with R2018a to R2018b
Platform Compatibility
Windows macOS Linux