diff --git a/README.md b/README.md index 49700434..e7e05e5f 100644 --- a/README.md +++ b/README.md @@ -92,14 +92,6 @@ To specify a particular technology use "-t " such as "-t scn3me_subm". The default for a unit test is freepdk45 whereas the default for openram.py is specified in the configuration file. -A regression daemon script that can be used with cron is included in -a separate repository at https://github.com/mguthaus/openram-daemons -``` - regress_daemon.py - regress_daemon.sh -``` -This updates a git repository, checks out code, and sends an email -report with status information. # CREATING CUSTOM TECHNOLOGIES diff --git a/compiler/gdsMill/gdsMill/vlsiLayout.py b/compiler/gdsMill/gdsMill/vlsiLayout.py index dd001948..b9813149 100644 --- a/compiler/gdsMill/gdsMill/vlsiLayout.py +++ b/compiler/gdsMill/gdsMill/vlsiLayout.py @@ -163,7 +163,7 @@ class VlsiLayout: angle = 0 else: # MRG: Added negative to make CCW rotate 8/29/18 - angle = math.radians(-1.0*float(rotateAngle)) + angle = math.radians(float(rotateAngle)) mRotate = matrix([[math.cos(angle),-math.sin(angle),0.0], [math.sin(angle),math.cos(angle),0.0], [0.0,0.0,1.0]]) @@ -314,6 +314,8 @@ class VlsiLayout: layoutToAddSref.coordinates = offsetInLayoutUnits if mirror or rotate: + + layoutToAddSref.transFlags = [0,0,0] # This is NOT the same as the order in the GDS spec! # It gets written out in gds2writer in the right order though. # transFlags = (mirror around x-axis, rotation, magnification) @@ -325,8 +327,6 @@ class VlsiLayout: rotate = 180.0 if mirror=="R270": rotate = 270.0 - - layoutToAddSref.transFlags = [0,0,0] if rotate: #layoutToAddSref.transFlags = [0,1,0] layoutToAddSref.rotateAngle = rotate @@ -337,7 +337,7 @@ class VlsiLayout: layoutToAddSref.transFlags = [1,0,0] layoutToAddSref.rotateAngle = 180.0 if mirror == "xy" or mirror == "XY": #NOTE: "XY" option will override specified rotate angle - layoutToAddSref.transFlags = [0,1,0] + #layoutToAddSref.transFlags = [0,1,0] layoutToAddSref.transFlags = [0,0,0] layoutToAddSref.rotateAngle = 180.0 @@ -405,10 +405,10 @@ class VlsiLayout: if(len(text)%2 == 1): text = text + '\x00' textToAdd.textString = text - textToAdd.transFlags[1] = 1 + textToAdd.transFlags = [0,0,1] textToAdd.magFactor = magnification if rotate: - textToAdd.transFlags[2] = 1 + textToAdd.transFlags = [0,1,1] textToAdd.rotateAngle = rotate #add the sref to the root structure self.structures[self.rootStructureName].texts.append(textToAdd) diff --git a/compiler/modules/delay_chain.py b/compiler/modules/delay_chain.py index ff9878fb..b8a57f15 100644 --- a/compiler/modules/delay_chain.py +++ b/compiler/modules/delay_chain.py @@ -186,7 +186,7 @@ class delay_chain(design.design): continue for pin_name in ["vdd", "gnd"]: pin = load.get_pin(pin_name) - self.add_power_pin(pin_name, pin.rc(),rotate=0) + self.add_power_pin(pin_name, pin.rc()) else: # We have an even number of rows, so need to get the last gnd rail inv = self.driver_inst_list[-1] @@ -195,7 +195,7 @@ class delay_chain(design.design): continue pin_name = "gnd" pin = load.get_pin(pin_name) - self.add_power_pin(pin_name, pin.rc(),rotate=0) + self.add_power_pin(pin_name, pin.rc()) # input is A pin of first inverter diff --git a/compiler/verify/magic.py b/compiler/verify/magic.py index 7fbbcb0a..a07785d3 100644 --- a/compiler/verify/magic.py +++ b/compiler/verify/magic.py @@ -16,6 +16,7 @@ and include its appropriate license. import os import re import time +import shutil import debug from globals import OPTS import subprocess @@ -34,10 +35,6 @@ def write_magic_script(cell_name, gds_name, extract=False): f = open(run_file, "w") f.write("#!/bin/sh\n") f.write("{} -dnull -noconsole << EOF\n".format(OPTS.drc_exe[1])) - f.write("path sys +{}tech\n".format(OPTS.openram_tech)) - f.write("tech load SCN3ME_SUBM.30\n") - #gf.write("scalegrid 1 8\n") - #f.write("gds rescale no\n") f.write("gds polygon subcell true\n") f.write("gds warning default\n") f.write("gds read {}\n".format(gds_name)) @@ -119,6 +116,10 @@ def run_drc(cell_name, gds_name, extract=False): global num_drc_runs num_drc_runs += 1 + # Copy .magicrc file into temp dir + shutil.copy(OPTS.openram_tech + "/mag_lib/.magicrc", + OPTS.openram_temp) + write_magic_script(cell_name, gds_name, extract) # run drc diff --git a/technology/scn3me_subm/mag_lib/.magicrc b/technology/scn3me_subm/mag_lib/.magicrc new file mode 100644 index 00000000..d6068ec3 --- /dev/null +++ b/technology/scn3me_subm/mag_lib/.magicrc @@ -0,0 +1,2 @@ +path sys +$::env(OPENRAM_TECH)/scn3me_subm/tech +tech load SCN3ME_SUBM.30