What is the recommendation for how big buffers sho...
# caravel
d
What is the recommendation for how big buffers should be to drive out a ~30-50MHz clock out of Caravel
gpio_analog[]
pads? Is
sky130_fd_sc_hd__clkbuf_8
strong enough to drive whichever capacitance is in the pad, or should I use more than that?
a
You will need to use like 400 of them. Most likely you want to drive io_out and io_oeb instead.
But io out can only output 33MHz according to datasheet
d
how much cap should I assume on one of those gpio_analog[] pads? A few pF ?
a
at least 2pf + 150 ohms
1
+ your input device which is at least 3pf
+ you will probably need proper esd protectio in case openlanes uses it as signal.
So: dont do it
😂 1
d
my circuit is a VCO running at around 3GHz, followed by a few divide-by-2 which divide the frequency down by 128 or 256 to get around ~30MHz and ~15MHz respectively. The idea is that on the bench I want to measure the ~30MHz frequency and multiply it by 128, and roughly that should give an indication that the VCO is running at ~3.2GHz or something like that.
so I guess I should drive into io_out[] pads then...
in that case, if I put my 30MHz signal into a
sky130_fd_sc_hd__clkbuf_2
driving into a
sky130_fd_sc_hd__clkbuf_4
driving into a
sky130_fd_sc_hd__clkbuf_8
and then into a
sky130_fd_sc_hd__clkbuf_16
, and then driving that into io_out[] pin should that be strong enough to drive io_out[]
a
Depends. It might or might not be able to. If wire is long, then no. If wire is short, then answer is still "depends"
I never driven io_out on caravel, other people might know. Keep in mind the Flip flop in sky130 hd library cant run @ 3.2GHz
d
yes I mean I want to drive out the ~30MHz out (3.2GHz divided by 128) but I won't attempt to drive out the 3.2GHz.
a
So how you divide the output if not a flip flop?
d
oh I see your point regarding the flip flop. I have designed a custom divider to take in the 3.2GHz straight from VCO, that divider can run above 3.5GHz in my post layout sims. Then after that I keep dividing down and I keep lowering the frequency with more dividers. Until I get down to divide-by-128 and 256
a
Oh okay, custom divider is great. Try to use biggest buffer you can and directly connect it to pad as close as possible. It should be able to drive io_out. Keep in mind without setting io_oeb low, it will not be active
🎉 1
d
which is the ~30MHz or ~15MHz that I want to drive out of Caravel pad. Then on the bench I will try to see those ~30MHz and multiply by 128 to guess how many GHz my VCO is running at internally
I'm thinking I should probably split the 1.8V supplies for the VCO and the dividers+buffers, like use vccd1 for VCO and vccd2 for dividers+buffers. So I can measure current consumption separately.
t
@User: If the output is for verification only, you should know that I've been able to measure the frequency of a 100MHz signal on the digital I/O passed through the standard digital output. It's not full swing, definitely (!), but it can still be measured. I have an HP 5385A frequency counter which was able to pick up the signal with no problem. And I could read it from an oscilloscope; it just comes out as a low amplitude triangle wave.
🙌 1