Skip to content

Commit 401c1cf

Browse files
committed
Merge remote-tracking branch 'private/master' into secure-dpl-negotiation-default
2 parents 32810dd + 523bbbb commit 401c1cf

4 files changed

Lines changed: 103 additions & 47 deletions

File tree

flow/designs/asap7/ibex/rules-base.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"compare": ">="
3333
},
3434
"cts__timing__setup__tns": {
35-
"value": -1160.0,
35+
"value": -1630.0,
3636
"compare": ">="
3737
},
3838
"cts__timing__hold__ws": {
@@ -48,11 +48,11 @@
4848
"compare": "<="
4949
},
5050
"globalroute__timing__setup__ws": {
51-
"value": -87.4,
51+
"value": -75.9,
5252
"compare": ">="
5353
},
5454
"globalroute__timing__setup__tns": {
55-
"value": -10500.0,
55+
"value": -451.0,
5656
"compare": ">="
5757
},
5858
"globalroute__timing__hold__ws": {
@@ -64,7 +64,7 @@
6464
"compare": ">="
6565
},
6666
"detailedroute__route__wirelength": {
67-
"value": 100926,
67+
"value": 99315,
6868
"compare": "<="
6969
},
7070
"detailedroute__route__drc_errors": {
@@ -80,11 +80,11 @@
8080
"compare": "<="
8181
},
8282
"finish__timing__setup__ws": {
83-
"value": -69.1,
83+
"value": -52.5,
8484
"compare": ">="
8585
},
8686
"finish__timing__setup__tns": {
87-
"value": -960.0,
87+
"value": -205.0,
8888
"compare": ">="
8989
},
9090
"finish__timing__hold__ws": {
@@ -96,7 +96,7 @@
9696
"compare": ">="
9797
},
9898
"finish__design__instance__area": {
99-
"value": 2828,
99+
"value": 2816,
100100
"compare": "<="
101101
}
102102
}

