samarth jain
08/14/2023, 9:58 AMMitch Bailey
08/14/2023, 11:28 AMcaravel_user_project/verilog/rtl/user_project_wrapper.v
// IOs
input [`MPRJ_IO_PADS-1:0] io_in,
output [`MPRJ_IO_PADS-1:0] io_out,
output [`MPRJ_IO_PADS-1:0] io_oeb,
// Analog (direct connection to GPIO pad---use with caution)
// Note that analog I/O is not available on the 7 lowest-numbered
// GPIO pads, and so the analog_io indexing is offset from the
// GPIO indexing by 7 (also upper 2 GPIOs do not have analog_io).
inout [`MPRJ_IO_PADS-10:0] analog_io,
So analog_io[28:0]
are available. These go to the same gpio cells as io_in[35:7]
samarth jain
08/14/2023, 3:35 PMsamarth jain
08/14/2023, 3:35 PMsamarth jain
08/14/2023, 3:36 PMMitch Bailey
08/14/2023, 4:02 PMcaravel_user_project
or caravel_user_project_analog
depends on whether you need bare pads or not. caravel_user_project_analog
has 11 pads that have no esd or other connections, so you can use any voltage. It also has 27 normal gpio pads, 18 of which you can use as analog i/o with or without esd resistors.
caravel_user_project
has 38 gpio pads, 29 of which you can use as analog i/o with esd resistors.
gpio analog signals should be between 0 and 3.3V. If you need anything outside that range, use caravel_user_project_analog
. Also use caravel_user_project_analog
if you need power supplies other than 0.0V, 1.8V, or 3.3V.samarth jain
08/15/2023, 1:32 AMMitch Bailey
08/15/2023, 2:05 AMuser_project_wrapper
pins analog_io[28:0]
will connect to the corresponding gpio cells for the digital io_out[35:7]
cells. For any cells used for analog I/O, I recommend you set the corresponding digital io_oeb[*]
signal to high, although this might not be necessary depending on your verilog/rtl/user_defines.v
settings.
The LA in, out and en signals are completely different. They are connections to the logic analyzer in caravel’s risc-V processor.