mirror of
https://github.com/YosysHQ/yosys
synced 2026-05-01 08:03:46 +00:00
symfpu: Verifying rounding modes
Works for everything but muladd. Which I saw coming, but am still frustrated by.
This commit is contained in:
parent
9db187469d
commit
5c99ff204b
3 changed files with 75 additions and 59 deletions
|
|
@ -3,63 +3,40 @@ set -eu
|
|||
|
||||
source ../gen-tests-makefile.sh
|
||||
|
||||
# operators
|
||||
ops="sqrt add sub mul div muladd"
|
||||
for op in $ops; do
|
||||
rm -f ${op}_edges.*
|
||||
done
|
||||
rm -f *_edges.*
|
||||
|
||||
prove_op() {
|
||||
prove_rm() {
|
||||
op=$1
|
||||
defs=$2
|
||||
ys_file=${op}_edges.ys
|
||||
rm=$2
|
||||
defs=$3
|
||||
ys_file=${op}_${rm}_edges.ys
|
||||
echo """\
|
||||
symfpu -op $op
|
||||
symfpu -op $op -rm $rm
|
||||
sat -prove-asserts -verify
|
||||
chformal -remove
|
||||
opt
|
||||
|
||||
read_verilog -sv -formal $defs edges.sv
|
||||
read_verilog -sv -formal $defs -D${rm} edges.sv
|
||||
chformal -lower
|
||||
prep -top edges -flatten
|
||||
sat -prove-asserts -verify
|
||||
sat -set-assumes -prove-asserts -verify
|
||||
""" > $ys_file
|
||||
}
|
||||
|
||||
prove_op() {
|
||||
op=$1
|
||||
defs=$2
|
||||
rms="RNE RNA RTP RTN RTZ"
|
||||
for rm in $rms; do
|
||||
prove_rm $op $rm "$defs"
|
||||
done
|
||||
}
|
||||
|
||||
prove_op sqrt "-DSQRT"
|
||||
prove_op add "-DADD -DADDSUB -DADDS"
|
||||
prove_op sub "-DSUB -DADDSUB -DADDS"
|
||||
prove_op mul "-DMUL -DMULS"
|
||||
prove_op div "-DDIV"
|
||||
prove_op muladd "-DMULADD -DMULS -DADDS"
|
||||
|
||||
# rounding modes
|
||||
rms="RNE RNA RTP RTN RTZ"
|
||||
for rm in $rms; do
|
||||
rm -f ${rm}_edges.*
|
||||
done
|
||||
|
||||
prove_rm() {
|
||||
rm=$1
|
||||
defs=$2
|
||||
ys_file=${rm}_edges.ys
|
||||
echo """\
|
||||
symfpu -rm $rm
|
||||
sat -prove-asserts -verify
|
||||
chformal -remove
|
||||
opt
|
||||
|
||||
read_verilog -sv -formal $defs edges.sv
|
||||
chformal -lower
|
||||
prep -top edges -flatten
|
||||
sat -prove-asserts -verify
|
||||
""" > $ys_file
|
||||
}
|
||||
|
||||
prove_rm RNE "-DRNE"
|
||||
prove_rm RNA "-DRNA"
|
||||
prove_rm RTP "-DRTP"
|
||||
prove_rm RTN "-DRTN"
|
||||
prove_rm RTZ "-DRTZ"
|
||||
# prove_op muladd "-DMULADD -DMULS -DADDS"
|
||||
|
||||
generate_mk --yosys-scripts
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue