Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement directed updating instead component-order updating #99

Open
SimonBuxx opened this issue Aug 24, 2022 · 0 comments
Open

Implement directed updating instead component-order updating #99

SimonBuxx opened this issue Aug 24, 2022 · 0 comments
Labels
bug Something isn't working Effort: high logic
Milestone

Comments

@SimonBuxx
Copy link
Owner

At the moment, component updating works in a way that all components receive an update signal in order of their creation. This leads to inconsistencies in cases like the following:

  • The circuit contains two flip-flops and a clock, the clock has been placed after the first flip-flop and before the second one
  • When stepping trough the simulation, the second flip-flop is updated one tick earlier because it receives a HIGH signal from the clock; when the first flip-flop is updated, it uses the clock's old state.

Wanted behavior:

  1. All components with no precessor are updated (go trough all components once to find them / use existing signal)
  2. Components send update signal to their successors
  3. Successors update, if all their precessors have updated

This should inductively update all components without too much processing overhead. Labeled as bug because it leads to unexpected behaviour.

@SimonBuxx SimonBuxx added the bug Something isn't working label Aug 24, 2022
@SimonBuxx SimonBuxx added this to the Version 1.0 milestone Aug 24, 2022
@SimonBuxx SimonBuxx modified the milestones: Version 1.0, Version 2.0 Aug 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Effort: high logic
Projects
None yet
Development

No branches or pull requests

1 participant