-
Notifications
You must be signed in to change notification settings - Fork 13
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
WIP: Automated pack patterns #101
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Maciej Kurc <[email protected]>
Signed-off-by: Maciej Kurc <[email protected]>
Signed-off-by: Maciej Kurc <[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]>
Signed-off-by: Alessandro Comodi <[email protected]>
Could you explain this a little more? |
@@ -18,14 +18,12 @@ module CBLOCK ( | |||
COUT | |||
); | |||
input wire [3:0] I; | |||
(* carry="C" *) |
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.
Why is the (* carry *)
removed here?
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.
As far as I understood, carry was used to generate a pack pattern itself. I am not sure why this needed to be handled in a special case, but with the new code, the pack pattern should be automatically detected.
@@ -1,80 +1,74 @@ | |||
<?xml version='1.0' encoding='utf-8'?> | |||
<pb_type xmlns:xi="http://www.w3.org/2001/XInclude" name="CARRY" num_pb="1"> | |||
<pb_type xmlns:xi="http://www.w3.org/2001/XInclude" num_pb="1" name="CARRY"> |
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.
Why is the order changing here? I think these use to be alphabetically sorted?
@@ -0,0 +1,25 @@ | |||
Forking net annotation |
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 would probably call this some "internal and top"?
@mithro Sure. In v2x the pb_type/model generation is an iterative step, where the hierarchy must be generated from leaf pb_types to the top-level ones. For instance, if a top-level pb_type is to be generated, all its children needs to be already generated in a previous step, and those will be added as In the above example, there is a three level hierarchy
At the moment of generation of the |
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 have one concern about modifying already generated XMLs. What if such XML is included by more than one pb_type? Say you have a single FF model used in two places in the arch (eg. different modes). For such a case different pack-pattern names may be required. So effectively the included XML would need to be duplicated.
We should not be modifying already generated XML. |
@mithro I think that we would need to duplicate the XML then, as @mkurc-ant suggested. And change the reference in the |
This is what the https://github.com/SymbiFlow/vtr-xml-utils/blob/master/vtr_xml_utils/resources/pack-patterns.xsl and https://github.com/SymbiFlow/vtr-xml-utils/blob/master/vtr_xml_utils/resources/convert-prefix-port.xsl are suppose to achieve?
|
This PR addresses #89, and builds on top of #75.
It tries to add automation in the pack patterns generation without requiring the
(* pack *)
attribute added to the wire for which tha pack_pattern needs to be generated.The implementation takes care also of the propagation of the pack pattern only to the first level of children pb_types, modifying the already generated XML to add the pack pattern.
TODO: