packages feed

forsyde-deep-0.2.0: examples/BitVector.hs

{-# LANGUAGE TemplateHaskell #-}
-- example module to test bit conversion functions
module BitVector where

import ForSyDe.Deep
import Data.Int (Int32)
import Data.Param.FSVec
import Data.TypeLevel.Num (D32)

to32BitFun :: ProcFun (Int32 -> FSVec D32 Bit)
to32BitFun = $(newProcFun
 [d| to32Bit :: Int32 -> FSVec D32 Bit
     to32Bit i = toBitVector32 i |])

to32BitProc :: Signal Int32 -> Signal (FSVec D32 Bit)
to32BitProc = mapSY "to32Proc" to32BitFun 

to32BitSysDef :: SysDef (Signal Int32 -> Signal (FSVec D32 Bit))
to32BitSysDef = newSysDef to32BitProc "to32BitSys" ["in1"] ["out1"]