The Chips library gives Python the ability to design, simulate and realise digital devices such as FPGAs. Chips provides a simple yet powerful suite of primitive components, Streams, Processes and Sinks that can be succinctly combined to form Chips. The Chips library can automatically convert Streams, Processes and Sinks into a Hardware Description Language, which can be synthesised into real hardware.
Python programs cannot themselves be converted into real hardware, but it is possible to programmatically generate which construct Chips, which can in-turn be converted into hardware. When combined with the extensive libraries already supported by Python, such as NumPy and SciPy, Python and Chips make the ideal design and verification environment.
Traditionally, the tool of choice for digital devices is a Hardware Description Language (HDL), the most common being Verilog and VHDL. These languages provide a reasonably rich environment for modeling and simulating hardware, but only a limited subset of the language can be realised in a digital device (synthesised).
While a software designer would typically implement a function in an imperative style using loops, branches and sub procedures; a hardware model written in an imperative style cannot be synthesised.
Synthesizable designs require a different approach. Digital device designers must work at the Register Transfer Level (RTL). The primitive elements of an RTL design are clocked memory elements (registers) and combinational logic elements. A typical synthesis tool would be able to infer boolean logic, addition, subtraction, multiplexing and bit manipulation from HDL code written in a very specific style.
An RTL designer has to work at a low level of abstraction. In practical terms this means that a designer has to do more of the work themselves.
This is where Python Chips comes in. In Python Chips, there is no synthesizable subset, but a standalone synthesizable language built on top of Python. Python Chips allows designers to work at a higher level of abstraction. It does a lot more of the work for you.
Python Chips is a python library, just an add-on to Python which is no more or less than a programming language. The Python Chips library provides an Application Programmers Interface (API) to a suite of hardware design functions.
The Python Chips library can also be considered a language in its own right, The Python language itself provides statements which are executed on your own computer. The Python Chips provides an alternative language, statements which are executed on the target device.