Documentation - Memory Interface
Describes the core memory interfaces used to fetch instructions and read/write data.
-
The data and instruction interfaces use a simple "SRAM style" interface with stalling.
-
Can be easily re-mapped to AXI/AMBA/BRAM etc.
-
Easily attatches to caches.
| Bits | Driver | Name | Description |
|---|---|---|---|
| 1 | Core | mem_req |
Memory request |
| 1 | Core | mem_rtype |
Request type: instruction / data. |
| 32 | Core | mem_addr |
Memory request address |
| 1 | Core | mem_wen |
Memory request write enable |
| 8 | Core | mem_strb |
Memory request write strobe |
| 64 | Core | mem_wdata |
Memory write data. |
| 2 | Core | mem_prv |
Privilidge level: 2=MMode,1=UMode. |
| 1 | Memory | mem_gnt |
Memory response valid |
| 1 | Memory | mem_err |
Memory response error |
| 64 | Memory | mem_rdata |
Memory response read data |
-
A request is started by the core asserting
mem_req -
If
mem_gntis also asserted, then on the next cycle, the memory response will be recieved. -
If
mem_gntis not asserted, then the request signals must remain stable until it is. -
A new request can start when
mem_gntandmem_reqare both asserted. -
mem_errandmem_rdatacan only be sampled the cycle after bothmem_gntandmem_reqare asserted. -
Core driven signals may change on the cycle where
mem_reqandmem_gntare high.