You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`%clock` is an optional `i1` value (e.g. a module clock); `<edge>` is `posedge`, `negedge`, or `edge`. When present, the `delay`/`length` are counted on the specified clock/edge. For example, `ltl.delay %s, 3 clock %clk, posedge` means `%s` must hold 3 cycles later on `%clk` rising edges.
172
+
173
+
When the clocking clause is omitted, the delay is unclocked and may be resolved by an enclosing `ltl.clock` or by the `InferLTLClocks` pass. `ltl.clock` globally associates a sequence/property with a clock/edge; using the same pair in `ltl.delay` keeps expressions in the same clocking domain.
174
+
175
+
Examples:
176
+
177
+
```mlir
178
+
ltl.delay %s, 3
179
+
ltl.delay %s, 3, 0
180
+
ltl.delay %s, 3, 0 clock %clk, posedge
181
+
```
182
+
163
183
164
184
### Disable Iff
165
185
@@ -273,13 +293,13 @@ where the `logic_to_int` conversion is only necessary if `%cond` is 4-valued.
273
293
```mlir
274
294
%ds1 = ltl.delay %s1, 1
275
295
%s1s2 = ltl.concat %ds1, %s2 : !ltl.sequence
276
-
```
296
+
```
277
297
278
298
-**`s1 ##[*] s2`**:
279
299
```mlir
280
300
%ds1 = ltl.delay %s1, 0
281
301
%s1s2 = ltl.concat %ds1, %s2 : !ltl.sequence
282
-
```
302
+
```
283
303
284
304
-**`s1 and s2`**:
285
305
```mlir
@@ -369,12 +389,12 @@ ltl.not %s1 : !ltl.sequence
369
389
-**`nexttime p`**:
370
390
```mlir
371
391
ltl.delay %p, 1, 0 : !ltl.sequence
372
-
```
392
+
```
373
393
374
394
-**`nexttime[n] p`**:
375
395
```mlir
376
396
ltl.delay %p, n, 0 : !ltl.sequence
377
-
```
397
+
```
378
398
379
399
-**`s_nexttime p`**: not really distinguishable from the weak version in CIRCT.
380
400
-**`s_nexttime[n] p`**: not really distinguishable from the weak version in CIRCT.
0 commit comments