aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYann Herklotz <git@ymhg.org>2019-05-13 16:32:27 +0100
committerYann Herklotz <git@ymhg.org>2019-05-13 16:32:27 +0100
commit2fa0419fcd066137e0fc2fdc6c8f4128a4a1e663 (patch)
tree6ead64d8d7aaa7cea809c596247036b2fb1f93a8 /src
parent5fe3cbc3ba41cb7bfd9f4be737b0c5bc94d7e24a (diff)
downloadverismith-2fa0419fcd066137e0fc2fdc6c8f4128a4a1e663.tar.gz
verismith-2fa0419fcd066137e0fc2fdc6c8f4128a4a1e663.zip
Add reducer function for two arbitrary Synthesiser
Diffstat (limited to 'src')
-rw-r--r--src/VeriFuzz/Reduce.hs17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/VeriFuzz/Reduce.hs b/src/VeriFuzz/Reduce.hs
index 2bf5a78..f9a4ebf 100644
--- a/src/VeriFuzz/Reduce.hs
+++ b/src/VeriFuzz/Reduce.hs
@@ -41,6 +41,7 @@ import Shelly ((<.>))
import qualified Shelly
import Shelly.Lifted (MonadSh, liftSh)
import VeriFuzz.Internal
+import VeriFuzz.Result
import VeriFuzz.Sim
import VeriFuzz.Sim.Internal
import VeriFuzz.Verilog.AST
@@ -382,9 +383,17 @@ reduceWithScript top script file = do
-- | Reduce a 'SourceInfo' using two Synthesisers that are passed to it.
reduceSynth :: (Synthesiser a, Synthesiser b, MonadSh m)
- => Yosys
- -> a
- -> Maybe b
+ => a
+ -> b
-> SourceInfo
-> m SourceInfo
-reduceSynth = undefined
+reduceSynth a b = reduce synth
+ where
+ synth src' = liftSh $ do
+ r <- runResultT $ do
+ runSynth a src'
+ runSynth b src'
+ runEquiv a b src'
+ case r of
+ Fail _ -> return False
+ Pass _ -> return True