function return type logic to implicit conversion

This commit is contained in:
Zachary Snow 2019-03-06 14:36:16 -05:00
parent 9699f5bf16
commit 4c49bd1138
3 changed files with 21 additions and 0 deletions

View File

@ -13,6 +13,7 @@ import qualified Convert.AlwaysKW
import qualified Convert.AsgnOp
import qualified Convert.CaseKW
import qualified Convert.Enum
import qualified Convert.FuncRet
import qualified Convert.Logic
import qualified Convert.PackedArray
import qualified Convert.Return
@ -27,6 +28,7 @@ type Phase = AST -> AST
phases :: Target -> [Phase]
phases YOSYS =
[ Convert.AsgnOp.convert
, Convert.FuncRet.convert
, Convert.Enum.convert
, Convert.PackedArray.convert
, Convert.StarPort.convert

18
src/Convert/FuncRet.hs Normal file
View File

@ -0,0 +1,18 @@
{- sv2v
- Author: Zachary Snow <zach@zachjs.com>
-
- Conversion which makes function `logic` return types implicit
-}
module Convert.FuncRet (convert) where
import Convert.Traverse
import Language.SystemVerilog.AST
convert :: AST -> AST
convert = traverseDescriptions $ traverseModuleItems convertFunction
convertFunction :: ModuleItem -> ModuleItem
convertFunction (Function ml (Logic r) f decls stmts) =
Function ml (Implicit r) f decls stmts
convertFunction other = other

View File

@ -44,6 +44,7 @@ executable sv2v
Convert.AsgnOp
Convert.CaseKW
Convert.Enum
Convert.FuncRet
Convert.Logic
Convert.PackedArray
Convert.Return