intel / intel/rohd

`Sequential` outputs as clock inputs to other `Sequential`s trigger late in the simulator

Open
#191 1 comment 0 reactions 1 assignee Claimed by @mkorbel1 View on GitHub
bug
Dominant language
Dart
Stars
489
Forks
88
Avg merge
3d 23h
Merged PRs (30d)
10

Description

### Describe the bug

If the output of one `Sequential` is used as a clock trigger to another `Sequential`, the phased simulator can sometimes detect the edge and drive the outputs of the downstream `Sequential` one tick late.

This breaks clock dividers.

### To Reproduce

Create a clock divider and connect a flop to the output of the divided clock.

### Expected behavior

Divided clock properly triggers edge detection on `Sequential`s.

### Actual behavior

Divided clock doesn't trigger edges properly, causing incorrect `Sequential` behavior.

### Additional: Dart SDK info

_No response_

### Additional: pubspec.yaml

_No response_

### Additional: Context

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.