2.3 KiB
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_enabletrwają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 L04–L09
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:
- zgodności modelu referencyjnego;
- zakończenia self-checking testbencha bez
$fatal; - oczekiwanej sekwencji sygnałów;
- braku impulsu
enablew dwóch kolejnych taktach; - wskazania dokładnej ścieżki VCD dla Task02 lub Task03.
Opis mechanicznego przebiegu lekcji znajduje się w lesson-flow.yaml.