Skip to content

Commit 30dc7d2

Browse files
committed
platforms/targets: align qmtech kintex parser integration with common pattern
1 parent 9f0ace5 commit 30dc7d2

5 files changed

Lines changed: 20 additions & 44 deletions

File tree

litex_boards/platforms/qmtech_kintex7_devboard.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# SPDX-License-Identifier: BSD-2-Clause
99

1010
from litex.build.generic_platform import Pins, Subsignal, IOStandard, Misc
11-
from litex.build.xilinx import XilinxPlatform
11+
from litex.build.xilinx import Xilinx7SeriesPlatform
1212
from litex.build.openocd import OpenOCD
1313

1414
# IOs ----------------------------------------------------------------------------------------------
@@ -141,7 +141,7 @@
141141

142142
# Platform -----------------------------------------------------------------------------------------
143143

144-
class Platform(XilinxPlatform):
144+
class Platform(Xilinx7SeriesPlatform):
145145
default_clk_name = "clk50"
146146
default_clk_period = 1e9/50e6
147147

@@ -150,7 +150,7 @@ def __init__(self, toolchain="vivado"):
150150
io = _io
151151
connectors = _connectors
152152

153-
XilinxPlatform.__init__(self, device, io, connectors, toolchain=toolchain)
153+
Xilinx7SeriesPlatform.__init__(self, device, io, connectors, toolchain=toolchain)
154154

155155
self.toolchain.bitstream_commands = \
156156
["set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]"]
@@ -167,5 +167,5 @@ def create_programmer(self):
167167

168168

169169
def do_finalize(self, fragment):
170-
XilinxPlatform.do_finalize(self, fragment)
170+
Xilinx7SeriesPlatform.do_finalize(self, fragment)
171171
self.add_period_constraint(self.lookup_request("clk50", loose=True), 1e9/50e6)

litex_boards/platforms/qmtech_xc7k325t.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
# SPDX-License-Identifier: BSD-2-Clause
88

99
from litex.build.generic_platform import Pins, Subsignal, IOStandard, Misc
10-
from litex.build.xilinx import XilinxPlatform
10+
from litex.build.xilinx import Xilinx7SeriesPlatform
1111
from litex.build.openocd import OpenOCD
1212

1313
# IOs ----------------------------------------------------------------------------------------------
@@ -137,7 +137,7 @@
137137

138138
# Platform -----------------------------------------------------------------------------------------
139139

140-
class Platform(XilinxPlatform):
140+
class Platform(Xilinx7SeriesPlatform):
141141
default_clk_name = "clk50"
142142
default_clk_period = 1e9/50e6
143143

