feat(rv32i-asm): complete L01-L09 series
This commit is contained in:
@@ -3,8 +3,8 @@
|
|||||||
"title": "ASM · RV32I From Blinker to RISC-V",
|
"title": "ASM · RV32I From Blinker to RISC-V",
|
||||||
"catalog_only": true,
|
"catalog_only": true,
|
||||||
"cards": [
|
"cards": [
|
||||||
{"id": "L01", "repo": "lab-rv32i-asm-number-systems", "number": "01", "title": "Number Systems and Storage", "status": "planned"},
|
{"id": "L01", "repo": "lab-rv32i-asm-number-systems", "number": "01", "title": "Number Systems and Storage", "status": "existing"},
|
||||||
{"id": "L02", "repo": "lab-rv32i-asm-fpga-bringup", "number": "02", "title": "FPGA Bring-up and Programming", "status": "planned"},
|
{"id": "L02", "repo": "lab-rv32i-asm-fpga-bringup", "number": "02", "title": "FPGA Bring-up and Programming", "status": "existing"},
|
||||||
{"id": "L03", "repo": "lab-rv32i-asm-blinker", "number": "03", "title": "Blinker and Synchronous Logic", "status": "existing"},
|
{"id": "L03", "repo": "lab-rv32i-asm-blinker", "number": "03", "title": "Blinker and Synchronous Logic", "status": "existing"},
|
||||||
{"id": "L04", "repo": "lab-rv32i-asm-decoder", "number": "04", "title": "The RISC-V ISA and Instruction Decoder", "status": "existing"},
|
{"id": "L04", "repo": "lab-rv32i-asm-decoder", "number": "04", "title": "The RISC-V ISA and Instruction Decoder", "status": "existing"},
|
||||||
{"id": "L05", "repo": "lab-rv32i-asm-alu", "number": "05", "title": "ALU and the Verilog Assembler", "status": "existing"},
|
{"id": "L05", "repo": "lab-rv32i-asm-alu", "number": "05", "title": "ALU and the Verilog Assembler", "status": "existing"},
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# ASM · RV32I From Blinker to RISC-V
|
# ASM · RV32I From Blinker to RISC-V
|
||||||
|
|
||||||
Status: L03--L09 opracowane i testowane; L01--L02 pozostają w planie.
|
Status: L01--L09 opracowane, testowane i zarejestrowane; seria zakończona.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
ASM · RV32I From Blinker to RISC-V
|
ASM · RV32I From Blinker to RISC-V
|
||||||
├── L01 · Number Systems and Storage
|
├── L01 · Number Systems and Storage [existing · 3 taski]
|
||||||
├── L02 · FPGA Bring-up and Programming
|
├── L02 · FPGA Bring-up and Programming [existing · 3 taski]
|
||||||
├── L03 · Blinker and Synchronous Logic [existing · 3 taski]
|
├── L03 · Blinker and Synchronous Logic [existing · 3 taski]
|
||||||
├── L04 · The RISC-V ISA and Instruction Decoder [existing · 3 taski]
|
├── L04 · The RISC-V ISA and Instruction Decoder [existing · 3 taski]
|
||||||
├── L05 · ALU and the Verilog Assembler [existing · 3 taski]
|
├── L05 · ALU and the Verilog Assembler [existing · 3 taski]
|
||||||
@@ -17,9 +17,50 @@ ASM · RV32I From Blinker to RISC-V
|
|||||||
|
|
||||||
L01 dostarcza języka liczb, kodowania i pamięci. L02 ustanawia fizyczną
|
L01 dostarcza języka liczb, kodowania i pamięci. L02 ustanawia fizyczną
|
||||||
drabinkę FPGA. Kolejne karty prowadzą od logiki synchronicznej do rdzenia,
|
drabinkę FPGA. Kolejne karty prowadzą od logiki synchronicznej do rdzenia,
|
||||||
który wykonuje podstawowe instrukcje RV32I. Karty L03--L09 mają niezależny
|
który wykonuje podstawowe instrukcje RV32I.
|
||||||
model AMD64, self-checking RTL w profilu `hazard3-sim`, artefakt VCD, widok
|
|
||||||
React oraz dwustronicowy PDF A4. Uruchomienie odbywa się przez `stemctl`.
|
## Stan odbioru serii — 2026-07-21
|
||||||
|
|
||||||
|
Każda karta ma trzy wykonywalne taski, niezależny model `native-amd64`,
|
||||||
|
self-checking SystemVerilog w profilu `hazard3-sim`, akcję debug zapisującą
|
||||||
|
VCD, testy kontraktu i stanu, widok React oraz dwustronicowy PDF A4.
|
||||||
|
|
||||||
|
| Karta | Dowód końcowy |
|
||||||
|
| --- | --- |
|
||||||
|
| L01 | systemy pozycyjne, sign/zero extension, shifts i little-endian |
|
||||||
|
| L02 | polaryzacja, znany reset, blinker i uporządkowany preflight FPGA |
|
||||||
|
| L03 | clock enable, counter blinker i pattern ROM |
|
||||||
|
| L04 | dekoder, legalność opcode i bank rejestrów |
|
||||||
|
| L05 | ALU, kodowanie instrukcji i wykonanie małego programu |
|
||||||
|
| L06 | warunki branch, immediate/target i ślad PC |
|
||||||
|
| L07 | LUI/AUIPC, pamięć słów, adres i fault |
|
||||||
|
| L08 | JAL/JALR, role ABI i zagnieżdżone powroty |
|
||||||
|
| L09 | store strobes, rozszerzenia load i roundtrip pamięci |
|
||||||
|
|
||||||
|
Odbiór obejmuje 27 tasków wykonanych w obu profilach: 54/54 zakończyły się
|
||||||
|
komunikatem `PASS`. PDF-y przechodzą `qpdf --check`, a ich pliki
|
||||||
|
`source-commit.txt` wskazują bezpośredni commit źródłowy.
|
||||||
|
|
||||||
|
### Granica sprzętowa L02
|
||||||
|
|
||||||
|
Repozytorium L02 nie zgaduje modelu płytki, pinów ani programatora. Dostarcza
|
||||||
|
`board/board-contract.yaml` jako bezpieczny szablon oraz osobny formularz
|
||||||
|
dowodu fizycznego. Automatyczny preflight i symulacja zawsze raportują
|
||||||
|
`hardware_observed=0` oraz `claim=preflight-only`; nie są przedstawiane jako
|
||||||
|
zbudowanie bitstreamu ani zaprogramowanie FPGA. Fizyczne zaliczenie wymaga
|
||||||
|
konkretnej płytki, SHA-256 bitstreamu, zgodnego device ID, logu konfiguracji i
|
||||||
|
zmierzonej obserwacji LED.
|
||||||
|
|
||||||
|
### Sposób uruchamiania
|
||||||
|
|
||||||
|
```bash
|
||||||
|
stemctl series show rv32i-asm
|
||||||
|
stemctl list-cards rv32i-asm
|
||||||
|
stemctl card use rv32i-asm L01
|
||||||
|
stemctl test native-amd64 rv32i-asm L01 1
|
||||||
|
stemctl test hazard3-sim rv32i-asm L01 1
|
||||||
|
stemctl debug hazard3-sim rv32i-asm L01 3
|
||||||
|
```
|
||||||
|
|
||||||
Materiał źródłowy programu:
|
Materiał źródłowy programu:
|
||||||
`series/inf/lab-rv32i-c-pointers-arrays/guidelines/year-01-interrupts-to-year-02-freertos.md`.
|
`series/inf/lab-rv32i-c-pointers-arrays/guidelines/year-01-interrupts-to-year-02-freertos.md`.
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
"fallback_branch": "main",
|
"fallback_branch": "main",
|
||||||
"workspace_dir": "inf",
|
"workspace_dir": "inf",
|
||||||
"source_dir": "inf",
|
"source_dir": "inf",
|
||||||
"default_card": "L03",
|
"default_card": "L01",
|
||||||
"cards": [
|
"cards": [
|
||||||
{
|
{
|
||||||
"id": "L01",
|
"id": "L01",
|
||||||
|
|||||||
Reference in New Issue
Block a user