Choosing a project

The project counts for the largest part of your grade (80 points). You have 3 options for the project:

Option 1: Design and implement a RISC-V-compatible processor simulator

At the minimum, your processor must be able to execute simple RISC-V (RV64IM) programs (pre-compiled testcases and the RISC-V tool-chain will be provided), via a 5-stage pipeline, multiple functional units with varying latencies, and direct mapped instruction and data caches. Further details here.

Option 2: Contribute to a relevant open-source systems project.

You are responsible for contacting the maintainers of these projects, working with them to arrive at the scope of the project (you must be able to finish it in three months), and figuring out the timeline and deliverables. Think of this as an exercise in being a systems software engineer. Your deliverables must include (as appropriate): specification, documentation, tests, your changeset, and any other supporting material requested by the project's processes. Please include all pertinent emails exchanged with the maintainers of the project in your project proposal, along with a summary of your project, the deliverables and the project timeline. You will be graded on a case-by-case basis, with the primary criteria being delivery of the agreed upon changes to the project (with concessions for unexpected setbacks). Please discuss the project and scope with me before you submit your proposal. Non-exhaustive list of projects to consider:

Option 3. Propose your own project.

This could be a research project (I have some ideas depending on your interests) or a fun little hardware project (preferably involving some processor design (e.g., design a custom RISC-V processor, that is specialized for a particular domain and deploy it on an FPGA).

Project Proposal Guidelines:

If you choose to go with Options 2 or 3, please discuss your proposal with me before you write it up. Be sure to make an appointment. At least one day before your appointment, please send email with your basic idea.

Your project proposal should be no more than two pages long, and should include the following information: