How can we develop a simple hardware description in C to control a few LEDs? This controller would 1
be the “Hello World!” example in HLS, through which I demonstrate essential steps of the HLS hardware development 2
process. 3
Primary goals of logic circuits are processing data and controlling a wide range of systems. To achieve 4
these goals, a logic circuit should perform three tasks: receive or generate data, process data and 5
send the results out. 6
The data can be received from different sources such as memories, sensors, data stream sources or other 7
logic circuits. 8
These data can be in various shapes or formats. 9
The data processing can be as simple as transferring data with minor modification or performing several 10
computational operations on data. 11
The resulted data can be used to change the environment via actuators, displays or used by other logic 12
circuits or be saved in memories for later usage. 13
Our target design in this course is a simple logic circuit that turns on/off LEDs based on a predefined 14
pattern. 15
Therefore it has no input but has an output connected to LEDs. 16
In this section, you will learn: What the HLS design-flow is, How to describe a design in C/C++, 17
How to use Vivado-HLS and Vivado to create a design, How to program the Basys-3 board with a simple 18
design to control LEDs on the board. 19
This section consists of 12 lectures. The current lecture, as the first one, explains the goal and the 20
structure of the section. 21
The next lecture introduces the LED configuration on the Basys-3 board. Lecture three deals with 22
with the basic concepts behind the HLS design and its relation with the Xilinx toolsets. 23
The overall design flow is explained in lecture four. Lecture five briefly describes the Vivado-HLS design 24
flow. 25
Then we will be prepared to describe our design in C/C++ in the sixth lecture. 26
The hardware port concept and its description in C/C++ are explained in Lecture seven. 27
Lecture 8 is where we use the Xilinx Vivado-HLS toolset to describe and synthesise 28
our LED controller code. 29
Lectures 9 and 10 cover the techniques to import the synthesised HLS design into Vivdo toolset for logic 30
synthesis. 31
After generating the FPGA bitstream, in lecture 11 we will program the board and examine the results 32
on the real Basys-3 board. 33
Finally, lecture 12 provides some exercises for a better understanding of the topics explained in this 34
section. 35
What is the Basys3 board configuration for accessing the LEDs? 36
The next lecture will answer this question.