When I was first testing my designs inside Caravel, I was quite confused about all the GPIO options.
- Each pin has a range of options that can be configured by firmware running on the RISCV processor.
- Each pin can be driven from the processor or your custom design.
- The outputs have separate output enable lines for bi-directional signalling.
I put together an experiment where I tried the most important options and checked the results in a simulation. You can watch the video here: