MLBEDSW-6098: Order check in cascade builder

Added checks in the cascade builder to ensure that scheduled operations
are in the correct order.

Change-Id: Ic1765a6a1cb8335ff222bfe3b2d2e642980967d7
Signed-off-by: Louis Verhaard <louis.verhaard@arm.com>
diff --git a/ethosu/vela/cascade_builder.py b/ethosu/vela/cascade_builder.py
index 0b50eaa..4c3f75b 100644
--- a/ethosu/vela/cascade_builder.py
+++ b/ethosu/vela/cascade_builder.py
@@ -180,6 +180,11 @@
                     # Current op has already been processed or cannot be cascaded
                     break
 
+                if producer.index + 1 != current_op.index:
+                    # Cascading is possible, but requires reordering of operations in the schedule,
+                    # this is currently not supported
+                    break
+
                 # Get the size of the FeatureMap buffers between current and neighbouring Ops
                 op_full_ifm = current_op.ifm_size_in_bytes()
                 op_full_ofm = current_op.ofm_size_in_bytes()
@@ -235,6 +240,7 @@
                 buffers_in_cascade = {}
                 prev_op = None
                 for cascaded_op in ops_in_best_cascade:
+                    assert cascade_start <= cascaded_op.index <= cascade_end
                     cost[cascaded_op] = ref_cost[cascaded_op]
                     cost[cascaded_op].cascade = cascade_end
                     if prev_op: