when bsc checks for duplicate wires (chkDupWires in ACheck) in the examples below, it fails with an ICE because (it claims) the RDY port name will appear twice — but the method is declared to be always_ready, so there shouldn't be a RDY port at all, and indeed if one of the method names is changed no RDY wires appear in the port declaration in the RTL.
acheck:chkDupWires
fromList [RDY_qux[IdPReady]]
Internal Bluespec Compiler Error:
Please report this failure to the BSC developers [...]
interestingly, this doesn't seem to happen with the EN method in the first example, and the arg_names property appears to be respected — the value of all_names in chkDupWires is this:
when bsc checks for duplicate wires (
chkDupWires
inACheck
) in the examples below, it fails with an ICE because (it claims) theRDY
port name will appear twice — but the method is declared to bealways_ready
, so there shouldn't be aRDY
port at all, and indeed if one of the method names is changed noRDY
wires appear in the port declaration in the RTL.example w/ an action method:
output:
example w/ a value method:
output:
interestingly, this doesn't seem to happen with the
EN
method in the first example, and thearg_names
property appears to be respected — the value ofall_names
inchkDupWires
is this: