mirror of https://github.com/openXC7/prjxray.git
timfuz: ALLOW_ZERO_EQN
Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
parent
e148ed5f91
commit
2ad0bf82fc
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
TIMFUZ_DIR=$(XRAY_DIR)/fuzzers/007-timing
|
TIMFUZ_DIR=$(XRAY_DIR)/fuzzers/007-timing
|
||||||
CORNER=slow_max
|
CORNER=slow_max
|
||||||
|
ALLOW_ZERO_EQN?=N
|
||||||
|
|
||||||
all: build/$(CORNER)/tilea.json
|
all: build/$(CORNER)/tilea.json
|
||||||
|
|
||||||
|
|
@ -20,6 +21,9 @@ clean:
|
||||||
build/$(CORNER):
|
build/$(CORNER):
|
||||||
mkdir build/$(CORNER)
|
mkdir build/$(CORNER)
|
||||||
|
|
||||||
|
build/checksub:
|
||||||
|
false
|
||||||
|
|
||||||
build/$(CORNER)/leastsq.csv: build/sub.json build/grouped.csv build/checksub build/$(CORNER)
|
build/$(CORNER)/leastsq.csv: build/sub.json build/grouped.csv build/checksub build/$(CORNER)
|
||||||
# Create a rough timing model that approximately fits the given paths
|
# Create a rough timing model that approximately fits the given paths
|
||||||
python3 $(TIMFUZ_DIR)/solve_leastsq.py --sub-json build/sub.json build/grouped.csv --corner $(CORNER) --out build/$(CORNER)/leastsq.csv.tmp
|
python3 $(TIMFUZ_DIR)/solve_leastsq.py --sub-json build/sub.json build/grouped.csv --corner $(CORNER) --out build/$(CORNER)/leastsq.csv.tmp
|
||||||
|
|
@ -27,7 +31,7 @@ build/$(CORNER)/leastsq.csv: build/sub.json build/grouped.csv build/checksub bui
|
||||||
|
|
||||||
build/$(CORNER)/linprog.csv: build/$(CORNER)/leastsq.csv build/grouped.csv
|
build/$(CORNER)/linprog.csv: build/$(CORNER)/leastsq.csv build/grouped.csv
|
||||||
# Tweak rough timing model, making sure all constraints are satisfied
|
# Tweak rough timing model, making sure all constraints are satisfied
|
||||||
python3 $(TIMFUZ_DIR)/solve_linprog.py --sub-json build/sub.json --sub-csv build/$(CORNER)/leastsq.csv --massage build/grouped.csv --corner $(CORNER) --out build/$(CORNER)/linprog.csv.tmp
|
ALLOW_ZERO_EQN=$(ALLOW_ZERO_EQN) python3 $(TIMFUZ_DIR)/solve_linprog.py --sub-json build/sub.json --sub-csv build/$(CORNER)/leastsq.csv --massage build/grouped.csv --corner $(CORNER) --out build/$(CORNER)/linprog.csv.tmp
|
||||||
mv build/$(CORNER)/linprog.csv.tmp build/$(CORNER)/linprog.csv
|
mv build/$(CORNER)/linprog.csv.tmp build/$(CORNER)/linprog.csv
|
||||||
|
|
||||||
build/$(CORNER)/flat.csv: build/$(CORNER)/linprog.csv
|
build/$(CORNER)/flat.csv: build/$(CORNER)/linprog.csv
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,4 @@
|
||||||
|
# so simple that likely no linprog adjustments will be needed
|
||||||
|
ALLOW_ZERO_EQN?=Y
|
||||||
include ../project.mk
|
include ../project.mk
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
|
||||||
CSVS := $(addsuffix /timing3.csv,$(SPECIMENS))
|
CSVS := $(addsuffix /timing3.csv,$(SPECIMENS))
|
||||||
TIMFUZ_DIR=$(XRAY_DIR)/fuzzers/007-timing
|
TIMFUZ_DIR=$(XRAY_DIR)/fuzzers/007-timing
|
||||||
RREF_CORNER=slow_max
|
RREF_CORNER=slow_max
|
||||||
|
ALLOW_ZERO_EQN?=N
|
||||||
|
|
||||||
TILEA_JSONS=build/fast_max/tilea.json build/fast_min/tilea.json build/slow_max/tilea.json build/slow_min/tilea.json
|
TILEA_JSONS=build/fast_max/tilea.json build/fast_min/tilea.json build/slow_max/tilea.json build/slow_min/tilea.json
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,8 @@ def run(fns_in, corner, run_corner, sub_json=None, sub_csv=None, dedup=True, mas
|
||||||
try:
|
try:
|
||||||
Ads, b = massage_equations(Ads, b, corner=corner)
|
Ads, b = massage_equations(Ads, b, corner=corner)
|
||||||
except SimplifiedToZero:
|
except SimplifiedToZero:
|
||||||
|
if os.getenv('ALLOW_ZERO_EQN', 'N') != 'Y':
|
||||||
|
raise
|
||||||
print('WARNING: simplified to zero equations')
|
print('WARNING: simplified to zero equations')
|
||||||
Ads = []
|
Ads = []
|
||||||
b = []
|
b = []
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue