aboutsummaryrefslogtreecommitdiffstats
path: root/src/VeriFuzz/Verilog
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2019-01-10 18:56:58 +0000
committerYann Herklotz <ymherklotz@gmail.com>2019-01-10 18:57:18 +0000
commit983669aa390c4cc1aaf6e4bee914d1a7de9a58e4 (patch)
treee02cd385806eb6d234858c94a83870f49a30e584 /src/VeriFuzz/Verilog
parent23800af41dc2b6c4e430c143024d9ec5804f2c08 (diff)
downloadverismith-983669aa390c4cc1aaf6e4bee914d1a7de9a58e4.tar.gz
verismith-983669aa390c4cc1aaf6e4bee914d1a7de9a58e4.zip
Fix all the warnings
Diffstat (limited to 'src/VeriFuzz/Verilog')
-rw-r--r--src/VeriFuzz/Verilog/CodeGen.hs52
-rw-r--r--src/VeriFuzz/Verilog/Helpers.hs3
-rw-r--r--src/VeriFuzz/Verilog/Mutate.hs4
3 files changed, 28 insertions, 31 deletions
diff --git a/src/VeriFuzz/Verilog/CodeGen.hs b/src/VeriFuzz/Verilog/CodeGen.hs
index acbf15b..fbc2fc1 100644
--- a/src/VeriFuzz/Verilog/CodeGen.hs
+++ b/src/VeriFuzz/Verilog/CodeGen.hs
@@ -15,14 +15,12 @@ This module generates the code from the Verilog AST defined in
module VeriFuzz.Verilog.CodeGen where
-import Control.Lens (view, (^.))
-import Data.Foldable (fold)
-import Data.Maybe (isNothing)
-import Data.Text (Text)
-import qualified Data.Text as T
-import qualified Data.Text.IO as T
-import Numeric (showHex)
-import VeriFuzz.Internal.Shared
+import Control.Lens (view, (^.))
+import Data.Foldable (fold)
+import Data.Text (Text)
+import qualified Data.Text as T
+import qualified Data.Text.IO as T
+import Numeric (showHex)
import VeriFuzz.Verilog.AST
-- | 'Source' class which determines that source code is able to be generated
@@ -56,8 +54,8 @@ genDescription desc =
-- | Generate the 'ModDecl' for a module and convert it to 'Text'.
genModuleDecl :: ModDecl -> Text
-genModuleDecl mod =
- "module " <> mod ^. moduleId . getIdentifier
+genModuleDecl m =
+ "module " <> m ^. moduleId . getIdentifier
<> ports <> ";\n"
<> modI
<> "endmodule\n"
@@ -65,10 +63,10 @@ genModuleDecl mod =
ports
| noIn && noOut = ""
| otherwise = "(" <> comma (genModPort <$> outIn) <> ")"
- modI = fold $ genModuleItem <$> mod ^. modItems
- noOut = null $ mod ^. modOutPorts
- noIn = null $ mod ^. modInPorts
- outIn = (mod ^. modOutPorts) ++ (mod ^. modInPorts)
+ modI = fold $ genModuleItem <$> m ^. modItems
+ noOut = null $ m ^. modOutPorts
+ noIn = null $ m ^. modInPorts
+ outIn = (m ^. modOutPorts) ++ (m ^. modInPorts)
-- | Conversts 'Port' to 'Text' for the module list, which means it only
-- generates a list of identifiers.
@@ -95,8 +93,8 @@ genPortDir PortInOut = "inout"
-- | Generate a 'ModItem'.
genModuleItem :: ModItem -> Text
genModuleItem (ModCA ca) = genContAssign ca
-genModuleItem (ModInst (Identifier id) (Identifier name) conn) =
- id <> " " <> name <> "(" <> comma (genExpr . _modConn <$> conn) <> ")" <> ";\n"
+genModuleItem (ModInst (Identifier i) (Identifier name) conn) =
+ i <> " " <> name <> "(" <> comma (genExpr . _modConn <$> conn) <> ")" <> ";\n"
genModuleItem (Initial stat) = "initial " <> genStmnt stat
genModuleItem (Always stat) = "always " <> genStmnt stat
genModuleItem (Decl dir port) =
@@ -114,8 +112,8 @@ genContAssign (ContAssign val e) =
-- | Generate 'Expr' to 'Text'.
genExpr :: Expr -> Text
-genExpr (BinOp exprRhs bin exprLhs) =
- "(" <> genExpr exprRhs <> genBinaryOperator bin <> genExpr exprLhs <> ")"
+genExpr (BinOp eRhs bin eLhs) =
+ "(" <> genExpr eRhs <> genBinaryOperator bin <> genExpr eLhs <> ")"
genExpr (Number s n) =
showT s <> "'h" <> T.pack (showHex n "")
genExpr (Id i) = i ^. getIdentifier
@@ -169,7 +167,7 @@ genUnaryOperator UnNxorInv = "^~"
-- | Generate verilog code for an 'Event'.
genEvent :: Event -> Text
-genEvent (EId id) = "@(" <> id ^. getIdentifier <> ")"
+genEvent (EId i) = "@(" <> i ^. getIdentifier <> ")"
genEvent (EExpr expr) = "@(" <> genExpr expr <> ")"
genEvent EAll = "@*"
@@ -179,11 +177,11 @@ genDelay (Delay i) = "#" <> showT i
-- | Generate the verilog code for an 'LVal'.
genLVal :: LVal -> Text
-genLVal (RegId id) = id ^. getIdentifier
-genLVal (RegExpr id expr) =
- id ^. getIdentifier <> " [" <> genExpr expr <> "]"
-genLVal (RegSize id msb lsb) =
- id ^. getIdentifier <> " [" <> genConstExpr msb <> ":" <> genConstExpr lsb <> "]"
+genLVal (RegId i) = i ^. getIdentifier
+genLVal (RegExpr i expr) =
+ i ^. getIdentifier <> " [" <> genExpr expr <> "]"
+genLVal (RegSize i msb lsb) =
+ i ^. getIdentifier <> " [" <> genConstExpr msb <> ":" <> genConstExpr lsb <> "]"
genLVal (RegConcat e) =
"{" <> comma (genExpr <$> e) <> "}"
@@ -213,10 +211,10 @@ genStmnt (SysTaskEnable task) = "$" <> genTask task <> ";\n"
genTask :: Task -> Text
genTask (Task name expr)
- | null expr = id
- | otherwise = id <> "(" <> comma (genExpr <$> expr) <> ")"
+ | null expr = i
+ | otherwise = i <> "(" <> comma (genExpr <$> expr) <> ")"
where
- id = name ^. getIdentifier
+ i = name ^. getIdentifier
-- | Render the 'Text' to 'IO'. This is equivalent to 'putStrLn'.
render :: (Source a) => a -> IO ()
diff --git a/src/VeriFuzz/Verilog/Helpers.hs b/src/VeriFuzz/Verilog/Helpers.hs
index 90a5de4..554b8ba 100644
--- a/src/VeriFuzz/Verilog/Helpers.hs
+++ b/src/VeriFuzz/Verilog/Helpers.hs
@@ -14,7 +14,6 @@ module VeriFuzz.Verilog.Helpers where
import Control.Lens
import Data.Text (Text)
-import qualified Data.Text
import VeriFuzz.Verilog.AST
regDecl :: Identifier -> ModItem
@@ -69,4 +68,4 @@ defaultPort :: Identifier -> Port
defaultPort = Port Wire 1
portToExpr :: Port -> Expr
-portToExpr (Port _ _ id) = Id id
+portToExpr (Port _ _ i) = Id i
diff --git a/src/VeriFuzz/Verilog/Mutate.hs b/src/VeriFuzz/Verilog/Mutate.hs
index dea5a66..eddb93a 100644
--- a/src/VeriFuzz/Verilog/Mutate.hs
+++ b/src/VeriFuzz/Verilog/Mutate.hs
@@ -139,10 +139,10 @@ makeIdFrom a i =
-- modules to instantiate.
makeTop :: Int -> ModDecl -> ModDecl
makeTop i m =
- ModDecl (m ^. moduleId) ys (m ^. modInPorts) modItems
+ ModDecl (m ^. moduleId) ys (m ^. modInPorts) modIt
where
ys = Port Wire 90 . (flip makeIdFrom) "y" <$> [1..i]
- modItems = instantiateMod_ . modN <$> [1..i]
+ modIt = instantiateMod_ . modN <$> [1..i]
modN n = m
& moduleId %~ makeIdFrom n
& modOutPorts .~ [Port Wire 90 (makeIdFrom n "y")]