flow/designs/sky130hd/gcd/rules-base.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"synth__design__instance__area__stdcell": {
3-
"value": 2760.0,
3+
"value": 2660.0,
44
"compare": "<="
55
},
66
"constraints__clocks__count": {
@@ -28,11 +28,11 @@
2828
"compare": "<="
2929
},
3030
"cts__timing__setup__ws": {
31-
"value": -1.82,
31+
"value": -1.62,
3232
"compare": ">="
3333
},
3434
"cts__timing__setup__tns": {
35-
"value": -77.3,
35+
"value": -68.8,
3636
"compare": ">="
3737
},
3838
"cts__timing__hold__ws": {
@@ -48,11 +48,11 @@
4848
"compare": "<="
4949
},
5050
"globalroute__timing__setup__ws": {
51-
"value": -1.91,
51+
"value": -1.9,
5252
"compare": ">="
5353
},
5454
"globalroute__timing__setup__tns": {
55-
"value": -85.4,
55+
"value": -88.8,
5656
"compare": ">="
5757
},
5858
"globalroute__timing__hold__ws": {
@@ -80,11 +80,11 @@
8080
"compare": "<="
8181
},
8282
"finish__timing__setup__ws": {
83-
"value": -1.8,
83+
"value": -1.74,
8484
"compare": ">="
8585
},
8686
"finish__timing__setup__tns": {
87-
"value": -80.8,
87+
"value": -81.2,
8888
"compare": ">="
8989
},
9090
"finish__timing__hold__ws": {

flow/designs/sky130hd/riscv32i/rules-base.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"compare": ">="
3333
},
3434
"cts__timing__setup__tns": {
35-
"value": -94.0,
35+
"value": -148.0,
3636
"compare": ">="
3737
},
3838
"cts__timing__hold__ws": {
@@ -52,7 +52,7 @@
5252
"compare": ">="
5353
},
5454
"globalroute__timing__setup__tns": {
55-
"value": -203.0,
55+
"value": -301.0,
5656
"compare": ">="
5757
},
5858
"globalroute__timing__hold__ws": {
@@ -84,7 +84,7 @@
8484
"compare": ">="
8585
},
8686
"finish__timing__setup__tns": {
87-
"value": -88.2,
87+
"value": -167.0,
8888
"compare": ">="
8989
},
9090
"finish__timing__hold__ws": {

flow/test/test_helper.sh

Lines changed: 86 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,93 @@ set -eoux pipefail
44

55
cd "$(dirname "$(readlink -f "$0")")/../"
66

7-
# Setting args (and setting default values for testing)
8-
DESIGN_NAME=${1:-gcd}
9-
PLATFORM=${2:-nangate45}
10-
CONFIG_MK=${3:-config.mk}
11-
if [ $# -ge 4 ]; then
12-
FLOW_VARIANT=$4
13-
fi
14-
TARGET=${5:-'finish metadata'}
15-
DESIGN_CONFIG=./designs/$PLATFORM/$DESIGN_NAME/$CONFIG_MK
16-
if [ -z "${WORK_HOME+x}" ]; then
17-
WORK_HOME=.
7+
usage() {
8+
cat <<'EOF'
9+
Usage:
10+
test_helper.sh [options]
11+
test_helper.sh <design> <platform> [config_mk] [variant] [target] (legacy positional)
12+
13+
Options:
14+
--design NAME Design name (default: gcd)
15+
--platform NAME Platform (default: nangate45)
16+
--config FILE Design config file name (default: config.mk)
17+
--design-path DIR Root path containing 'designs/' (default: ./)
18+
--variant NAME Flow variant (default: unset)
19+
--target STR Make target(s), space-separated (default: 'finish metadata')
20+
--work-home DIR Work home (default: .)
21+
--private-dir DIR Private tool scripts dir (default: ../../private_tool_scripts)
22+
--save-to-db Save metrics to DB (requires private.mk)
23+
--run-calibre Run Calibre DRC (requires utils.mk)
24+
--check-drc-db Check DRC DB (use with --run-calibre + --save-to-db)
25+
--make-issue Run final_report_issue at end
26+
-h, --help Show this help
27+
28+
Environment variables override defaults; flags override env. Flags also accept
29+
values via the corresponding env var (e.g., DESIGN_NAME, PLATFORM, CONFIG_MK,
30+
FLOW_VARIANT, TARGET, WORK_HOME, PRIVATE_DIR, DESIGN_PATH, SAVE_TO_DB,
31+
RUN_CALIBRE, CHECK_DRC_DB, MAKE_ISSUE).
32+
EOF
33+
}
34+
35+
DESIGN_NAME="${DESIGN_NAME:-gcd}"
36+
PLATFORM="${PLATFORM:-nangate45}"
37+
CONFIG_MK="${CONFIG_MK:-config.mk}"
38+
TARGET="${TARGET:-finish metadata}"
39+
WORK_HOME="${WORK_HOME:-.}"
40+
PRIVATE_DIR="${PRIVATE_DIR:-../../private_tool_scripts}"
41+
DESIGN_PATH="${DESIGN_PATH:-./}"
42+
43+
if [ $# -gt 0 ]; then
44+
if [ "${1#-}" = "$1" ]; then
45+
# Legacy positional: <design> <platform> [config_mk] [variant] [target]
46+
DESIGN_NAME=${1:-$DESIGN_NAME}
47+
PLATFORM=${2:-$PLATFORM}
48+
CONFIG_MK=${3:-$CONFIG_MK}
49+
if [ $# -ge 4 ] && [ -n "$4" ]; then
50+
FLOW_VARIANT=$4
51+
fi
52+
if [ $# -ge 5 ] && [ -n "$5" ]; then
53+
TARGET=$5
54+
fi
55+
else
56+
while [ $# -gt 0 ]; do
57+
case "$1" in
58+
--design) DESIGN_NAME=$2; shift 2 ;;
59+
--platform) PLATFORM=$2; shift 2 ;;
60+
--config) CONFIG_MK=$2; shift 2 ;;
61+
--design-path) DESIGN_PATH=$2; shift 2 ;;
62+
--variant) FLOW_VARIANT=$2; shift 2 ;;
63+
--target) TARGET=$2; shift 2 ;;
64+
--work-home) WORK_HOME=$2; shift 2 ;;
65+
--private-dir) PRIVATE_DIR=$2; shift 2 ;;
66+
--save-to-db) SAVE_TO_DB=1; shift ;;
67+
--run-calibre) RUN_CALIBRE=1; shift ;;
68+
--check-drc-db) CHECK_DRC_DB=1; shift ;;
69+
--make-issue) MAKE_ISSUE=1; shift ;;
70+
-h|--help) usage; exit 0 ;;
71+
*) echo "Unknown option: $1" >&2; usage >&2; exit 2 ;;
72+
esac
73+
done
74+
fi
1875
fi
76+
77+
DESIGN_CONFIG=${DESIGN_PATH%/}/designs/$PLATFORM/$DESIGN_NAME/$CONFIG_MK
1978
LOG_FILE=${WORK_HOME}/logs/$PLATFORM/$DESIGN_NAME.log
2079
mkdir -p "${WORK_HOME}/logs/$PLATFORM"
2180

