From 9f1b2399a8a7a77cbf184196f7046e942752efe5 Mon Sep 17 00:00:00 2001 From: "M. Pabiszczak" <2+mpabi@noreply.zsl-gitea.mpabi.pl> Date: Tue, 21 Jul 2026 19:02:14 +0200 Subject: [PATCH] feat(rv32i-asm): complete L01-L09 series --- catalog/rv32i-asm.json | 4 +-- plans/informatyka/rv32i-asm.md | 53 ++++++++++++++++++++++++++++++---- series/rv32i-asm.json | 2 +- 3 files changed, 50 insertions(+), 9 deletions(-) diff --git a/catalog/rv32i-asm.json b/catalog/rv32i-asm.json index 7b5054d..77ab83a 100644 --- a/catalog/rv32i-asm.json +++ b/catalog/rv32i-asm.json @@ -3,8 +3,8 @@ "title": "ASM · RV32I From Blinker to RISC-V", "catalog_only": true, "cards": [ - {"id": "L01", "repo": "lab-rv32i-asm-number-systems", "number": "01", "title": "Number Systems and Storage", "status": "planned"}, - {"id": "L02", "repo": "lab-rv32i-asm-fpga-bringup", "number": "02", "title": "FPGA Bring-up and Programming", "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": "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": "L05", "repo": "lab-rv32i-asm-alu", "number": "05", "title": "ALU and the Verilog Assembler", "status": "existing"}, diff --git a/plans/informatyka/rv32i-asm.md b/plans/informatyka/rv32i-asm.md index 1d92566..f144251 100644 --- a/plans/informatyka/rv32i-asm.md +++ b/plans/informatyka/rv32i-asm.md @@ -1,11 +1,11 @@ # 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 ASM · RV32I From Blinker to RISC-V -├── L01 · Number Systems and Storage -├── L02 · FPGA Bring-up and Programming +├── L01 · Number Systems and Storage [existing · 3 taski] +├── L02 · FPGA Bring-up and Programming [existing · 3 taski] ├── L03 · Blinker and Synchronous Logic [existing · 3 taski] ├── L04 · The RISC-V ISA and Instruction Decoder [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ą drabinkę FPGA. Kolejne karty prowadzą od logiki synchronicznej do rdzenia, -który wykonuje podstawowe instrukcje RV32I. Karty L03--L09 mają niezależny -model AMD64, self-checking RTL w profilu `hazard3-sim`, artefakt VCD, widok -React oraz dwustronicowy PDF A4. Uruchomienie odbywa się przez `stemctl`. +który wykonuje podstawowe instrukcje RV32I. + +## 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: `series/inf/lab-rv32i-c-pointers-arrays/guidelines/year-01-interrupts-to-year-02-freertos.md`. diff --git a/series/rv32i-asm.json b/series/rv32i-asm.json index 31d7601..3af3171 100644 --- a/series/rv32i-asm.json +++ b/series/rv32i-asm.json @@ -8,7 +8,7 @@ "fallback_branch": "main", "workspace_dir": "inf", "source_dir": "inf", - "default_card": "L03", + "default_card": "L01", "cards": [ { "id": "L01",