OpenCores

Scalable Data Concentrator

Project maintainers

Details

Name: xconcentrator
Created: Feb 19, 2026
Updated: Feb 20, 2026
SVN Updated: Feb 20, 2026
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star0you like it: star it!

Other project properties

Category:Other
Language:VHDL
Development status:Mature
Additional info:
WishBone compliant: No
WishBone version: n/a
License: BSD

Xconcentrator - Scalable data concentrator based on baseline interconnection network for triggerless DAQ

This project implements a high-speed data concentrator based on the baseline interconnection network with reversed outputs. In data acquisition systems, we often need to combine multiple short-word data streams into a single long-word data stream. Theoretically, it is a trivial problem. We may just assign parts of that long word to the individual input channels. However, the input streams are not necessarily dense. They do not deliver the data we want to transfer to the DAQ in each clock pulse. In the trivial approach, that would create "holes" in the output data stream. We want to avoid that to eliminate wasting bandwidth (or the memory in the receiving system). The xconcetrator solves that problem. It eliminates "holes" in the output stream, routing useful input data to the correct positions in the output word. It may accept the new data set every clock period. The architecture may be pipelined so that the maximum clock frequency may be high. The solution is described in the paper https://doi.org/10.3390/electronics13010081 . Please reference that article if you use xconcentrator. There is also an earlier version of the concentrator, designed for specific concentration factors, described in https://doi.org/10.3390/electronics12061437 . The sources of xconcentrator are also available at https://gitlab.com/WZabISE/xconcentrator. The earlier non-scalable version is available at https://gitlab.com/WZabISE/concentrator.

You may simulate the xconcentrator to see how it works. For that, you must have GHDL and GTKWave installed. You may run make reader to run the simulation and view its results in GTKWave. Of course, you need to add the signals to be displayed.

The project is licensed under a dual GPL/BSD license (BSD is selected in the metadata, as it is less restrictive).