diff --git a/scripts/python-skywater-pdk/skywater_pdk/liberty.py b/scripts/python-skywater-pdk/skywater_pdk/liberty.py
index 7fb314f..6cbda80 100755
--- a/scripts/python-skywater-pdk/skywater_pdk/liberty.py
+++ b/scripts/python-skywater-pdk/skywater_pdk/liberty.py
@@ -151,19 +151,30 @@
     return fname
 
 
-def top_corner_file(libname, corner, corner_type: TimingType):
+def top_corner_file(libname, corner, corner_type: TimingType, directory_prefix = "timing"):
     """
 
     >>> top_corner_file("sky130_fd_sc_hd", "ff_100C_1v65", TimingType.ccsnoise)
     'timing/sky130_fd_sc_hd__ff_100C_1v65_ccsnoise.lib.json'
     >>> top_corner_file("sky130_fd_sc_hd", "ff_100C_1v65", TimingType.basic)
     'timing/sky130_fd_sc_hd__ff_100C_1v65.lib.json'
+    >>> top_corner_file("sky130_fd_sc_hd", "ff_100C_1v65", TimingType.basic, "")
+    'sky130_fd_sc_hd__ff_100C_1v65.lib.json'
 
     """
     assert corner_type.singular, (libname, corner, corner_type, corner_type.types())
-    return "timing/{libname}__{corner}{corner_type}.lib.json".format(
-        libname=libname,
-        corner=corner, corner_type=corner_type.file)
+
+    if directory_prefix:
+      return "{prefix}/{libname}__{corner}{corner_type}.lib.json".format(
+          libname=libname,
+          corner=corner,
+          corner_type=corner_type.file,
+          prefix = directory_prefix)
+
+    return "{libname}__{corner}{corner_type}.lib.json".format(
+          libname=libname,
+          corner=corner,
+          corner_type=corner_type.file)
 
 
 def collect(library_dir) -> Tuple[Dict[str, TimingType], List[str]]:
@@ -307,9 +318,11 @@
 remove_ccsnoise_from_library = remove_ccsnoise_from_dict
 
 
-def generate(library_dir, lib, corner, ocorner_type, icorner_type, cells):
-    top_fname = top_corner_file(lib, corner, ocorner_type).replace('.lib.json', '.lib')
-    top_fpath = os.path.join(library_dir, top_fname)
+def generate(library_dir, lib, corner, ocorner_type, icorner_type, cells, output_directory):
+    output_directory_prefix = None if output_directory else "timing"
+    top_fname = top_corner_file(lib, corner, ocorner_type, output_directory_prefix).replace('.lib.json', '.lib')
+    output_directory = output_directory if output_directory else library_dir
+    top_fpath = os.path.join(output_directory, top_fname)
 
     top_fout = open(top_fpath, "w")
     def top_write(lines):
@@ -1090,6 +1103,11 @@
             help="Include verbose debug output on the console.",
             action='store_true',
             default=False)
+    parser.add_argument(
+            "-o",
+            "--output_directory",
+            help="Sets the parent directory of the liberty files",
+            default="")
 
     args = parser.parse_args()
     if args.debug:
@@ -1146,7 +1164,7 @@
         generate(
             libdir, lib,
             corner, output_corner_type, input_corner_type,
-            corner_cells,
+            corner_cells, args.output_directory
         )
     return 0
 
