One of the main tasks at the early stages of a hardware design development flow is evaluating the 1
code for functional correctness, quality of results and the level of performance. Simulation is one 2
of the techniques that provides this evaluation process. 3
This section explains the basic ideas behind the simulation process in HLS. 4
In a typical code simulation, we apply an input to the code under development, execute the code and 5
examine the results for functional and timing correctness or evaluating non-functional features such 6
as security, and power consumption. 7
In this section, you will learn: C software simulation in HLS, What a testbench is, Hardware/Software 8
Co-Simulation in HLS. 9
This section consists of five lectures. The current lecture talks about the section goals and its structure. 10
The next section defines the verification and simulation in hardware design. Lecture 3 explains how 11
develop a test bench code in HLS. 12
The fourth lecture demonstrates how to use the Xilinx 13
Vivado-HLS toolset to implement a test bench along with design. 14
The last section gives a few exercises to review and master the test bench design techniques. 15
How to evaluate our code at the early stages of the design flow and find the possible errors? 16
In the next section, first, I will list possible approaches for design verification, and then I focus 17
on the simulation process and its different stages. 18
These are our takeaway messages: Simulation is used to evaluate an HLS design. 19
It can significantly increase your productivity