lakeroad
lakeroad copied to clipboard
List of bugs + problems discovered in simulation models
- Lattice ALU54B model has an
always
block that is missing a signal in its sensitivity list. This was found when updating things to usealways_comb
. See https://github.com/uwsampl/lakeroad-private/blob/ac9fdc6877873c74a7323f7de7ce13b09e3f3e01/lattice_ecp5/modified_ALU54B.v#L1951. I think this is a copy-paste bug; if you look at the corresponding code in ALU54A.v, the correspondingalways
block has the same sensitivity list, which is correct in the case of ALU54A because the missing signal isn't actually present in that module at all. So I suspect that code was copied from ALU54A and not updated. - ALU54A has a combinational loop, r_out depends on c_mux which depends on r_out_lsb_gen which depends on r_out.
- Across all models, but esp. in ALU54A/B, lots of latches are being inferred. I'm unsure whether this is actually a problem with the models (because these aren't meant to be synthesized), but it's a problem for our usecase.
- Should ALU54A have a
OPCODEOP1_1_CE
input?