aboutsummaryrefslogtreecommitdiffstats
path: root/src/VeriFuzz/Sim/Quartus.hs
diff options
context:
space:
mode:
authorYann Herklotz <git@ymhg.org>2019-04-17 11:01:43 +0100
committerYann Herklotz <git@ymhg.org>2019-04-17 11:01:43 +0100
commit1db2dbfd5ffa617e58e95d42fbc84c3cdae56b4a (patch)
tree87af85f8f0e2d1025c55cc30c9828812587d5068 /src/VeriFuzz/Sim/Quartus.hs
parent449caedc72a6ccc76934149205202d43052a214c (diff)
downloadverismith-1db2dbfd5ffa617e58e95d42fbc84c3cdae56b4a.tar.gz
verismith-1db2dbfd5ffa617e58e95d42fbc84c3cdae56b4a.zip
Update simulator with Result type
Diffstat (limited to 'src/VeriFuzz/Sim/Quartus.hs')
-rw-r--r--src/VeriFuzz/Sim/Quartus.hs26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/VeriFuzz/Sim/Quartus.hs b/src/VeriFuzz/Sim/Quartus.hs
index 13b27ae..bed20ed 100644
--- a/src/VeriFuzz/Sim/Quartus.hs
+++ b/src/VeriFuzz/Sim/Quartus.hs
@@ -18,6 +18,7 @@ where
import Prelude hiding (FilePath)
import Shelly
+import Shelly.Lifted (liftSh)
import VeriFuzz.Sim.Internal
import VeriFuzz.Verilog.AST
import VeriFuzz.Verilog.CodeGen
@@ -34,20 +35,19 @@ instance Synthesiser Quartus where
defaultQuartus :: Quartus
defaultQuartus = Quartus Nothing
-runSynthQuartus :: Quartus -> SourceInfo -> FilePath -> Sh ()
+runSynthQuartus :: Quartus -> SourceInfo -> FilePath -> ResultSh ()
runSynthQuartus sim (SourceInfo top src) outf = do
- dir <- pwd
- writefile inpf $ genSource src
- echoP "Running Quartus synthesis"
- logger_ dir "quartus" $ timeout
- (exec "quartus_map")
- [top, "--source=" <> toTextIgnore inpf, "--family=Cyclone V"]
- logger_ dir "quartus"
- $ timeout (exec "quartus_fit") [top, "--part=5CGXFC7D6F27C6"]
- logger_ dir "quartus"
- $ timeout (exec "quartus_eda") [top, "--simulation", "--tool=vcs"] -- --formal_verification --tool=conformal
- cp (fromText "simulation/vcs" </> fromText top <.> "vo") outf
- echoP "Quartus synthesis done"
+ dir <- liftSh pwd
+ let ex = execute_ SynthFail dir "quartus"
+ liftSh $ do
+ writefile inpf $ genSource src
+ echoP "Running Quartus synthesis"
+ ex (exec "quartus_map") [top, "--source=" <> toTextIgnore inpf, "--family=Cyclone V"]
+ ex (exec "quartus_fit") [top, "--part=5CGXFC7D6F27C6"]
+ ex (exec "quartus_eda") [top, "--simulation", "--tool=vcs"]
+ liftSh $ do
+ cp (fromText "simulation/vcs" </> fromText top <.> "vo") outf
+ echoP "Quartus synthesis done"
where
inpf = "rtl.v"
exec s = maybe (fromText s) (</> fromText s) $ quartusBin sim