6f228ce15b78467e8f43f0b6d46ce64cb7b2d0bd
[litex.git] / litex / boards / platforms / kcu105.py
1 from litex.build.generic_platform import *
2 from litex.build.xilinx import XilinxPlatform, VivadoProgrammer
3
4
5 _io = [
6 ("user_led", 0, Pins("AP8"), IOStandard("LVCMOS18")),
7 ("user_led", 1, Pins("H23"), IOStandard("LVCMOS18")),
8 ("user_led", 2, Pins("P20"), IOStandard("LVCMOS18")),
9 ("user_led", 3, Pins("P21"), IOStandard("LVCMOS18")),
10 ("user_led", 4, Pins("N22"), IOStandard("LVCMOS18")),
11 ("user_led", 5, Pins("M22"), IOStandard("LVCMOS18")),
12 ("user_led", 6, Pins("R23"), IOStandard("LVCMOS18")),
13 ("user_led", 7, Pins("P23"), IOStandard("LVCMOS18")),
14
15 ("clk125", 0,
16 Subsignal("p", Pins("G10"), IOStandard("LVDS")),
17 Subsignal("n", Pins("F10"), IOStandard("LVDS"))
18 ),
19
20 ("serial", 0,
21 Subsignal("cts", Pins("L23")),
22 Subsignal("rts", Pins("K27")),
23 Subsignal("tx", Pins("K26")),
24 Subsignal("rx", Pins("G25")),
25 IOStandard("LVCMOS18")
26 ),
27
28 ("user_sma_clock", 0,
29 Subsignal("p", Pins("D23"), IOStandard("LVDS")),
30 Subsignal("n", Pins("C23"), IOStandard("LVDS"))
31 ),
32 ]
33
34 _connectors = [
35 ("HPC", {
36 "DP1_M2C_P": "D2",
37 "DP1_M2C_N": "D1",
38 "DP2_M2C_P": "B2",
39 "DP2_M2C_N": "B1",
40 "DP3_M2C_P": "A4",
41 "DP3_M2C_N": "A3",
42 "DP1_C2M_P": "D6",
43 "DP1_C2M_N": "D5",
44 "DP2_C2M_P": "C4",
45 "DP2_C2M_N": "C3",
46 "DP3_C2M_P": "B6",
47 "DP3_C2M_N": "B5",
48 "DP0_C2M_P": "F6",
49 "DP0_C2M_N": "F5",
50 "DP0_M2C_P": "E4",
51 "DP0_M2C_N": "E3",
52 "LA06_P": "D13",
53 "LA06_N": "C13",
54 "LA10_P": "L8",
55 "LA10_N": "K8",
56 "LA14_P": "B10",
57 "LA14_N": "A10",
58 "LA18_CC_P": "E22",
59 "LA18_CC_N": "E23",
60 "LA27_P": "H21",
61 "LA27_N": "G21",
62 "HA01_CC_P": "E16",
63 "HA01_CC_N": "D16",
64 "HA05_P": "J15",
65 "HA05_N": "J14",
66 "HA09_P": "F18",
67 "HA09_N": "F17",
68 "HA13_P": "B14",
69 "HA13_N": "A14",
70 "HA16_P": "A19",
71 "HA16_N": "A18",
72 "HA20_P": "C19",
73 "HA20_N": "B19",
74 "CLK1_M2C_P": "E25",
75 "CLK1_M2C_N": "D25",
76 "LA00_CC_P": "H11",
77 "LA00_CC_N": "G11",
78 "LA03_P": "A13",
79 "LA03_N": "A12",
80 "LA08_P": "J8",
81 "LA08_N": "H8",
82 "LA12_P": "E10",
83 "LA12_N": "D10",
84 "LA16_P": "B9",
85 "LA16_N": "A9",
86 "LA20_P": "B24",
87 "LA20_N": "A24",
88 "LA22_P": "G24",
89 "LA22_N": "F25",
90 "LA25_P": "D20",
91 "LA25_N": "D21",
92 "LA29_P": "B20",
93 "LA29_N": "A20",
94 "LA31_P": "B25",
95 "LA31_N": "A25",
96 "LA33_P": "A27",
97 "LA33_N": "A28",
98 "HA03_P": "G15",
99 "HA03_N": "G14",
100 "HA07_P": "L19",
101 "HA07_N": "L18",
102 "HA11_P": "J19",
103 "HA11_N": "J18",
104 "HA14_P": "F15",
105 "HA14_N": "F14",
106 "HA18_P": "B17",
107 "HA18_N": "B16",
108 "HA22_P": "C18",
109 "HA22_N": "C17",
110 "GBTCLK1_M2C_P": "E25",
111 "GBTCLK1_M2C_N": "D25",
112 "GBTCLK0_M2C_P": "H12",
113 "GBTCLK0_M2C_N": "G12",
114 "LA01_CC_P": "G9",
115 "LA01_CC_N": "F9",
116 "LA05_P": "L13",
117 "LA05_N": "K13",
118 "LA09_P": "J9",
119 "LA09_N": "H9",
120 "LA13_P": "D9",
121 "LA13_N": "C9",
122 "LA17_CC_P": "D24",
123 "LA17_CC_N": "C24",
124 "LA23_P": "G22",
125 "LA23_N": "F22",
126 "LA26_P": "G20",
127 "LA26_N": "F20",
128 "PG_M2C": "L27",
129 "HA00_CC_P": "G17",
130 "HA00_CC_N": "G16",
131 "HA04_P": "G19",
132 "HA04_N": "F19",
133 "HA08_P": "K18",
134 "HA08_N": "K17",
135 "HA12_P": "K16",
136 "HA12_N": "J16",
137 "HA15_P": "D14",
138 "HA15_N": "C14",
139 "HA19_P": "D19",
140 "HA19_N": "D18",
141 "PRSNT_M2C_B": "H24",
142 "CLK0_M2C_P": "H12",
143 "CLK0_M2C_N": "G12",
144 "LA02_P": "K10",
145 "LA02_N": "J10",
146 "LA04_P": "L12",
147 "LA04_N": "K12",
148 "LA07_P": "F8",
149 "LA07_N": "E8",
150 "LA11_P": "K11",
151 "LA11_N": "J11",
152 "LA15_P": "D8",
153 "LA15_N": "C8",
154 "LA19_P": "C21",
155 "LA19_N": "C22",
156 "LA21_P": "F23",
157 "LA21_N": "F24",
158 "LA24_P": "E20",
159 "LA24_N": "E21",
160 "LA28_P": "B21",
161 "LA28_N": "B22",
162 "LA30_P": "C26",
163 "LA30_N": "B26",
164 "LA32_P": "E26",
165 "LA32_N": "D26",
166 "HA02_P": "H19",
167 "HA02_N": "H18",
168 "HA06_P": "L15",
169 "HA06_N": "K15",
170 "HA10_P": "H17",
171 "HA10_N": "H16",
172 "HA17_CC_P": "E18",
173 "HA17_CC_N": "E17",
174 "HA21_P": "E15",
175 "HA21_N": "D15",
176 "HA23_P": "B15",
177 "HA23_N": "A15",
178 }
179 ),
180 ]
181
182
183 class Platform(XilinxPlatform):
184 default_clk_name = "clk125"
185 default_clk_period = 8.0
186
187 def __init__(self):
188 XilinxPlatform.__init__(self, "xcku040-ffva1156-2-e", _io, _connectors,
189 toolchain="vivado")
190
191 def create_programmer(self):
192 return VivadoProgrammer()