fosdem2024_bigint/Makefile: add upload target
[libreriscv.git] / HDL_workflow / HyperRAM.mdwn
index f79c13f7fe5e9203efc405024a0ae06eeeec6717..b41f4548d3abf8cec45b9cd33302c2ec8d419516 100644 (file)
@@ -1,63 +1,94 @@
 # HyperRAM connections
 
+* jumper wires <https://www.amazon.co.uk/Elegoo-120pcs-Multicolored-Breadboard-arduino-colorful/dp/B01EV70C78/>
+* Note that cables have to be really short, they may need to
+  be constructed and soldered
+  <https://www.amazon.co.uk/HALJIA-2-54mm-Dupont-Jumper-Connectors/dp/B06WWB66WL/>
+* nmigen [hyperram.py](https://git.libre-soc.org/?p=lambdasoc.git;a=blob;f=lambdasoc/periph/hyperram.py;hb=HEAD) module
+* Winbond Datasheet for Quad 1bitsqared PMOD:
+  <https://ftp.libre-soc.org/W956x8MBYA_64Mb_HyperBus_pSRAM_TFBGA24_datasheet_A01-005_20211208.pdf>
+* Winbond Verilog Model for W956A8MBY:
+  <https://www.winbond.com/resource-files/W956x8MBY_verilog_p.zip>
+* [[shakti/m_class/HyperRAM]]
+* <https://github.com/icebreaker-fpga/icebreaker-pmod/tree/master/quadhyperram>
+* <https://hackaday.io/project/168594-feather-wing-pmod-adapter> <https://github.com/TomKeddie/prj-pmod-feather>
+
+```
+from nmigen.resources.memory import HyperRAMResources
+hyperram_ios = HyperRAMResources(cs_n="B13 C13 A12 A13",
+                                 dq="E14 C11 B10 E12 D12 A9 D11 D14",
+                                 rwds="C14", rst_n="E13", clk_p="D13",
+                                 clk_n="A14", # only in DDR mode
+                                                                attrs=IOStandard("LVCMOS33"))
+self.platform.add_extension(hyperram_ios)
+io = self.platform.request("hyperram")
+hyperram = HyperRAM(io=io, phy_kls=HyperRAMPHY,
+                    latency=7) # Winbond W956D8MBYA
+                               # latency=6 for Cypress S27KL0641DABHI020
+```
+
 ## 1bitsquared HyperRAM PMOD
 
 * <https://1bitsquared.de/products/pmod-hyperram>
 
-| Pin    | Function | Pin    | Function |
-| ---    | -------- | ---    | -------- | 
-| Top 7  | NC       | Top 1  | NC       |
-| Top 8  | DQ4      | Top 2  | DQ3      |
-| Top 9  | DQ2      | Top 3  | RWDS     |
-| Top 10 | CSN      | Top 4  | RESETN   |
-| Top 11 | GND      | Top 5  | GND      |
-| Top 12 | 3V3      | Top 6  | 3V3      |
-
-| Pin    | Function | Pin    | Function |
-| ---    | -------- | ---    | -------- | 
-| Bot 7  | CK       | Bot 1  | CKN      |
-| Bot 8  | DQ1      | Bot 2  | DQ7      |
-| Bot 9  | DQ6      | Bot 3  | DQ0      |
-| Bot 10 | DQ5      | Bot 4  | NC       |
-| Bot 11 | GND      | Bot 5  | GND      |
-| Bot 12 | 3V3      | Bot 6  | 3V3      |
-
-[[!img HDL_workflow/ENtvxc9WwAAGyzl.png size="400x" ]] 
-[[!img HDL_workflow/ENw4bZ8W4AM8FOS.png size="400x" ]] 
-[[!img HDL_workflow/ENxOeloWsAMSw5u.jpeg size="400x" ]] 
-
-[[!img HDL_workflow/pmod-hyperram-64mbit-dual-pmod_large.jpg size="500x" ]] 
+| Pin    | Function | Colour   | Pin    | Function | Colour   |
+| ---    | -------- | ---------| ---    | -------- | ---------|
+| Top 7  | CS3N     | Blue     | Top 1  | CS2N     | Green    |
+| Top 8  | CS1N     | Purple   | Top 2  | CS0N     | Orange   |
+| Top 9  | RESETN   | Grey     | Top 3  | CK       | Yellow   |
+| Top 10 | RWDS     | White    | Top 4  | CKN      | Brown    |
+| Top 11 | GND      | Black    | Top 5  | GND      | Black    |
+| Top 12 | 3V3      | Red      | Top 6  | 3V3      | Red      |
+
+| Pin    | Function | Colour   | Pin    | Function | Colour   |
+| ---    | -------- | ---------| ---    | -------- | ---------|
+| Bot 7  | DQ7      | Blue     | Bot 1  | DQ0      | Green    |
+| Bot 8  | DQ6      | Purple   | Bot 2  | DQ1      | Orange   |
+| Bot 9  | DQ5      | Grey     | Bot 3  | DQ2      | Yellow   |
+| Bot 10 | DQ4      | White    | Bot 4  | DQ3      | Brown    |
+| Bot 11 | GND      | Black    | Bot 5  | GND      | Black    |
+| Bot 12 | 3V3      | Red      | Bot 6  | 3V3      | Red      |
+
+[[!img HDL_workflow/ENtvxc9WwAAGyzl.png size="400x" ]]
+[[!img HDL_workflow/ENxOeloWsAMSw5u.jpeg size="500x" ]]
+
+[[!img HDL_workflow/ENw4bZ8W4AM8FOS.png size="900x" ]]
+
+[[!img HDL_workflow/pmod-hyperram-64mbit-dual-pmod_large.jpg size="700x" ]]
+
+[[!img HDL_workflow/hyperram_connected_pmod.jpg size="700x" ]]
 
 # VERSA ECP5 Connections
 
 Table of connections:
 
-| X3  pin #   | FPGA IO PAD |  Function | Wire Colour|
+| X4  pin #   | FPGA IO PAD |  Function | Wire Colour|
 |-------------|-------------|-----------|------------|
-|    8 IO33   |     D6      |    (DQ4)  |   Brown    |
-|    9 IO34   |     E7      |    (DQ3)  |   Brown    |
-|   10 IO35   |     D7      |    (DQ2)  |   Brown    |
-|   11 IO36   |     B11     |    (RWDS) |   Green    |
-|   12 IO37   |     B6      |    (CSN)  |   Blue     |
-|   13 IO38   |     E9      |    (RSTN) |   Yellow   |
-|   14 IO39   |     B8      |    (DQ5)  |   Green    |
-|   15 IO40   |     B8      |    (DQ0)  |   Orange   |
-|   16 IO41   |     C8      |    (DQ6)  |   Green    |
-|   17 IO42   |     D8      |    (DQ7)  |   Orange   |
-|   18 IO43   |     E8      |    (DQ1)  |   Green    |
-|   19 IO44   |     C7      |    (CKN)  |   Purple   |
-|   20 IO45   |     C6      |    (CK)   |   Yellow   |
-|   25 +3.3V  | 3.3V supply |    (VCC)  |   Red      |
-|   26 GND    |     GND     |    (GND)  |   Black    |
-|   27 +3.3V  | 3.3V supply |    (VCC)  |   Red      |
-|   28 GND    |     GND     |    (GND)  |   Black    |
-|   35 +3.3V  | 3.3V supply |    (VCC)  |   Red      |
-|   36 GND    |     GND     |    (GND)  |   Black    |
-|   37 +3.3V  | 3.3V supply |    (VCC)  |   Red      |
-|   38 GND    |     GND     |    (GND)  |   Black    |
-
-[[!img versa_ecp5_x3_hyperram.png size="900x" ]] 
-
-[[!img 2020-11-03_13-25.png size="900x" ]] 
+|    3 IO0    |     A12     |    (CS2N) |   Green    |
+|    4 IO1    |     A13     |    (CS3N) |   Blue     |
+|    5 IO2    |     B13     |    (CS0N) |   Orange   |
+|    6 IO3    |     C13     |    (CS1N) |   Purple   |
+|    7 IO4    |     D13     |    (CK)   |   Yellow   |
+|    8 IO5    |     E13     |    (RSTN) |   Grey     |
+|    9 IO6    |     A14     |    (CKN)  |   Brown    |
+|   10 IO7    |     C14     |    (RWDS) |   White    |
+|   11 IO8    |     D14     |    (DQ7)  |   Blue     |
+|   12 IO9    |     E14     |    (DQ0)  |   Green    |
+|   13 IO10   |     D11     |    (DQ6)  |   Purple   |
+|   14 IO11   |     C11     |    (DQ1)  |   Orange   |
+|   15 IO12   |     A9      |    (DQ5)  |   Grey     |
+|   16 IO13   |     B10     |    (DQ2)  |   Yellow   |
+|   17 IO14   |     D12     |    (DQ4)  |   White    |
+|   18 IO15   |     E12     |    (DQ3)  |   Brown    |
+|   19 GND    |     GND     |    (GND)  |   Black    |
+|   20 +3.3V  | 3.3V supply |    (VCC)  |   Red      |
+
+[[!img HDL_workflow/versa_ecp5_x4_hyperram.png size="900x" ]]
+
+[[!img 2020-11-03_13-25.png size="900x" ]]
+
+# Digilent Arty a7-100t Connections
 
+See <https://digilent.com/reference/_media/reference/programmable-logic/arty/arty_rm.pdf>
 
+[[!img 2022-03-22_15-56.png size="900x" ]]