22-
__make="make DESIGN_CONFIG=$DESIGN_CONFIG"
81+
__make=(make "DESIGN_CONFIG=$DESIGN_CONFIG")
2382
if [ -n "${FLOW_VARIANT+x}" ]; then
24-
__make+=" FLOW_VARIANT=$FLOW_VARIANT"
83+
__make+=("FLOW_VARIANT=$FLOW_VARIANT")
2584
fi
2685

2786
mkdir -p "$(dirname "$LOG_FILE")"
28-
$__make clean_all clean_metadata 2>&1 | tee "$LOG_FILE"
87+
"${__make[@]}" clean_all clean_metadata 2>&1 | tee "$LOG_FILE"
2988

3089
# turn off abort on error so we can always capture the result
3190
set +e
3291

33-
eval $__make "${TARGET}" 2>&1 | tee -a "$LOG_FILE"
92+
read -r -a TARGET_ARR <<< "$TARGET"
93+
"${__make[@]}" "${TARGET_ARR[@]}" 2>&1 | tee -a "$LOG_FILE"
3494

3595
# Save the return code to return as the overall status after we package
3696
# the results
@@ -40,26 +100,22 @@ if [ "${TARGET}" != "finish metadata" ]; then
40100
exit $ret
41101
fi
42102

43-
if [ -z "${PRIVATE_DIR+x}" ]; then
44-
PRIVATE_DIR="../../private_tool_scripts"
45-
fi
46-
47103
if [ -f "$PRIVATE_DIR/openRoad/private.mk" ] && [ -n "${SAVE_TO_DB+x}" ]; then
48-
$__make save_to_metrics_db
104+
"${__make[@]}" save_to_metrics_db
49105
ret=$(( ret + $? ))
50106
fi
51107

52108
if [ -f "$PRIVATE_DIR/util/utils.mk" ] && [ -n "${RUN_CALIBRE+x}" ]; then
53-
$__make calibre_drc
109+
"${__make[@]}" calibre_drc
54110
ret=$(( ret + $? ))
55-
$__make convert_calibre
111+
"${__make[@]}" convert_calibre
56112
ret=$(( ret + $? ))
57113
if [ -n "${SAVE_TO_DB+x}" ]; then
58-
$__make save_to_drc_db
114+
"${__make[@]}" save_to_drc_db
59115
ret=$(( ret + $? ))
60116
fi
61117
if [ -n "${CHECK_DRC_DB+x}" ]; then
62-
$__make check_drc_db
118+
"${__make[@]}" check_drc_db
63119
ret=$(( ret + $? ))
64120
fi
65121
fi
@@ -68,20 +124,20 @@ fi
68124
set -e
69125

70126
if [ -n "${MAKE_ISSUE+x}" ]; then
71-
$__make final_report_issue 2>&1 | tee -a "$LOG_FILE"
127+
"${__make[@]}" final_report_issue 2>&1 | tee -a "$LOG_FILE"
72128
fi
73129

74130
# Find make targets
75131
set +x # These rules are noisy
76-
TARGETS=$($__make -np | grep -e '^[^ ]*:')
77-
if [ $ret -eq 0 ] && grep -q 'simulate:' <(echo $TARGETS); then
132+
TARGETS=$("${__make[@]}" -np | grep -e '^[^ ]*:')
133+
if [ $ret -eq 0 ] && grep -q 'simulate:' <(echo "$TARGETS"); then
78134
echo "Start simulate"
79-
$__make simulate 2>&1 | tee -a "$LOG_FILE"
135+
"${__make[@]}" simulate 2>&1 | tee -a "$LOG_FILE"
80136
ret=$(( ret + $? ))
81137
fi
82-
if [ $ret -eq 0 ] && grep -q 'power:' <(echo $TARGETS); then
138+
if [ $ret -eq 0 ] && grep -q 'power:' <(echo "$TARGETS"); then
83139
echo "Start power"
84-
$__make power 2>&1 | tee -a "$LOG_FILE"
140+
"${__make[@]}" power 2>&1 | tee -a "$LOG_FILE"
85141
ret=$(( ret + $? ))
86142
fi
87143
set -x

0 commit comments

Comments
 (0)