diff --git a/util/tlgen/generate.py b/util/tlgen/generate.py
new file mode 100644
index 0000000..80f7e91
--- /dev/null
+++ b/util/tlgen/generate.py
@@ -0,0 +1,27 @@
+# Copyright lowRISC contributors.
+# Licensed under the Apache License, Version 2.0, see LICENSE for details.
+# SPDX-License-Identifier: Apache-2.0
+
+from mako.template import Template
+from pkg_resources import resource_filename
+
+from .item import NodeType
+from .xbar import Xbar
+
+
+def generate(xbar):  #xbar: Xbar -> str
+    """generate uses elaborated model then creates top level Xbar module
+    with prefix.
+    """
+
+    xbar_rtl_tpl = Template(
+        filename=resource_filename('tlgen', 'xbar.rtl.tpl.sv'))
+    xbar_pkg_tpl = Template(
+        filename=resource_filename('tlgen', 'xbar.pkg.tpl.sv'))
+    xbar_dv_tpl = Template(
+        filename=resource_filename('tlgen', 'xbar.dv.tpl.sv'))
+
+    out_rtl = xbar_rtl_tpl.render(xbar=xbar, ntype=NodeType)
+    out_pkg = xbar_pkg_tpl.render(xbar=xbar)
+    out_dv = xbar_dv_tpl.render(xbar=xbar, ntype=NodeType)
+    return (out_rtl, out_pkg, out_dv)
