@Override public Value visitGENERAL(Verilog2001Parser.GENERALContext ctx) { String ident = ctx.getText(); ParsePort port = hash_ports.get(ident); ParseRegWire regWire = hash_vars.get(ident); if (regWire != null) { // System.out.println("General Ident:"+ident+" val:"+regWire.getValue(old_val_idx)); return new Value(regWire.getValue(old_val_idx), 30); } else if (port != null) { return new Value(port.getValue(old_val_idx), 30); } System.out.println("Error: No item called: " + ident); return null; }
/* Greatest to least as in lightsensors[7] = char 0 ... */ public void update_vector_inputs(String rst, String light_sensors, String level_sensors) { ParsePort update_port; /* rst */ hash_ports.get("rst").setValue(old_val_idx, getBitValFromString(rst, 0), cycle_time); update_port = hash_ports.get("sensor_light"); for (int i = 7; i >= 0; i--) { update_port.setBitValue( old_val_idx, i, getBitValFromString(light_sensors, 7 - i), cycle_time); } update_port = hash_ports.get("general_sensors"); for (int i = 29; i >= 0; i--) { update_port.setBitValue( old_val_idx, i, getBitValFromString(level_sensors, 29 - i), cycle_time); } }
@Override public Value visitBIT_ACCESS(Verilog2001Parser.BIT_ACCESSContext ctx) { String ident = ctx.identifier().getText(); ParsePort port = hash_ports.get(ident); ParseRegWire regWire = hash_vars.get(ident); Value number = visit(ctx.constant_expression()); if (regWire != null) { int value_of_bit = regWire.getIntegerBit(number.asInt(), old_val_idx); // System.out.println("RegWire bit:"+ident+" loc: "+number.asInt()+" val:"+value_of_bit); return new Value(value_of_bit, 1); } else if (port != null) { int value_of_bit = port.getIntegerBit(number.asInt(), old_val_idx); // System.out.println("Port bit:"+ident+" loc: "+number.asInt()+" val:"+value_of_bit); return new Value(value_of_bit, 1); } System.out.println("Error: No item called: " + ident); return visitChildren(ctx); }
public ArrayList<Integer> update_vector_ouputs() { ParsePort out_port; out_port = hash_ports.get("outN"); output_vector_list.set(0, out_port.getValue(new_val_idx)); out_port = hash_ports.get("outS"); output_vector_list.set(1, out_port.getValue(new_val_idx)); out_port = hash_ports.get("outE"); output_vector_list.set(2, out_port.getValue(new_val_idx)); out_port = hash_ports.get("outW"); output_vector_list.set(3, out_port.getValue(new_val_idx)); out_port = hash_ports.get("debug_port"); output_vector_list.set(4, out_port.getValue(new_val_idx)); output_vector_list.set(5, clock_cycle); return output_vector_list; }