<@U016EM8L91B> I did end up changing the POR GPIO ...
# caravel
a
@User I did end up changing the POR GPIO defaults when testing Microwatt, but wondering if we'll have an opportunity to apply them on the shuttle, considering changes need to be made to the caravel repo: https://github.com/antonblanchard/caravel/commit/1ca4c9a5a8a3bfab4c5fec1c9928f5998b5ca0a4
โœ… 1
m
@User I heard that you could override the defaults. The
caravel/scripts/gen_gpio_defaults.py
will grab the settings from
user_defines.v
and use defaults if they don't exist.
Copy code
user_defines_path = vpath + '/rtl/user_defines.v'
  if not os.path.isfile(user_defines_path):
    user_defines_path = caravel_path + '/verilog/rtl/user_defines.v'
This works correctly for
caravan
but not for
gpio 34
of
caravel
. Both
caravel.mag
and
caravel.v
are updated (or the corresponding
caravan
files). See https://github.com/efabless/caravel/issues/45
t
@User: Since adding this extension to the caravel chip, it has not been widely advertised and I don't know of anybody else who has taken advantage of it, so please double-check with us after successful tape-out so that I can look at what ended up on the final design and make sure that this feature is working as advertised (it has been tested, but I have not had the opportunity before to see it working on an actual MPW run).
m
@User did you see this trhread
๐Ÿ‘ 1
a
@User I missed that you can override them in
verilog/rtl/user_defines.h
. Thank you! Testing now
@User Thanks, will let you know once I have something to look at
@User I'm not sure tape out will hit this issue (or if it will create the views for the missing defaults during the build). It is needed for gate level verification, but I have the patch applied locally. https://github.com/antonblanchard/caravel/commit/c1af777932f53d17a289162db9a2b6a43078d9d9
t
@User: It will create layouts for the missing defaults during build.
The point being that user modification of the caravel wrapper is prohibited, but there are cases where it is helpful if the user can make certain modifications. Because the user can't modify the wrapper, the method has to involve some configuration file in the user project space that can be picked up during the final chip top-level assembly and used to make some specific change outside of the user project area. This method of setting GPIO defaults is my first attempt to implement such a method. I would like to do something similar on the Caravan design to allow different pad types to be selected for the 11 analog pads.
a
@User The most recent tape out for Microwatt (
u4959_anton/design/microwatt_mpw5/jobs/tapeout/69bfd613-7058-4973-86b2-e74c49aadbe9/logs
) should have GPIO defaults set from https://github.com/antonblanchard/microwatt-mpw5/blob/main/verilog/rtl/user_defines.v
Tape out wasn't successful (the log summary I see says everything passed, Jeff is investigating), but I would presume we got far enough to output a GDS.
t
@User: Thanks. I'll coordinate with Jeff to pull a copy of the final top-level GDS and confirm that the GPIO defaults match your own
user_defines.v
file.
๐Ÿ‘ 1
a
Hi @User I was wondering if you had a chance to check that
user_defines.v
GPIO defaults are working
t
We are only at the point of starting to run final assembly on the designs, and are waiting on an update of the top-level routing of the caravel and caravan designs to mitigate a possibly timing issue at the top level.
๐Ÿ‘ 1