diff options
author | Yann Herklotz Grave <git@yannherklotzgrave.com> | 2019-02-16 20:19:00 +0000 |
---|---|---|
committer | Yann Herklotz Grave <git@yannherklotzgrave.com> | 2019-02-16 20:19:00 +0000 |
commit | 5025a43948a682bc40d5c91606ec97cd8d6c3897 (patch) | |
tree | b31c5113ff0a7d93424ba21a6c288f704f24dc78 /src/VeriFuzz/CodeGen.hs | |
parent | a180c89947f8e0c191ba7e7dba4c6eb7edf538e6 (diff) | |
download | verismith-5025a43948a682bc40d5c91606ec97cd8d6c3897.tar.gz verismith-5025a43948a682bc40d5c91606ec97cd8d6c3897.zip |
Change Port type, adding signed info
Diffstat (limited to 'src/VeriFuzz/CodeGen.hs')
-rw-r--r-- | src/VeriFuzz/CodeGen.hs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/VeriFuzz/CodeGen.hs b/src/VeriFuzz/CodeGen.hs index f35eff7..3e36cf5 100644 --- a/src/VeriFuzz/CodeGen.hs +++ b/src/VeriFuzz/CodeGen.hs @@ -68,12 +68,17 @@ genModPort port = port ^. portName . getIdentifier -- | Generate the 'Port' description. genPort :: Port -> Text -genPort port = t <> size <> name +genPort port = t <> sign <> size <> name where - t = (<> " ") . genPortType $ port ^. portType + t = flip mappend " " . genPortType $ port ^. portType size | port ^. portSize > 1 = "[" <> showT (port ^. portSize - 1) <> ":0] " | otherwise = "" name = port ^. portName . getIdentifier + sign = genSigned $ port ^. portSigned + +genSigned :: Bool -> Text +genSigned True = "signed " +genSigned _ = "" -- | Convert the 'PortDir' type to 'Text'. genPortDir :: PortDir -> Text @@ -188,8 +193,7 @@ genConstExpr (ConstExpr num) = showT num genPortType :: PortType -> Text genPortType Wire = "wire" -genPortType (Reg signed) | signed = "reg signed" - | otherwise = "reg" +genPortType Reg = "reg" genAssign :: Text -> Assign -> Text genAssign op (Assign r d e) = genLVal r <> op <> maybe "" genDelay d <> genExpr e |