+
+ wire [3:0] chip_select = from_uart[3][7:4];
+ wire is_virtual = from_uart[3][3];
+ wire dont_propagate = is_virtual || ~| chip_select;
+ wire not_for_us = !chip_select[0];
+
+ wire [7:0] to_uart [3:0];
+ wire [3:0] next_chip_select = {0, chip_select[3:1]};
+ assign to_uart[0] = from_uart[0];
+ assign to_uart[1] = from_uart[1];
+ assign to_uart[2] = from_uart[2];
+ assign to_uart[3] = {next_chip_select, from_uart[3][3:0]};
+
+ /* to execute a ROUTE instruction, we send our neighbour a STOREI
+ /* instruction with the correct address and value. This is the
+ /* STOREI instruction. */
+ wire [7:0] route_storei [3:0];
+ assign route_storei[0] = mem_out[7:0];
+ assign route_storei[1] = mem_out[15:8];
+ assign route_storei[2] = from_uart[0];
+ assign route_storei[3] = 8'h1C; // chip_select = 1, is_virtual = 1, op = OP_STOREI