htamas
03/21/2022, 4:22 PMTim Edwards
03/21/2022, 4:28 PMuser_defines.v
from the caravel verilog/rtl/
directory to your user project verilog/rtl/
directory and edit it as needed for your project.htamas
03/21/2022, 4:38 PM_MGMT_
versions? Are they available in their respective directions without the mgmt core but changeable via the mgmt core after boot, or are they plain inaccessible without the mgmt core?Tim Edwards
03/21/2022, 5:03 PM_MGMT_
settings, then only the management can control the GPIO output. The way it is set up, both management and user areas can read GPIO input.htamas
03/21/2022, 8:36 PMverilog/rtl/gpio_control_block.v
helped clear it up a bit. I still don't fully get how output works in the default configuration. If I don't touch user_defines.v
, pins are set up as GPIO_MODE_MGMT_STD_INPUT_NOPULL
. This sets gpio_dm=3'b001
, gpio_inenb=0
, gpio_outenb=1
and mgmt_ena=1
. Therefore pad_gpio_outenb=mgmt_gpio_oeb
and pad_gpio_out=mgmt_gpio_out
. So if the user project sets user_gpio_oeb=0
, the management area has to somehow forward data from user_gpio_out
to mgmt_gpio_out
. How and where does this forwarding happen?Tim Edwards
03/22/2022, 12:37 PMmgmt_ena
bit is set to 1
, then nothing that the user project does has any effect. user_gpio_oeb
and user_gpio_out
are ignored.htamas
03/22/2022, 1:22 PMmgmt_ena
is not a permanent setting. I was worried that projects not overriding user_defines.v
(which is 99% of projects) would have their io_out
and io_oeb
ignored. Now I can sleep better. 🙂Tim Edwards
03/22/2022, 1:24 PMuser_defines.v
is to have a user project power up into the right state while bypassing the management SoC completely---such as if you wanted to demonstrate the user project on a tiny board without the overhead of additional parts like the SPI flash chip.htamas
03/22/2022, 1:33 PMhtamas
03/22/2022, 1:34 PM