diff options
author | Yann Herklotz <git@yannherklotz.com> | 2019-09-18 19:06:32 +0200 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2019-09-18 19:06:32 +0200 |
commit | 8d96fd2a541a2602544ced741552ebd17714c67d (patch) | |
tree | 2f53addec05793cf5b3e0274a3e8e9e5f76a7abe /src/Verismith/Sim/Identity.hs | |
parent | d14196cce14d1b4a4a9fba768b9f5238c8626624 (diff) | |
download | verismith-8d96fd2a541a2602544ced741552ebd17714c67d.tar.gz verismith-8d96fd2a541a2602544ced741552ebd17714c67d.zip |
Rename main modules
Diffstat (limited to 'src/Verismith/Sim/Identity.hs')
-rw-r--r-- | src/Verismith/Sim/Identity.hs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/Verismith/Sim/Identity.hs b/src/Verismith/Sim/Identity.hs new file mode 100644 index 0000000..89c6b36 --- /dev/null +++ b/src/Verismith/Sim/Identity.hs @@ -0,0 +1,51 @@ +{-| +Module : Verismith.Sim.Identity +Description : The identity simulator and synthesiser. +Copyright : (c) 2019, Yann Herklotz Grave +License : GPL-3 +Maintainer : yann [at] yannherklotz [dot] com +Stability : experimental +Portability : POSIX + +The identity simulator and synthesiser. +-} + +module Verismith.Sim.Identity + ( Identity(..) + , defaultIdentity + ) +where + +import Control.DeepSeq (NFData, rnf, rwhnf) +import Data.Text (Text, unpack) +import Prelude hiding (FilePath) +import Shelly (FilePath) +import Shelly.Lifted (writefile) +import Verismith.Sim.Internal +import Verismith.Verilog.AST +import Verismith.Verilog.CodeGen + +data Identity = Identity { identityDesc :: {-# UNPACK #-} !Text + , identityOutput :: {-# UNPACK #-} !FilePath + } + deriving (Eq) + +instance Tool Identity where + toText (Identity d _) = d + +instance Show Identity where + show t = unpack $ toText t + +instance Synthesiser Identity where + runSynth = runSynthIdentity + synthOutput = identityOutput + setSynthOutput (Identity a _) = Identity a + +instance NFData Identity where + rnf = rwhnf + +runSynthIdentity :: Identity -> SourceInfo -> ResultSh () +runSynthIdentity (Identity _ out) = writefile out . genSource + +defaultIdentity :: Identity +defaultIdentity = Identity "identity" "syn_identity.v" |