, Volume 2, Issue 1–4, pp 283–314 | Cite as

Algorithms for the compilation of regular expressions into PLAs

  • Anna R. Karlin
  • Howard W. Trickey
  • Jeffrey D. Ullman


The language of regular expressions is a useful one for specifying certain sequential processes at a very high level. They allow easy modification of designs for circuits, like controllers, that are described by patterns of events they must recognize and the responses they must make to those patterns. This paper discusses the compilation of such expressions into specifications for programmable logic arrays (PLAs) that will implement the required function. A regular expression is converted into a nondeterministic finite automaton, and then the automaton states are encoded as values on wires that are inputs and outputs of a PLA. The translation of regular expressions into nondeterministic automata by two different methods is discussed, along with the advantages of each method. A major part of the compilation problem is selection of good state codes for the nondeterministic automata; one successful strategy and its application to microcode compaction is explained in the paper.

Key words

Regular expressions Silicon compilation Nondeterministic finite automata Microcode compaction 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    T. Agerwala, Microprogram optimization: a survey,IEEE Trans. Comput. 25 (1976), 963–973.CrossRefMathSciNetGoogle Scholar
  2. [2]
    A. V. Aho, J. D. Ullman, and M. Yannakakis, Modeling communications protocols by automata,Proceedings of the 20th Annual IEEE Symposium on Foundations of Computer Science, 1979, pp. 267–273.Google Scholar
  3. [3]
    R. K. Brayton, G. D. Hachtel, L. A. Hemachandra, A. R. Newton, and A. L. M. Sangiovanni-Vincentelli, A comparison of logic minimization strategies using EXPRESSO: an APL program package for partitioned logic minimalization,Proceedings of the IEEE International Conference on Circuits and'Computers, 1982.Google Scholar
  4. [4]
    D. Dietmeyer,Logic Design of Digital Systems, Allyn and Bacon, Reading, MA, 1971.zbMATHGoogle Scholar
  5. [5]
    R. W. Floyd and J. D. Ullman, The compilation of regular expressions into integrated circuits,J. Assoc. Comput. Mach.,29 (1982), 603–622.zbMATHMathSciNetGoogle Scholar
  6. [6]
    M. J. Foster and H.-T. Kung, Recognize regular languages with programmable building blocks, inVLSI-81 (J. P. Gray, ed.), Academic Press, New York, 1981, pp. 75–84.Google Scholar
  7. [7]
    R. L. Haskin, Hardware for searching very large text databases, Ph.D. Thesis, Department of Computer Science, University of Illinois, Urbana, Il, 1980.Google Scholar
  8. [8]
    L. A. Hemachandra, GRY: a PLA minimizer, Unpublished Memorandum, Department of Computer Science, Stanford University, Stanford, CA, 1982.Google Scholar
  9. [9]
    J. L. Hennessy, SLIM: a simulation and implementation language for VLSI microcode,LAMBDA, April, 1981, pp. 20–28.Google Scholar
  10. [10]
    D. D. Hill, ADLIB: a modular, strongly-typed computer design language,Proceedings of the Fourth International Symposium on Computer Hardware Description Languages, 1979.Google Scholar
  11. [11]
    J. E. Hopcroft and J. D. Ullman,Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, Reading, MA, 1979.zbMATHGoogle Scholar
  12. [12]
    S. C. Johnson, Code generation for silicon,Proceedings of the Tenth ACM Symposium on Principles of Programming Languages, 1983.Google Scholar
  13. [13]
    C. A. Mead and L. A. Conway,Introduction to VLSI Systems, Addison-Wesley, Reading, MA, 1980.Google Scholar
  14. [14]
    A. W. Nagle, R. Cloutier, and A. C. Parker, Synthesis of hardware for the control of digital systems,IEEE Trans. Computer-Aided Design Integrated Circuits and Systems,1 (1982), 201–212.CrossRefGoogle Scholar
  15. [15]
    C. D. V. P. Rao and N. N. Biswas, On the minimization of wordwidth in the control memory of a microprogrammed digital computer,IEEE Trans. Comput.,32 (1983), 863–868.CrossRefGoogle Scholar
  16. [16]
    H. W. Trickey, Good layouts for pattern recognizers,IEEE Trans. Comput.,31 (1982), 514–520.CrossRefGoogle Scholar
  17. [17]
    H. W. Trickey, Using NFAs for hardware design, Unpublished Memorandum, Stanford University, Stanford, CA, 1982.Google Scholar
  18. [18]
    J. D. Ullman, Combining state machines with regular expressions for automatic synthesis of VLSI circuits, STAN-CS-82-927, Department of Computer Science, Stanford University, Stanford, CA, 1982.Google Scholar
  19. [19]
    J. D. Ullman,Computational Aspects of VLSI, Computer Science Press, Rockville, MD, 1984.zbMATHGoogle Scholar

Copyright information

© Springer-Verlag New York Inc. 1987

Authors and Affiliations

  • Anna R. Karlin
    • 1
  • Howard W. Trickey
    • 1
  • Jeffrey D. Ullman
    • 1
  1. 1.Department of Computer ScienceStanford UniversityStanfordUSA

Personalised recommendations