-
Notifications
You must be signed in to change notification settings - Fork 5
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
Superscalar metrics #61
Conversation
|
||
Should be called in the body of either a transaction or a method. | ||
incr: Methods |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that something went wrong here. Why this docstring is in such weird place?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Docstring for attributes is written after the attribute, as PEP 257 describes. An alternative would be to remove the method docstrings entirely and add info at the beginning of the class, as we do in other places in Transactron and Coreblocks. Still, this style seems to have some benefits, including being shown contextually in IDEs.
This PR modifies metrics to enable superscalar use - changing a metric multiple times in a single clock cycle. This is needed to be able to create superscalar circuits which utilize metrics.
The PR introduces a small syntactic change to method calls: the
enable
signal is renamed toenable_call
and can be used as a keyword argument. This means thatenable_call
is now a reserved argument name. This was done to be able to remove method wrapper functions from metrics modules, which utilized an optionalcond
argument - which is basicallyenable
. I'm not extra happy with the solution, but it gets the job done.TODO: