X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=VHDLTypes.hs;fp=VHDLTypes.hs;h=e517a8ba08166d6c5800bdb5d4f41b3e4ab74876;hb=e230d86ae7135a268a72cdffba947a9011001ec2;hp=784b09706e6a6742a4fb504640983e8973349225;hpb=3fb6a3a819f85d89853660347b42f6085d20fb57;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/VHDLTypes.hs b/VHDLTypes.hs index 784b097..e517a8b 100644 --- a/VHDLTypes.hs +++ b/VHDLTypes.hs @@ -45,15 +45,25 @@ instance Ord OrdType where -- A map of a Core type to the corresponding type name type TypeMap = Map.Map OrdType (AST.VHDLId, AST.TypeDec) +-- A map of a vector Core type to the coressponding VHDL functions +type TypeFunMap = Map.Map OrdType [AST.SubProgBody] + -- A map of a Haskell function to a hardware signature type SignatureMap = Map.Map String Entity +-- A map of a builtin function to VHDL function builder +type NameTable = Map.Map String (Int, [AST.Expr] -> AST.Expr ) + data VHDLSession = VHDLSession { -- | A map of Core type -> VHDL Type - vsTypes_ :: TypeMap, + vsTypes_ :: TypeMap, + -- | A map of vector Core type -> VHDL type function + vsTypeFuns_ :: TypeFunMap, -- | A map of HsFunction -> hardware signature (entity name, port names, -- etc.) - vsSignatures_ :: SignatureMap + vsSignatures_ :: SignatureMap, + -- | A map of Vector HsFunctions -> VHDL function call + vsNameTable_ :: NameTable } -- Derive accessors