EENG 426/CPSC 448/ENAS 876
Silicon Compilation

Fall 2022



 Background Info

  • The labs for this class will use a Linux (a flavor of Unix) environment. If you are unfamiliar with the Unix environment, there is a concise online tutorial to help get you started. There are a few differences between the environment we will be using in class and the one described in the tutorial, so use this tutorial as a way to learn common commands; in other words, don't take everything literally. For example,
    • Your initial user name is "user" (not "ee91ab" as in their example)
    • The path names will be different from the ones described in the tutorial, but the concepts are the same
    • Some of the files they ask you to copy (Tutorial 2) don't exist (/vol/example/...)
    • It may be easier to just look at the summary of commands at the end of each tutorial
    • The default shell is bash on Linux
  • Although Makefiles can have frustrating syntax, they are extremely useful. Ordinarily Makefiles are presented as tools for software development, but they can be used for any purpose. Examples of writing Makefiles for software development are available online (see section 2.2 for an example). Since chip development involves manipulating files in various formats, Makefiles are useful in ensuring that changes to one file are propagated through the design flow.
    • After you've done the inverter part of lab1, consider using the following Makefile and "magic_cmds" script.
    • Makefile
      • This assumes your layout will be called <file>.mag, and irsim simulation script will be called <file>.irsim. Whenever <file>.mag is updated, it will automatically re-extract the layout, re-generate the .sim/.al files, and launch irsim and run the script <file>.irsim
      • The list of gates can be specified in the Makefile
      • The Makefile uses a magic_cmds shell script (you'll need to make this executable using chmod +x) to launch magic and run commands.

 Papers corresponding to lecture material

  • Overview
    • W. A. Clark. Macromodular computer systems. in Proceedings of the April 18-20, 1967, Spring Joint Computer Conference, pp. 335–336, ACM, 1967. This paper is one of the early proposals arguing that it is important to be able to design computer systems that are composable at the physical level.
    • Alain J. Martin. The limitations to delay-insensitivity in asynchronous circuits. In: Feijen W.H.J., van Gasteren A.J.M., Gries D., Misra J. (eds) Beauty Is Our Business. Texts and Monographs in Computer Science. Springer, New York, NY (1990). There are multiple versions of this paper, and the referenced one is available through the library. It introduced the notion of quasi delay-insensitive (QDI) circuits, and pointed out for the first time that purely delay-insensitive (DI) circuits are limited.
    • Rajit Manohar and Yoram Moses. The Eventual C-Element Theorem for Delay-Insensitive Asynchronous Circuits. Proceedings of the IEEE International Symposium on Asynchronous Circuits and Systems (ASYNC), May 2017. The paper above had certain restrictions on the circuits being analyzed. The restrictions were removed in the following paper that also shows that DI circuits are limited.
  • Design rules
    • The scalable CMOS (SCMOS) design rules, including the scalable sub-micron (SCMOS_SUBM) and deep sub-micron (SCMOS_DEEP) rules.
  • Communicating Hardware Processes
    • Martin, Alain J. Compiling communicating processes into delay-insensitive VLSI circuits. Distributed computing 1, no. 4 (1986): 226-234.
    • Martin, Alain J. An axiomatic definition of synchronization primitives. Acta Informatica 16, no. 2 (1981): 219-235.
    • Martin, Alain J. The probe: An addition to communication primitives. Information Processing Letters, vol. 20, no. 1 (1985).
  • Syntax-directed translation
    • Burns, Steven M., and Alain J. Martin. Syntax-directed translation of concurrent programs into self-timed circuits. Proc. Conference on Advanced Research in VLSI (1988).
    • van Berkel, Kees, Joep Kessels, Marly Roncken, Ronald Saeijs, and Frits Schalij. The VLSI-programming language Tangram and its translation into handshake circuits. In Proceedings of the conference on European design automation, pp. 384-389. IEEE Computer Society Press, 1991.
  • Handshake reshuffling
    • Rajit Manohar. An Analysis of Reshuffled Handshaking Expansions. Proceedings of the 7th IEEE International Symposium on Asynchronous Circuits and Systems (ASYNC), pp. 96--105, Salt Lake City, Utah, March 2001.
  • Fuuction blocks
    • Martin, Alain J. Asynchronous datapaths and the design of an asynchronous adder. Formal Methods in System Design 1, no. 1 (1992): 117-137.
  • Interfaces
    • Seizovic, Jakov N. Pipeline synchronization. In Proceedings of 1994 IEEE Symposium on Advanced Research in Asynchronous Circuits and Systems, pp. 87-96. IEEE, 1994.
    • Sandra Jackson and Rajit Manohar. Gradual Synchronization. IEEE International Symposium on Asynchronous Circuits and Systems (ASYNC), May 2016.
  • Performance analysis
    • Burns, Steven M. Performance analysis and optimization of asynchronous circuits. Ph.D. thesis, California Institute of Technology (1991).
    • Wenmian Hua and Rajit Manohar. Exact Timing Analysis for Asynchronous Systems. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 37(1):203-216, January 2018.
  • Projection
    • Rajit Manohar and Alain J. Martin. Slack Elasticity in Concurent Computing . Proceedings of the Fourth International Conference on the Mathematics of Program Construction (MPC), Lecture Notes in Computer Science 1422, pp. 272-285, Springer-Verlag 1998. (pdf)
    • Rajit Manohar, Tak-Kwan Lee, and Alain J. Martin. Projection: A Synthesis Technique for Concurrent Systems. Proceedings of the 5th IEEE International Symposium on Advanced Research in Asynchronous Circuits and Systems (ASYNC), pp. 125--134, April 1999. (pdf)
    • Ivan Sutherland, Scott Fairbanks. GasP: a minimal FIFO control. Proceedings of the IEEE International Symposium on Asynchronous Circuits and Systems (ASYNC), March 2001. (paper)

 More notes