mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
run_vcs pylint cleanup
This commit is contained in:
parent
2d3ff200b4
commit
bc2a0d2714
@ -42,20 +42,20 @@ def parseArgs():
|
|||||||
#parser.add_argument("--gui", "-g", help="Simulate with GUI", action="store_true") # GUI not yet implemented
|
#parser.add_argument("--gui", "-g", help="Simulate with GUI", action="store_true") # GUI not yet implemented
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
def createDirs(args):
|
def createDirs(config, testsuite):
|
||||||
wkdir = f"{simdir}/wkdir/{args.config}_{args.testsuite}"
|
wkdir = f"{simdir}/wkdir/{config}_{testsuite}"
|
||||||
covdir = f"{simdir}/cov/{args.config}_{args.testsuite}"
|
covdir = f"{simdir}/cov/{config}_{testsuite}"
|
||||||
os.makedirs(wkdir, exist_ok=True)
|
os.makedirs(wkdir, exist_ok=True)
|
||||||
os.makedirs(covdir, exist_ok=True)
|
os.makedirs(covdir, exist_ok=True)
|
||||||
os.makedirs(logdir, exist_ok=True)
|
os.makedirs(logdir, exist_ok=True)
|
||||||
return wkdir, covdir
|
return wkdir
|
||||||
|
|
||||||
def generateFileList():
|
def generateFileList(testbench):
|
||||||
rtlsrc_cmd = f'find {srcdir} -name "*.sv" ! -path "{srcdir}/generic/mem/rom1p1r_128x64.sv" ! -path "{srcdir}/generic/mem/ram2p1r1wbe_128x64.sv" ! -path "{srcdir}/generic/mem/rom1p1r_128x32.sv" ! -path "{srcdir}/generic/mem/ram2p1r1wbe_2048x64.sv"'
|
rtlsrc_cmd = f'find {srcdir} -name "*.sv" ! -path "{srcdir}/generic/mem/rom1p1r_128x64.sv" ! -path "{srcdir}/generic/mem/ram2p1r1wbe_128x64.sv" ! -path "{srcdir}/generic/mem/rom1p1r_128x32.sv" ! -path "{srcdir}/generic/mem/ram2p1r1wbe_2048x64.sv"'
|
||||||
rtlsrc_files = runFindCommand(rtlsrc_cmd)
|
rtlsrc_files = runFindCommand(rtlsrc_cmd)
|
||||||
tbcommon_cmd = f'find {tbdir}/common -name "*.sv"'
|
tbcommon_cmd = f'find {tbdir}/common -name "*.sv"'
|
||||||
tbcommon_files = runFindCommand(tbcommon_cmd)
|
tbcommon_files = runFindCommand(tbcommon_cmd)
|
||||||
tb_file = f'{tbdir}/{args.tb}.sv'
|
tb_file = f'{tbdir}/{testbench}.sv'
|
||||||
return f"{tb_file} {rtlsrc_files} {tbcommon_files}"
|
return f"{tb_file} {rtlsrc_files} {tbcommon_files}"
|
||||||
|
|
||||||
def processArgs(wkdir, args):
|
def processArgs(wkdir, args):
|
||||||
@ -81,11 +81,11 @@ def processArgs(wkdir, args):
|
|||||||
|
|
||||||
def setupParamOverrides(wkdir, args):
|
def setupParamOverrides(wkdir, args):
|
||||||
paramOverrideFile = os.path.join(wkdir, "param_overrides.txt")
|
paramOverrideFile = os.path.join(wkdir, "param_overrides.txt")
|
||||||
with open(paramOverrideFile, "w") as f:
|
with open(paramOverrideFile, "w", encoding="utf-8") as f:
|
||||||
for param in args.params.split():
|
for param in args.params.split():
|
||||||
[param, value] = param.split("=")
|
[param, value] = param.split("=")
|
||||||
if fr"\'" in value: # for bit values
|
if r"\'" in value: # for bit values
|
||||||
value = value.replace(fr"\'", "'")
|
value = value.replace(r"\'", "'")
|
||||||
else: # for strings
|
else: # for strings
|
||||||
value = f'"{value}"'
|
value = f'"{value}"'
|
||||||
f.write(f"assign {value} {args.tb}/{param}\n")
|
f.write(f"assign {value} {args.tb}/{param}\n")
|
||||||
@ -98,21 +98,24 @@ def setupCommands(wkdir, rtlFiles, compileOptions, simvOptions, args):
|
|||||||
simvCMD = f"{wkdir}/sim_out +TEST={args.testsuite} {args.args} -no_save {simvOptions}"
|
simvCMD = f"{wkdir}/sim_out +TEST={args.testsuite} {args.args} -no_save {simvOptions}"
|
||||||
return vcsCMD, simvCMD
|
return vcsCMD, simvCMD
|
||||||
|
|
||||||
def runVCS(wkdir, vcsCMD, simvCMD):
|
def runVCS(vcsCMD, simvCMD):
|
||||||
print(f"Executing: {vcsCMD}")
|
print(f"Executing: {vcsCMD}")
|
||||||
subprocess.run(vcsCMD, shell=True)
|
subprocess.run(vcsCMD, shell=True, check=True)
|
||||||
subprocess.run(simvCMD, shell=True)
|
subprocess.run(simvCMD, shell=True, check=True)
|
||||||
if (args.ccov):
|
|
||||||
COV_RUN = f"urg -dir {wkdir}/coverage.vdb -format text -report IndividualCovReport/{args.config}_{args.testsuite}"
|
def runCoverage(wkdir, config, testsuite):
|
||||||
subprocess.run(COV_RUN, shell=True)
|
COV_RUN = f"urg -dir {wkdir}/coverage.vdb -format text -report IndividualCovReport/{config}_{testsuite}"
|
||||||
|
subprocess.run(COV_RUN, shell=True, check=True)
|
||||||
|
|
||||||
def main(args):
|
def main(args):
|
||||||
print(f"run_vcs Config={args.config} tests={args.testsuite} lockstep={args.lockstep} args='{args.args}' params='{args.params}' define='{args.define}'")
|
print(f"run_vcs Config={args.config} tests={args.testsuite} lockstep={args.lockstep} args='{args.args}' params='{args.params}' define='{args.define}'")
|
||||||
wkdir, covdir = createDirs(args)
|
wkdir = createDirs(args.config, args.testsuite)
|
||||||
rtlFiles = generateFileList()
|
rtlFiles = generateFileList(args.tb)
|
||||||
compileOptions, simvOptions = processArgs(wkdir, args)
|
compileOptions, simvOptions = processArgs(wkdir, args)
|
||||||
vcsCMD, simvCMD = setupCommands(wkdir, rtlFiles, compileOptions, simvOptions, args)
|
vcsCMD, simvCMD = setupCommands(wkdir, rtlFiles, compileOptions, simvOptions, args)
|
||||||
runVCS(wkdir, vcsCMD, simvCMD)
|
runVCS(vcsCMD, simvCMD)
|
||||||
|
if args.ccov:
|
||||||
|
runCoverage(wkdir, args.config, args.testsuite)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
args = parseArgs()
|
args = parseArgs()
|
||||||
|
Loading…
Reference in New Issue
Block a user