Skip to content

Commit 997be77

Browse files
authored
Add DE0-Nano.
1 parent 1f0e61f commit 997be77

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

amaranth_boards/de0nano.py

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import os
2+
import subprocess
3+
4+
from amaranth.build import *
5+
from amaranth.vendor import IntelPlatform
6+
from .resources import *
7+
8+
9+
__all__ = ["DE0NanoPlatform"]
10+
11+
12+
class DE0NanoPlatform(IntelPlatform):
13+
device = "EP4CE22" # Cyclone IV 22K LEs
14+
package = "F17" # FBGA-17
15+
speed = "C6"
16+
default_clk = "clk50"
17+
resources = [
18+
Resource("clk50", 0, Pins("R8", dir="i"),
19+
Clock(50e6), Attrs(io_standard="3.3-V LVCMOS")),
20+
21+
*LEDResources(
22+
pins="A15 A13 B13 A11 D1 F3 B1 L3",
23+
attrs=Attrs(io_standard="3.3-V LVCMOS")),
24+
*ButtonResources(
25+
pins="J15 E1", invert=True,
26+
attrs=Attrs(io_standard="3.3-V LVCMOS")),
27+
*SwitchResources(
28+
pins="M1 T8 B9 M15",
29+
attrs=Attrs(io_standard="3.3-V LVCMOS")),
30+
31+
SDRAMResource(0,
32+
clk="R4", cke="L7", cs_n="P6", we_n="C2", ras_n="L2", cas_n="L1",
33+
ba="M7 M6", a="P2 N5 N6 M8 P8 T7 N8 T6 R1 P1 N2 N1 L4",
34+
dq="G2 G1 L8 K5 K2 J2 J1 R7 T4 T2 T3 R3 R5 P3 N3 K1", dqm="R6 T5",
35+
attrs=Attrs(io_standard="3.3-V LVCMOS")),
36+
37+
I2CResource(0, scl="F2", sda="F1",
38+
attrs=Attrs(io_standard="3.3-V LVCMOS")),
39+
40+
Resource("adxl345", 0,
41+
Subsignal("scl", Pins("F2"), Attrs(IOSTANDARD="I2C")),
42+
Subsignal("sda", Pins("F1"), Attrs(IOSTANDARD="I2C")),
43+
Subsignal("G_sens_int", Pins("M2", dir='i')),
44+
Subsignal("G_sens_cn_n", Pins("G5")),
45+
Attrs(io_standard="3.3-V LVCMOS"),
46+
),
47+
SPIResource("spi_adc", 0, role="controller",
48+
cs_n="A10", clk="B14", copi="A9", cipo="B10",
49+
attrs=Attrs(io_standard="3.3-V LVCMOS"),
50+
),
51+
]
52+
connectors = [
53+
Connector("gpio", 0,
54+
"A8 D3 B8 C3 A2 A3 B3 B4 A4 B5 "
55+
"- - A5 D5 B6 A6 B7 D6 A7 C6 "
56+
"C8 E6 E7 D8 E8 F8 F9 E9 - - "
57+
"C9 D9 E11 E10 C11 B11 A12 D11 D12 B12"),
58+
59+
Connector("gpio", 1,
60+
"T9 F13 R9 T15 T14 T13 R13 T12 R12 T11"
61+
"- - T10 R11 P11 R10 N12 P9 N9 N11"
62+
"L16 K16 R16 L15 P15 P16 R14 N16 - - "
63+
"N15 P14 L14 N14 M10 L13 J16 K15 J13 J14"),
64+
65+
Connector("gpio", 2,
66+
"- E15 E16 M16 A14 B16 C14 C16 C15"
67+
"D16 D15 D14 F15 F16 F14 G16 G15"),
68+
]
69+
70+
def toolchain_program(self, products, name):
71+
quartus_pgm = os.environ.get("QUARTUS_PGM", "quartus_pgm")
72+
with products.extract("{}.sof".format(name)) as bitstream_filename:
73+
subprocess.check_call([quartus_pgm, "--haltcc", "--mode", "JTAG",
74+
"--operation", "P;" + bitstream_filename])
75+
76+
77+
if __name__ == "__main__":
78+
from .test.blinky import Blinky
79+
DE0NanoPlatform().build(Blinky(), do_program=True)

0 commit comments

Comments
 (0)