#!/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 os from prjxray.util import get_part_information, get_part_resources, get_fabric_for_part def get_environment_variables(): """ This function returns a dict of environment settings for a given part. It requires a basic setup of the prjxray environment that contains information about the databse directory location, the FPGA part, etc. One of the settings must be sourced, to set up the basic environment. """ environment = dict() # Get base environment variables and resources' paths part = os.environ['XRAY_PART'] database = os.environ['XRAY_DATABASE'] database_dir = os.environ['XRAY_DATABASE_DIR'] xray_root = os.environ['XRAY_DIR'] db_root = os.path.join(database_dir, database) res_path = os.path.join(xray_root, 'settings', database) # Get device information part_info = get_part_information(db_root, part) fabric = get_fabric_for_part(db_root, part) resources = get_part_resources(res_path, os.environ['XRAY_PART']) environment['XRAY_DEVICE'] = part_info['device'] environment['XRAY_PACKAGE'] = part_info['package'] environment['XRAY_SPEED_GRADE'] = part_info['speedgrade'] environment['XRAY_FABRIC'] = fabric for number, pin in resources['pins'].items(): environment['XRAY_PIN_{:02d}'.format(number)] = pin return environment def main(): environment = get_environment_variables() for key, value in environment.items(): print("export {}={}".format(key, value)) if __name__ == "__main__": main()