**6.S193: FPGA Design "Competition"**
**IAP 2019** - [MIT](http://www.mit.edu) - [Course 6](https://www.eecs.mit.edu/)
**Instructors:** Gim Hom , Joe Steinmeyer
Overview
========================
6.S193 for IAP 2019 is an experimental,new course (with plenty of rough edges) offering an opportunity to explore digital systems design beyond typical course work. We'll be working on relatively new systems and frameworks (Zync SOCs, Vivado IP creation, integration, etc)...most of this stuff has only become available in the last few years or so. There will be some lab/reference work you can/should do, but our real goal is the creation of some nice projects built around a Zynq-7000 series development board. Each project team will be provided with a PYNQ-Z2 development board and other material for their project. Upon completion of the project each student will given their own PYNQ FPGA board for keeps.
Our thanks to Xilinx, Apple, and Google for providing support!
Pages and References
===========================
Class Piazza
Below are a few labs and other pages we're putting toegher for the course. We'll probably post more as we go through.
* [Vivado Introduction](./vivado_basics)
* [PYNQ Board Setup](./pynq_start)
* [Lab 1: Basic PYNQ Framework](./pynq_lab1)
* [Lab 2: Memory-Mapped Interfaces](./pynq_lab2)
* [Video Pong Project (unzip, open in Vivado, and build)...we might also post an improved version soon](./resources/video_pong.zip)
* [PYNQ DMA Example (Note: Outside Link)](http://www.fpgadeveloper.com/2018/03/how-to-accelerate-a-python-function-with-pynq.html)
* [Lab 3: Basic Audio Input/Output](./pynq_lab3)
* [Lab 4: Basic Interfacing with SPI using AXI Memory-Mapped Module](./pynq_lab4)
* [Lab 5: Your Own AXI-Streaming Module](./pynq_lab5)
* [Lab 6: FFT Streaming](./pynq_lab6)
* [Lab 7: ADC to DMA](./pynq_lab7)
Some Reference Pages:
* PYNQ Z2 Board Site by TUL (the manufacturer). There are links to the manual for the board, the correct board files, and a working microSD image among other things
* The PYNQ Github This contains the source for the whole Pynq framework as well as some good IP libraries.
* The PYNQ DOCS. Please make sure to go to the most updated version of the docs (in this link). They keep public the older versions of the docs for some reason and these show up higher in search results sometimes (srsly). **SO BE WARY!!**
Schedule
=====================================================================
Monday Jan 7, 2019: Lecture 1
- [Lecture 1A](./resources/L1A.pdf)
- [Lecture 1B (sorry big will make smaller)](./resources/L1B.pdf)
Tuesday Jan 8, 2019: Lecture 2
- [Lecture 2A](./resources/L2A.pdf)
- [Lecture 2B (big file)](./resources/L2B.pdf)
Wednesday Jan 9, 2019: Lecture 3
- [Lecture 3B ](./resources/L3B.pdf)
Thursday Jan 10, 2019: Lecture 4
- Video Pong Project Demo (See link above)
Monday Jan 14, 2019: Lecture 5
- [Lecture 5A ](./resources/L4A.pdf)
- [Lecture 5B (large file sorry) ](./resources/L4B.pdf)
Tuesday Jan 15, 2019: Lecture 6
- [Lecture 6A ](./resources/L5A.pdf)
- [Lecture 6B ](./resources/L5B.pdf)
Wednesday Jan 16, 2019: Lecture 7
Thursday Jan 17, 2019: Lecture 8
(Friday Jan 18, 2019): Open Lab Hours
(Monday Jan 21, 2019): Open Lab Hours
(Tuesday Jan 22, 2019): Open Lab Hours
(Wednesday Jan 23, 2019): Open Lab Hours
(Thursday Jan 24, 2019): Open Lab Hours
(Friday Jan 25, 2019): Open Lab Hours
Monday Jan 28, 2019: Final Project Stuff
- Wrap-up
- Apple Stuff
Tuesday Jan 29, 2019: Final Project Stuff
- Apple, Wrap-up
There will be two one-hour lectures Mon-Thu 1-3p for two weeks starting Mon January 7 in 32-144. The first hour is a rapid introduction to FPGA, Verilog and Vivado for students who have not taken 6.111. The second hour will focus on more advanced concepts, and cover some new material assuming you've done some digital design before Everyone must attend the first hour of the *first lecture*.
The lab (38-600) will be open 9am-9pm with staff available 3pm-6 pm for working with the systems and projects for the first few weeks. We may extend hours/change them as the course progresses depending on everyone's needs, especially towards the end.
Parts of the Site Structure and Style Rendered Using Markdeep