Dear all,
 I have used ForSyDe to translate a Haskell script to VHDL for a while, and I have one problem by applying where-clause during the translation.
I wrote a small function Plus2.hs which is implied as following

addTwof :: ProcFun (Int32 -> Int32)
addTwof = $(newProcFun [d|addTwof :: Int32 -> Int32
                          addTwof n = addOnef+1
                               where
                                 addOnef = n +1
                                          |])

*Plus2> writeVHDL plus2SysDef
*** Exception: VHDL Compilation Error: Untranslatable function: where constructs are not supported in functions:
    where addOnef_0 = n_1 GHC.Num.+ 1
in process function `addTwof' (created in Plus2)  used by  process `plus2Proc' belonging to system definition `plus2' (created in <unkown>)

The compiling process was fine, but the script could not be translated into VHDL, like the error i mentioned above.
Is there any way to solve this problem if a where-clause is a must. Thanks all.

Hanyi


更多热辣资讯尽在新版MSN首页! 立刻访问!