Is there a way for the user project to use GPIO at...
# caravel
f
Is there a way for the user project to use GPIO at a clock rate faster than the PicoRV32 core is running at? I.E., tie a GPIO pin directly to a part of the user project, bypassing the logic analyzer
m
You could use the pll to have a higher speed clock, then your user design operates the gpio at that faster speed.
The gpio can be controlled by either the picorv33 or the user project
f
Okay, that's good. Thanks!! I need to learn more about how to use the toolchain (among other things), but I wanna try and see if I can get a chip on this process to output an HDMI signal, which... requires quite a high clock speed on a few differential-pair IO lines
m
I made a video about gpio
f
Oh, sick, where can I find it?
m

https://youtu.be/pmgeKmqoxTs

And you could check @Konrad Beckmann 's DVI controller for fast io video inspiration
t
@FRANK DUGGAN: Be aware that the GPIO pads have a specified maximum limit of around 60MHz. By contrast, the PicoRV32 core will run at about twice that fast when running on the digital locked loop clock. Otherwise yes, the general use case is to connect the user project to the outside world through the GPIO. You can set up "dual use" inputs to the user project by multiplexing between the GPIO and the logic analyzer based on the logic analyzer's output enable signal. That allows the logic analyzer to generate input to the user project on demand. It's also possible just to have the processor configure the GPIO so that the processor can drive the user project directly through the GPIO. There is a testbench demonstrating this in the caravel_user_project repository under
verilog/dv/mprj_stimulus
.
@FRANK DUGGAN: High speed differential drivers are up at the top of my "wish list" for Sky130. But there are no high-speed GPIO cells. You either need to develop the differential drivers or find someone who has. The proper harness chip for this is
caravan
, which replaces the GPIO along the top with a row of straight-through (analog) connections, perfect for attaching an experimental high speed driver circuit.
f
I didn't realize there was more than one harness chip being worked on. Will Caravan-based designs be eligible for future shuttles?
t
Yes. Caravan and caravel are essentially the same chip, just with the top row of GPIO replaced with the simple pads.
f
That's cool!! I'll have to take a look at Caravan, then. It'll require a fair bit of reading for me to get up-to-speed, but I might try and take a crack at a differential pair driver if I can find time between classes and whatnot.
🙌 1
t
Differential drivers are easy in concept, and hard to get just right. However, it's not too hard to get something that works even if it isn't quite in spec.
f
Maybe it wouldn't be a bad idea to try out multiple variations on one run, since there's a somewhat decent number of analog pads available to play with.