Look up the port names in the session when generating an architecture.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Thu, 22 Jan 2009 19:32:18 +0000 (20:32 +0100)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Thu, 22 Jan 2009 19:32:18 +0000 (20:32 +0100)
Translator.hs

index 94f99f82ee4dfc9194f56b6f1c62a7560a09bbb5..c96bebce5e5cd1eca842ff4645af848663a42000 100644 (file)
@@ -205,17 +205,13 @@ getArchitecture sess (NonRec var expr) =
                -- Use unsafe for now, to prevent pulling in ForSyDe error handling
                (AST.NSimple (AST.unsafeVHDLBasicId name))
                []
-               (getInstantiations sess (Args inportnames) outport [] expr)
+               (getInstantiations sess (Args inports) outport [] expr)
        where
                name = (getOccString var)
-               ty = CoreUtils.exprType expr
-               (fargs, res) = Type.splitFunTys ty
-               --state = if length fargs == 1 then () else (last fargs)
-               ports = if length fargs == 1 then fargs else (init fargs)
-               inportnames = case ports of
-                       [port] -> [getPortNameMapForTy "portin" port]
-                       ps     -> getPortNameMapForTys "portin" 0 ps
-               outport = getPortNameMapForTy "portout" res
+               hwfunc = Maybe.fromMaybe
+                       (error $ "Function " ++ name ++ "is unknown? This should not happen!")
+                       (lookup name (funcs sess))
+               HWFunction (Args inports) outport = hwfunc
 
 data PortNameMap =
        Args [PortNameMap] -- Each of the submaps represent an argument to the