Store the Haskell Type in SignalInfo.
[matthijs/master-project/cλash.git] / Translator.hs
index 6b96ebca98a04566fb07e0adaeec609fc94a5d77..78c3a6f08be46eec78cde6662c6e0c73c9ed85c9 100644 (file)
@@ -69,9 +69,14 @@ main =
       -- Create entities and architectures for them
       mapM processBind binds
       modFuncs nameFlatFunction
+      modFuncs VHDL.createEntity
+      -- Extract the library units generated from all the functions in the
+      -- session.
+      funcs <- getFuncs
+      let units = concat $ map VHDL.getLibraryUnits funcs
       return $ AST.DesignFile 
         []
-        []
+        units
 
 findBind :: [CoreBind] -> String -> Maybe CoreBind
 findBind binds lookfor =
@@ -181,7 +186,7 @@ nameFlatFunction hsfunc fdata =
     -- Name the signals in all other functions
     Just flatfunc ->
       let s = sigs flatfunc in
-      let s' = map (\(id, (SignalInfo Nothing)) -> (id, SignalInfo (Just $ "sig_" ++ (show id)))) s in
+      let s' = map (\(id, (SignalInfo Nothing ty)) -> (id, SignalInfo (Just $ "sig_" ++ (show id)) ty)) s in
       let flatfunc' = flatfunc { sigs = s' } in
       fdata { flatFunc = Just flatfunc' }