AXI4-Stream Upsizing Downsizing Data Width Converters For Hardware-In-The-Loop Simulations
AXI4-Stream Upsizing Downsizing Data Width Converters For Hardware-In-The-Loop Simulations
Hardware-In-the-Loop Simulations
Luis Vega, Philipp Schlafer, Christian de Schryver.
Microelectronic Systems Design Research Group
University of Kaiserslautern, Germany
e-mail: [email protected], {schlaefer, schryver}@eit.uni-kl.de
Figure 1.
I. INTRODUCTION
Nowadays, IP-core development involves regularly
Hardware-In-the-Loop (HIL) simulations. Furthermore, reconfigurable embedded processors and bus architectures
are required in order to validate IP-core functionality [1].
Therefore, HIL relies on system-level design. One common
task in system-level design is assembling components. This
assembly or interconnect is done either between intellectual
property (IP) cores or, an IP-core and a bus system.
Although interconnecting components may seem a trivial
task, there are situations where it can not be done directly.
The reasons are two fold: one, at block-level, is related
to different number of ports. One IP-core may have more
ports than other. Secondly, at port-level, because of word
sizes. For example, component ports may have different
word sizes such as 8, 32 or 64 bits. Generally speaking, a
hardware developer requires assembling components under
limited input and output ports. A natural solution to this
issue is upsizing and/or downsizing data width through
converters. However, it turns out that these data width
converters are built to solve particular interconnect issues
avoiding flexibility and reusability.
Our contribution is to provide an open source hardware
cores (converters)1 that perform upsizing and downsizing
data width and compliant with AXI4-Stream bus protocol [2]. Furthermore, the interfaces were developed in
VHDL, providing simple, compact and flexible features that
1 Source
Figure 2.
Table I
AXI 4- STREAM MASTER / SLAVE SIGNAL LIST
Signal
tdata
tlast
tvalid
tready
Description
Data payload
Boundary of a packet
A transfer takes place
both tvalid and tready
A transfer takes place
both tvalid and tready
when
are asserted
when
are asserted
Figure 3.
Data arrangement
Table II
UPSIZER / DOWNSIZER COMPONENT GENERIC PARAMETERS
Name
G RESET ACTIVE
WIDTH
NUM REG
Type
std logic
integer
integer
Description
Set reset active low or high
Data word size
Number of ports
Figure 4.
Figure 5.
UPSIZER
Signal
s_axis_tdata
s_axis_tlast
s_axis_tvalid
s_axis_tready
m_axis_tarray
m_axis_tlast
m_axis_tvalid
m_axis_tready
Table V
Table III
- PORT INTERFACE INFORMATION
Direction
input
input
input
output
output
output
output
input
Width(bits)
[WIDTH-1:0]
1
1
1
[NUM REG*WIDTH-1:0]
1
1
1
Type
data
control
control
control
data
control
control
control
Table IV
DOWNSIZER
Signal
s_axis_tarray
s_axis_tlast
s_axis_tvalid
s_axis_tready
m_axis_tdata
m_axis_tlast
m_axis_tvalid
m_axis_tready
Width(bits)
[NUM REG*WIDTH-1:0]
1
1
1
[WIDTH-1:0]
1
1
1
Type
data
control
control
control
data
control
control
control
TYPICAL APPLICATION
AXI4-Stream IPs
s axis tvalid
s axis tready
m axis tready
m axis tvalid
Table VI
32- TO -128/128- TO -32 CONVERSION
Slice Registers
Slice LUTs
max. clock frequency
Direction
input
input
input
output
output
output
output
input
Legacy IP (FIFO)
write enable
not(full)
read enable
not(empty)
Upsizer
163
203
390 MHz
Downsizer
166
206
370 MHz
RESULTS
CONCLUSION
Available: