Skip to content

Commit

Permalink
Bump pebbles (spill/scalar-unit fix)
Browse files Browse the repository at this point in the history
Also update sweep script and quartus optimisation level.
  • Loading branch information
Matthew Naylor committed Mar 27, 2023
1 parent 340a7d6 commit 8d3a914
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 8 deletions.
2 changes: 2 additions & 0 deletions de10-pro-e/DE10_Pro.qsf
Original file line number Diff line number Diff line change
Expand Up @@ -1735,3 +1735,5 @@ set_global_assignment -name SEARCH_PATH ../pebbles/src/CHERI/Verilog/
set_global_assignment -name SEED 2
set_global_assignment -name IP_FILE ../pebbles/blarney/blarney-vendor-ip/IntelFPGA/AvalonStreamClockCrosser/AvalonStreamClockCrosser.ip
set_global_assignment -name VERILOG_FILE ../pebbles/blarney/blarney-vendor-ip/IntelFPGA/PipelinedDivider/PipelinedDivider.v
set_global_assignment -name OPTIMIZATION_MODE "SUPERIOR PERFORMANCE WITH MAXIMUM PLACEMENT EFFORT"
set_global_assignment -name FAST_PRESERVE OFF -entity DE10_Pro
2 changes: 2 additions & 0 deletions de10-pro/DE10_Pro.qsf
Original file line number Diff line number Diff line change
Expand Up @@ -1738,3 +1738,5 @@ set_global_assignment -name SEARCH_PATH ../pebbles/src/CHERI/Verilog/
set_global_assignment -name SEED 2
set_global_assignment -name IP_FILE ../pebbles/blarney/blarney-vendor-ip/IntelFPGA/AvalonStreamClockCrosser/AvalonStreamClockCrosser.ip
set_global_assignment -name VERILOG_FILE ../pebbles/blarney/blarney-vendor-ip/IntelFPGA/PipelinedDivider/PipelinedDivider.v
set_global_assignment -name OPTIMIZATION_MODE "SUPERIOR PERFORMANCE WITH MAXIMUM PLACEMENT EFFORT"
set_global_assignment -name FAST_PRESERVE OFF -entity DE10_Pro
2 changes: 1 addition & 1 deletion pebbles
24 changes: 17 additions & 7 deletions scripts/sweep.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ def printUsage():
("SIMTEnableSVStoreBuffer", "1")
]
config["DynRegSpill"] = config["RegFileScalarisation"] + [
("SIMTRegFileSize", "256")
, ("SIMTCapRegFileSize", "256")
("SIMTRegFileSize", "512")
, ("SIMTCapRegFileSize", "192")
]
config["DynHalfRF"] = [
("SIMTEnableRegFileScalarisation", "1")
Expand All @@ -53,14 +53,18 @@ def printUsage():
["Clang"]
, ["CHERI", "RegFileScalarisation"]
, ["CHERI", "DynRegSpill"]
, ["GCC", "DynHalfRF"]
, ["GCC", "StaticHalfRF"]
, ["CHERI", "StoreBuffer"]
, ["CHERI", "ScalarUnit"]
, ["Clang", "DynRegSpill", "StoreBuffer", "ScalarUnit"]
, ["CHERI", "DynRegSpill", "StoreBuffer", "ScalarUnit"]
]

# Config combos of interest when benchmarking only
benchCombos = [
["GCC", "DynHalfRF"]
, ["GCC", "StaticHalfRF"]
]

# Get directory containing script
scriptDir = os.path.dirname(os.path.realpath(__file__))

Expand Down Expand Up @@ -99,6 +103,7 @@ def applySettings(combo):
# Remove old log file
os.chdir(repoDir + "/de10-pro")
os.system("rm -f synth.log")
os.system("rm -rf Synth-*")
# Synthesise each combination using quartus DSE
for combo in configCombos:
name = "Baseline" if combo == [] else "+".join(combo)
Expand All @@ -110,19 +115,24 @@ def applySettings(combo):
os.system("make > /dev/null")
os.chdir(repoDir + "/de10-pro")
os.system("./prepare_dse.sh")
os.system("make many > /dev/null")
os.system('BLC_FLAGS="enable-namer-plugin" make many > /dev/null')
# Save report
os.system("echo >> synth.log")
os.system("echo ====== " + name + " ====== >> synth.log")
os.system("echo >> synth.log")
os.system("make report | grep -v 'Info:' >> synth.log")
os.system("mkdir -p Synth-" + name)
os.system("find dse/*" +
" | grep DE10_Pro.fit.place.rpt" +
" | tr '/' '_'" +
" | xargs -i cp {} Synth-" + name)
clean()
elif sys.argv[1] == "bench":
# Remove old log file
os.chdir(repoDir + "/test")
os.system("rm -f bench.log")
# Test each combination in simulation
for combo in configCombos:
# Benchmark each combination in simulation
for combo in (configCombos + benchCombos):
name = "Baseline" if combo == [] else "+".join(combo)
print("Config: " + name)
clean()
Expand Down

0 comments on commit 8d3a914

Please sign in to comment.