aboutsummaryrefslogtreecommitdiffstats
path: root/src/Verismith/Verilog.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Verismith/Verilog.hs')
-rw-r--r--src/Verismith/Verilog.hs106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/Verismith/Verilog.hs b/src/Verismith/Verilog.hs
new file mode 100644
index 0000000..f3d9e85
--- /dev/null
+++ b/src/Verismith/Verilog.hs
@@ -0,0 +1,106 @@
+{-|
+Module : Verismith.Verilog
+Description : Verilog implementation with random generation and mutations.
+Copyright : (c) 2019, Yann Herklotz Grave
+License : GPL-3
+Maintainer : yann [at] yannherklotz [dot] com
+Stability : experimental
+Portability : POSIX
+
+Verilog implementation with random generation and mutations.
+-}
+
+{-# LANGUAGE QuasiQuotes #-}
+
+module Verismith.Verilog
+ ( SourceInfo(..)
+ , Verilog(..)
+ , parseVerilog
+ , GenVerilog(..)
+ , genSource
+ -- * Primitives
+ -- ** Identifier
+ , Identifier(..)
+ -- ** Control
+ , Delay(..)
+ , Event(..)
+ -- ** Operators
+ , BinaryOperator(..)
+ , UnaryOperator(..)
+ -- ** Task
+ , Task(..)
+ , taskName
+ , taskExpr
+ -- ** Left hand side value
+ , LVal(..)
+ , regId
+ , regExprId
+ , regExpr
+ , regSizeId
+ , regSizeRange
+ , regConc
+ -- ** Ports
+ , PortDir(..)
+ , PortType(..)
+ , Port(..)
+ , portType
+ , portSigned
+ , portSize
+ , portName
+ -- * Expression
+ , Expr(..)
+ , ConstExpr(..)
+ , constToExpr
+ , exprToConst
+ , constNum
+ -- * Assignment
+ , Assign(..)
+ , assignReg
+ , assignDelay
+ , assignExpr
+ , ContAssign(..)
+ , contAssignNetLVal
+ , contAssignExpr
+ -- * Statment
+ , Statement(..)
+ , statDelay
+ , statDStat
+ , statEvent
+ , statEStat
+ , statements
+ , stmntBA
+ , stmntNBA
+ , stmntTask
+ , stmntSysTask
+ , stmntCondExpr
+ , stmntCondTrue
+ , stmntCondFalse
+ -- * Module
+ , ModDecl(..)
+ , modId
+ , modOutPorts
+ , modInPorts
+ , modItems
+ , ModItem(..)
+ , modContAssign
+ , modInstId
+ , modInstName
+ , modInstConns
+ , traverseModItem
+ , declDir
+ , declPort
+ , ModConn(..)
+ , modConnName
+ , modExpr
+ -- * Useful Lenses and Traversals
+ , getModule
+ , getSourceId
+ -- * Quote
+ , verilog
+ )
+where
+
+import Verismith.Verilog.AST
+import Verismith.Verilog.CodeGen
+import Verismith.Verilog.Parser
+import Verismith.Verilog.Quote