Conversation
7647f03 to
7b415ce
Compare
|
chipflow_lib/platforms/utils.py
Outdated
|
|
||
| @property | ||
| @abc.abstractmethod | ||
| def heartbeat(self) -> Dict(int, Pin): |
There was a problem hiding this comment.
The clock in some cases comes as two pins close to each other to be connected to XTAL.
There was a problem hiding this comment.
hmm, good point. Is that a config option to generate a oscillator?
There was a problem hiding this comment.
There was a problem hiding this comment.
Currently we have nothing to specify use of XTAL, this needs to be added somehow.
There was a problem hiding this comment.
The clock in some cases comes as two pins close to each other to be connected to XTAL.
If you have external crystal you will need a crystal oscillator analog block on the chip. The actual clock will then be an output of this oscillator.
There was a problem hiding this comment.
What also can happen is that clock is delivered as differential signal; but this can also be for digital signals. Likely only to add when use case is there.
|
I've updated this PR to implement a complete interface for package pins as discussed. Key enhancements:
All tests are passing. Ready for review! |
|
4146e57 to
e14af0c
Compare
gatecat
left a comment
There was a problem hiding this comment.
Haven't looked through the tests yet, but these are my comments so far
chipflow_lib/platforms/utils.py
Outdated
| core_jtag: JTAGPins | ||
|
|
||
| def to_set(self) -> Set[Pin]: | ||
| return {p for pp in self.core_power for p in asdict(pp).values()} | \ |
There was a problem hiding this comment.
what is the asdict doing here?
chipflow_lib/platforms/utils.py
Outdated
| ret = [] | ||
| for q in range(0,3): | ||
| ret.append(sorted(quadrants[q])) | ||
| return ret |
There was a problem hiding this comment.
it's worth noting that this won't give pins in bonding pad order which might be relevant in some cases - this can only be determined on a pattern-by-package (or by custom design in the case of a substrate or RDL for a WLCSP package).
An example for the PGA144 we used for the previous tapeout is the table on page 3 of https://europractice-ic.com/wp-content/uploads/2019/06/CD_PGA144.pdf but this is always going to differ
7d71c83 to
5fc63cf
Compare
3ec99b5 to
203e0d6
Compare
2ceb202 to
d63aa26
Compare
…efinition Also enables grid array and quad format packages
|
Has some WIP for better pin allocation. This should become shell and padring aware |
|
This is massively outdated, but keeping it around as there were some good ideas that need extracting |
Package Pin Interface
This PR implements a structured interface for determining package pins in ChipFlow.
Key Changes
Added abstract methods to define standard pin types in package definitions:
Implemented these methods in both package types:
Enhanced the Package class to:
Added comprehensive tests in test_package_pins.py
Created documentation in docs/package_pins.md
Backward Compatibility
The implementation maintains backward compatibility with the existing TOML configuration format while introducing a new, more flexible format.
Ready for Review
All tests are passing, and the implementation is ready for review.