-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Reading and writing VCD files. -- -- Defined by the Verilog standard, VCD (value change dump) is a file -- format for capturing digital and analog waveforms, typically from HDL -- simulation. @package vcd @version 0.2.2 -- | Building hierarchy from unstructured hierarchical paths. module Data.VCD.Tree data Tree a b Branch :: a -> [Tree a b] -> Tree a b Leaf :: a -> b -> Tree a b tree :: (Eq a, Ord a) => (b -> [a]) -> [b] -> [Tree a b] -- | Generating and parsing Value Change Dump (VCD) files. module Data.VCD -- | The VCDHandle keeps track of generation state and the output handle. data VCDHandle -- | VCD Timescale. data Timescale -- | seconds S :: Timescale -- | milliseconds MS :: Timescale -- | microseconds US :: Timescale -- | picoseconds PS :: Timescale -- | Types that can be recorded as VCD variables. class Variable a var :: Variable a => VCDHandle -> [String] -> a -> IO (a -> IO ()) -- | Helper to create new Variable instances. variable :: Eq a => String -> Int -> (a -> String) -> VCDHandle -> [String] -> a -> IO (a -> IO ()) -- | Create a new handle for generating a VCD file with a given timescale. newVCD :: Handle -> Timescale -> IO VCDHandle -- | Set a time step. step will also transition a VCDHandle from the -- definition to the recording phase. step :: VCDHandle -> Int -> IO () -- | Save as step, but forces a step recording even if variables -- have not changed. Useful for realtime simulation. step' :: VCDHandle -> Int -> IO () -- | VCD database. data VCD VCD :: Timescale -> [Definition] -> [(Int, [(String, Value)])] -> VCD -- | Variable definition. data Definition -- | Hierarchical scope. Scope :: String -> [Definition] -> Definition -- | Variable with type, width, code, name. Var :: String -> Int -> String -> String -> Definition -- | Recorded value. data Value Bool :: Bool -> Value Bits :: [Bool] -> Value Double :: Double -> Value -- | Parse VCD data. parseVCD :: String -> VCD instance Show Value instance Show Definition instance Show VCD instance Show Token instance Eq Token instance Variable Double instance Variable Float instance Variable Word64 instance Variable Word32 instance Variable Word16 instance Variable Word8 instance Variable Int64 instance Variable Int32 instance Variable Int16 instance Variable Int8 instance Variable Int instance Variable Bool instance Show Timescale