Copyright | (c) 2018-2022 Yann Herklotz |
---|---|
License | GPL-3 |
Maintainer | yann [at] yannherklotz [dot] com |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
Verismith
Description
Synopsis
- defaultMain :: IO ()
- data Opts
- = Fuzz {
- fuzzOutput :: Text
- fuzzConfigFile :: !(Maybe FilePath)
- fuzzForced :: !Bool
- fuzzKeepAll :: !Bool
- fuzzNum :: !Int
- fuzzNoSim :: !Bool
- fuzzNoEquiv :: !Bool
- fuzzNoReduction :: !Bool
- fuzzExistingFile :: !(Maybe FilePath)
- fuzzExistingFileTop :: !Text
- fuzzCrossCheck :: !Bool
- fuzzChecker :: !(Maybe Text)
- | EMIOpts {
- emiOutput :: Text
- emiConfigFile :: !(Maybe FilePath)
- emiForced :: !Bool
- emiKeepAll :: !Bool
- emiNum :: !Int
- emiNoSim :: !Bool
- emiNoEquiv :: !Bool
- emiNoReduction :: !Bool
- emiTopModule :: Text
- emiInputFile :: FilePath
- | Generate { }
- | Parse {
- parseFilename :: !FilePath
- parseOutput :: !(Maybe FilePath)
- parseStrict :: !Bool
- parsePrinting :: !PrintingOpts
- | Reduce {
- reduceFilename :: !FilePath
- reduceTop :: !Text
- reduceScript :: !(Maybe FilePath)
- reduceSynthesiserDesc :: ![SynthDescription]
- reduceRerun :: !Bool
- | ConfigOpt { }
- | DistanceOpt { }
- | ShuffleOpt { }
- | Equiv {
- equivOutput :: !FilePath
- equivFilenameA :: !FilePath
- equivFilenameB :: !FilePath
- equivFileTop :: !Text
- equivChecker :: !(Maybe Text)
- = Fuzz {
- data SourceInfo a = SourceInfo {}
- runEquivalence :: Maybe Seed -> Gen (Verilog ()) -> Text -> Text -> Bool -> Int -> IO ()
- runSimulation :: IO ()
- runReduce :: SourceInfo () -> IO (SourceInfo ())
- draw :: IO ()
- procedural :: Text -> Config -> Gen (Verilog ann)
- proceduralIO :: Text -> Config -> IO (Verilog a)
- proceduralSrc :: Text -> Config -> Gen (SourceInfo ann)
- proceduralSrcIO :: Text -> Config -> IO (SourceInfo ann)
- randomMod :: MonadGen m => Int -> Int -> m (ModDecl ann)
- module Verismith.Verilog
- module Verismith.Config
- module Verismith.Circuit
- module Verismith.Tool
- module Verismith.Fuzz
- module Verismith.Report
Documentation
defaultMain :: IO () Source #
Types
Constructors
data SourceInfo a Source #
Top level type which contains all the source code and associated information.
Constructors
SourceInfo | |
Instances
Run functions
Arguments
:: Maybe Seed | |
-> Gen (Verilog ()) | Generator for the Verilog file. |
-> Text | Name of the folder on each thread. |
-> Text | Name of the general folder being used. |
-> Bool | Keep flag. |
-> Int | Used to track the recursion. |
-> IO () |
Run a fuzz run and check if all of the simulators passed by checking if the generated Verilog files are equivalent.
runSimulation :: IO () Source #
Run a simulation on a random DAG or a random module.
runReduce :: SourceInfo () -> IO (SourceInfo ()) Source #
Draw a randomly generated DAG to a dot file and compile it to a png so it can be seen.
Verilog generation functions
proceduralSrc :: Text -> Config -> Gen (SourceInfo ann) Source #
proceduralSrcIO :: Text -> Config -> IO (SourceInfo ann) Source #
Sampled and wrapped into a '(SourceInfo ann)' with the given top module name.
Extra modules
module Verismith.Verilog
module Verismith.Config
module Verismith.Circuit
module Verismith.Tool
module Verismith.Fuzz
module Verismith.Report