From 87e9dbe1fd8e90369064762f0a34d90af50e9291 Mon Sep 17 00:00:00 2001 From: Kevin Kim Date: Sat, 21 Oct 2023 09:50:04 -0700 Subject: [PATCH] more bug fixes on fp-synth --- synthDC/scripts/fp-synth.sh | 61 +++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/synthDC/scripts/fp-synth.sh b/synthDC/scripts/fp-synth.sh index e874aa16f..c22315942 100755 --- a/synthDC/scripts/fp-synth.sh +++ b/synthDC/scripts/fp-synth.sh @@ -2,62 +2,82 @@ # RADIX 2 setRADIXeq2 () { -sed -i "157s/RADIX.*/RADIX = 32\'h2;/" $WALLY/config/rv64gc/config.vh -sed -i "157s/RADIX.*/RADIX = 32\'h2;/" $WALLY/config/rv32gc/config.vh +n64=$(grep -n "RADIX" $WALLY/config/rv64gc/config.vh | cut -d: -f1) +n32=$(grep -n "RADIX" $WALLY/config/rv32gc/config.vh | cut -d: -f1) +sed -i "${n64}s/RADIX.*/RADIX = 32\'h2;/" $WALLY/config/rv64gc/config.vh +sed -i "${n32}s/RADIX.*/RADIX = 32\'h2;/" $WALLY/config/rv32gc/config.vh } # RADIX 4 setRADIXeq4 () { -sed -i "157s/RADIX.*/RADIX = 32\'h4;/" $WALLY/config/rv64gc/config.vh -sed -i "157s/RADIX.*/RADIX = 32\'h4;/" $WALLY/config/rv32gc/config.vh +n64=$(grep -n "RADIX" $WALLY/config/rv64gc/config.vh | cut -d: -f1) +n32=$(grep -n "RADIX" $WALLY/config/rv32gc/config.vh | cut -d: -f1) +sed -i "${n64}s/RADIX.*/RADIX = 32\'h4;/" $WALLY/config/rv64gc/config.vh +sed -i "${n32}s/RADIX.*/RADIX = 32\'h4;/" $WALLY/config/rv32gc/config.vh } # K = 1 setKeq1 () { -sed -i "158s/DIVCOPIES.*/DIVCOPIES = 32\'h1;/" $WALLY/config/rv64gc/config.vh -sed -i "158s/DIVCOPIES.*/DIVCOPIES = 32\'h1;/" $WALLY/config/rv32gc/config.vh +n64=$(grep -n "DIVCOPIES" $WALLY/config/rv64gc/config.vh | cut -d: -f1) +n32=$(grep -n "DIVCOPIES" $WALLY/config/rv32gc/config.vh | cut -d: -f1) +sed -i "${n64}s/DIVCOPIES.*/DIVCOPIES = 32\'h1;/" $WALLY/config/rv64gc/config.vh +sed -i "${n32}s/DIVCOPIES.*/DIVCOPIES = 32\'h1;/" $WALLY/config/rv32gc/config.vh } # K = 2 setKeq2 () { -sed -i "158s/DIVCOPIES.*/DIVCOPIES = 32\'h2;/" $WALLY/config/rv64gc/config.vh -sed -i "158s/DIVCOPIES.*/DIVCOPIES = 32\'h2;/" $WALLY/config/rv32gc/config.vh +n64=$(grep -n "DIVCOPIES" $WALLY/config/rv64gc/config.vh | cut -d: -f1) +n32=$(grep -n "DIVCOPIES" $WALLY/config/rv32gc/config.vh | cut -d: -f1) +sed -i "${n64}s/DIVCOPIES.*/DIVCOPIES = 32\'h2;/" $WALLY/config/rv64gc/config.vh +sed -i "${n32}s/DIVCOPIES.*/DIVCOPIES = 32\'h2;/" $WALLY/config/rv32gc/config.vh } # K = 4 setKeq4 () { -sed -i "158s/DIVCOPIES.*/DIVCOPIES = 32\'h4;/" $WALLY/config/rv64gc/config.vh -sed -i "158s/DIVCOPIES.*/DIVCOPIES = 32\'h4;/" $WALLY/config/rv32gc/config.vh +n64=$(grep -n "DIVCOPIES" $WALLY/config/rv64gc/config.vh | cut -d: -f1) +n32=$(grep -n "DIVCOPIES" $WALLY/config/rv32gc/config.vh | cut -d: -f1) +sed -i "${n64}s/DIVCOPIES.*/DIVCOPIES = 32\'h4;/" $WALLY/config/rv64gc/config.vh +sed -i "${n32}s/DIVCOPIES.*/DIVCOPIES = 32\'h4;/" $WALLY/config/rv32gc/config.vh } # IDIVBITS = 1 setIDIVBITSeq1 () { -sed -i "80s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d1/" $WALLY/config/rv64gc/config.vh -sed -i "80s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d1/" $WALLY/config/rv32gc/config.vh +n64=$(grep -n "IDIV_BITSPERCYCLE" $WALLY/config/rv64gc/config.vh | cut -d: -f1) +n32=$(grep -n "IDIV_BITSPERCYCLE" $WALLY/config/rv32gc/config.vh | cut -d: -f1) +sed -i "${n64}s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d1/" $WALLY/config/rv64gc/config.vh +sed -i "${n32}s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d1/" $WALLY/config/rv32gc/config.vh } # IDIVBITS = 2 setIDIVBITSeq2 () { -sed -i "80s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d2/" $WALLY/config/rv64gc/config.vh -sed -i "80s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d2/" $WALLY/config/rv32gc/config.vh +n64=$(grep -n "IDIV_BITSPERCYCLE" $WALLY/config/rv64gc/config.vh | cut -d: -f1) +n32=$(grep -n "IDIV_BITSPERCYCLE" $WALLY/config/rv32gc/config.vh | cut -d: -f1) +sed -i "${n64}s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d2/" $WALLY/config/rv64gc/config.vh +sed -i "${n32}s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d2/" $WALLY/config/rv32gc/config.vh } # IDIVBITS = 4 setIDIVBITSeq4 () { -sed -i "80s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d4/" $WALLY/config/rv64gc/config.vh -sed -i "80s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d4/" $WALLY/config/rv32gc/config.vh +n64=$(grep -n "IDIV_BITSPERCYCLE" $WALLY/config/rv64gc/config.vh | cut -d: -f1) +n32=$(grep -n "IDIV_BITSPERCYCLE" $WALLY/config/rv32gc/config.vh | cut -d: -f1) +sed -i "${n64}s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d4/" $WALLY/config/rv64gc/config.vh +sed -i "${n32}s/IDIV_BITSPERCYCLE.*/IDIV_BITSPERCYCLE = 32;\'d4/" $WALLY/config/rv32gc/config.vh } # IDIV ON FPU setIDIVeq1 () { -sed -i "81s/IDIV_ON_FPU.*/IDIV_ON_FPU = 1;/" $WALLY/config/rv64gc/config.vh -sed -i "81s/IDIV_ON_FPU.*/IDIV_ON_FPU = 1;/" $WALLY/config/rv32gc/config.vh +n64=$(grep -n "IDIV_ON_FPU" $WALLY/config/rv64gc/config.vh | cut -d: -f1) +n32=$(grep -n "IDIV_ON_FPU" $WALLY/config/rv32gc/config.vh | cut -d: -f1) +sed -i "${n64}s/IDIV_ON_FPU.*/IDIV_ON_FPU = 1;/" $WALLY/config/rv64gc/config.vh +sed -i "${n32}s/IDIV_ON_FPU.*/IDIV_ON_FPU = 1;/" $WALLY/config/rv32gc/config.vh } # IDIV NOT ON FPU setIDIVeq0 () { -sed -i "81s/IDIV_ON_FPU.*/IDIV_ON_FPU = 0;/" $WALLY/config/rv64gc/config.vh -sed -i "81s/IDIV_ON_FPU.*/IDIV_ON_FPU = 0;/" $WALLY/config/rv32gc/config.vh +n64=$(grep -n "IDIV_ON_FPU" $WALLY/config/rv64gc/config.vh | cut -d: -f1) +n32=$(grep -n "IDIV_ON_FPU" $WALLY/config/rv32gc/config.vh | cut -d: -f1) +sed -i "${n64}s/IDIV_ON_FPU.*/IDIV_ON_FPU = 0;/" $WALLY/config/rv64gc/config.vh +sed -i "${n32}s/IDIV_ON_FPU.*/IDIV_ON_FPU = 0;/" $WALLY/config/rv32gc/config.vh } # Synthesize Integer Divider @@ -141,6 +161,7 @@ go() { setKeq1 setRADIXeq4 synthAll +wait setKeq2 setRADIXeq2 synthAll