in the example user project in verilog/rtl/user_pr...
# caravel
m
in the example user project in verilog/rtl/user_proj_example.v. we have
Copy code
assign io_out = count;
    assign io_oeb = {(`MPRJ_IO_PADS-1){rst}};
rst seems to be active high (from the counter example) in the same file. So that means io_oeb is active low (ie io_oeb = 0 means output enable). Looking at the rest of the logic (and some other carvel forks), that oeb seems to be active high (ie io_oeb = 1 mean output enable). Am I right in thinking the user example is wrong with it's use of io_oeb? should be
Copy code
assign io_oeb = not {(`MPRJ_IO_PADS-1){rst}};
t
Line 105 of user_proj_example.v assigns
rst
to be controlled from either
la_data_in[65]
or
wb_rst_i
, depending on the state of
la_oen[65]
. So I think that the intention is that
io_oeb
is purposely held high until the program driving the SoC configures it otherwise.