246 lines
6.8 KiB
Python
246 lines
6.8 KiB
Python
|
from mibuild.generic_platform import *
|
||
|
from mibuild.xilinx import XilinxPlatform
|
||
|
|
||
|
_io = [
|
||
|
("clk100", 0, Pins("V10"), IOStandard("LVCMOS33")),
|
||
|
("clk12", 0, Pins("D9"), IOStandard("LVCMOS33")),
|
||
|
|
||
|
(
|
||
|
"serial",
|
||
|
0,
|
||
|
Subsignal("tx", Pins("A8"), IOStandard("LVCMOS33"), Misc("SLEW=FAST")),
|
||
|
Subsignal("rx", Pins("B8"), IOStandard("LVCMOS33"), Misc("SLEW=FAST"))
|
||
|
),
|
||
|
|
||
|
(
|
||
|
"spiflash",
|
||
|
0,
|
||
|
Subsignal("cs_n", Pins("V3")),
|
||
|
Subsignal("clk", Pins("R15")),
|
||
|
Subsignal("mosi", Pins("T13")),
|
||
|
Subsignal("miso", Pins("R13"), Misc("PULLUP")),
|
||
|
IOStandard("LVCMOS33"), Misc("SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
(
|
||
|
"lpddr_clock",
|
||
|
0,
|
||
|
Subsignal("p", Pins("G3")),
|
||
|
Subsignal("n", Pins("G1")),
|
||
|
IOStandard("MOBILE_DDR")
|
||
|
),
|
||
|
|
||
|
(
|
||
|
"lpddr",
|
||
|
0,
|
||
|
Subsignal("a", Pins("J7 J6 H5 L7 F3 H4 H3 H6 D2 D1 F4 D3 G6")),
|
||
|
Subsignal("ba", Pins("F2 F1")),
|
||
|
Subsignal("cke", Pins("H7")),
|
||
|
Subsignal("ras_n", Pins("L5")),
|
||
|
Subsignal("cas_n", Pins("K5")),
|
||
|
Subsignal("we_n", Pins("E3")),
|
||
|
Subsignal(
|
||
|
"dq", Pins("L2 L1 K2 K1 H2 H1 J3 J1 M3 M1 N2 N1 T2 T1 U2 U1")
|
||
|
),
|
||
|
Subsignal("dqs", Pins("L4 P2")),
|
||
|
Subsignal("dm", Pins("K3 K4")),
|
||
|
IOStandard("MOBILE_DDR")
|
||
|
),
|
||
|
|
||
|
("dipswitch", 0, Pins("C17"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("dipswitch", 1, Pins("C18"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("dipswitch", 2, Pins("D17"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("dipswitch", 3, Pins("D18"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("dipswitch", 4, Pins("E18"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("dipswitch", 5, Pins("E16"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("dipswitch", 6, Pins("F18"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("dipswitch", 7, Pins("F17"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
|
||
|
("buttonswitch", 0, Pins("K18"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("buttonswitch", 1, Pins("K17"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("buttonswitch", 2, Pins("L17"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("buttonswitch", 3, Pins("M16"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("buttonswitch", 4, Pins("L18"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
("buttonswitch", 5, Pins("M18"), IOStandard("LVCMOS33"), Misc("PULLUP")),
|
||
|
|
||
|
("user_led", 0, Pins("T18"), IOStandard("LVCMOS33"), Drive(8)),
|
||
|
("user_led", 1, Pins("T17"), IOStandard("LVCMOS33"), Drive(8)),
|
||
|
("user_led", 2, Pins("U18"), IOStandard("LVCMOS33"), Drive(8)),
|
||
|
("user_led", 3, Pins("U17"), IOStandard("LVCMOS33"), Drive(8)),
|
||
|
("user_led", 4, Pins("N16"), IOStandard("LVCMOS33"), Drive(8)),
|
||
|
("user_led", 5, Pins("N15"), IOStandard("LVCMOS33"), Drive(8)),
|
||
|
("user_led", 6, Pins("P16"), IOStandard("LVCMOS33"), Drive(8)),
|
||
|
("user_led", 7, Pins("P15"), IOStandard("LVCMOS33"), Drive(8)),
|
||
|
|
||
|
(
|
||
|
"microsd",
|
||
|
0,
|
||
|
Subsignal(
|
||
|
"dat0",
|
||
|
Pins("K14"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"dat1",
|
||
|
Pins("G18"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"dat2",
|
||
|
Pins("J13"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"dat3",
|
||
|
Pins("L13"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"cmd",
|
||
|
Pins("G16"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"clk",
|
||
|
Pins("L12"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("SLEW=FAST")
|
||
|
)
|
||
|
),
|
||
|
|
||
|
(
|
||
|
"sevenseg",
|
||
|
0,
|
||
|
Subsignal("segment7", Pins("A3"), IOStandard("LVCMOS33")), # A
|
||
|
Subsignal("segment6", Pins("B4"), IOStandard("LVCMOS33")), # B
|
||
|
Subsignal("segment5", Pins("A4"), IOStandard("LVCMOS33")), # C
|
||
|
Subsignal("segment4", Pins("C4"), IOStandard("LVCMOS33")), # D
|
||
|
Subsignal("segment3", Pins("C5"), IOStandard("LVCMOS33")), # E
|
||
|
Subsignal("segment2", Pins("D6"), IOStandard("LVCMOS33")), # F
|
||
|
Subsignal("segment1", Pins("C6"), IOStandard("LVCMOS33")), # G
|
||
|
Subsignal("segment0", Pins("A5"), IOStandard("LVCMOS33")), # Dot
|
||
|
Subsignal("enable0", Pins("B2"), IOStandard("LVCMOS33")), # EN0
|
||
|
Subsignal("enable1", Pins("A2"), IOStandard("LVCMOS33")), # EN1
|
||
|
Subsignal("enable2", Pins("B3"), IOStandard("LVCMOS33")) # EN2
|
||
|
),
|
||
|
|
||
|
(
|
||
|
"audio",
|
||
|
0,
|
||
|
Subsignal(
|
||
|
"channel1",
|
||
|
Pins("B16"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"channel2",
|
||
|
Pins("A16"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
)
|
||
|
),
|
||
|
|
||
|
(
|
||
|
"vga",
|
||
|
0,
|
||
|
Subsignal(
|
||
|
"hsync",
|
||
|
Pins("B12"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"vsync",
|
||
|
Pins("A12"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"red2",
|
||
|
Pins("C9"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"red1",
|
||
|
Pins("B9"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"red0",
|
||
|
Pins("A9"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"green2",
|
||
|
Pins("C11"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"green1",
|
||
|
Pins("A10"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"green0",
|
||
|
Pins("C10"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"blue2",
|
||
|
Pins("A11"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
),
|
||
|
|
||
|
Subsignal(
|
||
|
"blue1",
|
||
|
Pins("B11"),
|
||
|
IOStandard("LVCMOS33"),
|
||
|
Misc("DRIVE=8,SLEW=FAST")
|
||
|
)
|
||
|
)
|
||
|
]
|
||
|
|
||
|
_connectors = [
|
||
|
("P6", "T3 R3 V5 U5 V4 T4 V7 U7"),
|
||
|
("P7", "V11 U11 V13 U13 T10 R10 T11 R11"),
|
||
|
("P8", "L16 L15 K16 K15 J18 J16 H18 H17")
|
||
|
]
|
||
|
|
||
|
|
||
|
class Platform(XilinxPlatform):
|
||
|
default_clk_name = "clk100"
|
||
|
default_clk_period = 10
|
||
|
|
||
|
def __init__(self):
|
||
|
XilinxPlatform.__init__(self, "xc6slx9-csg324-2", _io, _connectors)
|
||
|
|
||
|
def create_programmer(self):
|
||
|
raise NotImplementedError
|