verismith-1.1.0: src/Verismith/Verilog.hs
{-# LANGUAGE QuasiQuotes #-}
-- |
-- 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.
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