Hello Everyone, I have a question about the `user...
# caravel
m
Hello Everyone, I have a question about the
user_defines.v
and setting default GPIO pin configurations. I found [this](https://github.com/efabless/caravel/blob/main/docs/rst/gpio_configuration.rst) document, but could someone perhaps explain a little more the difference between the
xxx_USER_STD_xxx
settings and the
xxx_MGNT_STD_xxx
settings? Like, what does it mean that ‘The user project has access to the GPIO pin’ for the
USER_STD
setting? Thanks a lot!
m
Mgmt means the pin will be controlled by the management soc
User means it will be controlled by the user project
m
Hello @Matt Venn! Thanks for your reply. When you say, “controlled by the user project” what exactly does that mean? Are there pins that I need to drive or something?
m
By your project
m
I apologize for the dumb questions, I’m sure I’m just being dense in the head, so I am guessing that if I’m laying out a mostly analog project and wiring to the GPIO by hand I want to use
xxx_USER_STD_xxx
?
m
If it was digital then yes
For analog you also have analog pins
I'm not sure if there is a setting for that
m
I think there is a setting to turn off the buffers and essentially leave only a series resistor inline between the GPIO connection in the wrapper to the pad.
I think I’m still a little confused….when you say, “controlled” does that mean the signals driving those pads/pins are coming from my project (
USER_STD
) or the management soc (
MGNT
)? Or are you refering to what controls the GPIO setting?
Thank you for your help
m
If its mgmt then the riscv cpu will be in charge
If its user then your project will be in charge
Does that make sense?
This all work in simulation so that should help you understand it

https://youtu.be/pmgeKmqoxTs

Maybe that helps