From b4dcc16da437b5f229266ecd8984bb31c3d695e5 Mon Sep 17 00:00:00 2001 From: mgolokhov Date: Sun, 14 May 2017 19:35:53 +0400 Subject: [PATCH] aldec: add macro hadler, add default include path --- autohdl/aldec.py | 9 +++++++-- autohdl/data/version.json | 2 +- autohdl/manager.py | 4 +--- autohdl/structure.py | 1 + autohdl/template_avhdl_adf.py | 18 +++++++++++++----- 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/autohdl/aldec.py b/autohdl/aldec.py index 846dd6d..65b7f72 100644 --- a/autohdl/aldec.py +++ b/autohdl/aldec.py @@ -21,10 +21,15 @@ def extend(config): config['aldec']['src'] = [os.path.normpath(i) for i in config['src']] config['aldec']['dsn_name'] = config.get('dsn_name') config['aldec']['all_src'] = structure.search(directory=config['aldec']['wsp_root'], - ignore_dir=IGNORE_REPO_DIRS + ('autohdl',)) + ignore_dir=IGNORE_REPO_DIRS + ('autohdl',), + ignore_ext=('.DS_Store',) + ) config['aldec']['dsn_src'] = structure.search(directory=config['aldec']['dsn_root'], - ignore_dir=IGNORE_REPO_DIRS + ('autohdl',) + ignore_dir=IGNORE_REPO_DIRS + ('autohdl',), + ignore_ext=('.DS_Store',) ) + #pprint.pprint(config['aldec']['dsn_src']) + #import sys; sys.exit(0); config['aldec']['deps'] = [i for i in config['aldec']['src'] if config['aldec']['dsn_root'] not in i] diff --git a/autohdl/data/version.json b/autohdl/data/version.json index c8edd2a..3f43ec8 100644 --- a/autohdl/data/version.json +++ b/autohdl/data/version.json @@ -1 +1 @@ -{"minor": 0, "major": 3, "build": 1316} \ No newline at end of file +{"minor": 0, "major": 3, "build": 1344} \ No newline at end of file diff --git a/autohdl/manager.py b/autohdl/manager.py index 0ea31df..df19499 100644 --- a/autohdl/manager.py +++ b/autohdl/manager.py @@ -47,7 +47,7 @@ def cli_handler(): help='synthesis step [default=batch]') parser.add_argument('-xilinx', nargs='?', const='batch', choices=['batch', 'gui'], help='implementation step [default=batch]') - parser.add_argument('-mcs', nargs='?', help='generate .mcs from .bit file') + parser.add_argument('-mcs', nargs='?', const="512", help='generate .mcs from .bit file') parser.add_argument('-upload', action='store_true', help='upload firmware to WebDav server') parser.add_argument('-message', help='information about firmware') parser.add_argument('-debug', nargs='?', const='') @@ -79,7 +79,6 @@ def kungfu(script_cfg): subprocess.call('hdl.py -v', shell=True) alog.info('Processing...') command_line_cfg = cli_handler() - pprint.pprint(command_line_cfg) set_debug(vars(command_line_cfg)) alog.debug('Command line args: ' + str(sys.argv)) alog.debug(pprint.pformat(command_line_cfg)) @@ -111,7 +110,6 @@ def kungfu(script_cfg): xilinx.bit_to_mcs(cfg) xilinx.copy_firmware(cfg) elif cfg.get('mcs'): - print("mcs"*50) xilinx.bit_to_mcs(cfg) xilinx.copy_firmware(cfg) diff --git a/autohdl/structure.py b/autohdl/structure.py index f5cefc5..8ba06b8 100644 --- a/autohdl/structure.py +++ b/autohdl/structure.py @@ -84,6 +84,7 @@ def search(directory='.', dirs.remove(i) for f in files[:]: alog.debug('file: ' + f) + # splitext(".file") will return an empty ext ext = os.path.splitext(f)[1] if ext in ignore_ext: files.remove(f) diff --git a/autohdl/template_avhdl_adf.py b/autohdl/template_avhdl_adf.py index 22799c7..4fd74c3 100644 --- a/autohdl/template_avhdl_adf.py +++ b/autohdl/template_avhdl_adf.py @@ -38,9 +38,10 @@ def ucf(iPrj): def include_path(iPrj): incl_path = iPrj.get('include_path') if not incl_path: - return '' + incl_path = [] elif type(incl_path) is str: incl_path = [incl_path] + incl_path += [os.path.join(iPrj.get("dsn_root"), "src")] counter = 'Count={0}'.format(len(incl_path)) inclDir = ['IncludeDir{0}={1}'.format(i, path) for i, path in enumerate(incl_path)] return '{0}\n{1}'.format(counter, '\n'.join(inclDir)) @@ -85,7 +86,12 @@ def files(config): # import sys; sys.exit(0); config['aldec']['virt_dirs'] = virt_dirs - config['aldec']['virt_paths'] = virt_paths + config['aldec']['virt_paths'] = [] + # packages should be compiled first + for i in virt_paths: + if "_pkg" in i: + config['aldec']['virt_paths'].append(i) + config['aldec']['virt_paths'] += virt_paths def files_data(iPrj): @@ -99,8 +105,10 @@ def files_data(iPrj): def defineMacro(iPrj): - macros = ""#iPrj.get('hdlManager').get('AldecMacros') - #print(macros) + macros = iPrj.get('AldecMacros') + if type(macros) is str: + macros = [macros] + # print('[DefineMacro]\nGlobal=' + ' '.join(macros) + '\n'); import sys; sys.exit(0); if macros: return '[DefineMacro]\nGlobal=' + ' '.join(macros) + '\n' else: @@ -266,7 +274,7 @@ def generate(iPrj): 'SERVERFARM_INCLUDE_INPUT_FILES=*.*\n' 'SERVERFARM_EXCLUDE_INPUT_FILES=log\*.*:implement\*.*\n' 'JOB_SFM_RESOURCE=\n' - 'LAST_RUN=1297366639\n' + 'LAST_RUN=0\n' '[PHYS_SYNTHESIS]\n' + 'FAMILY={FAMILY}\n'.format(FAMILY=family(iPrj))