diff --git a/util/topgen/lib.py b/util/topgen/lib.py
index b33d31f..6ee4fc7 100644
--- a/util/topgen/lib.py
+++ b/util/topgen/lib.py
@@ -117,15 +117,16 @@
     return result
 
 
-def add_prefix_to_signal(signal, prefix):
-    """Add prefix to module signal format { name: "sig_name", width: NN }
+def add_module_prefix_to_signal(signal, module):
+    """Add module prefix to module signal format { name: "sig_name", width: NN }
     """
     result = deepcopy(signal)
 
     if "name" not in signal:
         raise SystemExit("signal {} doesn't have name field".format(signal))
 
-    result["name"] = prefix + "_" + signal["name"]
+    result["name"] = module + "_" + signal["name"]
+    result["module_name"] = module
 
     return result
 
diff --git a/util/topgen/merge.py b/util/topgen/merge.py
index 5c1babc..2543b5d 100644
--- a/util/topgen/merge.py
+++ b/util/topgen/merge.py
@@ -458,7 +458,7 @@
 
         log.info("Adding interrupts from module %s" % ip[0]["name"])
         top["interrupt"] += list(
-            map(partial(add_prefix_to_signal, prefix=m.lower()),
+            map(partial(add_module_prefix_to_signal, module=m.lower()),
                 ip[0]["interrupt_list"]))
 
 
@@ -480,7 +480,7 @@
 
         log.info("Adding alert from module %s" % ip[0]["name"])
         top["alert"] += list(
-            map(partial(add_prefix_to_signal, prefix=m.lower()),
+            map(partial(add_module_prefix_to_signal, module=m.lower()),
                 ip[0]["alert_list"]))
 
 
@@ -513,7 +513,7 @@
 
         # convert signal with module name
         signals = list(
-            map(partial(add_prefix_to_signal, prefix=mname), signals))
+            map(partial(add_module_prefix_to_signal, module=mname), signals))
         # Parse how many pads are assigned
         if not "pad" in e:
             raise SystemExit("Should catch pad field in validate.py!")
@@ -577,22 +577,22 @@
                 filter(
                     lambda x: x["name"] not in dio_names,
                     map(
-                        partial(add_prefix_to_signal,
-                                prefix=m["name"].lower()),
+                        partial(add_module_prefix_to_signal,
+                                module=m["name"].lower()),
                         m["available_input_list"])))
             pinmux["outputs"] += list(
                 filter(
                     lambda x: x["name"] not in dio_names,
                     map(
-                        partial(add_prefix_to_signal,
-                                prefix=m["name"].lower()),
+                        partial(add_module_prefix_to_signal,
+                                module=m["name"].lower()),
                         m["available_output_list"])))
             pinmux["inouts"] += list(
                 filter(
                     lambda x: x["name"] not in dio_names,
                     map(
-                        partial(add_prefix_to_signal,
-                                prefix=m["name"].lower()),
+                        partial(add_module_prefix_to_signal,
+                                module=m["name"].lower()),
                         m["available_inout_list"])))
 
         elif len(tokens) == 2:
