aboutsummaryrefslogtreecommitdiffstats
path: root/src/VeriFuzz/CodeGen.hs
diff options
context:
space:
mode:
authorYann Herklotz Grave <git@yannherklotzgrave.com>2019-02-16 20:19:00 +0000
committerYann Herklotz Grave <git@yannherklotzgrave.com>2019-02-16 20:19:00 +0000
commit5025a43948a682bc40d5c91606ec97cd8d6c3897 (patch)
treeb31c5113ff0a7d93424ba21a6c288f704f24dc78 /src/VeriFuzz/CodeGen.hs
parenta180c89947f8e0c191ba7e7dba4c6eb7edf538e6 (diff)
downloadverismith-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.hs12
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