Cyclic Boolean circuits

Marc D. Riedel, Jehoshua Bruck

Research output: Contribution to journalArticlepeer-review

9 Scopus citations

Abstract

A Boolean circuit is a collection of gates and wires that performs a mapping from Boolean inputs to Boolean outputs. The accepted wisdom is that such circuits must have acyclic (i.e., loop-free or feed-forward) topologies. In fact, the model is often defined this way-as a directed acyclic graph (DAG). And yet simple examples suggest that this is incorrect. We advocate that Boolean circuits should have cyclic topologies (i.e., loops or feedback paths). In other work, we demonstrated the practical implications of this view: digital circuits can be designed with fewer gates if they contain cycles. In this paper, we explore the theoretical underpinnings of the idea. We show that the complexity of implementing Boolean functions can be lower with cyclic topologies than with acyclic topologies. With examples, we show that certain Boolean functions can be implemented by cyclic circuits with as little as one-half the number of gates that are required by equivalent acyclic circuits. We also show a quadratic upper bound: given a cyclic Boolean circuit with m gates, there exists an equivalent acyclic Boolean circuit with m2 gates.

Original languageEnglish (US)
Pages (from-to)1877-1900
Number of pages24
JournalDiscrete Applied Mathematics
Volume160
Issue number13-14
DOIs
StatePublished - Sep 2012

Bibliographical note

Funding Information:
This work is partially supported by an NSF CAREER Award (grant CCF0845650 ), by the NSF Expeditions in Computing Program (grant CCF-0832824 ), by a grant from the MARCO Focus Center Research Program on Functional Engineered Nano-Architectonics (FENA) , and by the Caltech Lee Center for Advanced Networking .

Keywords

  • Boolean circuits
  • Boolean functions
  • Combinational circuits
  • Cycles
  • Cyclic circuits
  • DAG
  • Feedback
  • Loops

Fingerprint

Dive into the research topics of 'Cyclic Boolean circuits'. Together they form a unique fingerprint.

Cite this