mirror of
https://github.com/openhwgroup/cva6.git
synced 2025-04-19 03:44:46 -04:00
Add the HPDcache as another alternative for the cache subsystem. The HPDcache is a highly configurable L1 Dcache that mainly targets high-performance systems.
75 lines
2.6 KiB
Python
Executable file
75 lines
2.6 KiB
Python
Executable file
#!/bin/env python3
|
|
# Copyright 2023 Commissariat a l'Energie Atomique et aux Energies
|
|
# Alternatives (CEA)
|
|
#
|
|
# Licensed under the Solderpad Hardware License, Version 2.1 (the “License”);
|
|
# you may not use this file except in compliance with the License.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
|
|
# You may obtain a copy of the License at https://solderpad.org/licenses/
|
|
#
|
|
# Authors: Cesar Fuguet
|
|
# Date: October, 2023
|
|
# Description: script to flatten a Flist file. Flattening consist on:
|
|
# - expanding environment variables in the file
|
|
# - expanding included Flist files
|
|
|
|
import sys;
|
|
import argparse;
|
|
import os;
|
|
|
|
def printLine(outf, line, printNewline):
|
|
if printNewline:
|
|
outf.write(f'{line}\n')
|
|
else:
|
|
outf.write(line + ' ')
|
|
|
|
def parseFlist(inFlist, outFlist, printIncdir, printNewline):
|
|
lines = iter(inFlist.read().splitlines())
|
|
for line in lines:
|
|
line = line.strip()
|
|
if (line.startswith('#') or
|
|
line.startswith('//') or
|
|
line.startswith('/*')):
|
|
continue
|
|
line = os.path.expandvars(line)
|
|
if line.startswith('+incdir+'):
|
|
if printIncdir:
|
|
printLine(outFlist, line, printNewline)
|
|
elif line.startswith('-F'):
|
|
includedFilename = line.lstrip('-F').strip()
|
|
if not os.path.exists(includedFilename):
|
|
raise (RuntimeError(f'{includedFilename} not found'))
|
|
with open(includedFilename, 'r') as includedFlist:
|
|
parseFlist(includedFlist, outFlist, printIncdir, printNewline)
|
|
elif line:
|
|
printLine(outFlist, line, printNewline)
|
|
|
|
|
|
def getArguments():
|
|
parser = argparse.ArgumentParser(description='Flatten a Flist file')
|
|
parser.add_argument(
|
|
'--print_incdir',
|
|
action="store_true",
|
|
help='Print incdir statements in the output')
|
|
parser.add_argument(
|
|
'--print_newline',
|
|
action="store_true",
|
|
help='Print newline in the output after each line')
|
|
parser.add_argument(
|
|
'inFlist',
|
|
nargs='?',
|
|
type=argparse.FileType('r'),
|
|
default=sys.stdin,
|
|
help='Input Flist file (default to stdin)')
|
|
parser.add_argument(
|
|
'outFlist',
|
|
nargs='?',
|
|
type=argparse.FileType('w'),
|
|
default=sys.stdout,
|
|
help='Output flattened Flist file (default to stdout)')
|
|
return parser.parse_args()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
args = getArguments()
|
|
parseFlist(args.inFlist, args.outFlist, args.print_incdir, args.print_newline)
|