-
Notifications
You must be signed in to change notification settings - Fork 69
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
Extract Capacitor Arrary Generation to Earlier in the Flow #661
Comments
I corrected the error message in the initial description.
|
Here is the verilog for the switched capacitor filter. Which of the
|
The constraints look like this. We are only specifying constraints on two of the instances.
|
cap_cc is generated here https://github.com/ALIGN-analoglayout/ALIGN-public/blob/master/align/pnr/toplevel.py#L187. |
Adding @soneryaldiz @parijatm @arvuce22. @854768750 Yes, I think I see that is how the flow is working now. What do we want it to do? |
Multiple different aspect ratios of a particular primitive use the same master name, but use different "gdsfile". The mapping is in switched_capacitor_filter.map |
What should this look like in the map file. It is only a list of pairs. Can we have
Is that how we do the one-to-many mapping? |
Yes. It could be like this. After the map file is changed to this format, please @854768750 in any pull request so that I can make some modifications to the code. |
I also find that in the constraints, there are c1_c3 and c6_c3. So c3 is in two groups. However, c1_c3 seems not being enabled. c3 is grouped with c6. |
The constraints look wrong right now. There should be only one grouping of c3. I will fix this. |
Now, c3 is part of only one group in the constraint and there is a symmetry constraint between c1_c3 and c7_c6, implying both blocks have should have the same master (ideally they should be mirror images). @stevenmburns @854768750 The PnR error still exists. |
@kkunal1408 @parijatm Thanks for fixing this. It seems that we want We could also just make all the template names unique and force the checker to ensure our particular sameness constraints are satisfied. Or maybe get rid of the concept of template name (maybe replace it with function_name, or abstract_name or class_name) because unique names do not provide a lot of value. We do need to specify which variants will be allowed to implement a particular instance. Hierarchy also needs to be considered. We really want two instances of a hierarchical block to have the same internal instance layouts. The "make all the template names unique" approach above should still enforce this. Here are the capacitor instances from the fixed switch_capacitor_filter
|
First two addressed in #671 We will work on the last one in a new PR. |
@stevenmburns will help with system level integration once the capacitor generator is implemented in Python. |
@kkunal1408 @parijatm @soneryaldiz @Lastdayends This issue it to track progress on moving the capacitor array generation from the pnr phase to the primitive phase.
Here are some things to do:
switched_capacitor_filter
through the flow now with-n 10
. The first two error messages show where capacitor templates are instantiated more than once. The remaining error messages shows that we are not following the folding model (each instantiation of a particular template has the same bounding box/layout.)We could do some simple things first like make sure that we have different template names when we want to allow different layouts.
The text was updated successfully, but these errors were encountered: