-
Notifications
You must be signed in to change notification settings - Fork 197
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
Make both PLLs usable in theory #97
Comments
If CLKREF is useful as a PLL input, then there is another option on the existing hardware. You can use a In the latter case, this is similar to having a |
Would that take up both GBIN4 and GBIN5? |
AIUI this would occupy the padins at (16, 0, 1) and (17, 0, 0) which correspond to GBIN3 and GBIN6 |
Are you sure? I currently have clk_if constrained to ball K6, which is called IOB_82_GBIN4, which in nextpnr output corresponds to |
I was looking at a PLL with pad connected CLKREF which I think is at (16, 0, 1); which would indeed constrain the PLL to (16, 0, 3) |
Fixed in fe2ecfe. |
Right now on revC, CLKIF is connected to GBIN4 and CLKREF is connected to GBIN5. CLKIF can be either an (FPGA) input or an output; CLKREF is always an (FPGA) input.
On iCE40, a PLL is connected in such a way that it is always in an input path of an SB_IO tile. Moreover, it always uses a global buffer. So, the PLL placed at SB_IO of GBIN4 uses a) the G4 network for its PLLOUTGLOBAL output and b) the input path of the SB_IO pin.
Currently, we have two possible cases:
I have a proposal that allows two PLLs to be used. This would happen by:
L5
.K4
(currently ~ALERT) seems well suitable, and nothing is currently using FPGA alert anyway, none of that path is implemented.K4
.B10
would likely work, and result in no disruption.Then this case becomes possible:
SB_GB
global buffer. A DDR output pin at CLKIF outputs the clock.This would allow us a significant increase in flexibility at the cost of insignificant ball assignment change and having to route ~ALERT via an even more meandering path, which doesn't really make it much worse anyway.
@daveshah1 Can you please confirm my understanding of interaction of PLLs and input buffers here?
@marcan Can you take a look at routing and ballout, in case I'm missing something?
The text was updated successfully, but these errors were encountered: