Files
lab-rv32i-asm-blinker/README.md
T

2.3 KiB
Raw Blame History

L03 · Blinker and Synchronous Logic

Trzecia karta serii ASM · RV32I From Blinker to RISC-V prowadzi od pojedynczego impulsu taktującego do deterministycznego wzorca LED. Uczeń nie używa opóźnień # w projektowanym RTL: stan zmienia się wyłącznie na zboczu zegara, a czas wynika z licznika.

Rezultat

Po karcie uczeń potrafi:

  • odróżnić logikę kombinacyjną od rejestru aktualizowanego na posedge;
  • zbudować synchroniczny reset i impuls clock_enable trwający jeden takt;
  • wyprowadzić okres wybranego bitu licznika;
  • użyć indeksu fazy do odczytu stałego wzorca LED;
  • wykazać przebiegiem, że reset, przepełnienie i zawijanie ROM-u są deterministyczne.

Taski

Task Cel mierzalny Oczekiwany dowód
task01_clock_enable impuls co cztery zbocza, nigdy przez dwa kolejne takty pulses=4, consecutive=0
task02_counter_blinker LED równy bitowi 2 czterobitowego licznika krawędzie LED przy licznikach 4, 8, 12 i 0
task03_pattern_rom osiem faz wzorca 01,02,04,08,08,04,02,01 poprawna sekwencja i zawinięcie 7 → 0

Praca wyłącznie przez stemctl

stemctl card use rv32i-asm L03
stemctl tasks list
stemctl test native-amd64 rv32i-asm L03 1
stemctl test hazard3-sim rv32i-asm L03 1
stemctl debug hazard3-sim rv32i-asm L03 2

Profil native-amd64 uruchamia niezależny model referencyjny. Profil hazard3-sim dostarcza Verilatora i wykonuje właściwy, syntezowalny RTL. Nazwa technicznego targetu hazard3-baremetal wynika z istniejącego kontraktu środowiska; w tej karcie obraz jest używany jako warsztat RTL, zanim w L04L09 powstanie rdzeń wykonujący RV32I.

Akcja debug zapisuje deterministyczny plik VCD w .stem/artifacts i wypisuje ścieżkę artefaktu. Sprzętowy bitstream i piny płytki należą do bramki L02; L03 nie zgaduje nieznanego modelu FPGA.

Reguła zaliczenia

Najpierw wpisz przewidywanie do answers/blinker-evidence.md, potem uruchom pomiar. PASS wymaga jednocześnie:

  1. zgodności modelu referencyjnego;
  2. zakończenia self-checking testbencha bez $fatal;
  3. oczekiwanej sekwencji sygnałów;
  4. braku impulsu enable w dwóch kolejnych taktach;
  5. wskazania dokładnej ścieżki VCD dla Task02 lub Task03.

Opis mechanicznego przebiegu lekcji znajduje się w lesson-flow.yaml.