diff options
author | Yann Herklotz <git@ymhg.org> | 2019-05-13 16:32:27 +0100 |
---|---|---|
committer | Yann Herklotz <git@ymhg.org> | 2019-05-13 16:32:27 +0100 |
commit | 2fa0419fcd066137e0fc2fdc6c8f4128a4a1e663 (patch) | |
tree | 6ead64d8d7aaa7cea809c596247036b2fb1f93a8 | |
parent | 5fe3cbc3ba41cb7bfd9f4be737b0c5bc94d7e24a (diff) | |
download | verismith-2fa0419fcd066137e0fc2fdc6c8f4128a4a1e663.tar.gz verismith-2fa0419fcd066137e0fc2fdc6c8f4128a4a1e663.zip |
Add reducer function for two arbitrary Synthesiser
-rw-r--r-- | src/VeriFuzz/Reduce.hs | 17 |
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 |