mirror of https://github.com/VLSIDA/OpenRAM.git
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into multiport
This commit is contained in:
commit
bfc855b8b1
|
|
@ -602,6 +602,7 @@ class layout(lef.lef):
|
|||
"""
|
||||
Connect a mapping of pin -> name for a bus. This could be
|
||||
replaced with a channel router in the future.
|
||||
NOTE: This has only really been tested with point-to-point connections (not multiple pins on a net).
|
||||
"""
|
||||
(horizontal_layer, via_layer, vertical_layer)=layer_stack
|
||||
if horizontal:
|
||||
|
|
@ -711,16 +712,18 @@ class layout(lef.lef):
|
|||
self.add_wire(layer_stack, [pin.center(), mid, trunk_mid])
|
||||
|
||||
|
||||
def create_channel_route(self, route_map, top_pins, bottom_pins, offset,
|
||||
def create_channel_route(self, netlist, pins, offset,
|
||||
layer_stack=("metal1", "via1", "metal2"), pitch=None,
|
||||
vertical=False):
|
||||
"""
|
||||
This is a simple channel route for one-to-one connections that
|
||||
will jog the top route whenever there is a conflict. It does NOT
|
||||
try to minimize the number of tracks -- instead, it picks an order to avoid the vertical
|
||||
conflicts between pins.
|
||||
"""
|
||||
The net list is a list of the nets. Each net is a list of pin
|
||||
names to be connected. Pins is a dictionary of the pin names
|
||||
to the pin structures. Offset is the lower-left of where the
|
||||
routing channel will start. This does NOT try to minimize the
|
||||
number of tracks -- instead, it picks an order to avoid the
|
||||
vertical conflicts between pins.
|
||||
|
||||
"""
|
||||
def remove_net_from_graph(pin, g):
|
||||
# Remove the pin from the keys
|
||||
g.pop(pin,None)
|
||||
|
|
@ -732,11 +735,32 @@ class layout(lef.lef):
|
|||
g[other_pin]=conflicts
|
||||
return g
|
||||
|
||||
def vcg_pins_overlap(pins1, pins2, vertical):
|
||||
# Check all the pin pairs on two nets and return a pin
|
||||
# overlap if any pin overlaps vertically
|
||||
for pin1 in pins1:
|
||||
for pin2 in pins2:
|
||||
if vcg_pin_overlap(pin1, pin2, vertical):
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def vcg_pin_overlap(pin1, pin2, vertical):
|
||||
# Check for vertical overlap of the two pins
|
||||
|
||||
# Pin 1 must be in the "TOP" set
|
||||
x_overlap = pin1.by() > pin2.by() and abs(pin1.center().x-pin2.center().x)<pitch
|
||||
|
||||
# Pin 1 must be in the "LET" set
|
||||
y_overlap = pin1.lx() < pin2.lx() and abs(pin1.center().y-pin2.center().y)<pitch
|
||||
|
||||
return (not vertical and x_overlap) or (vertical and y_overlap)
|
||||
|
||||
|
||||
|
||||
if not pitch:
|
||||
pitch = self.m2_pitch
|
||||
|
||||
# merge the two dictionaries to easily access all pins
|
||||
all_pins = {**top_pins, **bottom_pins}
|
||||
|
||||
# FIXME: Must extend this to a horizontal conflict graph too if we want to minimize the
|
||||
# number of tracks!
|
||||
|
|
@ -744,81 +768,90 @@ class layout(lef.lef):
|
|||
|
||||
# Initialize the vertical conflict graph (vcg) and make a list of all pins
|
||||
vcg = {}
|
||||
|
||||
|
||||
# Create names for the nets for the graphs
|
||||
nets = {}
|
||||
index = 0
|
||||
#print(netlist)
|
||||
for pin_list in netlist:
|
||||
net_name = "n{}".format(index)
|
||||
index += 1
|
||||
nets[net_name] = []
|
||||
for pin_name in pin_list:
|
||||
pin = pins[pin_name]
|
||||
nets[net_name].append(pin)
|
||||
|
||||
# Find the vertical pin conflicts
|
||||
# FIXME: O(n^2) but who cares for now
|
||||
for top_name,top_pin in top_pins.items():
|
||||
vcg[top_name]=[]
|
||||
for bot_name,bot_pin in bottom_pins.items():
|
||||
# Remember, vertical is the boolean of the routes in the channel
|
||||
# so check the intervals of the pins in the other dimension
|
||||
x_overlap = abs(top_pin.center().x-bot_pin.center().x)<pitch
|
||||
y_overlap = abs(top_pin.center().y-bot_pin.center().y)<pitch
|
||||
|
||||
if (vertical and y_overlap) or (not vertical and x_overlap):
|
||||
for net_name1 in nets:
|
||||
vcg[net_name1]=[]
|
||||
for net_name2 in nets:
|
||||
# Skip yourself
|
||||
if net_name1 == net_name2:
|
||||
continue
|
||||
if vcg_pins_overlap(nets[net_name1], nets[net_name2], vertical):
|
||||
try:
|
||||
vcg[bot_name].append(top_name)
|
||||
vcg[net_name2].append(net_name1)
|
||||
except:
|
||||
vcg[bot_name] = [top_name]
|
||||
vcg[net_name2] = [net_name1]
|
||||
|
||||
#FIXME: What if we have a cycle?
|
||||
|
||||
# This is the starting offset of the first trunk
|
||||
if vertical:
|
||||
half_minwidth = 0.5*drc["minwidth_{}".format(layer_stack[2])]
|
||||
offset = offset + vector(half_minwidth,0)
|
||||
else:
|
||||
half_minwidth = 0.5*drc["minwidth_{}".format(layer_stack[0])]
|
||||
offset = offset + vector(0,half_minwidth)
|
||||
# The starting offset is the first trunk at the top or left
|
||||
# so we must offset from the lower left of the channel placement
|
||||
# in the case of vertical tracks
|
||||
if not vertical:
|
||||
# This will start from top down
|
||||
offset = offset + vector(0,len(nets)*pitch)
|
||||
|
||||
# list of routes to do
|
||||
while vcg:
|
||||
#print(vcg)
|
||||
#from pprint import pformat
|
||||
#print("VCG:\n",pformat(vcg))
|
||||
# get a route from conflict graph with empty fanout set
|
||||
route_pin=None
|
||||
for route_pin,conflicts in vcg.items():
|
||||
net_name=None
|
||||
for net_name,conflicts in vcg.items():
|
||||
if len(conflicts)==0:
|
||||
vcg=remove_net_from_graph(route_pin,vcg)
|
||||
vcg=remove_net_from_graph(net_name,vcg)
|
||||
break
|
||||
else:
|
||||
# FIXME: We don't support cyclic VCGs right now.
|
||||
debug.error("Cyclic VCG in channel router.",-1)
|
||||
|
||||
# Get the connected pins from the routing map
|
||||
for pin_connections in route_map:
|
||||
if route_pin in pin_connections:
|
||||
break
|
||||
#print("Routing:",route_pin,pin_connections)
|
||||
|
||||
# Remove the other pins from the conflict graph too
|
||||
for other_pin in pin_connections:
|
||||
vcg=remove_net_from_graph(other_pin, vcg)
|
||||
|
||||
# Create a list of the pins rather than a list of the names
|
||||
pin_list = [all_pins[pin_name] for pin_name in pin_connections]
|
||||
|
||||
# Add the trunk route and move up to next track
|
||||
# These are the pins we'll have to connect
|
||||
pin_list = nets[net_name]
|
||||
#print("Routing:",net_name,[x.name for x in pin_list])
|
||||
|
||||
# Remove the net from other constriants in the VCG
|
||||
vcg=remove_net_from_graph(net_name, vcg)
|
||||
|
||||
# Add the trunk routes from the bottom up or right to left
|
||||
if vertical:
|
||||
self.add_vertical_trunk_route(pin_list, offset, layer_stack, pitch)
|
||||
offset += vector(pitch,0)
|
||||
offset -= vector(pitch,0)
|
||||
else:
|
||||
self.add_horizontal_trunk_route(pin_list, offset, layer_stack, pitch)
|
||||
offset += vector(0,pitch)
|
||||
offset -= vector(0,pitch)
|
||||
|
||||
|
||||
def create_vertical_channel_route(self, route_map, left_inst, right_inst, offset,
|
||||
def create_vertical_channel_route(self, netlist, pins, offset,
|
||||
layer_stack=("metal1", "via1", "metal2"),
|
||||
pitch=None):
|
||||
"""
|
||||
Wrapper to create a vertical channel route
|
||||
"""
|
||||
self.create_channel_route(route_map, left_inst, right_inst, offset,
|
||||
layer_stack, pitch, vertical=True)
|
||||
self.create_channel_route(netlist, pins, offset, layer_stack,
|
||||
pitch, vertical=True)
|
||||
|
||||
def create_horizontal_channel_route(self, route_map, top_pins, bottom_pins, offset,
|
||||
layer_stack=("metal1", "via1", "metal2"),
|
||||
pitch=None):
|
||||
def create_horizontal_channel_route(self, netlist, pins, offset,
|
||||
layer_stack=("metal1", "via1", "metal2"),
|
||||
pitch=None):
|
||||
"""
|
||||
Wrapper to create a horizontal channel route
|
||||
"""
|
||||
self.create_channel_route(route_map, top_pins, bottom_pins, offset,
|
||||
self.create_channel_route(netlist, pins, offset,
|
||||
layer_stack, pitch, vertical=False)
|
||||
|
||||
def add_enclosure(self, insts, layer="nwell"):
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -12,18 +12,43 @@ class lib:
|
|||
""" lib file generation."""
|
||||
|
||||
def __init__(self, out_dir, sram, sp_file, use_model=OPTS.analytical_delay):
|
||||
#Temporary Workaround to here to set num of ports. Crashes if set in config file.
|
||||
#OPTS.num_rw_ports = 2
|
||||
#OPTS.num_r_ports = 1
|
||||
#OPTS.num_w_ports = 1
|
||||
|
||||
self.out_dir = out_dir
|
||||
self.sram = sram
|
||||
self.sp_file = sp_file
|
||||
self.use_model = use_model
|
||||
|
||||
self.gen_port_names() #copy and paste from delay.py, names are not final will likely be changed later.
|
||||
|
||||
self.prepare_tables()
|
||||
|
||||
self.create_corners()
|
||||
|
||||
self.characterize_corners()
|
||||
|
||||
|
||||
def gen_port_names(self):
|
||||
"""Generates the port names to be written to the lib file"""
|
||||
#This is basically a copy and paste of whats in delay.py as well. Something more efficient should be done here.
|
||||
self.write_ports = []
|
||||
self.read_ports = []
|
||||
self.total_port_num = OPTS.num_rw_ports + OPTS.num_w_ports + OPTS.num_r_ports
|
||||
|
||||
#save a member variable to avoid accessing global. readwrite ports have different control signals.
|
||||
self.readwrite_port_num = OPTS.num_rw_ports
|
||||
|
||||
#Generate the port names. readwrite ports are required to be added first for this to work.
|
||||
for readwrite_port_num in range(OPTS.num_rw_ports):
|
||||
self.read_ports.append(readwrite_port_num)
|
||||
self.write_ports.append(readwrite_port_num)
|
||||
#This placement is intentional. It makes indexing input data easier. See self.data_values
|
||||
for read_port_num in range(OPTS.num_rw_ports, OPTS.num_r_ports):
|
||||
self.read_ports.append(read_port_num)
|
||||
for write_port_num in range(OPTS.num_rw_ports+OPTS.num_r_ports, OPTS.num_w_ports):
|
||||
self.write_ports.append(write_port_num)
|
||||
|
||||
def prepare_tables(self):
|
||||
""" Determine the load/slews if they aren't specified in the config file. """
|
||||
# These are the parameters to determine the table sizes
|
||||
|
|
@ -85,13 +110,14 @@ class lib:
|
|||
|
||||
self.write_header()
|
||||
|
||||
self.write_data_bus()
|
||||
|
||||
self.write_addr_bus()
|
||||
|
||||
self.write_control_pins()
|
||||
|
||||
self.write_clk()
|
||||
#Loop over all readwrite ports. This is debugging. Will change later.
|
||||
for port in range(self.total_port_num):
|
||||
#set the read and write port as inputs.
|
||||
self.write_data_bus(port)
|
||||
self.write_addr_bus(port)
|
||||
self.write_control_pins(port) #need to split this into sram and port control signals
|
||||
|
||||
self.write_clk_timing_power()
|
||||
|
||||
self.write_footer()
|
||||
|
||||
|
|
@ -127,9 +153,14 @@ class lib:
|
|||
self.lib.write(" dont_touch : true;\n")
|
||||
self.lib.write(" area : {};\n\n".format(self.sram.width * self.sram.height))
|
||||
|
||||
#Build string of all control signals. This is subject to change once control signals finalized.
|
||||
control_str = 'CSb0' #assume at least 1 port
|
||||
for i in range(1, self.total_port_num):
|
||||
control_str += ' & CSb{0}'.format(i)
|
||||
|
||||
# Leakage is included in dynamic when macro is enabled
|
||||
self.lib.write(" leakage_power () {\n")
|
||||
self.lib.write(" when : \"CSb\";\n")
|
||||
self.lib.write(" when : \"{0}\";\n".format(control_str))
|
||||
self.lib.write(" value : {};\n".format(self.char_results["leakage_power"]))
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" cell_leakage_power : {};\n".format(0))
|
||||
|
|
@ -295,65 +326,72 @@ class lib:
|
|||
self.lib.write(" }\n")
|
||||
self.lib.write(" }\n")
|
||||
|
||||
|
||||
|
||||
def write_data_bus(self):
|
||||
def write_data_bus_output(self, read_port):
|
||||
""" Adds data bus timing results."""
|
||||
|
||||
self.lib.write(" bus(DIN){\n")
|
||||
self.lib.write(" bus(DOUT{0}){{\n".format(read_port))
|
||||
self.lib.write(" bus_type : DATA; \n")
|
||||
self.lib.write(" direction : in; \n")
|
||||
# This is conservative, but limit to range that we characterized.
|
||||
self.lib.write(" max_capacitance : {0}; \n".format(max(self.loads)))
|
||||
self.lib.write(" min_capacitance : {0}; \n".format(min(self.loads)))
|
||||
self.lib.write(" memory_write(){ \n")
|
||||
self.lib.write(" address : ADDR; \n")
|
||||
self.lib.write(" clocked_on : clk; \n")
|
||||
self.lib.write(" }\n")
|
||||
|
||||
self.lib.write(" bus(DOUT){\n")
|
||||
self.lib.write(" bus_type : DATA; \n")
|
||||
self.lib.write(" direction : out; \n")
|
||||
self.lib.write(" direction : output; \n")
|
||||
# This is conservative, but limit to range that we characterized.
|
||||
self.lib.write(" max_capacitance : {0}; \n".format(max(self.loads)))
|
||||
self.lib.write(" min_capacitance : {0}; \n".format(min(self.loads)))
|
||||
self.lib.write(" memory_read(){ \n")
|
||||
self.lib.write(" address : ADDR; \n")
|
||||
self.lib.write(" address : ADDR{0}; \n".format(read_port))
|
||||
self.lib.write(" }\n")
|
||||
|
||||
|
||||
self.lib.write(" pin(DOUT[{0}:0]){{\n".format(self.sram.word_size - 1))
|
||||
self.lib.write(" pin(DOUT{1}[{0}:0]){{\n".format(self.sram.word_size - 1, read_port))
|
||||
self.write_FF_setuphold()
|
||||
self.lib.write(" timing(){ \n")
|
||||
self.lib.write(" timing_sense : non_unate; \n")
|
||||
self.lib.write(" related_pin : \"clk\"; \n")
|
||||
self.lib.write(" timing_type : rising_edge; \n")
|
||||
self.lib.write(" cell_rise(CELL_TABLE) {\n")
|
||||
self.write_values(self.char_results["delay_lh"],len(self.loads)," ")
|
||||
self.write_values(self.char_results["delay_lh{0}".format(read_port)],len(self.loads)," ")
|
||||
self.lib.write(" }\n") # rise delay
|
||||
self.lib.write(" cell_fall(CELL_TABLE) {\n")
|
||||
self.write_values(self.char_results["delay_hl"],len(self.loads)," ")
|
||||
self.write_values(self.char_results["delay_hl{0}".format(read_port)],len(self.loads)," ")
|
||||
self.lib.write(" }\n") # fall delay
|
||||
self.lib.write(" rise_transition(CELL_TABLE) {\n")
|
||||
self.write_values(self.char_results["slew_lh"],len(self.loads)," ")
|
||||
self.write_values(self.char_results["slew_lh{0}".format(read_port)],len(self.loads)," ")
|
||||
self.lib.write(" }\n") # rise trans
|
||||
self.lib.write(" fall_transition(CELL_TABLE) {\n")
|
||||
self.write_values(self.char_results["slew_hl"],len(self.loads)," ")
|
||||
self.write_values(self.char_results["slew_hl{0}".format(read_port)],len(self.loads)," ")
|
||||
self.lib.write(" }\n") # fall trans
|
||||
self.lib.write(" }\n") # timing
|
||||
self.lib.write(" }\n") # pin
|
||||
self.lib.write(" }\n\n") # bus
|
||||
|
||||
def write_data_bus_input(self, write_port):
|
||||
""" Adds data bus timing results."""
|
||||
|
||||
def write_addr_bus(self):
|
||||
self.lib.write(" bus(DIN{0}){{\n".format(write_port))
|
||||
self.lib.write(" bus_type : DATA; \n")
|
||||
self.lib.write(" direction : input; \n")
|
||||
# This is conservative, but limit to range that we characterized.
|
||||
self.lib.write(" capacitance : {0}; \n".format(tech.spice["dff_in_cap"]))
|
||||
self.lib.write(" memory_write(){ \n")
|
||||
self.lib.write(" address : ADDR{0}; \n".format(write_port))
|
||||
self.lib.write(" clocked_on : clk; \n")
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" }\n")
|
||||
|
||||
def write_data_bus(self, port):
|
||||
""" Adds data bus timing results."""
|
||||
if port in self.write_ports:
|
||||
self.write_data_bus_input(port)
|
||||
if port in self.read_ports:
|
||||
self.write_data_bus_output(port)
|
||||
|
||||
def write_addr_bus(self, port):
|
||||
""" Adds addr bus timing results."""
|
||||
|
||||
self.lib.write(" bus(ADDR){\n")
|
||||
|
||||
self.lib.write(" bus(ADDR{0}){{\n".format(port))
|
||||
self.lib.write(" bus_type : ADDR; \n")
|
||||
self.lib.write(" direction : input; \n")
|
||||
self.lib.write(" capacitance : {0}; \n".format(tech.spice["dff_in_cap"]))
|
||||
self.lib.write(" max_transition : {0};\n".format(self.slews[-1]))
|
||||
self.lib.write(" pin(ADDR[{0}:0])".format(self.sram.addr_size - 1))
|
||||
self.lib.write(" pin(ADDR{1}[{0}:0])".format(self.sram.addr_size - 1, port))
|
||||
self.lib.write("{\n")
|
||||
|
||||
self.write_FF_setuphold()
|
||||
|
|
@ -361,10 +399,13 @@ class lib:
|
|||
self.lib.write(" }\n\n")
|
||||
|
||||
|
||||
def write_control_pins(self):
|
||||
def write_control_pins(self, port):
|
||||
""" Adds control pins timing results."""
|
||||
|
||||
ctrl_pin_names = ["CSb", "OEb", "WEb"]
|
||||
#The control pins are still to be determined. This is a placeholder for what could be.
|
||||
ctrl_pin_names = ["CSb{0}".format(port)]
|
||||
if port in self.write_ports and port in self.read_ports:
|
||||
ctrl_pin_names.append("WEb{0}".format(port))
|
||||
|
||||
for i in ctrl_pin_names:
|
||||
self.lib.write(" pin({0})".format(i))
|
||||
self.lib.write("{\n")
|
||||
|
|
@ -373,8 +414,7 @@ class lib:
|
|||
self.write_FF_setuphold()
|
||||
self.lib.write(" }\n\n")
|
||||
|
||||
|
||||
def write_clk(self):
|
||||
def write_clk_timing_power(self):
|
||||
""" Adds clk pin timing results."""
|
||||
|
||||
self.lib.write(" pin(clk){\n")
|
||||
|
|
@ -383,41 +423,10 @@ class lib:
|
|||
# FIXME: This depends on the clock buffer size in the control logic
|
||||
self.lib.write(" capacitance : {0}; \n".format(tech.spice["dff_in_cap"]))
|
||||
|
||||
# Find the average power of 1 and 0 bits for writes and reads over all loads/slews
|
||||
# Could make it a table, but this is fine for now.
|
||||
avg_write_power = np.mean(self.char_results["write1_power"] + self.char_results["write0_power"])
|
||||
avg_read_power = np.mean(self.char_results["read1_power"] + self.char_results["read0_power"])
|
||||
|
||||
# Equally divide read/write power between first and second half of clock period
|
||||
self.lib.write(" internal_power(){\n")
|
||||
self.lib.write(" when : \"!CSb & clk & !WEb\"; \n")
|
||||
self.lib.write(" rise_power(scalar){\n")
|
||||
self.lib.write(" values(\"{0}\");\n".format(avg_write_power/2.0))
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" fall_power(scalar){\n")
|
||||
self.lib.write(" values(\"{0}\");\n".format(avg_write_power/2.0))
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" }\n")
|
||||
|
||||
self.lib.write(" internal_power(){\n")
|
||||
self.lib.write(" when : \"!CSb & !clk & WEb\"; \n")
|
||||
self.lib.write(" rise_power(scalar){\n")
|
||||
self.lib.write(" values(\"{0}\");\n".format(avg_read_power/2.0))
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" fall_power(scalar){\n")
|
||||
self.lib.write(" values(\"{0}\");\n".format(avg_read_power/2.0))
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" }\n")
|
||||
# Have 0 internal power when disabled, this will be represented as leakage power.
|
||||
self.lib.write(" internal_power(){\n")
|
||||
self.lib.write(" when : \"CSb\"; \n")
|
||||
self.lib.write(" rise_power(scalar){\n")
|
||||
self.lib.write(" values(\"0\");\n")
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" fall_power(scalar){\n")
|
||||
self.lib.write(" values(\"0\");\n")
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" }\n")
|
||||
#Add power values for the ports. lib generated with this is not syntactically correct. TODO once
|
||||
#top level is done.
|
||||
for port in range(self.total_port_num):
|
||||
self.add_clk_control_power(port)
|
||||
|
||||
min_pulse_width = round_time(self.char_results["min_period"])/2.0
|
||||
min_period = round_time(self.char_results["min_period"])
|
||||
|
|
@ -443,7 +452,51 @@ class lib:
|
|||
self.lib.write(" }\n")
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" }\n")
|
||||
|
||||
def add_clk_control_power(self, port):
|
||||
"""Writes powers under the clock pin group for a specified port"""
|
||||
#Web added to read/write ports. Likely to change when control logic finished.
|
||||
web_name = ""
|
||||
|
||||
if port in self.write_ports:
|
||||
if port in self.read_ports:
|
||||
web_name = " & !WEb{0}".format(port)
|
||||
avg_write_power = np.mean(self.char_results["write1_power{0}".format(port)] + self.char_results["write0_power{0}".format(port)])
|
||||
self.lib.write(" internal_power(){\n")
|
||||
self.lib.write(" when : \"!CSb{0} & clk{1}\"; \n".format(port, web_name))
|
||||
self.lib.write(" rise_power(scalar){\n")
|
||||
self.lib.write(" values(\"{0}\");\n".format(avg_write_power/2.0))
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" fall_power(scalar){\n")
|
||||
self.lib.write(" values(\"{0}\");\n".format(avg_write_power/2.0))
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" }\n")
|
||||
|
||||
if port in self.read_ports:
|
||||
if port in self.write_ports:
|
||||
web_name = " & WEb{0}".format(port)
|
||||
avg_read_power = np.mean(self.char_results["read1_power{0}".format(port)] + self.char_results["read0_power{0}".format(port)])
|
||||
self.lib.write(" internal_power(){\n")
|
||||
self.lib.write(" when : \"!CSb{0} & !clk{1}\"; \n".format(port, web_name))
|
||||
self.lib.write(" rise_power(scalar){\n")
|
||||
self.lib.write(" values(\"{0}\");\n".format(avg_read_power/2.0))
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" fall_power(scalar){\n")
|
||||
self.lib.write(" values(\"{0}\");\n".format(avg_read_power/2.0))
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" }\n")
|
||||
|
||||
# Have 0 internal power when disabled, this will be represented as leakage power.
|
||||
self.lib.write(" internal_power(){\n")
|
||||
self.lib.write(" when : \"CSb{0}\"; \n".format(port))
|
||||
self.lib.write(" rise_power(scalar){\n")
|
||||
self.lib.write(" values(\"0\");\n")
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" fall_power(scalar){\n")
|
||||
self.lib.write(" values(\"0\");\n")
|
||||
self.lib.write(" }\n")
|
||||
self.lib.write(" }\n")
|
||||
|
||||
def compute_delay(self):
|
||||
""" Do the analysis if we haven't characterized the SRAM yet """
|
||||
if not hasattr(self,"d"):
|
||||
|
|
|
|||
|
|
@ -276,17 +276,36 @@ class setup_hold():
|
|||
HL_setup = []
|
||||
LH_hold = []
|
||||
HL_hold = []
|
||||
|
||||
#For debugging, skips characterization and returns dummy values.
|
||||
# i = 1.0
|
||||
# for self.related_input_slew in related_slews:
|
||||
# for self.constrained_input_slew in constrained_slews:
|
||||
# LH_setup.append(i)
|
||||
# HL_setup.append(i+1.0)
|
||||
# LH_hold.append(i+2.0)
|
||||
# HL_hold.append(i+3.0)
|
||||
# i+=4.0
|
||||
|
||||
# times = {"setup_times_LH": LH_setup,
|
||||
# "setup_times_HL": HL_setup,
|
||||
# "hold_times_LH": LH_hold,
|
||||
# "hold_times_HL": HL_hold
|
||||
# }
|
||||
# return times
|
||||
|
||||
|
||||
for self.related_input_slew in related_slews:
|
||||
for self.constrained_input_slew in constrained_slews:
|
||||
debug.info(1, "Clock slew: {0} Data slew: {1}".format(self.related_input_slew,self.constrained_input_slew))
|
||||
LH_setup_time = self.setup_LH_time()
|
||||
debug.info(1, " Setup Time for low_to_high transistion: {0}".format(LH_setup_time))
|
||||
debug.info(1, " Setup Time for low_to_high transition: {0}".format(LH_setup_time))
|
||||
HL_setup_time = self.setup_HL_time()
|
||||
debug.info(1, " Setup Time for high_to_low transistion: {0}".format(HL_setup_time))
|
||||
debug.info(1, " Setup Time for high_to_low transition: {0}".format(HL_setup_time))
|
||||
LH_hold_time = self.hold_LH_time()
|
||||
debug.info(1, " Hold Time for low_to_high transistion: {0}".format(LH_hold_time))
|
||||
debug.info(1, " Hold Time for low_to_high transition: {0}".format(LH_hold_time))
|
||||
HL_hold_time = self.hold_HL_time()
|
||||
debug.info(1, " Hold Time for high_to_low transistion: {0}".format(HL_hold_time))
|
||||
debug.info(1, " Hold Time for high_to_low transition: {0}".format(HL_hold_time))
|
||||
LH_setup.append(LH_setup_time)
|
||||
HL_setup.append(HL_setup_time)
|
||||
LH_hold.append(LH_hold_time)
|
||||
|
|
|
|||
|
|
@ -30,18 +30,33 @@ class stimuli():
|
|||
self.device_models = tech.spice["fet_models"][self.process]
|
||||
|
||||
|
||||
def inst_sram(self, abits, dbits, sram_name):
|
||||
def inst_sram(self, abits, dbits, port_info, sram_name):
|
||||
""" Function to instatiate an SRAM subckt. """
|
||||
self.sf.write("Xsram ")
|
||||
for i in range(dbits):
|
||||
self.sf.write("DIN[{0}] ".format(i))
|
||||
for i in range(abits):
|
||||
self.sf.write("A[{0}] ".format(i))
|
||||
for i in tech.spice["control_signals"]:
|
||||
self.sf.write("{0} ".format(i))
|
||||
|
||||
#Un-tuple the port names. This was done to avoid passing them all as arguments. Could be improved still.
|
||||
#This should be generated from the pin list of the sram... change when multiport pins done.
|
||||
(total_port_num,readwrite_num,read_ports,write_ports) = port_info
|
||||
|
||||
for write_input in write_ports:
|
||||
for i in range(dbits):
|
||||
self.sf.write("DIN{0}[{1}] ".format(write_input, i))
|
||||
|
||||
for port in range(total_port_num):
|
||||
for i in range(abits):
|
||||
self.sf.write("A{0}[{1}] ".format(port,i))
|
||||
|
||||
#These control signals assume 6t sram i.e. a single readwrite port. If multiple readwrite ports are used then add more
|
||||
#control signals. Not sure if this is correct, consider a temporary change until control signals for multiport are finalized.
|
||||
for port in range(total_port_num):
|
||||
self.sf.write("CSB{0} ".format(port))
|
||||
for readwrite_port in range(readwrite_num):
|
||||
self.sf.write("WEB{0} ".format(readwrite_port))
|
||||
|
||||
self.sf.write("{0} ".format(tech.spice["clk"]))
|
||||
for i in range(dbits):
|
||||
self.sf.write("DOUT[{0}] ".format(i))
|
||||
for read_output in read_ports:
|
||||
for i in range(dbits):
|
||||
self.sf.write("DOUT{0}[{1}] ".format(read_output, i))
|
||||
self.sf.write("{0} {1} ".format(self.vdd_name, self.gnd_name))
|
||||
self.sf.write("{0}\n".format(sram_name))
|
||||
|
||||
|
|
|
|||
|
|
@ -10,3 +10,10 @@ temperatures = [25]
|
|||
output_path = "temp"
|
||||
output_name = "sram_{0}_{1}_{2}_{3}".format(word_size,num_words,num_banks,tech_name)
|
||||
|
||||
#Below are some additions to test additional ports on sram
|
||||
#bitcell = "pbitcell"
|
||||
|
||||
# These are the configuration parameters
|
||||
#rw_ports = 2
|
||||
#r_ports = 2
|
||||
#w_ports = 2
|
||||
|
|
|
|||
|
|
@ -9,4 +9,3 @@ temperatures = [ 25 ]
|
|||
|
||||
output_path = "temp"
|
||||
output_name = "sram_{0}_{1}_{2}_{3}".format(word_size,num_words,num_banks,tech_name)
|
||||
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@ class ms_flop(design.design):
|
|||
from tech import spice, parameter
|
||||
c_load = load
|
||||
c_para = spice["flop_para_cap"]#ff
|
||||
transistion_prob = spice["flop_transisition_prob"]
|
||||
return transistion_prob*(c_load + c_para)
|
||||
transition_prob = spice["flop_transition_prob"]
|
||||
return transition_prob*(c_load + c_para)
|
||||
|
||||
|
||||
|
||||
|
|
@ -279,5 +279,5 @@ class pinv(pgate.pgate):
|
|||
"""Computes effective capacitance. Results in fF"""
|
||||
c_load = load
|
||||
c_para = spice["min_tx_drain_c"]*(self.nmos_size/parameter["min_tx_size"])#ff
|
||||
transistion_prob = spice["inv_transisition_prob"]
|
||||
return transistion_prob*(c_load + c_para)
|
||||
transition_prob = spice["inv_transition_prob"]
|
||||
return transition_prob*(c_load + c_para)
|
||||
|
|
|
|||
|
|
@ -240,5 +240,5 @@ class pnand2(pgate.pgate):
|
|||
"""Computes effective capacitance. Results in fF"""
|
||||
c_load = load
|
||||
c_para = spice["min_tx_drain_c"]*(self.nmos_size/parameter["min_tx_size"])#ff
|
||||
transistion_prob = spice["nand2_transisition_prob"]
|
||||
return transistion_prob*(c_load + c_para)
|
||||
transition_prob = spice["nand2_transition_prob"]
|
||||
return transition_prob*(c_load + c_para)
|
||||
|
|
|
|||
|
|
@ -259,5 +259,5 @@ class pnand3(pgate.pgate):
|
|||
"""Computes effective capacitance. Results in fF"""
|
||||
c_load = load
|
||||
c_para = spice["min_tx_drain_c"]*(self.nmos_size/parameter["min_tx_size"])#ff
|
||||
transistion_prob = spice["nand3_transisition_prob"]
|
||||
return transistion_prob*(c_load + c_para)
|
||||
transition_prob = spice["nand3_transition_prob"]
|
||||
return transition_prob*(c_load + c_para)
|
||||
|
|
|
|||
|
|
@ -237,6 +237,6 @@ class pnor2(pgate.pgate):
|
|||
"""Computes effective capacitance. Results in fF"""
|
||||
c_load = load
|
||||
c_para = spice["min_tx_drain_c"]*(self.nmos_size/parameter["min_tx_size"])#ff
|
||||
transistion_prob = spice["nor2_transisition_prob"]
|
||||
return transistion_prob*(c_load + c_para)
|
||||
transition_prob = spice["nor2_transition_prob"]
|
||||
return transition_prob*(c_load + c_para)
|
||||
|
||||
|
|
|
|||
|
|
@ -321,8 +321,10 @@ class sram_1bank(sram_base):
|
|||
|
||||
route_map = list(zip(bank_names, dff_names))
|
||||
dff_pins = {key: self.data_dff_inst.get_pin(key) for key in dff_names }
|
||||
bank_pins = {key: self.bank_inst.get_pin(key) for key in bank_names }
|
||||
self.create_horizontal_channel_route(route_map, dff_pins, bank_pins, offset)
|
||||
bank_pins = {key: self.bank_inst.get_pin(key) for key in bank_names }
|
||||
# Combine the dff and bank pins into a single dictionary of pin name to pin.
|
||||
all_pins = {**dff_pins, **bank_pins}
|
||||
self.create_horizontal_channel_route(route_map, all_pins, offset)
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -50,28 +50,29 @@ class timing_sram_test(openram_test):
|
|||
slews = [tech.spice["rise_time"]*2]
|
||||
data = d.analyze(probe_address, probe_data, slews, loads)
|
||||
|
||||
#Assumes single rw port (6t sram)
|
||||
if OPTS.tech_name == "freepdk45":
|
||||
golden_data = {'delay_hl': [2.5829000000000004],
|
||||
'delay_lh': [0.2255964],
|
||||
golden_data = {'delay_hl0': [2.5829000000000004],
|
||||
'delay_lh0': [0.2255964],
|
||||
'leakage_power': 0.0019498999999999996,
|
||||
'min_period': 4.844,
|
||||
'read0_power': [0.055371399999999994],
|
||||
'read1_power': [0.0520225],
|
||||
'slew_hl': [0.0794261],
|
||||
'slew_lh': [0.0236264],
|
||||
'write0_power': [0.06545659999999999],
|
||||
'write1_power': [0.057846299999999996]}
|
||||
'read0_power0': [0.055371399999999994],
|
||||
'read1_power0': [0.0520225],
|
||||
'slew_hl0': [0.0794261],
|
||||
'slew_lh0': [0.0236264],
|
||||
'write0_power0': [0.06545659999999999],
|
||||
'write1_power0': [0.057846299999999996]}
|
||||
elif OPTS.tech_name == "scn3me_subm":
|
||||
golden_data = {'delay_hl': [4.0249],
|
||||
'delay_lh': [2.2611],
|
||||
golden_data = {'delay_hl0': [4.0249],
|
||||
'delay_lh0': [2.2611],
|
||||
'leakage_power': 0.0257389,
|
||||
'min_period': 4.688,
|
||||
'read0_power': [24.9279],
|
||||
'read1_power': [24.0219],
|
||||
'slew_hl': [0.8500753999999999],
|
||||
'slew_lh': [0.4122653],
|
||||
'write0_power': [28.197600000000005],
|
||||
'write1_power': [25.685]}
|
||||
'read0_power0': [24.9279],
|
||||
'read1_power0': [24.0219],
|
||||
'slew_hl0': [0.8500753999999999],
|
||||
'slew_lh0': [0.4122653],
|
||||
'write0_power0': [28.197600000000005],
|
||||
'write1_power0': [25.685]}
|
||||
else:
|
||||
self.assertTrue(False) # other techs fail
|
||||
# Check if no too many or too few results
|
||||
|
|
|
|||
|
|
@ -51,27 +51,27 @@ class timing_sram_test(openram_test):
|
|||
data = d.analyze(probe_address, probe_data, slews, loads)
|
||||
|
||||
if OPTS.tech_name == "freepdk45":
|
||||
golden_data = {'delay_hl': [2.584251],
|
||||
'delay_lh': [0.22870469999999998],
|
||||
golden_data = {'delay_hl0': [2.584251],
|
||||
'delay_lh0': [0.22870469999999998],
|
||||
'leakage_power': 0.0009567935,
|
||||
'min_period': 4.844,
|
||||
'read0_power': [0.0547588],
|
||||
'read1_power': [0.051159970000000006],
|
||||
'slew_hl': [0.08164099999999999],
|
||||
'slew_lh': [0.025474979999999998],
|
||||
'write0_power': [0.06513271999999999],
|
||||
'write1_power': [0.058057000000000004]}
|
||||
'read0_power0': [0.0547588],
|
||||
'read1_power0': [0.051159970000000006],
|
||||
'slew_hl0': [0.08164099999999999],
|
||||
'slew_lh0': [0.025474979999999998],
|
||||
'write0_power0': [0.06513271999999999],
|
||||
'write1_power0': [0.058057000000000004]}
|
||||
elif OPTS.tech_name == "scn3me_subm":
|
||||
golden_data = {'delay_hl': [4.221382999999999],
|
||||
'delay_lh': [2.6459520000000003],
|
||||
golden_data = {'delay_hl0': [4.221382999999999],
|
||||
'delay_lh0': [2.6459520000000003],
|
||||
'leakage_power': 0.0013865260000000001,
|
||||
'min_period': 4.688,
|
||||
'read0_power': [26.699669999999998],
|
||||
'read1_power': [26.13123],
|
||||
'slew_hl': [0.9821776000000001],
|
||||
'slew_lh': [1.5791520000000001],
|
||||
'write0_power': [30.71939],
|
||||
'write1_power': [27.44753]}
|
||||
'read0_power0': [26.699669999999998],
|
||||
'read1_power0': [26.13123],
|
||||
'slew_hl0': [0.9821776000000001],
|
||||
'slew_lh0': [1.5791520000000001],
|
||||
'write0_power0': [30.71939],
|
||||
'write1_power0': [27.44753]}
|
||||
else:
|
||||
self.assertTrue(False) # other techs fail
|
||||
|
||||
|
|
|
|||
|
|
@ -87,16 +87,16 @@ cell (sram_2_16_1_freepdk45){
|
|||
cell_leakage_power : 0;
|
||||
bus(DIN){
|
||||
bus_type : DATA;
|
||||
direction : in;
|
||||
max_capacitance : 1.6728;
|
||||
min_capacitance : 0.052275;
|
||||
direction : input;
|
||||
capacitance : 0.2091;
|
||||
memory_write(){
|
||||
address : ADDR;
|
||||
clocked_on : clk;
|
||||
}
|
||||
}
|
||||
bus(DOUT){
|
||||
bus_type : DATA;
|
||||
direction : out;
|
||||
direction : output;
|
||||
max_capacitance : 1.6728;
|
||||
min_capacitance : 0.052275;
|
||||
memory_read(){
|
||||
|
|
@ -229,39 +229,6 @@ cell (sram_2_16_1_freepdk45){
|
|||
}
|
||||
}
|
||||
|
||||
pin(OEb){
|
||||
direction : input;
|
||||
capacitance : 0.2091;
|
||||
timing(){
|
||||
timing_type : setup_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.009, 0.015, 0.027",\
|
||||
"0.009, 0.015, 0.027",\
|
||||
"0.009, 0.015, 0.027");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.009, 0.009, 0.015",\
|
||||
"0.009, 0.009, 0.015",\
|
||||
"0.009, 0.009, 0.015");
|
||||
}
|
||||
}
|
||||
timing(){
|
||||
timing_type : hold_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.002, 0.002, -0.004",\
|
||||
"0.002, 0.002, -0.004",\
|
||||
"0.002, 0.002, -0.004");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("-0.004, -0.004, -0.016",\
|
||||
"-0.004, -0.004, -0.016",\
|
||||
"-0.004, -0.004, -0.016");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pin(WEb){
|
||||
direction : input;
|
||||
capacitance : 0.2091;
|
||||
|
|
|
|||
|
|
@ -87,16 +87,16 @@ cell (sram_2_16_1_freepdk45){
|
|||
cell_leakage_power : 0;
|
||||
bus(DIN){
|
||||
bus_type : DATA;
|
||||
direction : in;
|
||||
max_capacitance : 1.6728;
|
||||
min_capacitance : 0.052275;
|
||||
direction : input;
|
||||
capacitance : 0.2091;
|
||||
memory_write(){
|
||||
address : ADDR;
|
||||
clocked_on : clk;
|
||||
}
|
||||
}
|
||||
bus(DOUT){
|
||||
bus_type : DATA;
|
||||
direction : out;
|
||||
direction : output;
|
||||
max_capacitance : 1.6728;
|
||||
min_capacitance : 0.052275;
|
||||
memory_read(){
|
||||
|
|
@ -229,39 +229,6 @@ cell (sram_2_16_1_freepdk45){
|
|||
}
|
||||
}
|
||||
|
||||
pin(OEb){
|
||||
direction : input;
|
||||
capacitance : 0.2091;
|
||||
timing(){
|
||||
timing_type : setup_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.009, 0.009, 0.009",\
|
||||
"0.009, 0.009, 0.009",\
|
||||
"0.009, 0.009, 0.009");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.009, 0.009, 0.009",\
|
||||
"0.009, 0.009, 0.009",\
|
||||
"0.009, 0.009, 0.009");
|
||||
}
|
||||
}
|
||||
timing(){
|
||||
timing_type : hold_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.001, 0.001, 0.001",\
|
||||
"0.001, 0.001, 0.001",\
|
||||
"0.001, 0.001, 0.001");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.001, 0.001, 0.001",\
|
||||
"0.001, 0.001, 0.001",\
|
||||
"0.001, 0.001, 0.001");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pin(WEb){
|
||||
direction : input;
|
||||
capacitance : 0.2091;
|
||||
|
|
|
|||
|
|
@ -87,16 +87,16 @@ cell (sram_2_16_1_freepdk45){
|
|||
cell_leakage_power : 0;
|
||||
bus(DIN){
|
||||
bus_type : DATA;
|
||||
direction : in;
|
||||
max_capacitance : 1.6728;
|
||||
min_capacitance : 0.052275;
|
||||
direction : input;
|
||||
capacitance : 0.2091;
|
||||
memory_write(){
|
||||
address : ADDR;
|
||||
clocked_on : clk;
|
||||
}
|
||||
}
|
||||
bus(DOUT){
|
||||
bus_type : DATA;
|
||||
direction : out;
|
||||
direction : output;
|
||||
max_capacitance : 1.6728;
|
||||
min_capacitance : 0.052275;
|
||||
memory_read(){
|
||||
|
|
@ -229,39 +229,6 @@ cell (sram_2_16_1_freepdk45){
|
|||
}
|
||||
}
|
||||
|
||||
pin(OEb){
|
||||
direction : input;
|
||||
capacitance : 0.2091;
|
||||
timing(){
|
||||
timing_type : setup_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.009, 0.015, 0.027",\
|
||||
"0.009, 0.015, 0.027",\
|
||||
"0.009, 0.015, 0.027");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.009, 0.009, 0.015",\
|
||||
"0.009, 0.009, 0.015",\
|
||||
"0.009, 0.009, 0.015");
|
||||
}
|
||||
}
|
||||
timing(){
|
||||
timing_type : hold_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.002, 0.002, -0.004",\
|
||||
"0.002, 0.002, -0.004",\
|
||||
"0.002, 0.002, -0.004");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("-0.004, -0.004, -0.016",\
|
||||
"-0.004, -0.004, -0.016",\
|
||||
"-0.004, -0.004, -0.016");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pin(WEb){
|
||||
direction : input;
|
||||
capacitance : 0.2091;
|
||||
|
|
|
|||
|
|
@ -87,16 +87,16 @@ cell (sram_2_16_1_scn3me_subm){
|
|||
cell_leakage_power : 0;
|
||||
bus(DIN){
|
||||
bus_type : DATA;
|
||||
direction : in;
|
||||
max_capacitance : 78.5936;
|
||||
min_capacitance : 2.45605;
|
||||
direction : input;
|
||||
capacitance : 9.8242;
|
||||
memory_write(){
|
||||
address : ADDR;
|
||||
clocked_on : clk;
|
||||
}
|
||||
}
|
||||
bus(DOUT){
|
||||
bus_type : DATA;
|
||||
direction : out;
|
||||
direction : output;
|
||||
max_capacitance : 78.5936;
|
||||
min_capacitance : 2.45605;
|
||||
memory_read(){
|
||||
|
|
@ -229,39 +229,6 @@ cell (sram_2_16_1_scn3me_subm){
|
|||
}
|
||||
}
|
||||
|
||||
pin(OEb){
|
||||
direction : input;
|
||||
capacitance : 9.8242;
|
||||
timing(){
|
||||
timing_type : setup_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.076, 0.076, 0.149",\
|
||||
"0.076, 0.076, 0.149",\
|
||||
"0.076, 0.076, 0.149");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.033, 0.039, 0.027",\
|
||||
"0.033, 0.039, 0.027",\
|
||||
"0.033, 0.039, 0.027");
|
||||
}
|
||||
}
|
||||
timing(){
|
||||
timing_type : hold_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("-0.004, -0.004, 0.009",\
|
||||
"-0.004, -0.004, 0.009",\
|
||||
"-0.004, -0.004, 0.009");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("-0.052, -0.059, -0.132",\
|
||||
"-0.052, -0.059, -0.132",\
|
||||
"-0.052, -0.059, -0.132");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pin(WEb){
|
||||
direction : input;
|
||||
capacitance : 9.8242;
|
||||
|
|
|
|||
|
|
@ -87,20 +87,20 @@ cell (sram_2_16_1_scn3me_subm){
|
|||
cell_leakage_power : 0;
|
||||
bus(DIN){
|
||||
bus_type : DATA;
|
||||
direction : in;
|
||||
max_capacitance : 78.5936;
|
||||
min_capacitance : 2.45605;
|
||||
direction : input;
|
||||
capacitance : 9.8242;
|
||||
memory_write(){
|
||||
address : ADDR;
|
||||
address : ADDR0;
|
||||
clocked_on : clk;
|
||||
}
|
||||
}
|
||||
bus(DOUT){
|
||||
bus_type : DATA;
|
||||
direction : out;
|
||||
direction : output;
|
||||
max_capacitance : 78.5936;
|
||||
min_capacitance : 2.45605;
|
||||
memory_read(){
|
||||
address : ADDR;
|
||||
address : ADDR0;
|
||||
}
|
||||
pin(DOUT[1:0]){
|
||||
timing(){
|
||||
|
|
@ -229,39 +229,6 @@ cell (sram_2_16_1_scn3me_subm){
|
|||
}
|
||||
}
|
||||
|
||||
pin(OEb){
|
||||
direction : input;
|
||||
capacitance : 9.8242;
|
||||
timing(){
|
||||
timing_type : setup_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.009, 0.009, 0.009",\
|
||||
"0.009, 0.009, 0.009",\
|
||||
"0.009, 0.009, 0.009");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.009, 0.009, 0.009",\
|
||||
"0.009, 0.009, 0.009",\
|
||||
"0.009, 0.009, 0.009");
|
||||
}
|
||||
}
|
||||
timing(){
|
||||
timing_type : hold_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.001, 0.001, 0.001",\
|
||||
"0.001, 0.001, 0.001",\
|
||||
"0.001, 0.001, 0.001");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.001, 0.001, 0.001",\
|
||||
"0.001, 0.001, 0.001",\
|
||||
"0.001, 0.001, 0.001");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pin(WEb){
|
||||
direction : input;
|
||||
capacitance : 9.8242;
|
||||
|
|
|
|||
|
|
@ -87,16 +87,16 @@ cell (sram_2_16_1_scn3me_subm){
|
|||
cell_leakage_power : 0;
|
||||
bus(DIN){
|
||||
bus_type : DATA;
|
||||
direction : in;
|
||||
max_capacitance : 78.5936;
|
||||
min_capacitance : 2.45605;
|
||||
direction : input;
|
||||
capacitance : 9.8242;
|
||||
memory_write(){
|
||||
address : ADDR;
|
||||
clocked_on : clk;
|
||||
}
|
||||
}
|
||||
bus(DOUT){
|
||||
bus_type : DATA;
|
||||
direction : out;
|
||||
direction : output;
|
||||
max_capacitance : 78.5936;
|
||||
min_capacitance : 2.45605;
|
||||
memory_read(){
|
||||
|
|
@ -229,39 +229,6 @@ cell (sram_2_16_1_scn3me_subm){
|
|||
}
|
||||
}
|
||||
|
||||
pin(OEb){
|
||||
direction : input;
|
||||
capacitance : 9.8242;
|
||||
timing(){
|
||||
timing_type : setup_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.076, 0.076, 0.149",\
|
||||
"0.076, 0.076, 0.149",\
|
||||
"0.076, 0.076, 0.149");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("0.033, 0.039, 0.027",\
|
||||
"0.033, 0.039, 0.027",\
|
||||
"0.033, 0.039, 0.027");
|
||||
}
|
||||
}
|
||||
timing(){
|
||||
timing_type : hold_rising;
|
||||
related_pin : "clk";
|
||||
rise_constraint(CONSTRAINT_TABLE) {
|
||||
values("-0.004, -0.004, 0.009",\
|
||||
"-0.004, -0.004, 0.009",\
|
||||
"-0.004, -0.004, 0.009");
|
||||
}
|
||||
fall_constraint(CONSTRAINT_TABLE) {
|
||||
values("-0.052, -0.059, -0.132",\
|
||||
"-0.052, -0.059, -0.132",\
|
||||
"-0.052, -0.059, -0.132");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pin(WEb){
|
||||
direction : input;
|
||||
capacitance : 9.8242;
|
||||
|
|
|
|||
|
|
@ -183,6 +183,9 @@ class openram_test(unittest.TestCase):
|
|||
|
||||
# 4. Check if remaining string matches
|
||||
if line1 != line2:
|
||||
#Uncomment if you want to see all the individual chars of the two lines
|
||||
#print(str([i for i in line1]))
|
||||
#print(str([i for i in line2]))
|
||||
if mismatches==0:
|
||||
debug.error("Mismatching files:\nfile1={0}\nfile2={1}".format(filename1,filename2))
|
||||
mismatches += 1
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ if OPTS.check_lvsdrc and OPTS.tech_name == "freepdk45":
|
|||
debug.check(OPTS.drc_exe[0]!="magic","Magic does not support FreePDK45 for DRC.")
|
||||
|
||||
if OPTS.drc_exe == None:
|
||||
pass
|
||||
from .none import run_drc,print_drc_stats
|
||||
elif "calibre"==OPTS.drc_exe[0]:
|
||||
from .calibre import run_drc,print_drc_stats
|
||||
elif "assura"==OPTS.drc_exe[0]:
|
||||
|
|
@ -41,7 +41,7 @@ else:
|
|||
debug.warning("Did not find a supported DRC tool.")
|
||||
|
||||
if OPTS.lvs_exe == None:
|
||||
pass
|
||||
from .none import run_lvs,print_lvs_stats
|
||||
elif "calibre"==OPTS.lvs_exe[0]:
|
||||
from .calibre import run_lvs,print_lvs_stats
|
||||
elif "assura"==OPTS.lvs_exe[0]:
|
||||
|
|
@ -53,7 +53,7 @@ else:
|
|||
|
||||
|
||||
if OPTS.pex_exe == None:
|
||||
pass
|
||||
from .none import run_pex,print_pex_stats
|
||||
elif "calibre"==OPTS.pex_exe[0]:
|
||||
from .calibre import run_pex,print_pex_stats
|
||||
elif "magic"==OPTS.pex_exe[0]:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
"""
|
||||
This is a DRC/LVS/PEX interface file the case with no DRC/LVS tools.
|
||||
|
||||
"""
|
||||
import debug
|
||||
|
||||
# Only print the warning once.
|
||||
drc_warned = False
|
||||
lvs_warned = False
|
||||
pex_warned = False
|
||||
|
||||
def run_drc(cell_name, gds_name, extract=False):
|
||||
global drc_warned
|
||||
if not drc_warned:
|
||||
debug.warning("DRC unable to run.")
|
||||
drc_warned=True
|
||||
# Since we warned, return a failing test.
|
||||
return 1
|
||||
|
||||
def run_lvs(cell_name, gds_name, sp_name, final_verification=False):
|
||||
global lvs_warned
|
||||
if not lvs_warned:
|
||||
debug.warning("LVS unable to run.")
|
||||
lvs_warned=True
|
||||
# Since we warned, return a failing test.
|
||||
return 1
|
||||
|
||||
def run_pex(name, gds_name, sp_name, output=None):
|
||||
global pex_warned
|
||||
if not pex_warned:
|
||||
debug.warning("PEX unable to run.")
|
||||
pex_warned=True
|
||||
# Since we warned, return a failing test.
|
||||
return 1
|
||||
|
||||
def print_drc_stats():
|
||||
pass
|
||||
def print_lvs_stats():
|
||||
pass
|
||||
def print_pex_stats():
|
||||
pass
|
||||
|
|
@ -84,50 +84,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 5.78125ns (ub: 5.9375 lb: 5.625)
|
||||
[characterizer.delay/analyze]: Min Period: 5.9375n with a delay of 3.1226964 / 0.30308602
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
** Characterization: 16788.8 seconds
|
||||
GDS: Writing to ./sram_1rw_128b_1024w_1bank_freepdk45.gds
|
||||
** GDS: 9.0 seconds
|
||||
|
|
|
|||
|
|
@ -85,50 +85,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 1.953125ns (ub: 2.03125 lb: 1.875)
|
||||
[characterizer.delay/analyze]: Min Period: 2.03125n with a delay of 0.19175762 / 0.17403244
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
** Characterization: 35039.9 seconds
|
||||
GDS: Writing to ./sram_1rw_128b_1024w_4bank_freepdk45.gds
|
||||
** GDS: 5.3 seconds
|
||||
|
|
|
|||
|
|
@ -83,50 +83,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 2.109375ns (ub: 2.1875 lb: 2.03125)
|
||||
[characterizer.delay/analyze]: Min Period: 2.1875n with a delay of 1.1713644 / 0.19182711
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
** Characterization: 8034.5 seconds
|
||||
GDS: Writing to ./sram_1rw_32b_1024w_1bank_freepdk45.gds
|
||||
** GDS: 3.3 seconds
|
||||
|
|
|
|||
|
|
@ -83,50 +83,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 2.265625ns (ub: 2.34375 lb: 2.1875)
|
||||
[characterizer.delay/analyze]: Min Period: 2.34375n with a delay of 1.2374402 / 0.25744693
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
** Characterization: 12972.2 seconds
|
||||
GDS: Writing to ./sram_1rw_32b_2048w_1bank_freepdk45.gds
|
||||
** GDS: 5.6 seconds
|
||||
|
|
|
|||
|
|
@ -83,50 +83,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 2.109375ns (ub: 2.1875 lb: 2.03125)
|
||||
[characterizer.delay/analyze]: Min Period: 2.109375n with a delay of 1.1300259 / 0.13801474
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
** Characterization: 4457.6 seconds
|
||||
GDS: Writing to ./sram_1rw_32b_256w_1bank_freepdk45.gds
|
||||
** GDS: 1.4 seconds
|
||||
|
|
|
|||
|
|
@ -83,50 +83,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 2.109375ns (ub: 2.1875 lb: 2.03125)
|
||||
[characterizer.delay/analyze]: Min Period: 2.1875n with a delay of 1.1419594 / 0.15656674
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
** Characterization: 5101.6 seconds
|
||||
GDS: Writing to ./sram_1rw_32b_512w_1bank_freepdk45.gds
|
||||
** GDS: 1.8 seconds
|
||||
|
|
|
|||
|
|
@ -82,50 +82,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 3.59375ns (ub: 3.75 lb: 3.4375)
|
||||
[characterizer.delay/analyze]: Min Period: 3.59375n with a delay of 1.850756 / 0.23319319
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
** Characterization: 9948.6 seconds
|
||||
GDS: Writing to ./sram_1rw_64b_1024w_1bank_freepdk45.gds
|
||||
** GDS: 5.9 seconds
|
||||
|
|
|
|||
|
|
@ -84,50 +84,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 1.0546875ns (ub: 1.09375 lb: 1.015625)
|
||||
[characterizer.delay/analyze]: Min Period: 1.0546875n with a delay of 0.56986783 / 0.10418749
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.00125 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.005 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.00125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414063
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.005
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0024414062
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.04 Data slew: 0.04
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.015869141
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.020751953
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.014648437
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.015869141
|
||||
** Characterization: 3369.3 seconds
|
||||
GDS: Writing to ./sram_1rw_8b_256w_1bank_freepdk45.gds
|
||||
** GDS: 0.8 seconds
|
||||
|
|
|
|||
|
|
@ -86,50 +86,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 57.5ns (ub: 60.0 lb: 55.0)
|
||||
[characterizer.delay/analyze]: Min Period: 60.0n with a delay of 31.821678 / 3.9657764
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
** Characterization: 13865.7 seconds
|
||||
GDS: Writing to ./sram_1rw_128b_1024w_1bank_scn3me_subm.gds
|
||||
** GDS: 9.5 seconds
|
||||
|
|
|
|||
|
|
@ -86,50 +86,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 16.875ns (ub: 17.5 lb: 16.25)
|
||||
[characterizer.delay/analyze]: Min Period: 17.5n with a delay of 9.657173 / 2.0055267
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
** Characterization: 19670.7 seconds
|
||||
GDS: Writing to ./sram_1rw_128b_1024w_2bank_scn3me_subm.gds
|
||||
** GDS: 7.8 seconds
|
||||
|
|
|
|||
|
|
@ -86,50 +86,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 18.125ns (ub: 18.75 lb: 17.5)
|
||||
[characterizer.delay/analyze]: Min Period: 18.75n with a delay of 10.525582 / 2.331161
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
** Characterization: 24789.5 seconds
|
||||
GDS: Writing to ./sram_1rw_128b_1024w_4bank_scn3me_subm.gds
|
||||
** GDS: 4.3 seconds
|
||||
|
|
|
|||
|
|
@ -84,50 +84,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 16.875ns (ub: 17.5 lb: 16.25)
|
||||
[characterizer.delay/analyze]: Min Period: 16.875n with a delay of 9.1997828 / 3.104732
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
** Characterization: 10830.5 seconds
|
||||
GDS: Writing to ./sram_1rw_32b_2048w_1bank_scn3me_subm.gds
|
||||
** GDS: 5.3 seconds
|
||||
|
|
|
|||
|
|
@ -84,50 +84,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 19.375ns (ub: 20.0 lb: 18.75)
|
||||
[characterizer.delay/analyze]: Min Period: 20.0n with a delay of 10.777462 / 1.9428786
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
** Characterization: 3663.3 seconds
|
||||
GDS: Writing to ./sram_1rw_32b_256w_1bank_scn3me_subm.gds
|
||||
** GDS: 1.2 seconds
|
||||
|
|
|
|||
|
|
@ -84,50 +84,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 19.375ns (ub: 20.0 lb: 18.75)
|
||||
[characterizer.delay/analyze]: Min Period: 20.0n with a delay of 11.057892 / 2.1338514
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
** Characterization: 4702.5 seconds
|
||||
GDS: Writing to ./sram_1rw_32b_512w_1bank_scn3me_subm.gds
|
||||
** GDS: 2.1 seconds
|
||||
|
|
|
|||
|
|
@ -85,50 +85,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 33.75ns (ub: 35.0 lb: 32.5)
|
||||
[characterizer.delay/analyze]: Min Period: 33.75n with a delay of 18.100242 / 3.0216206
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
** Characterization: 9134.8 seconds
|
||||
GDS: Writing to ./sram_1rw_64b_1024w_1bank_scn3me_subm.gds
|
||||
** GDS: 5.1 seconds
|
||||
|
|
|
|||
|
|
@ -83,50 +83,50 @@ Trimming netlist to speed up characterization.
|
|||
[characterizer.delay/find_min_period]: MinPeriod Search: 9.0625ns (ub: 9.375 lb: 8.75)
|
||||
[characterizer.delay/analyze]: Min Period: 9.0625n with a delay of 5.0024145 / 1.5312283
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.0125 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.05 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.0125
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.052490234
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.05
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.075683594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.0390625
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: -0.0036621094
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.05859375
|
||||
[characterizer.setup_hold/analyze]: Clock slew: 0.4 Data slew: 0.4
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transistion: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transistion: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transistion: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transistion: -0.13183594
|
||||
[characterizer.setup_hold/analyze]: Setup Time for low_to_high transition: 0.14892578
|
||||
[characterizer.setup_hold/analyze]: Setup Time for high_to_low transition: 0.026855469
|
||||
[characterizer.setup_hold/analyze]: Hold Time for low_to_high transition: 0.0085449219
|
||||
[characterizer.setup_hold/analyze]: Hold Time for high_to_low transition: -0.13183594
|
||||
** Characterization: 2269.5 seconds
|
||||
GDS: Writing to ./sram_1rw_8b_256w_1bank_scn3me_subm.gds
|
||||
** GDS: 0.6 seconds
|
||||
|
|
|
|||
|
|
@ -298,11 +298,11 @@ spice["msflop_leakage"] = 1 # Leakage power of flop in nW
|
|||
spice["flop_para_cap"] = 2 # Parasitic Output capacitance in fF
|
||||
|
||||
spice["default_event_rate"] = 100 # Default event activity of every gate. MHz
|
||||
spice["flop_transisition_prob"] = .5 # Transition probability of inverter.
|
||||
spice["inv_transisition_prob"] = .5 # Transition probability of inverter.
|
||||
spice["nand2_transisition_prob"] = .1875 # Transition probability of 2-input nand.
|
||||
spice["nand3_transisition_prob"] = .1094 # Transition probability of 3-input nand.
|
||||
spice["nor2_transisition_prob"] = .1875 # Transition probability of 2-input nor.
|
||||
spice["flop_transition_prob"] = .5 # Transition probability of inverter.
|
||||
spice["inv_transition_prob"] = .5 # Transition probability of inverter.
|
||||
spice["nand2_transition_prob"] = .1875 # Transition probability of 2-input nand.
|
||||
spice["nand3_transition_prob"] = .1094 # Transition probability of 3-input nand.
|
||||
spice["nor2_transition_prob"] = .1875 # Transition probability of 2-input nor.
|
||||
|
||||
###################################################
|
||||
##END Spice Simulation Parameters
|
||||
|
|
|
|||
|
|
@ -259,12 +259,12 @@ spice["nor2_leakage"] = 1 # Leakage power of 2-input nor in nW
|
|||
spice["msflop_leakage"] = 1 # Leakage power of flop in nW
|
||||
spice["flop_para_cap"] = 2 # Parasitic Output capacitance in fF
|
||||
|
||||
spice["default_event_rate"] = 100 # Default event activity of every gate. MHz
|
||||
spice["flop_transisition_prob"] = .5 # Transition probability of inverter.
|
||||
spice["inv_transisition_prob"] = .5 # Transition probability of inverter.
|
||||
spice["nand2_transisition_prob"] = .1875 # Transition probability of 2-input nand.
|
||||
spice["nand3_transisition_prob"] = .1094 # Transition probability of 3-input nand.
|
||||
spice["nor2_transisition_prob"] = .1875 # Transition probability of 2-input nor.
|
||||
spice["default_event_rate"] = 100 # Default event activity of every gate. MHz
|
||||
spice["flop_transition_prob"] = .5 # Transition probability of inverter.
|
||||
spice["inv_transition_prob"] = .5 # Transition probability of inverter.
|
||||
spice["nand2_transition_prob"] = .1875 # Transition probability of 2-input nand.
|
||||
spice["nand3_transition_prob"] = .1094 # Transition probability of 3-input nand.
|
||||
spice["nor2_transition_prob"] = .1875 # Transition probability of 2-input nor.
|
||||
###################################################
|
||||
##END Spice Simulation Parameters
|
||||
###################################################
|
||||
|
|
|
|||
Loading…
Reference in New Issue