“One Student One Chip” v24.07 Course Homepage

  • Live teaching sessions will start in September 2025. Stay tuned.
  • If you find errors in the lab handouts or materials, or have questions or suggestions about the experiments, please contact Yu Zihao via email (yuzihao#ict.ac.cn).

Learning Resources

  • The Time column indicates estimated completion time in hours.
    • Content marked with an estimated completion time of 2 typically does not include programming assignments, but consists of 2 hours of video lectures designed to supplement related knowledge.
    • Given varying student proficiency levels, these estimates are based on “intermediate-level” learners. This “intermediate level” does not mean “scoring above 80% in programming courses,” but rather “having a positive learning attitude, having written a single program exceeding 500 lines of code, and understanding debugging.”
    • If you are a complete beginner, expect to spend 2–3 times this amount of time to complete the study. Don't be discouraged—as the saying goes, “Some learn earlier, some later.” The reason other students progress faster is largely because they've already invested effort to overcome the beginner stage.
  • Click icons to jump to corresponding resources
  • Full lecture notes accessible via the top-right navigation bar
  • Course materials created with reveal.jsopen in new window, exportable to PDF—see this guideopen in new window
  • S-stage lecture content remains under development 🕊

C = C language ( programs / emulators / system software ) | R = RISC-V instruction set | P = Processor design | T = Tools

Stage NumberTask Time Course Handout Slide VideoC R P T
F Stage How to Ask Smart Questions 2📚📰🎬
Installing and Using Logisim 2📚 - -
The basic of digital and logic circuits 20📚📰🎬
State Machine Model of Computer Systems 5📚📰🎬
Simple Processor Supporting Sequence Summation 5📚 - -
A Fully Functional Mini RISC-V Processor 5📚 - -
E Stage C language programming 20📚📰🎬
Hardware Description Language 20📚📰🎬
Linux System Installation and Basic Usage 10📚📰🎬
From C Code to Binary Program 10📚📰🎬
From RTL Code to Tapeout-Ready Layout 20📚 - -
Complete PA1 20📚📰🎬
Submission of pre-study defense application
D Stage NEMU with RV32IM Support 10📚📰🎬
Machine-level representation of programs I 2📚📰🎬
Machine-level representation of programs II 2📚📰🎬
AM Runtime environment 5📚📰🎬
Implementing a mini RISC-V Processor using RTL 5📚 - -
Devices and Input/Output 10📚📰🎬
C Stage Tools and Infrastructure 5📚📰🎬
RV32E Single Cycle NPC 5📚📰🎬
Debugging Techniques 2📚📰🎬
ELF Files and Linking 2📚📰🎬
Exception Handling and RT-Thread 15📚📰🎬
C Stage Completion Preparation and Assessment
B Stage Bus 10📚📰🎬
SoC Computer System I 15📚📰🎬
SoC Computer System II 15📚📰🎬
Time Analysis and Optimization 5📚 - -
Performance Optimization and Simple Cache 20📚📰🎬
Pipelined Processor 20📚📰🎬
B Stage Tapeout Preparation and Assessment 📚
A Stage Multiplication and Division Module 0
System Calls and Applications 0
Virtual Memory Management 0
Privilege Level and xv6 0
Booting Linux and Debian 0
Advanced Cache 0
Advanced Branch Prediction 0
A Stage Tapeout Preparation and Assessment
S Stage Under Construction ... 0

Page loading bar is stuck?

If the progress bar is stuck for more than 3 seconds when jumping to a new page, it's probably because we pushed a new version of the page.
Given that we're still updating and revising the documentation frequently, it may be easier to experience stuck jumps in the near future.
In this case, just refresh You can continue to learn!

Past Courses Homepage

Accessible via the “Courses Home" link in the top navigation bar.

Other Resources

Record of events

Last Updated:
Contributors: myyerrol, Miao Yuyang