Overall Structure - 2024.1 English

Vitis Libraries

Release Date
2024-08-06
Version
2024.1 English

The writeToDataframe() process includes two stages: 1) parse input data and lively store Null/Boolean data to LUTRAM/BRAM/URAM, Int64/Double/Date/String data to DDR; 2) save the on-chip memory data to DDR.

The structure of stage One is as follows:

stage one

ProcessNull module adds a 1-bit flag to each data, to indicate whether each input data is null or not. This flag info is saved in an URAM bit_map. Meanwhile, the row number of input data and the number of null data are recorded on l_buff and n_buff.

If the input data is not null, based on the data type, different actions are taken. For boolean data, similar to null, a 1-bit value is used to save the real value and saved on bool_buf. For other non-string data typels, a module collectData is employed to convert the data from 64-bit to 32-bit.

For string data type, the offset/length of each string data is recorded. Because of this length, the info for each data is 32-bit. Another collectData module is employed here.

While outputing 32-bit data from two collectData modules, each data generates 1x 32-bit data write request to a memManage module. This module accumulates the request number to 32 and generates a burst write 32x 32-bit data request. This request includes a writing address and data number. The actual 32x32-bit data is bufferred in the combine module.

The reason that these two combine modules are added here is because the DDR is 64-bit and your data is 32-bit. These two modules are converting the data again from 32-bit to 64-bit. A detailed explaination graph is provided.