cloudFPGA (cF) API  1.0
The documentation of the source code of cloudFPGA (cF)
memtest_processing.hpp File Reference

The processing template for the memory test. More...

Include dependency graph for memtest_processing.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define FAULT_INJECTION
 
#define FSM_PROCESSING_WAIT_FOR_META   0
 
#define FSM_PROCESSING_PCKT_PROC   1
 
#define FSM_PROCESSING_STOP   2
 
#define FSM_PROCESSING_START   3
 
#define FSM_PROCESSING_BURST_READING   4
 
#define FSM_PROCESSING_DATAFLOW_WRITE   5
 
#define FSM_PROCESSING_DATAFLOW_READ   6
 
#define FSM_PROCESSING_OUTPUT   7
 
#define FSM_PROCESSING_OUTPUT_2   8
 
#define FSM_PROCESSING_OUTPUT_3   9
 
#define FSM_PROCESSING_OUTPUT_4   10
 
#define FSM_PROCESSING_OUTPUT_5   11
 
#define FSM_PROCESSING_CONTINUOUS_RUN   12
 
#define FSM_PROCESSING_WAIT_FOR_DDR_CONTROLLER_EMPTYNESS   13
 
#define ProcessingFsmType   uint8_t
 
#define MEMTEST_ADDRESS_BITWIDTH   40
 
#define MEMTEST_ITERATION_BITWIDTH   16
 
#define MEMTEST_BURST_BITWIDTH   16
 
#define MEMTEST_ADDRESS_HIGH_BIT   NETWORK_WORD_BIT_WIDTH-1
 
#define MEMTEST_ADDRESS_LOW_BIT   NETWORK_WORD_BIT_WIDTH-MEMTEST_ADDRESS_BITWIDTH
 
#define MEMTEST_ITERATIONS_HIGH_BIT   MEMTEST_ADDRESS_LOW_BIT-1
 
#define MEMTEST_ITERATIONS_LOW_BIT   MEMTEST_ITERATIONS_HIGH_BIT+1-MEMTEST_ITERATION_BITWIDTH
 
#define MEMTEST_BURST_HIGH_BIT   MEMTEST_BURST_BITWIDTH-1+MEMTEST_COMMANDS_BITWIDTH
 
#define MEMTEST_BURST_LOW_BIT   MEMTEST_BURST_HIGH_BIT+1-MEMTEST_BURST_BITWIDTH
 

Functions

template<const unsigned int maximum_number_of_beats = 512>
void pWriteDataflowMemTest (membus_t *lcl_mem0, local_mem_addr_t max_address_under_test, ap_uint< 64 > *writing_cntr, ap_uint< 32 > *testCounter, unsigned int burst_size)
 
template<const unsigned int maximum_number_of_beats = 512>
void pReadDataflowMemTest (membus_t *lcl_mem1, local_mem_addr_t max_address_under_test, ap_uint< 64 > *reading_cntr, ap_uint< 32 > *faulty_addresses_cntr, local_mem_addr_t *first_faulty_address, unsigned int burst_size)
 
template<const unsigned int counter_width = 64>
void pTHISProcessingData (stream< NetworkWord > &sRxpToProcp_Data, stream< NetworkWord > &sProcpToTxp_Data, stream< NetworkMetaStream > &sRxtoProc_Meta, stream< NetworkMetaStream > &sProctoTx_Meta, bool *start_stop)
 THIS processing the data once recieved a start command Template function for custom processing. More...
 

Variables

const unsigned int top_param_maximum_number_of_beats = 4096
 

Detailed Description

The processing template for the memory test.

Author
DCO

@date September 2021

A Memory test FSM for the processing of data. It contains the big FSM that manages the input data, parse the commands and set up stuffs, and handles the new meta production from RX. After setting up, begins to processing (so real memory test) that reads and write (impl. details in the memtest_pattern_library.hpp file), concludes with the output send to the TX functions. Interesting MACROS: FAULT_INJECTION (custom fault injection enable or not ifdef), SIMPLER_BANDWIDTH_TEST (employ the complex/controllable or the simpler non controllable version) Various BITWIDTH are used to define the command format of the memory test

Current format 63-24 Trgt addrss; 23-8 Iterations; 7-0 start cmd 127-88 Empty; 87-72 Burst Size; 71-64 burst cmd (or if u prefer the second 64 bits)

Deprecated:


Definition in file memtest_processing.hpp.