OpenRAM/technology/sky130/custom/sky130_bitcell.py

38 lines
1.2 KiB
Python
Raw Normal View History

2021-08-18 20:21:52 +02:00
#!/usr/bin/env python3
# See LICENSE for licensing information.
#
2023-01-29 07:56:27 +01:00
# Copyright (c) 2016-2023 Regents of the University of California
2021-08-18 20:21:52 +02:00
# All rights reserved.
#
2022-11-27 22:01:20 +01:00
from openram import debug
from openram.modules import bitcell_base
from openram.tech import cell_properties as props
2021-08-18 20:21:52 +02:00
class sky130_bitcell(bitcell_base):
2021-08-18 20:21:52 +02:00
"""
A single bit cell (6T, 8T, etc.) This module implements the
single memory cell used in the design. It is a hand-made cell, so
the layout and netlist should be available in the technology
library.
"""
def __init__(self, version="opt1", name=""):
if version == "opt1":
cell_name = "sky130_fd_bd_sram__sram_sp_cell_opt1"
elif version == "opt1a":
cell_name = "sky130_fd_bd_sram__sram_sp_cell_opt1a"
else:
debug.error("Invalid sky130 cell name", -1)
super().__init__(name, cell_name=cell_name, prop=props.bitcell_1port)
debug.info(2, "Create bitcell")
def build_graph(self, graph, inst_name, port_nets):
"""
Adds edges based on inputs/outputs.
Overrides base class function.
"""
self.add_graph_edges(graph, port_nets)