aboutsummaryrefslogtreecommitdiffstats
path: root/src/Verismith/Sim/Quartus.hs
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2019-10-18 14:29:07 +0100
committerYann Herklotz <git@yannherklotz.com>2019-10-18 14:29:07 +0100
commite7f57642f068650ea362201b239efad1c9a841d9 (patch)
tree2d68c28c0644089b9afcfc21fc05f88d50ef6703 /src/Verismith/Sim/Quartus.hs
parent349c1fa290c068a0f4100469e7485d062dd995ce (diff)
downloadverismith-e7f57642f068650ea362201b239efad1c9a841d9.tar.gz
verismith-e7f57642f068650ea362201b239efad1c9a841d9.zip
Rename Sim to Tool
Diffstat (limited to 'src/Verismith/Sim/Quartus.hs')
-rw-r--r--src/Verismith/Sim/Quartus.hs77
1 files changed, 0 insertions, 77 deletions
diff --git a/src/Verismith/Sim/Quartus.hs b/src/Verismith/Sim/Quartus.hs
deleted file mode 100644
index 5fb1e49..0000000
--- a/src/Verismith/Sim/Quartus.hs
+++ /dev/null
@@ -1,77 +0,0 @@
-{-|
-Module : Verismith.Sim.Quartus
-Description : Quartus synthesiser implementation.
-Copyright : (c) 2019, Yann Herklotz Grave
-License : GPL-3
-Maintainer : yann [at] yannherklotz [dot] com
-Stability : experimental
-Portability : POSIX
-
-Quartus synthesiser implementation.
--}
-
-module Verismith.Sim.Quartus
- ( Quartus(..)
- , defaultQuartus
- )
-where
-
-import Control.DeepSeq (NFData, rnf, rwhnf)
-import Data.Text (Text, unpack)
-import Prelude hiding (FilePath)
-import Shelly
-import Shelly.Lifted (liftSh)
-import Verismith.Sim.Internal
-import Verismith.Verilog.AST
-import Verismith.Verilog.CodeGen
-
-data Quartus = Quartus { quartusBin :: !(Maybe FilePath)
- , quartusDesc :: {-# UNPACK #-} !Text
- , quartusOutput :: {-# UNPACK #-} !FilePath
- }
- deriving (Eq)
-
-instance Tool Quartus where
- toText (Quartus _ t _) = t
-
-instance Show Quartus where
- show t = unpack $ toText t
-
-instance Synthesiser Quartus where
- runSynth = runSynthQuartus
- synthOutput = quartusOutput
- setSynthOutput (Quartus a b _) = Quartus a b
-
-instance NFData Quartus where
- rnf = rwhnf
-
-defaultQuartus :: Quartus
-defaultQuartus = Quartus Nothing "quartus" "syn_quartus.v"
-
-runSynthQuartus :: Quartus -> SourceInfo -> ResultSh ()
-runSynthQuartus sim (SourceInfo top src) = do
- dir <- liftSh pwd
- let ex = execute_ SynthFail dir "quartus"
- liftSh . writefile inpf $ genSource src
- liftSh . noPrint $ run_
- "sed"
- [ "-i"
- , "s/^module/(* multstyle = \"logic\" *) module/;"
- , toTextIgnore inpf
- ]
- ex (exec "quartus_map")
- [top, "--source=" <> toTextIgnore inpf, "--family=Cyclone V"]
- ex (exec "quartus_fit") [top, "--part=5CGXFC7D6F31C6"]
- ex (exec "quartus_eda") [top, "--simulation", "--tool=vcs"]
- liftSh $ do
- cp (fromText "simulation/vcs" </> fromText top <.> "vo")
- $ synthOutput sim
- run_
- "sed"
- [ "-ri"
- , "s,^// DATE.*,,; s,^tri1 (.*);,wire \\1 = 1;,; /^\\/\\/ +synopsys/ d;"
- , toTextIgnore $ synthOutput sim
- ]
- where
- inpf = "rtl.v"
- exec s = maybe (fromText s) (</> fromText s) $ quartusBin sim