Entity: tb_axis_loop

Diagram

string runner_cfg string tb_path string csv_i string csv_o

Description

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Copyright (c) 2014-2021, Lars Asplund lars.anders.asplund@gmail.com This testbench is a Minimum Working Example (MWE) of VUnit's resources to read/write CSV files and to verify AXI4-Stream components. A CSV file that contains comma separated integers is read from data_path & csv_i, and it is sent row by row to an AXI4-Stream Slave. The AXI4-Stream Slave is expected to be connected to an AXI4-Stream Master either directly or (preferredly) through a FIFO, thus composing a loopback. Therefore, as data is pushed to the AXI4-Stream Slave interface, the output is read from the AXI4-Stream Master interface and it is saved to data_path & csv_o. AXI Stream VC's optional 'stall' feature is used for generating random stalls in the interfaces. In this example, a 5% of probability to stall for a duration of 1 to 10 cycles is defined.

Generics

Generic name Type Value Description
runner_cfg string
tb_path string
csv_i string "data/in.csv"
csv_o string "data/out.csv"

Signals

Name Type Description
clk std_logic tb signals and variables
rst std_logic tb signals and variables
rstn std_logic tb signals and variables
start boolean
done boolean
saved boolean

Constants

Name Type Value Description
clk_period time 20 ns
data_width natural 32
master_axi_stream axi_stream_master_t new_axi_stream_master( data_length => data_width,
stall_config => new_stall_config(0.05,
1,
10) )
AXI4Stream Verification Components
slave_axi_stream axi_stream_slave_t new_axi_stream_slave( data_length => data_width,
stall_config => new_stall_config(0.05,
1,
10) )
m_I integer_array_t load_csv(tb_path & csv_i)
m_O integer_array_t new_2d(width(m_I),
height(m_I),
data_width,
true)

Processes

Instantiations

Description