diff --git a/Makefile b/Makefile
index acb7f42..2aa25df 100644
--- a/Makefile
+++ b/Makefile
@@ -168,14 +168,18 @@
 	@$(IN_ENV) cd database/$(1); python3 ../../utils/sort_db.py
 	@if [ -e database/Info.md ]; then $(IN_ENV) ./utils/info_md.py --keep; fi
 
-.PHONY: db-prepare-$(1) db-$(1) db-check-$(1) db-format-$(1) db-extras-$(1) db-extras-$(1)-parts db-extra-$(1)-roi db-extras-$(1)-harness
+db-extras-$(1)-links:
+	@source settings/$(1).sh && $(IN_ENV) ./utils/create_db_links.py
 
-db-extras-$(1): db-extras-$(1)-parts db-extras-$(1)-roi db-extras-$(1)-harness
+.PHONY: db-prepare-$(1) db-$(1) db-check-$(1) db-format-$(1) db-extras-$(1) db-extras-$(1)-parts db-extra-$(1)-roi db-extras-$(1)-harness db-extras-$(1)-links
+
+db-extras-$(1): db-extras-$(1)-parts db-extras-$(1)-roi db-extras-$(1)-harness db-extras-$(1)-links
 
 db-$(1)-all: db-$(1) db-extras-$(1)-parts
 	# Build harnesses after database is complete
 	$$(MAKE) db-extras-$(1)-roi
 	$$(MAKE) db-extras-$(1)-harness
+	$$(MAKE) db-extras-$(1)-links
 
 db-check: db-check-$(1)
 db-format: db-format-$(1)
diff --git a/utils/create_db_links.py b/utils/create_db_links.py
new file mode 100755
index 0000000..993b0c0
--- /dev/null
+++ b/utils/create_db_links.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2022  The SymbiFlow Authors.
+#
+# Use of this source code is governed by a ISC-style
+# license that can be found in the LICENSE file or at
+# https://opensource.org/licenses/ISC
+#
+# SPDX-License-Identifier: ISC
+import argparse
+import os
+from prjxray import util
+
+
+def main():
+    """Script for creating symlinks to device files within the db directory
+    in case a device has an identical fabric.
+
+    """
+    parser = argparse.ArgumentParser(
+        description="Creates symlinks for devices with identical fabric.")
+
+    util.db_root_arg(parser)
+    args = parser.parse_args()
+
+    # Create links for all devices listed in the devices.yaml mapping file
+    devices = util.get_devices(args.db_root)
+    for device in devices:
+        dst = os.path.join(args.db_root, device)
+        if os.path.exists(dst):
+            continue
+        fabric = devices[device]['fabric']
+        src = os.path.join(args.db_root, fabric)
+        assert os.path.exists(src), "Fabric db files don't exist"
+        os.symlink(src, dst)
+
+
+if __name__ == '__main__':
+    main()
