From ae7208d0ff6fe21fff9c079a7f0d842cb9082000 Mon Sep 17 00:00:00 2001
From: auphelia <jakobapk@web.de>
Date: Wed, 25 May 2022 14:53:10 +0100
Subject: [PATCH] [Transformation] Set information in signature node

---
 .../fpgadataflow/create_stitched_ip.py        | 22 ++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/finn/transformation/fpgadataflow/create_stitched_ip.py b/src/finn/transformation/fpgadataflow/create_stitched_ip.py
index 3644a46be..dfbe43fb6 100644
--- a/src/finn/transformation/fpgadataflow/create_stitched_ip.py
+++ b/src/finn/transformation/fpgadataflow/create_stitched_ip.py
@@ -85,7 +85,7 @@ class CreateStitchedIP(Transformation):
     The packaged block design IP can be found under the ip subdirectory.
     """
 
-    def __init__(self, fpgapart, clk_ns, ip_name="finn_design", vitis=False, signature=False):
+    def __init__(self, fpgapart, clk_ns, ip_name="finn_design", vitis=False, signature=[]):
         super().__init__()
         self.fpgapart = fpgapart
         self.clk_ns = clk_ns
@@ -232,6 +232,21 @@ class CreateStitchedIP(Transformation):
         self.create_cmds.append(
             "create_bd_cell -type ip -vlnv %s %s" % (signature_vlnv, signature_name)
         )
+        self.create_cmds.append(
+            "set_property -dict [list "
+            "CONFIG.SIG_CUSTOMER {%s} "
+            "CONFIG.SIG_APPLICATION {%s} "
+            "CONFIG.VERSION {%s} "
+            "CONFIG.CHECKSUM_COUNT {%s} "
+            "] [get_bd_cells %s]"
+            % (
+                self.signature[0],
+                self.signature[1],
+                self.signature[2],
+                self.signature[3],
+                signature_name,
+            )
+        )
         # set clk and reset
         self.connect_cmds.append(
             "connect_bd_net [get_bd_ports ap_clk] [get_bd_pins %s/ap_clk]"
@@ -248,6 +263,7 @@ class CreateStitchedIP(Transformation):
         self.connect_cmds.append(
             "set_property name s_axis_info [get_bd_intf_ports s_axi_0]"
         )
+        self.connect_cmds.append("assign_bd_address")
 
     def apply(self, model):
         # ensure non-relative readmemh .dat files
@@ -255,7 +271,7 @@ class CreateStitchedIP(Transformation):
         ip_dirs = ["list"]
         # add RTL streamer IP
         ip_dirs.append("$::env(FINN_ROOT)/finn-rtllib/memstream")
-        if self.signature == True:
+        if self.signature:
             ip_dirs.append("$::env(FINN_ROOT)/finn-rtllib/axi_info")
         if model.graph.node[0].op_type not in ["StreamingFIFO", "IODMA"]:
             warnings.warn(
@@ -314,7 +330,7 @@ class CreateStitchedIP(Transformation):
                 if node.output[i] == out_name:
                     self.connect_m_axis_external(node, idx=i)
 
-        if self.signature == True:
+        if self.signature:
             self.insert_signature()
 
 
-- 
GitLab