diff --git a/tests/end2end/test_end2end_cnv_w1a1.py b/tests/end2end/test_end2end_cnv_w1a1.py
index b63e7465a61ee9f4da1e80803e8e546e36de7fc5..711742e98ab9da5d4748705e49732c269672de6c 100644
--- a/tests/end2end/test_end2end_cnv_w1a1.py
+++ b/tests/end2end/test_end2end_cnv_w1a1.py
@@ -28,18 +28,12 @@
 
 import os
 
-# import pkg_resources as pk
-
-# import pytest
-
 import numpy as np
 
 # as of Feb'20 there is a bug that segfaults ONNX shape inference if we
 # import pytorch before onnx, so we make sure to import onnx first
 import onnx  # NOQA
 
-# import onnx.numpy_helper as nph
-
 from finn.core.modelwrapper import ModelWrapper
 from finn.custom_op.registry import getCustomOp
 from finn.core.onnx_exec import execute_onnx
@@ -133,26 +127,52 @@ def test_end2end_cnv_w1a1_create_dataflow_partition():
 
 def test_end2end_cnv_w1a1_fold_and_tlastmarker():
     model = ModelWrapper(build_dir + "/end2end_cnv_w1a1_dataflow_model.onnx")
-    for node in model.graph.node:
-        if node.op_type == "StreamingFCLayer_Batch":
-            inst = getCustomOp(node)
-            inst.set_nodeattr("mem_mode", "const")
-            mw = inst.get_nodeattr("MW")
-            mh = inst.get_nodeattr("MH")
-            if mh % 8 == 0:
-                pe = mh // 8
-            elif mh % 4 == 0:
-                pe = mh // 4
-            else:
-                pe = mh
-            inst.set_nodeattr("PE", pe)
-            if mw % 32 == 0:
-                simd = mw // 32
-            elif mw % 16 == 0:
-                simd = mw // 16
-            else:
-                simd = mw
-            inst.set_nodeattr("SIMD", simd)
+    fc0 = model.graph.node[1]
+    fc1 = model.graph.node[3]
+    fc2 = model.graph.node[6]
+    fc3 = model.graph.node[8]
+    fc4 = model.graph.node[11]
+    fc5 = model.graph.node[13]
+    fc6 = model.graph.node[14]
+    fc7 = model.graph.node[15]
+    fc8 = model.graph.node[16]
+    fc0w = getCustomOp(fc0)
+    fc1w = getCustomOp(fc1)
+    fc2w = getCustomOp(fc2)
+    fc3w = getCustomOp(fc3)
+    fc4w = getCustomOp(fc4)
+    fc5w = getCustomOp(fc5)
+    fc6w = getCustomOp(fc6)
+    fc7w = getCustomOp(fc7)
+    fc8w = getCustomOp(fc8)
+
+    fc0w.set_nodeattr("SIMD", 27)
+    fc0w.set_nodeattr("PE", 8)
+
+    fc1w.set_nodeattr("SIMD", 32)
+    fc1w.set_nodeattr("PE", 8)
+
+    fc2w.set_nodeattr("SIMD", 32)
+    fc2w.set_nodeattr("PE", 16)
+
+    fc3w.set_nodeattr("SIMD", 32)
+    fc3w.set_nodeattr("PE", 16)
+
+    fc4w.set_nodeattr("SIMD", 32)
+    fc4w.set_nodeattr("PE", 32)
+
+    fc5w.set_nodeattr("SIMD", 32)
+    fc5w.set_nodeattr("PE", 32)
+
+    fc6w.set_nodeattr("SIMD", 8)
+    fc6w.set_nodeattr("PE", 64)
+
+    fc7w.set_nodeattr("SIMD", 16)
+    fc7w.set_nodeattr("PE", 64)
+
+    fc8w.set_nodeattr("SIMD", 16)
+    fc8w.set_nodeattr("PE", 10)
+
     model = model.transform(InsertDWC())
     model = model.transform(InsertTLastMarker())
     model.save(build_dir + "/end2end_cnv_w1a1_folded.onnx")
@@ -175,7 +195,6 @@ def test_end2end_cnv_w1a1_ip_stitch():
 
 def test_end2end_cnv_w1a1_verify_dataflow_part():
     model = ModelWrapper(build_dir + "/end2end_cnv_w1a1_ipstitch.onnx")
-    # model = ModelWrapper(build_dir + "/end2end_cnv_w1a1_ipgen_npysim.onnx")
     x = np.zeros((1, 32, 32, 3), dtype=np.float32)
     inp_name = model.graph.input[0].name
     out_name = model.graph.output[0].name
@@ -197,10 +216,10 @@ def test_end2end_cnv_w1a1_verify_dataflow_part():
     ret_rtlsim_nodebynode = execute_onnx(model, inp_dict, True)
     res_rtlsim_nodebynode = ret_rtlsim_nodebynode[out_name]
     # whole-network (ip-stitched) rtlsim
-    # model.set_metadata_prop("exec_mode", "rtlsim")
-    # model.set_metadata_prop("rtlsim_trace", "whole_trace.vcd")
-    # model.save(build_dir + "/end2end_cnv_w1a1_ipstitch_whole_rtlsim.onnx")
-    # ret_rtlsim_whole = execute_onnx(model, inp_dict, True)
-    # res_rtlsim_whole = ret_rtlsim_whole[out_name]
+    model.set_metadata_prop("exec_mode", "rtlsim")
+    model.set_metadata_prop("rtlsim_trace", "whole_trace.vcd")
+    model.save(build_dir + "/end2end_cnv_w1a1_ipstitch_whole_rtlsim.onnx")
+    ret_rtlsim_whole = execute_onnx(model, inp_dict, True)
+    res_rtlsim_whole = ret_rtlsim_whole[out_name]
     assert np.isclose(res_npysim, res_rtlsim_nodebynode).all()
-    # assert np.isclose(res_npysim, res_rtlsim_whole).all()
+    assert np.isclose(res_npysim, res_rtlsim_whole).all()