$~$
VLSI Programming 2018
(course module 2IMN35)
$~$Author: Kees van Berkel,
Date: 2017 November 20
The course makes use of the StaccatoLab tools, the Python language, and Jupyter notebooks. See below.
Massive parallelism is needed to exploit the huge and ever increasing computational capabilities of Very Large Scale Integrated (VLSI) circuits, and High Performance Computers (HPC). In this course we:
The dataflow programming language used by StaccatoLab is embedded in Python. The StaccatoLab tools are programmed in Python as well. Python is a widely used high-level programming language for general-purpose programming. Python features a dynamic type system and automatic memory management. It supports multiple programming paradigms, including object-oriented, imperative, functional and procedural, and has a large and comprehensive standard library.
A dataflow program is developed and documented as a Jupyter Notebook. So are the StaccatoLab tutorial, the StaccatoLab regression tests, the VLSI programming course notes, and the student assignments. StaccatoLab tools are invoked from the Jupyter notebook containing the dataflow program (graph). The Jupyter notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text.
The PYNQ-Z1 board is the hardware platform for the PYNQ open-source framework, and can be programmed in Jupyter Notebook using Python. The board features the ZYNQ XC7Z020 FPGA. For the 2018 edition of the course VLSI programming we are considering the PYNQ-Z1 FPGA board.
If you are interested in contributing to StaccatoLab by means of an MSc project, first read the background information below and then consult the MSc assignments contributing to the StaccatoLab program.