-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEF_PSRAM_CTRL.yaml
153 lines (148 loc) · 3.31 KB
/
EF_PSRAM_CTRL.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
---
info:
name: EF_PSRAM_CTRL
description: |
A Controller for Quad I/O SPI PSRAM
Pseudostatic RAM (PSRAM) is DRAM combined with a self-refresh circuit.
It appears externally as slower SRAM, albeit with a density/cost advantage
over true SRAM, and without the access complexity of DRAM.
The controller was designed after:
- https://www.issi.com/WW/pdf/66-67WVS4M8ALL-BLL.pdf and
- https://www.microchip.com/en-us/parametric-search/514
utilizing SPI, QSPI and QPI modes.
The controller was verified against the Verilog model of Microchip M23LC1024 for SPI and QPI modes only.
##### Features:
- Small in size (800 cells)
- Supports PSRAM or serial SRAM memories up to 8MBytes.
- Programmable to configure: read/write commands, number of wait states, enter and exist quad i/o commands.
repo: github.com/efabless/EF_PSRAM_CTRL
owner: Efabless Corp.
license: Apache 2.0
author: Efabless Corp.
email: [email protected]
version: v1.0.8
date: 27-11-2024
category: digital
tags:
- memory
- psram
bus:
- AHBL
type: soft
status: verified
cell_count:
- IP: TBD
- AHBL: TBD
width: "0.0"
height: "0.0"
technology: n/a
clock_freq_mhz:
- IP: TBD
- AHBL: TBD
digital_supply_voltage: n/a
analog_supply_voltage: n/a
external_interface:
- name: sck
port: sck
width: 1
direction: output
description: SPI master output clock
- name: ce_n
port: ce_n
width: 1
direction: output
description: SPI Master slave select.
- name: din
port: din
width: 4
direction: input
description: SPI Master data in , slave out
- name: dout
port: dout
width: 4
direction: output
description: SPI Master data out , slave in
- name: douten
port: douten
width: 4
direction: output
description: SPI Master data out enable
registers:
- name: rd_cmd
size: 8
mode: w
fifo: no
offset: 0x0080_0100
bit_access: no
init: "'h3"
write_port: ""
description: RD Command Register
- name: wr_cmd
size: 8
mode: w
fifo: no
offset: 0x0080_0200
bit_access: no
init: "'h2"
write_port: ""
description: WR Command Register
- name: eqpi_cmd
size: 8
mode: w
fifo: no
offset: 0x0080_0400
bit_access: no
init: "'h35"
write_port: ""
description: Enter QPI Command Register
- name: xqpi_cmd
size: 8
mode: w
fifo: no
offset: 0x0080_0800
bit_access: no
init: "'hFE"
write_port: ""
description: Exit QPI Command Register
- name: wait_states
size: 4
mode: w
fifo: no
offset: 0x0080_1000
bit_access: no
init: "'h0"
write_port: ""
description: Wait States Register
- name: mode
size: 2
mode: w
fifo: no
offset: 0x0080_2000
bit_access: no
init: "'h0"
write_port: ""
description: I/O Mode Register, {qpi, qspi}
- name: enter_qpi
size: 1
mode: w
fifo: no
offset: 0x0080_4000
bit_access: no
init: "'h0"
write_port: ""
description: Initiate Enter QPI (EQPI) Mode process Register
- name: exit_qpi
size: 1
mode: w
fifo: no
offset: 0x0080_8000
bit_access: no
init: "'h0"
write_port: ""
description: Initiate Exit QPI (XQPI) Mode process Register
clock:
name: HCLK
gated: "no"
reset:
name: HRESETn
pol: "0"