L07 · Addresses and Memory

Karta przechodzi od wartości immediate do adresu bajtowego. Uczeń sprawdza LUI/AUIPC, implementuje mały RAM słowowy, a następnie łączy sumator adresu z pamięcią i jawną kontrolą wyrównania.

Taski

Task PASS
task01_upper_immediate LUI=0x12345000, AUIPC=0x12345100
task02_word_ram dwa niezależne słowa i odrzucony dostęp niewyrównany
task03_address_memory_path adres 0x2c, zapis/odczyt deadbeef, fault dla +2
stemctl card use rv32i-asm L07
stemctl test native-amd64 rv32i-asm L07 1
stemctl test hazard3-sim rv32i-asm L07 2
stemctl debug hazard3-sim rv32i-asm L07 3

Model AMD64 i RTL są niezależne. debug generuje VCD. Wyniki należy zapisać w answers/address-memory-evidence.md.

Inwarianty:

  • LUI umieszcza imm20 w bitach 31:12, a AUIPC dodaje tę wartość do PC;
  • adres pamięci jest adresem bajtowym, indeks RAM używa bitów [5:2];
  • zapis następuje tylko dla aktywnego żądania wyrównanego do czterech bajtów;
  • niewyrównane żądanie ustawia fault i nie zmienia RAM;
  • odczyt jest kombinacyjny, zapis synchroniczny.

L08 użyje tej pamięci do obserwacji stosu wywołań i reguł ABI.

S
Description
No description provided
Readme 462 KiB
Languages
JavaScript 89.5%
Shell 5.1%
SystemVerilog 3.9%
Python 0.9%
HTML 0.4%
Other 0.2%