diff options
author | Yann Herklotz <git@ymhg.org> | 2019-04-12 17:16:42 +0100 |
---|---|---|
committer | Yann Herklotz <git@ymhg.org> | 2019-04-12 17:16:42 +0100 |
commit | 6bcdac596fab6e989c999d63ba3f0ad09532989c (patch) | |
tree | c15aa2fef405ad8b75c274a697058d1064a13e35 /src/VeriFuzz/Verilog/CodeGen.hs | |
parent | d695414e67f9adb7f665602a20a898fa77eba106 (diff) | |
download | verismith-6bcdac596fab6e989c999d63ba3f0ad09532989c.tar.gz verismith-6bcdac596fab6e989c999d63ba3f0ad09532989c.zip |
Add for loop to design
Diffstat (limited to 'src/VeriFuzz/Verilog/CodeGen.hs')
-rw-r--r-- | src/VeriFuzz/Verilog/CodeGen.hs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/VeriFuzz/Verilog/CodeGen.hs b/src/VeriFuzz/Verilog/CodeGen.hs index 53af0d1..3a8d14a 100644 --- a/src/VeriFuzz/Verilog/CodeGen.hs +++ b/src/VeriFuzz/Verilog/CodeGen.hs @@ -91,13 +91,11 @@ modPort p = p ^. portName . getIdentifier -- | Generate the 'Port' description. port :: Port -> Text -port p = t <> sign <> size <> name +port (Port tp sgn low sz (Identifier name)) = t <> sign <> size <> name where - t = flip mappend " " . pType $ p ^. portType - size | p ^. portSize > 1 = "[" <> showT (p ^. portSize - 1) <> ":0] " - | otherwise = "" - name = p ^. portName . getIdentifier - sign = signed $ p ^. portSigned + t = flip mappend " " $ pType tp + size = "[" <> showT (low+sz-1) <> ":" <> showT low <> "] " + sign = signed sgn signed :: Bool -> Text signed True = "signed " @@ -116,9 +114,11 @@ moduleItem (ModInst (Identifier i) (Identifier name) conn) = i <> " " <> name <> "(" <> comma (mConn <$> conn) <> ")" <> ";\n" moduleItem (Initial stat) = "initial " <> statement stat moduleItem (Always stat) = "always " <> statement stat -moduleItem (Decl dir p ini ) = maybe "" makePort dir <> port p <> maybe "" makeIni ini <> ";\n" - where makePort = (<> " ") . portDir - makeIni = (" = " <>) . constExpr +moduleItem (Decl dir p ini) = + maybe "" makePort dir <> port p <> maybe "" makeIni ini <> ";\n" + where + makePort = (<> " ") . portDir + makeIni = (" = " <>) . constExpr moduleItem (ParamDecl p) = paramList p <> ";\n" moduleItem (LocalParamDecl p) = localParamList p <> ";\n" |