| #!/usr/bin/env python3 |
| # -*- coding: utf-8 -*- |
| # |
| # Copyright (C) 2017-2020 The Project X-Ray Authors. |
| # |
| # Use of this source code is governed by a ISC-style |
| # license that can be found in the LICENSE file or at |
| # https://opensource.org/licenses/ISC |
| # |
| # SPDX-License-Identifier: ISC |
| |
| import subprocess |
| import demo_sw_led_fasm |
| import os |
| |
| |
| def run(roi_dir, swn, ledn): |
| design_txt_fn = roi_dir + '/design.txt' |
| bit_ref_fn = roi_dir + '/design.bit' |
| fasm_fn = 'demo_sw_led.fasm' |
| bit_out_fn = 'demo_sw_led.bit' |
| ocd_cfg = os.getenv( |
| 'XRAY_DIR') + '/utils/openocd/board-digilent-basys3.cfg' |
| |
| # Clean up old tmp files to be sure we are generating them fresh |
| subprocess.call('rm -f %s %s' % (fasm_fn, bit_out_fn), shell=True) |
| |
| # subprocess.shell("python3 demo_sw_led.py out_xc7a35tcpg236-1_BASYS3-SWBUT_roi_basev/design.txt 0 0 demo.fasm") |
| demo_sw_led_fasm.run( |
| open(design_txt_fn, 'r'), swn, ledn, open(fasm_fn, 'w')) |
| subprocess.check_call( |
| "./fasm2bit.sh %s %s %s" % (fasm_fn, bit_ref_fn, bit_out_fn), |
| shell=True) |
| subprocess.check_call( |
| 'openocd -f %s -c "init; pld load 0 %s; exit"' % (ocd_cfg, bit_out_fn), |
| shell=True) |
| |
| |
| if __name__ == '__main__': |
| import argparse |
| |
| parser = argparse.ArgumentParser( |
| description= |
| 'Basys3 switch to LED interconnect demo. Compiles and programs') |
| parser.add_argument( |
| 'roi_dir', help='ROI project dir for harness .bit and metadata.txt') |
| parser.add_argument('sw', type=int, help='Switch to use') |
| parser.add_argument('led', type=int, help='LED to use') |
| |
| args = parser.parse_args() |
| run(args.roi_dir, args.sw, args.led) |