Skip to content

olo_fix_sim_stimuli

Back to Entity List

Status Information

VHDL Source: olo_fix_sim_stimuli
VUnit Variant: olo_test_fix_stimuli_vc
Bit-true Model: N/A
Python co-simulation file writer: olo_fix_cosim

Description

This entity reads content of a co-simulation file writen by olo_fix_cosim from Python and applies the data to a DUT in a simulation as shown below.

Figure

The file to play as well as the stalling pattern (optional) can be configured through generics.

The component can work as timing-master (driving the stalling pattern by pulling Valid low) or timing-slave (apply data according to the activity on Ready/Valid driven by other components). This feature is used when a DUT has multiple data inputs. A test-bench then usually contains one olo_fix_sim_stimuli component per input. one configured as timing-master and all others configured as timing-slave.

Note: The pure VHDL componend olo_fix_sim_stimuli does play the file selected once and then wait. If you need more options, consider switching to VUnit.

For details about the fixed-point number format used in Open Logic, refer to the fixed point principles.

VUnit Variant

For VUnit users, a more elaborate variant of this component exists: olo_test_fix_stimuli_vc

The VUnit variant of the component allows to trigger the playback of files through a procedure call. As a result, multiple files can be played one after the other or the same file can be played several times. For every playback run the stalling pattern can be configured individually.

Generics

Name Type Default Description
FilePath_g string - Path of the file to read
IsTimingMaster_g boolean true true: Component acts as timing-master
false: Component acts as timing-slave
Fmt_g string - Fixed point format of the signal to generate. Must match the format written into the co-simulation file on the Python side.
String representation of an en_cl_fix Format_t (e.g. "(1,1,15)")
StallProbability_g real 0.0 Stall probability (0.0 = never stall, 1.0 = always stall).
Only used for IsTimingMaster_g=true
StallMaxCycles_g positive 1 Maximum number of clock-cycles to pull Valid low when stalling.
Only used for IsTimingMaster_g=true
StallMinCycles_g positive 1 Minimum number of clock-cycles to pull Valid low when stalling.
Only used for IsTimingMaster_g=true

Interfaces

Control

Name In/Out Length Default Description
Clk in 1 - Clock
Rst in 1 - Reset input (high-active, synchronous to Clk)

Output Data

Name In/Out Length Default Description
Data out width(Fmt_g) N/A Data
Format Fmt_g
Valid inout 1 N/A AXI-S handshaking signal for Data

Acts as output for IsTimingMaster_g=true
Acts as input for IsTimingMaster_g=false
Ready in 1 '1' AXI-S handshaking signal for Data

Note: In Timing-Slave mode, the Valid signal MUST be connected to the Valid signal generated by the Timing-Master. It cannot be left unconnected.

Detail

No detailed description required. All details that could be mentioned here are already covered by fixed point principles.