The paper suggests a technique for fast data processing of unique and constrained items. The technique is based on two methods that involve: 1) address-based data sorting; and 2) communication-time networks. Input data are received one by one from a sequential channel. The first method enables undesirable values (e.g. previously taken or explicitly blocked) to be discarded. Although this method is chosen from the scope of data sorting, it is used in the paper (after some adjustments) for filtering. The second method enables each data item to be properly handled during communication time. For example, in case of data sorting it means that as soon as a new item is received it will immediately be placed in a proper position of the produced sorted subset that is composed of all previously acquired items. The circuits that implement the proposed methods have been entirely modeled and verified in software, then described in VHDL, synthesized and implemented in hardware, and finally evaluated. The results have shown that the proposed solutions are well suited for real-time applications. Index Terms-Address-based sorting; data filtering; sorting networks; communication-time circuits; FPGA.
I. INTRODUCTIONData processing is one of the most common procedures in computational systems. Examples of such processing are data sorting/searching, discovering of frequent items, filtering and so on. Very often different operations over data are implemented in highly parallel networks that take input values and convert them to output values in a combinational circuit. The output values are not formed immediately because input signals pass through logic elements each of which causes a delay on a way of the signals from the inputs to the outputs. In many practical applications we would like to handle just non-repeated values, i.e. each of such values is unique. Let us consider, for instance, a set of natural values: {4, 0, 18, 5, 6, 4, 3, 3, 4} and some of them (e.g. the values 3 and 4) are repeated. Hence, the set of unique or nonrepeated values is {4, 0, 18, 5, 6, 3}. For many practical applications that can be found in cryptography, bioinformatics, feature extraction, data mining and some