# PyCircHDL

* **PyCircHDL** is a Python package for modeling and simulating simple Logic Circuits
  specifically designed for educational use in introductory computation and digital logic college level courses.
* As such, it was primarily tuned for readability, convenience, fast learning curve, and less for speed or industrial production.
* It is a light weight package especially designed for small scale circuits,
  such as those that are studied in introductory academic courses on the theory of computation
  and digital/electronic design.
* Its main characteristic is that a digital circuit can be easily defined by a series of simple Python commands,
  rather than an external static language, which adds more overhead and inconvenience.
* It is inteneded to be used by novice Python programmers and non-programmers (through tools such as Jupyter notebook).
* But it allows more experienced Python programmers can make more sophisticated use with it.
* It can be a useful companion for theoretical course on computation models and languages who wish also to engage
   the students with some programming experience and skills.
  * It is planned to be used in such a course by the author (Hebrew book at http://samyzaf.com/afl.pdf).
  * It enables students to easily model and experiment with typical logic circuits, verify circuits designs,
     design and test circuits, and for exercises and problem solving.
  * It does provide an opportunity for students to develop and practice programming skills
     while covering the theoretical computation course.

* Substantial documentation is included in the following Jupyter notebook:
  * https://samyzaf.com/pycirc/pycirchdl.html
  * Google Colaboratory notebook from:
    * https://samyzaf.com/pycirc/pycirchdl.ipynb
    * You may copy this notebook to your space and use it with Google
      Colaboratory or a a local Jupyter notebook.

