1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
{-|
Module : VeriFuzz.Verilog
Description : Verilog implementation with random generation and mutations.
Copyright : (c) 2019, Yann Herklotz Grave
License : GPL-3
Maintainer : ymherklotz [at] gmail [dot] com
Stability : experimental
Portability : POSIX
Verilog implementation with random generation and mutations.
-}
module VeriFuzz.Verilog
( SourceInfo(..)
, Verilog(..)
, parseVerilog
, procedural
, proceduralIO
, randomMod
, 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(..)
, 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(..)
, modConn
, modConnName
, modExpr
-- * Useful Lenses and Traversals
, getModule
, getSourceId
)
where
import VeriFuzz.Verilog.AST
import VeriFuzz.Verilog.CodeGen
import VeriFuzz.Verilog.Gen
import VeriFuzz.Verilog.Parser
|