Home
Welcome to CS2100DE! In this website and accompanying repository, you will find all the materials for the labs for CS2100DE.
Intended learning outcomes (labs)
In the lab component of this course, you will put into practice the concepts learned in the lecture, and see them come to life.
You will learn:
- What an FPGA is, and how to use them and their accompanying tools and software
- How to design simple (and not-so-simple) logic circuits with SystemVerilog
- The RISC-V architecture and assembly language
- How to build your very own CPU which can execute real RISC-V programs!
First steps
To make the most of the labs, we recommend doing some reading before you come for your first session.
-
First, the page on how to use this website. Pay special attention to the section on "How to get help", as it is very important.
-
Next, the prerequisites for the lab. If you have any concerns with these prerequisites, please approach the teaching team as early as possible.
-
You should also read the grading scheme for lab assignments and projects.
-
Finally, make sure you read Getting to know your Nexys 4 and install Vivado on your personal computer as soon as possible. If you do not have access to a Windows or Linux (preferred) PC, you should try your best to get/borrow one for this course.
Lab Schedule and Outline
| Week | Lab Date | Activity | Remarks |
|---|---|---|---|
| 1 | 16 Jan 2026 | Nil | |
| 2 | 23 Jan 2026 | Nil | |
| 3 | 30 Jan 2026 | Getting familiar with FPGA tools | |
| 4 | 06 Feb 2026 | Playing with the 7-segment display | |
| 5 | 13 Feb 2026 | Creating more complex logic | |
| 6 | 20 Feb 2026 | Introduction to RISC-V Assembly | |
| 7 | 06 Mar 2026 | Decoding RISC-V Instructions | |
| 8 | 13 Mar 2026 | Putting things together | |
| 9 | 20 Mar 2026 | Getting our CPU working | |
| 10 | 27 Mar 2026 | Writing Programs for our CPU | |
| 11 | 03 Apr 2026 | Good Friday (Public Holiday) | |
| 12 | 10 Apr 2026 | Freestyle - work on project | |
| 13 | 17 Apr 2026 | Project demonstration |
Fair Use of LLMs and Open Source Code
Use of AI/LLMs, agents, or other online code is permitted. However, you should
- Understand the code in detail and be able to explain it. Do not do cognitive offloading.
- Not infringe anyone's copyright, i.e., it should be code released under an open-source/permissive license.
- Demarcate such code clearly, and give proper attribution to the source/LLM, along with the prompts used. Using AI-generated code without attribution is considered plagiarism. You should also respond to a survey on Canvas, which will open closer to the end of the course.
Discussions are encouraged, but 'we had discussed' is not a valid excuse if your codes turn out to be uncomfortably similar to those of another group (except when you use online code with attribution as mentioned above).
Though there will be intra-team differentiation in marks according to the contribution levels, a team will be collectively responsible for plagiarized code. Your teammates might be better off with no contribution at all from you than to receive plagiarized code.