intel / intel/rohd

A double "tick" is required to generate waveform

Open
#161 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Dart
Stars
489
Forks
88
Avg merge
3d 23h
Merged PRs (30d)
10

Description

## Describe the bug

A double `tick` is required to create a new timestamp.

## To Reproduce

Use code:

```dart
import 'package:rohd/rohd.dart';

class ExampleModule extends Module {
ExampleModule(Logic inputA) {
inputA = addInput('input_a', inputA);
final out = addOutput('out');

Combinational([
out < inputA,
]);
}

Logic get out => output('out');
}

Future main() async {
Logic inputA = Logic();
final exampleModule = ExampleModule(inputA);
await exampleModule.build();
WaveDumper(exampleModule);
SimpleClockGenerator(2);
for (var i = 0; i < 10; ++i) {
inputA.inject(i % 2);
await Simulator.tick();
//await Simulator.tick();
print(exampleModule.out.value);
}
}
```

Open `waves.vcd` in viewer.

## Expected behavior

You can watch the history of signal changes.

## Actual behavior

There is no signal history.

## Additional details

```text
Dart SDK version: 2.18.0 (stable) (Fri Aug 26 10:22:54 2022 +0000) on "linux_x64"
```

```yaml
name: package

environment:
sdk: '>=2.14.0 <3.0.0'

dependencies:
rohd: ^0.3.2
```

## For @mkorbel1

I like how actively you participate in resolving my issues, but I do not want to be intrusive. In the course of using ROHD, I noticed some roughness, and also had ideas for improving some aspects. I will try to gradually share them with you.

As a result, I understand the limited resources of the ROHD project, so please process my questions and suggestions at your own pace. Personally, I have not encountered a single problem that would block further work. And yes, ROHD is just great.

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.