mattvenn / multi_project_tools

tools to help make the most of the limited space we have on the Google sponsored Efabless shuttles
https://www.zerotoasiccourse.com
Apache License 2.0
34 stars 14 forks source link

add sram block #10

Closed mattvenn closed 2 years ago

mattvenn commented 3 years ago

we are documenting progress/ideas here https://docs.google.com/document/d/1-8AeNIIzsXWtidUxx8xsDvId14Mii2BdkWXOwrHh3jc/edit#

@embelon is working on this.

mattvenn commented 2 years ago
mattvenn commented 2 years ago

still needs to be accessible to the other projects.

we already have the openram definition in projects.yaml->interfaces

also missing from wrapper.v template. Update for MPW4 need to add this.

Then the wires need to be connected:

mattvenn commented 2 years ago

Matt's suggestion

pros: simple cons: caravel can't write to ram, so user project would have to provide an arbiter

mpw3 and mpw4 sram ideas

frame buffer example

frame buffer example

mattvenn commented 2 years ago

Pawel's suggestion:

pros: caravel can write directly to sram, reduces complexity from user projects, sram can be used as a shared memory cons: more complex

image

mattvenn commented 2 years ago

qs from Urish

  1. What does the address space for the SRAM WB bus look like?

    • from caravel, upper 1 k. we can do what we want. this address will be set in the shim (see pic above)
  2. What's the width of the SRAM data / address wires? (SRAM 1k is organised 32x256)

    • 32 bit data,
    • 8 bit address
  3. What's the minimum write width?

    • we have a mask, so can write 1 byte

other qs

  1. how long does it take to read and write
    • read is 2 cycles, write 2 cycles (maybe 3 - we need to check)
mattvenn commented 2 years ago

left to be done for MPW4

left to be done for future

urish commented 2 years ago

from caravel, upper 1 k. we can do what we want. this address will be set in the shim (see pic above)

From our projects too?

edit: nvm, I see the address bus is 8-bit wide, so the ram occupies the entire address space