Skip to main content
Log in

Design and implementation of counting networks

  • Published:
Computing Aims and scope Submit manuscript

Abstract

The paper describes Hamming weight counters/comparators built on counting networks that incorporate two distinctive and important features. The counting networks are composed of simple logic (core) elements with incrementally reducing numbers of elements from the inputs to the outputs. This feature provides the same performance as the best known sorting networks with radically reduced complexity. Compared to a competitive design based on parallel counters, the propagation delays of signals passing through data independent segments within the circuit are shortened, which allows faster pipelined implementations. Several types of counting networks are elaborated, namely pure combinational, partially sequential with reusable fragments, and pipelined. The correctness of the proposed concept and scalability of the networks are proven. Formal expressions to estimate the complexity and throughput of the network are given. Finally, the results of extensive experiments, evaluations and comparisons are reported that demonstrate that the solutions proposed offer better characteristics than the best known alternatives.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

References

  1. Bailey DG (2011) Design for embedded image processing on FPGAs. Wiley, New York

  2. Knuth DE (1973) The art of computer programming. Sorting and searching, vol 3. Addison-Wesley, USA

  3. Zakrevskij A, Pottoson Yu, Cheremisiniva L (2008) Combinatorial algorithms of discrete mathematics. TUT Press, Tallinn, Estonia

  4. Parhami B (2009) Efficient Hamming weight comparators for binary vectors based on accumulative and up/down parallel counters. IEEE Trans Circuits Syst II Express Briefs 56(2):167–171

    Google Scholar 

  5. Piestrak SJ (May 2007) Efficient hamming weight comparators of binary vectors. Electron Lett 43(11):611–612

    Google Scholar 

  6. Sklyarov V, Skliarova I, Mihhailov D, Sudnitson A (2011) Implementation in FPGA of Address-based Data Sorting. In: Proceedings of 21st International Conference on Field-Programmable Logic and Applications—FPL’11, pp 405–410

  7. Barral C, Coron JS, Naccache D (2004) Externalized fingerprint matching. Lect Notes Comput Sci 3072:309–315

    Google Scholar 

  8. Asada K, Komatsu S, Ikeda M (1999) Associative memory with minimum Hamming distance detector and its application to bus data encoding. In: Proceedings of the IEEE Asia-Pacific ASIC Conference— AP-ASIC’99, p 282

  9. Nambiar VP, Balakrishnan S, Khalil-Hani M, Marsono MN (2013) HW/SW co-design of reconfigurable hardware-based genetic algorithm in FPGAs applicable to a variety of problems. Computing 1–24

  10. Skliarova I, Ferrari AB (2003) The design and implementation of a reconfigurable processor for problems of combinatorial computation. J Syst Archit (Special Issue on Reconfigurable Systems) 49(4–6): 211–226

    Google Scholar 

  11. Mueller R, Teubner J, Alonso G (2012) Sorting networks on FPGAs. Int J Very Large Data Bases 21(1):1–23

    Google Scholar 

  12. Zuluada M, Milder P, Puschel M (2012) Computer generation of streaming sorting networks. Proceedings of the 49th design automation conference, 2012, pp 1245–1253

  13. Pedroni VA (Nov. 2003) Compact fixed-threshold and two-vector hamming comparators. Electron Lett 39(24):1705–1706

    Google Scholar 

  14. Pedroni V (2004) Compact Hamming-comparator-based rank order filter for digital VLSI and FPGA implementations. Proceedings of the IEEE International Symposium on Circuits and Systems—ISCAS’2004, pp 585–588

  15. Wendt PD, Coyle EJ, Gallagher NC (Aug. 1986) Stack filters. IEEE Trans Acoust Speech Signal Process 34(4):898–908

    Google Scholar 

  16. Storace M, Poggi T (2011) Digital architectures realizing piecewise-linear multivariate functions: two FPGA implementations. Int J Circ Theor Appl 39:1–15

    Google Scholar 

  17. Sklyarov V, Skliarova I (2012) Data processing in FPGA-based systems. Tutorial, Proceedings 6th international conference on application of information and communication technologies—AICT, Oct 2012, pp 291–295

  18. Xilinx, 7 Series DSP48E1 Slice User Guide, available at: http://www.xilinx.com/support/documentation/user_guides/ug479_7Series_DSP48E1.pdf

  19. Digilent boards, drivers, and VHDL modules, available at http://www.digilentinc.com/

  20. Xillybus Lite for Zynq-7000: Easy FPGA registers with Linux. Available at http://xillybus.com/xillybus-lite

Download references

Acknowledgments

The authors would like to thank Ivor Horton for his very useful comments and suggestions. This research was supported by FEDER through the Operational Program Competitiveness Factors—COMPETE and by National Funds through FCT—Foundation for Science and Technology in the context of projects FCOMP-01-0124-FEDER-022682 (FCT reference PEst-C/EEI/UI0127/2011) and Incentivo/EEI/UI0127/2013.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Valery Sklyarov.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Sklyarov, V., Skliarova, I. Design and implementation of counting networks. Computing 97, 557–577 (2015). https://doi.org/10.1007/s00607-013-0360-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-013-0360-y

Keywords

Mathematics Subject Classification

Navigation