-
Notifications
You must be signed in to change notification settings - Fork 415
Process XML tile tags #941
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
eadd223
to
b0f7717
Compare
@kmurray FYI.
I will try to provide more detailed information on this segfault, but for now do you have any suggestion on what could possibly be the cause? |
@kmurray The only issue right now is to let CI change the architectures at run-time to enable the |
03c9d1f
to
8f1b870
Compare
00c84c7
to
d13c885
Compare
For now I have added the |
with 08a013c I have detached the To do so I have also moved the |
f20265d
to
7d1c9c2
Compare
7d1c9c2
to
159877c
Compare
That is correct, the convention we've followed is to manually run Given that you've put the call to
|
@kmurray All right, so I will proceed by adding to this PR also the architecture changes and back-out the CI changes after the first step is complete. The Moreover, I guess that the documentation should change accordingly. I may update it as well. |
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.
Overall this looks really good.
One thing I didn't see (perhaps I just missed it), is whether we check that the port types/names/pin-counts of the <tile>
ports match those of the associated top-level <pb_type>
. If we don't we should probably check that and error out if things are inconsistent, since that is the assumption we are making at the moment. (In the future that restriction may be lifted, but we should enforce it for now).
Also, since this touches the user-specified architecture file format it is important to update the architecture format documentation.
I've also included a couple of small comments below.
<interconnect ... /> | ||
</pb_type> | ||
</complexblocklist> | ||
|
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.
Excellent comment!
auto result = check_equivalence.insert(std::pair<t_physical_tile_type*, t_logical_block_type*>(&physical_tile, &logical_block)); | ||
if (!result.second) { | ||
archfpga_throw(__FILE__, __LINE__, | ||
"Logical and Physical types do not have a one to one mapping\n"); |
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.
Good to see this check here!
07de461
to
1795ac6
Compare
@kmurray Thanks for the review :) I have solved the minor issues and also added a check to ensure that the ports do exactly match between pb_types and tiles (c112067). I have also run |
I will now proceed with adding a description of the changes in the documentation to address the new |
1795ac6
to
c112067
Compare
@acomodi That all looks good, only one last thing: check_port_equivalence() should also check that the pin equivalence setting is the same between the tile and pb_type ports (in addition to the port type and number of pins which are already checked). With that this should be good to merge! |
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Detached the physical tile pinlocations from the pb_graph information. Now all the `custom` pinlocations pattern is built from the information present in the physical tile types only. Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
- changed t_physical_port -> t_physical_tile_port - added strict port checks Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
8df4e15
to
012116e
Compare
Sure, just updated the port check with the pin equivalence |
Thanks @acomodi. I think the next step is for you to start looking at supporting multiple sites per tile (as previously discussed). |
Description
This PR is a follow up of #934. This changes allow to introduce in the XML architecture definitions the
tile
tags, which are relative to the newly introducedt_physical_tile_type
. The reason to do so is to separate definitively the logical block types and the physical tile types.As the current XML architectures are in a wrong format (as they do not contain the
tiles
tag), a new method has been added toupgrade_arch.py
to easily upgrade the architectures following the format proposed in this PR.Related Issue
This is a followup of #934 and is related also to this comment.
Motivation and Context
With the
t_logical_block_type
being separated from thet_physical_tile_type
brings up the necessity of having also a different way of populating the two data structures. Therefore, with this PR, a new kind of top-level tag is added to the architecture definition, alongside with all the necessary changes to correctly parse the XML.How Has This Been Tested?
Basic and Strong reg tests.
Types of changes
Checklist: