-
Notifications
You must be signed in to change notification settings - Fork 90
[gen] Introduce more wildcard syntax in diy
#1516
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
Conversation
|
It looks like PR has side effect on Commit Next, commit |
relokin
left a comment
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've gone through the 1st and the 2nd commits. Some comments thus far.
relokin
left a comment
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.
How is this [gen] Allow pseudo edges followed by internal communication edges. relevant to this PR?
More generally, some of the syntax additions only apply to diy7 and there has to be a way to exclude them from the implementation of diyone7.
I will remove that commit to a separate place. I think I use it in the vmsa. I will add a flag to only introduce wildcard edges, or syntax '*' for location and RW. |
Let me pend these two commits to another pull. It seems I need to fix the ifetch configuration file first. |
diy7.diy7.
diy7.diy
diydiy
Introduce wildcard for dependency addr, data, and ctrl. The wildcard symbal can be used for (1) same and different locations and (2) write and read events.
- Allow `diy7` accept `P` relaxation. - Remove a few duplication in building the look-up table for parsing edges.
|
Could you please add the wildcard syntax for communication edges to the PR description? ( |
I just double checked and updated the last commit, which introduces |
- Remove `assert false` in `code.ml`. - Introduce `is_diff_loc` - Change `seq_sd` return `option`.
fsestini
left a comment
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.
LGTM
This pull request introduce some new wildcard syntax so it matches better to the cat file. For better usage, all wildcard syntax now are only accepted in
diycross7anddiy7.For example, it is now allowed to use relaxation syntax like
[DpAddr Po**W]which will be unfolded to[DpAddrdW PodWW] [DpAddrdW PosWW] [DpAddrsW PodWW] [DpAddrsW PosWW] [DpAddrdR PodRW] [DpAddrdR PosRW] [DpAddrsR PodRW] [DpAddrsR PosRW]. This provides closer syntax to those used incatfile.The new wildcard syntax that automatically expanded as the following:
*for different and same location, this can be used inPo*WRorDMB.SY*W*for example.Amo->Amo.Swp, Amo.Cas, Amo.LdAdd, Amo.LdSub .....Pofor (1) all possible location, different or same, and (2) all possible read and write combinations.DpAddr,DpData,DpCtrl,DpAddrCsel,DpDataCsel,DpCtrlCsel, for all possible location and all possible second memory event. However,DpDataonly have write hence it only unfold toDpDatasWandDpDatadW.ISB***(1) all possible location, different or same, and (2) all possible read and write combinations. Note that here it MUST explicit write***asISBis already used for peudo-edge (i.e., no memory event edge)Cowill be unfolded toCoeandCoi, similar toFrandRf.We fix an inconsistent between the backward capability syntax of
DpandCtrl. Now they all havewildcardsyntax (while previously it only exists forCtrl).