Replies: 2 comments
-
Additional Motivation for Input Port default values
|
Beta Was this translation helpful? Give feedback.
0 replies
-
Implementation planEach point is a separate feature - although some of them have no visible effect
From start SheetParam must allow all possible expansions: |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Motivation
You might have a subsheet implementing a loadable up/down counter. This will have baked-in bus width output and input which can't be changed in the way that the size of a built-in register can.
Hence subsheets are not generally useful as a way to add library components.
However, in this implementation there are maybe 4 components all with a parameterised width. If all those component parameters could be set from an external sheet-level parameter then the sub-sheet would be usable as a library component.
Functionality
Data Structures
Design question.
Should the info on which component parameters are bound to sheet parameters be part of the component definition or part of the LoadedComponent definition?
Related Code and implementation
Parameter Constraints
An Issie design principle is that it should not be possible to enter non-working code - or - if this is done - the errors should be easily highlighted in a way that makes correction simple.
A few component parameters have constraints on values currently enforced by the input boxes in which they are entered. For example a constant component value must be within the range allowed by its bus width.
These constraints propagate to sheet level, when parameters are bound there. Thus the sheet parameters may have a maximum and minimum value got from the intersection of all the component constraints. Worth noting that most components just enforce parameter value > 0. Some also enforce <= 64 or <= 65.
Switching off I/O ports
Additional functionality that would have value (Quartus library components allow this)
The info for this is essentially a tick-box for every output and input. Additionally a default value entered as part of the spec for an input.
Adding fields to types
This idea requires info added to various types. This can most easily be done in a transparent way using optional fields - on JSON save legacy saves will load correctly to new types with the options None.
Adding info to sheet (which turns into LoadedCompoenent)
Currently a sheet is saved as a tuple (component list * connection list). There is no way to add an extra per-sheet field here. compatible with legacy sheets. Probably, we need to have two load types and change to a new top-level sheet datatype which is a record. As soon as we have domne that we can easily add new option fields to the record for future upgrades in what is stored without stopping legacy load.
Beta Was this translation helpful? Give feedback.
All reactions