Error: “(vlog-2110) Illegal reference to net”

empty and full are declared as output, which means their implied type is wire. You can only drive wires with a continuous assign:

assign empty = some_value;

If you want to assign these signals from an always block, you should explicitly declare them as logic (or reg if you’re using Verilog):

output logic empty, full;

Leave a Comment