diff options
author | Yann Herklotz <git@yannherklotz.com> | 2019-10-18 14:29:07 +0100 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2019-10-18 14:29:07 +0100 |
commit | e7f57642f068650ea362201b239efad1c9a841d9 (patch) | |
tree | 2d68c28c0644089b9afcfc21fc05f88d50ef6703 /src/Verismith/Sim/Quartus.hs | |
parent | 349c1fa290c068a0f4100469e7485d062dd995ce (diff) | |
download | verismith-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.hs | 77 |
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 |