24 lines
785 B
Plaintext
24 lines
785 B
Plaintext
|
|
1. Scan design. Collect information
|
|
- Check for unsupported constructs. Throw errors as appropriate
|
|
- Uniform regwidth, accesswidth, etc.
|
|
|
|
- Collect reset signals
|
|
cpuif_reset, field_reset
|
|
explicitly assigned to field->resetsignal
|
|
|
|
- Collect any other misc user signals that are referenced in the design
|
|
|
|
- Top-level interrupts
|
|
Collect X & Y:
|
|
X = set of all registers that have an interrupt field
|
|
Y = set of all interrupt registers that are referenced by a field
|
|
Top level interrupt registers are the set in X, but not in Y
|
|
(and probably other caveats. See notes)
|
|
|
|
2. Create intermediate template objects
|
|
|
|
3. Render top-level IO struct package (if applicable)
|
|
|
|
4. Render top-level module template
|