Fixed simulation model for sh_dff, added missing techmap for _SHREG_DFF_P_

Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
diff --git a/ql-qlf-plugin/qlf_k6n10f/cells_sim.v b/ql-qlf-plugin/qlf_k6n10f/cells_sim.v
index ded97d4..5da2aae 100644
--- a/ql-qlf-plugin/qlf_k6n10f/cells_sim.v
+++ b/ql-qlf-plugin/qlf_k6n10f/cells_sim.v
@@ -23,11 +23,11 @@
     (* clkbuf_sink *)
     input wire C
 );
-    parameter [0:0] INIT = 1'b0;
-    initial Q = INIT;
 
+    initial Q <= 1'b0;
     always @(posedge C)
-            Q <= D;
+        Q <= D;
+
 endmodule
 
 (* abc9_box, lib_blackbox *)
diff --git a/ql-qlf-plugin/qlf_k6n10f/ffs_map.v b/ql-qlf-plugin/qlf_k6n10f/ffs_map.v
index fe665fa..c510457 100644
--- a/ql-qlf-plugin/qlf_k6n10f/ffs_map.v
+++ b/ql-qlf-plugin/qlf_k6n10f/ffs_map.v
@@ -105,3 +105,44 @@
     latchnsre _TECHMAP_REPLACE_ (.D(D), .Q(Q), .E(1'b1), .G(E),  .R(!R), .S(!S));
 endmodule
 
+module \$__SHREG_DFF_P_ (D, Q, C);
+    input  D;
+    input  C;
+    output Q;
+
+    parameter DEPTH = 2;
+
+    reg [DEPTH-2:0] q;
+
+    genvar i;
+    generate for (i = 0; i < DEPTH; i = i + 1) begin: slice
+
+        // First in chain
+        generate if (i == 0) begin
+                 sh_dff #() shreg_beg (
+                    .Q(q[i]),
+                    .D(D),
+                    .C(C)
+                );
+        end endgenerate
+        // Middle in chain
+        generate if (i > 0 && i != DEPTH-1) begin
+                 sh_dff #() shreg_mid (
+                    .Q(q[i]),
+                    .D(q[i-1]),
+                    .C(C)
+                );
+        end endgenerate
+        // Last in chain
+        generate if (i == DEPTH-1) begin
+                 sh_dff #() shreg_end (
+                    .Q(Q),
+                    .D(q[i-1]),
+                    .C(C)
+                );
+        end endgenerate
+   end: slice
+   endgenerate
+
+endmodule
+