b2a8e16ebdb3f098303419486e925f0bcaa3ef66
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:
LUIumieszczaimm20w bitach 31:12, aAUIPCdodaje 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
faulti nie zmienia RAM; - odczyt jest kombinacyjny, zapis synchroniczny.
L08 użyje tej pamięci do obserwacji stosu wywołań i reguł ABI.
Description
Languages
JavaScript
89.5%
Shell
5.1%
SystemVerilog
3.9%
Python
0.9%
HTML
0.4%
Other
0.2%