Seq
seq
CIRCT’s seq dialect.
See external documentation.
clock = ClockType()
module-attribute
Seq = Dialect('seq', [ClockDividerOp, CompRegOp, ConstClockOp], [ClockType, ClockConstAttr])
module-attribute
ClockType
dataclass
Bases: ParametrizedAttribute, TypeAttribute
A type for clock-carrying wires. Signals which can be used to drive the clock input of sequential operations.
Source code in xdsl/dialects/seq.py
37 38 39 40 41 42 43 | |
name = 'seq.clock'
class-attribute
instance-attribute
ClockDividerOp
Bases: IRDLOperation
Produces a clock divided by a power of two
Source code in xdsl/dialects/seq.py
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 | |
name = 'seq.clock_div'
class-attribute
instance-attribute
pow2 = attr_def(IntegerAttr)
class-attribute
instance-attribute
clockIn = operand_def(ClockType)
class-attribute
instance-attribute
clockOut = result_def(ClockType)
class-attribute
instance-attribute
__init__(clockIn: SSAValue | Operation, pow2: int | IntegerAttr)
Source code in xdsl/dialects/seq.py
59 60 61 62 63 64 | |
verify_() -> None
Source code in xdsl/dialects/seq.py
66 67 68 69 70 71 72 | |
parse(parser: Parser)
classmethod
Source code in xdsl/dialects/seq.py
74 75 76 77 78 79 | |
print(printer: Printer)
Source code in xdsl/dialects/seq.py
81 82 83 84 85 | |
CompRegOp
Bases: IRDLOperation
Register a value, storing it for one cycle.
Source code in xdsl/dialects/seq.py
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | |
name = 'seq.compreg'
class-attribute
instance-attribute
DATA_TYPE: ClassVar = VarConstraint('DataType', AnyAttr())
class-attribute
instance-attribute
inner_sym = opt_attr_def(InnerSymAttr)
class-attribute
instance-attribute
input = operand_def(DATA_TYPE)
class-attribute
instance-attribute
clk = operand_def(clock)
class-attribute
instance-attribute
reset = opt_operand_def(i1)
class-attribute
instance-attribute
reset_value = opt_operand_def(DATA_TYPE)
class-attribute
instance-attribute
power_on_value = opt_operand_def(DATA_TYPE)
class-attribute
instance-attribute
data = result_def(DATA_TYPE)
class-attribute
instance-attribute
irdl_options = (AttrSizedOperandSegments(),)
class-attribute
instance-attribute
assembly_format = '(`sym` $inner_sym^)? $input `,` $clk (`reset` $reset^ `,` $reset_value)? (`powerOn` $power_on_value^)? attr-dict `:` type($input)'
class-attribute
instance-attribute
__init__(input: SSAValue, clk: SSAValue, reset: tuple[SSAValue, SSAValue] | None = None, power_on_value: SSAValue | None = None)
Source code in xdsl/dialects/seq.py
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | |
verify_()
Source code in xdsl/dialects/seq.py
133 134 135 | |
ClockConstAttrData
Bases: Enum
Source code in xdsl/dialects/seq.py
138 139 140 | |
LOW = 0
class-attribute
instance-attribute
HIGH = 1
class-attribute
instance-attribute
ClockConstAttr
dataclass
Bases: Data[ClockConstAttrData]
Clock constant.
This attribute diverges slightly from the upstream implementation as xDSL does not allow completely unstructured parsing and printing of attributes (for good reasons).
Source code in xdsl/dialects/seq.py
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | |
name = 'seq.clock_constant'
class-attribute
instance-attribute
parse_parameter(parser: AttrParser) -> ClockConstAttrData
classmethod
Source code in xdsl/dialects/seq.py
155 156 157 158 | |
parse_parameter_free_standing(parser: AttrParser) -> ClockConstAttrData
classmethod
Source code in xdsl/dialects/seq.py
160 161 162 163 164 165 166 | |
print_parameter(printer: Printer) -> None
Source code in xdsl/dialects/seq.py
168 169 170 | |
print_parameter_free_standing(printer: Printer) -> None
Source code in xdsl/dialects/seq.py
172 173 174 175 176 177 | |
ConstClockOp
dataclass
Bases: IRDLOperation
The constant operation produces a constant clock value.
Source code in xdsl/dialects/seq.py
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 | |
name = 'seq.const_clock'
class-attribute
instance-attribute
value = attr_def(ClockConstAttr)
class-attribute
instance-attribute
result = result_def(clock)
class-attribute
instance-attribute
parse(parser: Parser) -> ConstClockOp
classmethod
Source code in xdsl/dialects/seq.py
191 192 193 194 195 196 197 | |
print(printer: Printer)
Source code in xdsl/dialects/seq.py
199 200 201 202 | |