Skip to content

Commit 48e0438

Browse files
committed
openframe better
1 parent d7bf25a commit 48e0438

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

chipflow_lib/platforms/_openframe.py

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from typing import List, NamedTuple, Optional
1+
from typing import List, NamedTuple, Optional, Literal
22

3-
from .utils import Voltage, PowerPins, LinearAllocPackageDef
3+
from .utils import Voltage, PowerPins, LinearAllocPackageDef, BringupPins
44

55
class OFPin(NamedTuple):
66
pin: int
@@ -9,7 +9,7 @@ class OFPin(NamedTuple):
99
voltage: Optional[Voltage] = None
1010
name: Optional[str] = None
1111

12-
OF_GPIO_PINS = [
12+
OF_GPIO = [
1313
OFPin(31, "gpio", 0), # gpio[31]
1414
OFPin(32, "gpio", 1), # gpio[32]
1515
OFPin(33, "gpio", 2), # gpio[33]
@@ -48,17 +48,24 @@ class OFPin(NamedTuple):
4848
OFPin(14, "gpio", 35), # gpio[14]
4949
OFPin(15, "gpio", 36), # gpio[15]
5050
OFPin(16, "gpio", 37), # gpio[16]
51-
OFPin(22, "gpio", 38), # gpio[22]
52-
OFPin(24, "gpio", 39), # gpio[24]
51+
# OFPin(22, "gpio", 38) is assigned as clock
52+
# OFPin(24, "gpio", 39) is assigned as heartbeat
5353
OFPin(25, "gpio", 40), # gpio[25]
5454
OFPin(26, "gpio", 41), # gpio[26]
5555
OFPin(27, "gpio", 42), # gpio[27]
5656
OFPin(28, "gpio", 43), # gpio[28]
5757
]
5858

59+
OF_CLOCK_PIN = OFPin(22, "gpio", 38)
60+
OF_HEARTBEAT_PIN = OFPin(24, "gpio", 39)
5961
OF_RESET_PIN = OFPin(21, "resetbi")
6062

61-
OF_POWER_PINS = [
63+
OF_CORE_POWER = [
64+
(OFPin(18,"vcc", voltage=1.8, name="d"), # Power, Digital power supply
65+
OFPin(23,"vss", name="d")), # Digital power ground
66+
]
67+
68+
OF_OTHER_POWER= [
6269
(OFPin(30,"vdd", voltage=3.3, name="a"), # Power, Analog power supply
6370
OFPin(20,"vss", name="a")), # Analog power ground
6471

@@ -71,9 +78,6 @@ class OFPin(NamedTuple):
7178
(OFPin(64,"vdd", voltage=3.3, name="io"), # Power, ESD and padframe power supply
7279
OFPin(56,"vss", name="io")), # ESD and padframe ground
7380

74-
(OFPin(18,"vcc", voltage=1.8, name="d"), # Power, Digital power supply
75-
OFPin(23,"vss", name="d")), # Digital power ground
76-
7781
(OFPin(63,"vcc", voltage=1.8, name="d2"), # Power, Digital power supply
7882
OFPin(10,"vss", name="d2")), # Digital power ground
7983

@@ -87,25 +91,35 @@ class OFPin(NamedTuple):
8791
OFPin(1,"vss", name="a2")), # Analog power ground
8892
]
8993

90-
OF_OTHER_PINS = [
94+
OF_OTHER = [
9195
OFPin(19, "NC") # Not connected
9296
]
9397

9498
class OpenframePackageDef(LinearAllocPackageDef):
9599

96100
name: str = "Openframe"
97-
101+
package_type: Literal["OpenframePackageDef"] = "OpenframePackageDef"
98102
def model_post_init(self, __context):
99-
self._ordered_pins = OF_GPIO_PINS
103+
self._ordered_pins = OF_GPIO
100104

101105
super().model_post_init(__context)
102106

103107

104108
@property
105-
def power(self) -> List[PowerPins]:
109+
def core_power(self) -> List[PowerPins]:
106110
pps = []
107-
for power, ground in OF_POWER_PINS:
111+
112+
for power, ground in OF_CORE_POWER:
108113
pp = PowerPins(power=power, ground=ground, voltage=power.voltage)
109114
pps.append(pp)
110115

111116
return pps
117+
118+
@property
119+
def bringup_pins(self) -> BringupPins:
120+
return BringupPins(
121+
core_power=self.core_power,
122+
core_clock=OF_CLOCK_PIN,
123+
core_reset=OF_RESET_PIN,
124+
core_heartbeat=OF_HEARTBEAT_PIN,
125+
)

0 commit comments

Comments
 (0)