Classroom Glossary Public page

CSA-110 Capstone Specification

869 words

Ship a working Virtus Console. Your RV32I-Lite CPU, your toolchain, your OS, your program. Same destination as CSA-101 — you get there faster because of what you already know.


The toolchain you ship

Every artifact below lives at a named stage of the pipeline you built across Weeks 5-13. The stage in amber is the one a grader walks first when reproducing your build.

Stage Week built Artifact consumed Artifact emitted
VirtusLang source (your program) — .vl source file
Compiler frontend Week 10 .vl source parse tree
Compiler backend Week 11 parse tree VM bytecode (.vm)
VM translator Weeks 8-9 .vm bytecode RV32I-Lite assembly (.s)
Assembler Week 6 .s assembly VOF v1 object (.vof)
Static linker Week 7 .vof objects + Virtus OS stubs flat binary (.bin)
Tang Primer 25K Week 5 .bin + bitstream output on UART / HDMI

The compiler backend (Week 11) is the amber stage: its output is the contract every downstream stage consumes.


What you ship

A single zip file containing all of the following:

  1. Bitstream for your Tang Primer 25K. Filename: virtus-console.fs (Apicula output)
  2. Source tree for the bitstream: verilog/ with your RV32I-Lite CPU + VCP integration
  3. Toolchain artifacts: your assembler, linker, VM translator, compiler (both passes), and Virtus OS source. Copy the working version of each from your student repo into toolchain/
  4. Capstone program: the VirtusLang source for one program that uses the Virtus Console. Source in program/. The program must use at least: Math, Output, Screen, and one input source (GamePad or Console)
  5. Built binary: program-built/program.bin. SHA-256 at program-built/program.bin.sha256
  6. Demo video (60-90 seconds). Filename: capstone-demo.mp4 (or .mov, .webm). Shows: cold boot, program running, two notable features
  7. Write-up. Filename: writeup.md (or writeup.pdf). 800-1500 words. Five sections (see below)

Zip filename convention: csa110-capstone-{your-name}.zip (lowercase; hyphens; no spaces).


Write-up sections

Section 1: What works (200-400 words)

What did you build? Lead with the most-visible capability of your capstone program. Walk through which Virtus OS services your program uses; which RV32I-Lite features your CPU exercises; what runs end-to-end without intervention.

Section 2: What doesn't (200-400 words)

What didn't make the cut? Be specific. "I tried to implement Sound.playSquare but the VCP audio channel produced static; I traced it to a missing clock-domain crossing and ran out of time" beats "audio doesn't work yet." The honest accounting is graded; the omission is not.

Section 3: What's next (100-200 words)

If you had another two weeks on this, what would you ship? Forward-pointer to CSA-201 / CON-101 / RE-101 if you are continuing.

Section 4: What surprised you (200-400 words)

The course was 14 weeks. Pick the moment that genuinely caught you off-guard — where the RV32I-Lite experience diverged from your 6502 experience in an unexpected way. Maybe the first time a B-type immediate encoding bit-reversal produced the wrong branch offset and you spent an hour finding it. Maybe the moment you realized a two-pass assembler was necessary because the 6502's flat model let you avoid it. Write the moment plain.

Section 5: What you would do differently (100-200 words)

The capstone is your one chance to reflect on your work process. Where did you waste time? Where did you under-plan? What pattern would you carry forward into CSA-201 or your next personal project?


Success criteria

Three equally-weighted dimensions:

Dimension Full marks
The console works The bitstream flashes; the capstone program boots; the demo video shows actual running output. No fakes
The toolchain reproduces A grader can take your toolchain/ and program/ directories and rebuild program-built/program.bin byte-for-byte. The SHA-256 you ship matches the rebuild
The write-up is honest The five sections reflect actual work. Section 2 names real gaps. Sections 4-5 show specificity about the RV32I-Lite vs 6502 experience

No minimum complexity threshold. A simple "Hello World" Virtus Console program that boots reliably and is honestly written up earns the same grade as an elaborate game that crashes on cold boot.


The CSA-101 → CSA-110 comparison

If you completed CSA-101, you have built this before. The destination is the same; the path is different. In your write-up, note at least one place where the CSA-110 toolchain was simpler to build than the CSA-101 equivalent (e.g., the fixed-width instruction encoding simplifying the assembler), and at least one place where it was harder (e.g., the two-pass requirement for forward references in B-type offsets).

This comparison is not graded separately — it belongs in Sections 4 or 5 — but it is the most distinctive writing a CSA-110 graduate can produce. Graders will read it closely.


Legal and ethical

CSA-110 produces work that is 100% your own. No copyrighted ROMs; no decompiled commercial code; no LLM-generated Verilog you did not understand line-by-line. The bitstream you ship is yours; the toolchain you ship is yours; the OS you ship is yours; the program is yours.

If you used AI assistance during the course, name where and how in your write-up. The academy does not prohibit AI assistance; it requires the assistance to be visible.


Timeline within week 14

Recommended day-by-day:

  • Day 1: Final polish on Virtus OS services. Re-run the compliance suite. Address any flakiness
  • Day 2-3: Capstone program polish. Smoke-test the boot path. Capture initial screenshots
  • Day 4: Demo video recording. Multiple takes; pick the clearest
  • Day 5: Write-up draft (Sections 1 + 2)
  • Day 6: Write-up draft (Sections 3 + 4 + 5). Trim and polish
  • Day 7: Final assembly. Build the zip. Verify contents. Submit