chipsalliance / chipsalliance/UHDM

variable_drivers_group and variable_loads_group reject my loads() and drivers() assignment.

Open
#1,102 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
C++
Stars
269
Forks
48
Avg merge
2h 22m
Merged PRs (30d)
16

Description

I am working on traversing the design and setting the loads() and drivers() for nets and variables.
Since this is not already currently supported (see issue #1101).

I keep getting messages of the form:
```
Internal Error: adding wrong object type (assignment) in a variable_loads_group group!
Internal Error: adding wrong object type (assignment) in a variable_drivers_group group!
```

Surelog represents variable assignments as UHDM::assignment which isn't listed in the list of possibilities

I am also having issues with other procedural statement like for_loop, if_statement, while_loop, etc
All of those statements have the ability to be a load or a driver for a variable.
I would prefer to report the statement itself as the load or driver instead of the different assignment/expressions that are created for those statements.

I also wonder why I see things like cont_assign and cont_assign_bit in [variable_loads_group.yaml](https://github.com/chipsalliance/UHDM/blob/master/model/variable_loads_group.yaml) and [variable_drivers_group.yaml](https://github.com/chipsalliance/UHDM/blob/master/model/variable_drivers_group.yaml). I understand they should be there for nets but I don't think they are appropriate for variables (please correct me if I am wrong). I think those 2 files need some updates.

As a side question, what do I need to do to rebuild the generated files if I modify the model? Running cmake --build . is not updating the generated folder with my changes.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with variable_loads_group.yaml and variable_drivers_group.yaml, then inspect the generated folder and the project’s model-generation or build instructions. Determine how assignment, for_loop, if_statement, and while_loop objects should be represented for variable loads and drivers, and verify that model changes regenerate the affected files.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
api, build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.