@@ -165,7 +165,7 @@ def __init__(self, toolchain="vivado", with_daughterboard=False, with_core_resou
165165
elif with_core_resources:
166166
io += self.core_resources_standalone
167167

168-
XilinxPlatform.__init__(self, device, io, connectors, toolchain=toolchain)
168+
Xilinx7SeriesPlatform.__init__(self, device, io, connectors, toolchain=toolchain)
169169

170170
self.toolchain.bitstream_commands = \
171171
["set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]",
@@ -183,5 +183,5 @@ def create_programmer(self):
183183

184184

185185
def do_finalize(self, fragment):
186-
XilinxPlatform.do_finalize(self, fragment)
186+
Xilinx7SeriesPlatform.do_finalize(self, fragment)
187187
self.add_period_constraint(self.lookup_request("clk50", loose=True), 1e9/50e6)

litex_boards/targets/opensourcesdrlab_kintex7.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from migen import *
1212

1313
from litex_boards.platforms import opensourcesdrlab_kintex7
14-
from litex.build.xilinx.vivado import vivado_build_args, vivado_build_argdict
1514

1615
from litex.soc.cores.clock import *
1716
from litex.soc.integration.soc import SoCRegion
@@ -103,18 +102,12 @@ def __init__(self, toolchain="vivado", sys_clk_freq=int(100e6), with_led_chaser=
103102

104103
def main():
105104
from litex.build.parser import LiteXArgumentParser
106-
parser = LiteXArgumentParser(description="LiteX SoC on Open Source SDR Lab Kintex-7.")
107-
parser.add_target_argument("--toolchain", default="vivado", help="FPGA toolchain (vivado, symbiflow or yosys+nextpnr).")
108-
parser.add_target_argument("--build", action="store_true", help="Build bitstream.")
109-
parser.add_target_argument("--load", action="store_true", help="Load bitstream.")
105+
parser = LiteXArgumentParser(platform=opensourcesdrlab_kintex7.Platform, description="LiteX SoC on Open Source SDR Lab Kintex-7.")
110106
parser.add_target_argument("--sys-clk-freq", default=100e6, type=float, help="System clock frequency.")
111107

112108
parser.add_target_argument("--with-pcie", action="store_true", help="Enable PCIe support.")
113109
parser.add_target_argument("--with-spi-sdcard", action="store_true", help="Enable SPI-mode SDCard support.")
114110
parser.add_target_argument("--with-spi-flash", action="store_true", help="Enable memory-mapped SPI flash.")
115-
builder_args(parser)
116-
soc_core_args(parser)
117-
vivado_build_args(parser)
118111
args = parser.parse_args()
119112

120113
soc = BaseSoC(
@@ -123,17 +116,16 @@ def main():
123116
with_spi_flash = args.with_spi_flash,
124117
with_pcie = args.with_pcie,
125118
with_spi_sdcard = args.with_spi_sdcard,
126-
**soc_core_argdict(args)
119+
**parser.soc_argdict
127120
)
128121

129122
if args.with_spi_sdcard:
130123
soc.add_spi_sdcard()
131124

132-
builder = Builder(soc, **builder_argdict(args))
125+
builder = Builder(soc, **parser.builder_argdict)
133126

134-
builder_kwargs = vivado_build_argdict(args) if args.toolchain == "vivado" else {}
135127
if args.build:
136-
builder.build(**builder_kwargs)
128+
builder.build(**parser.toolchain_argdict)
137129

138130
if args.load:
139131
prog = soc.platform.create_programmer()

litex_boards/targets/qmtech_kintex7_devboard.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from migen import *
1313

1414
from litex_boards.platforms import qmtech_kintex7_devboard
15-
from litex.build.xilinx.vivado import vivado_build_args, vivado_build_argdict
1615

1716
from litex.soc.cores.clock import *
1817
from litex.soc.integration.soc import SoCRegion
@@ -138,10 +137,7 @@ def __init__(self, toolchain="vivado", sys_clk_freq=int(100e6),
138137

139138
def main():
140139
from litex.build.parser import LiteXArgumentParser
141-
parser = LiteXArgumentParser(description="LiteX SoC on QMTech Kintex-7 Devboard.")
142-
parser.add_target_argument("--toolchain", default="vivado", help="FPGA toolchain (vivado, symbiflow or yosys+nextpnr).")
143-
parser.add_target_argument("--build", action="store_true", help="Build bitstream.")
144-
parser.add_target_argument("--load", action="store_true", help="Load bitstream.")
140+
parser = LiteXArgumentParser(platform=qmtech_kintex7_devboard.Platform, description="LiteX SoC on QMTech Kintex-7 Devboard.")
145141
parser.add_target_argument("--sys-clk-freq", default=100e6, type=float, help="System clock frequency.")
146142
ethopts = parser.target_group.add_mutually_exclusive_group()
147143
ethopts.add_argument("--with-ethernet", action="store_true", help="Enable Ethernet support.")
@@ -160,9 +156,6 @@ def main():
160156
viopts.add_argument("--with-video-terminal", action="store_true", help="Enable Video Terminal (VGA).")
161157
viopts.add_argument("--with-video-framebuffer", action="store_true", help="Enable Video Framebuffer (VGA).")
162158
viopts.add_argument("--with-video-colorbars", action="store_true", help="Enable Video Colorbars (VGA).")
163-
builder_args(parser)
164-
soc_core_args(parser)
165-
vivado_build_args(parser)
166159
args = parser.parse_args()
167160

168161
soc = BaseSoC(
@@ -178,15 +171,15 @@ def main():
178171
with_video_terminal = args.with_video_terminal,
179172
with_video_framebuffer = args.with_video_framebuffer,
180173
with_video_colorbars = args.with_video_colorbars,
181-
**soc_core_argdict(args)
174+
**parser.soc_argdict
182175
)
183176

184177
if args.with_spi_sdcard:
185178
soc.add_spi_sdcard()
186179
if args.with_sdcard:
187180
soc.add_sdcard()
188181

189-
builder = Builder(soc, **builder_argdict(args))
182+
builder = Builder(soc, **parser.builder_argdict)
190183
if args.with_ethernet or args.with_etherbone:
191184
os.makedirs(os.path.join(builder.software_dir, "include/generated"),
192185
exist_ok=True)
@@ -195,9 +188,8 @@ def main():
195188
"// Force 100Base-T speed\n"
196189
"#define TARGET_ETHPHY_INIT_FUNC() mdio_write(0, 0, 0x2100)")
197190

198-
builder_kwargs = vivado_build_argdict(args) if args.toolchain == "vivado" else {}
199191
if args.build:
200-
builder.build(**builder_kwargs)
192+
builder.build(**parser.toolchain_argdict)
201193

202194
if args.load:
203195
prog = soc.platform.create_programmer()

litex_boards/targets/qmtech_xc7k325t.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from migen import *
1212

1313
from litex_boards.platforms import qmtech_xc7k325t
14-
from litex.build.xilinx.vivado import vivado_build_args, vivado_build_argdict
1514

1615
from litex.soc.cores.clock import *
1716
from litex.soc.integration.soc import SoCRegion
@@ -144,10 +143,7 @@ def __init__(self, toolchain="vivado", sys_clk_freq=int(100e6), with_daughterboa
144143

145144
def main():
146145
from litex.build.parser import LiteXArgumentParser
147-
parser = LiteXArgumentParser(description="LiteX SoC on QMTech XC7K325T")
148-
parser.add_target_argument("--toolchain", default="vivado", help="FPGA toolchain (vivado, symbiflow or yosys+nextpnr).")
149-
parser.add_target_argument("--build", action="store_true", help="Build bitstream.")
150-
parser.add_target_argument("--load", action="store_true", help="Load bitstream.")
146+
parser = LiteXArgumentParser(platform=qmtech_xc7k325t.Platform, description="LiteX SoC on QMTech XC7K325T")
151147
parser.add_target_argument("--sys-clk-freq", default=100e6, type=float, help="System clock frequency.")
152148
parser.add_target_argument("--with-daughterboard", action="store_true", help="Board plugged into the QMTech daughterboard.")
153149
ethopts = parser.target_group.add_mutually_exclusive_group()
@@ -167,9 +163,6 @@ def main():
167163
viopts.add_argument("--with-video-terminal", action="store_true", help="Enable Video Terminal (VGA).")
168164
viopts.add_argument("--with-video-framebuffer", action="store_true", help="Enable Video Framebuffer (VGA).")
169165
viopts.add_argument("--with-video-colorbars", action="store_true", help="Enable Video Colorbars (VGA).")
170-
builder_args(parser)
171-
soc_core_args(parser)
172-
vivado_build_args(parser)
173166
args = parser.parse_args()
174167

175168
soc = BaseSoC(
@@ -186,15 +179,15 @@ def main():
186179
with_video_terminal = args.with_video_terminal,
187180
with_video_framebuffer = args.with_video_framebuffer,
188181
with_video_colorbars = args.with_video_colorbars,
189-
**soc_core_argdict(args)
182+
**parser.soc_argdict
190183
)
191184

192185
if args.with_spi_sdcard:
193186
soc.add_spi_sdcard()
194187
if args.with_sdcard:
195188
soc.add_sdcard()
196189

197-
builder = Builder(soc, **builder_argdict(args))
190+
builder = Builder(soc, **parser.builder_argdict)
198191
if args.with_ethernet or args.with_etherbone:
199192
os.makedirs(os.path.join(builder.software_dir, "include/generated"),
200193
exist_ok=True)
@@ -203,9 +196,8 @@ def main():
203196
"// Force 100Base-T speed\n"
204197
"#define TARGET_ETHPHY_INIT_FUNC() mdio_write(0, 0, 0x2100)")
205198

206-
builder_kwargs = vivado_build_argdict(args) if args.toolchain == "vivado" else {}
207199
if args.build:
208-
builder.build(**builder_kwargs)
200+
builder.build(**parser.toolchain_argdict)
209201

210202
if args.load:
211203
prog = soc.platform.create_programmer()

0 commit comments

Comments
 (0)