remove MY mirroring in scmos

This commit is contained in:
Jesse Cirimelli-Low 2023-08-01 19:05:55 -07:00
parent d9d8cb2983
commit 5a764c9d43
3 changed files with 8 additions and 12 deletions

View File

@ -60,12 +60,10 @@ class bitcell_array(bitcell_base_array):
def create_instances(self):
self.cell_inst={}
core_block = [[0 for x in range(2)] for y in range(2)]
# block[col][row
core_block[(0 + self.column_offset) %2][0] = geometry.instance("core_0_0", mod=self.cell, is_bitcell=True)
core_block[(0 + self.column_offset) %2][1] = geometry.instance("core_1_0", mod=self.cell, is_bitcell=True, mirror='MX')
core_block[(1 + self.column_offset) %2][0] = geometry.instance("core_0_1", mod=self.cell, is_bitcell=True, mirror='MY')
core_block[(1 + self.column_offset) %2][1] = geometry.instance("core_1_1", mod=self.cell, is_bitcell=True, mirror='XY')
core_block = [[0 for x in range(1)] for y in range(2)]
# block[row][col]
core_block[0][0] = geometry.instance("core_0_0", mod=self.cell, is_bitcell=True)
core_block[1][0] = geometry.instance("core_1_0", mod=self.cell, is_bitcell=True, mirror='MX')
self.pattern = pattern(self, "bitcell_array", core_block, num_rows=self.row_size, num_cols=self.column_size)
self.pattern.connect_array()

View File

@ -52,11 +52,9 @@ class dummy_array(bitcell_base_array):
def create_instances(self):
""" Create the module instances used in this design """
self.cell_inst={}
core_block = [[0 for x in range(2)] for y in range(2)]
core_block[(0 + self.column_offset) %2][(0+self.mirror) %2] = geometry.instance("core_0_0", mod=self.dummy_cell, is_bitcell=True)
core_block[(0 + self.column_offset) %2][(1+self.mirror) %2] = geometry.instance("core_1_0", mod=self.dummy_cell, is_bitcell=True, mirror='MX')
core_block[(1 + self.column_offset) %2][(0+self.mirror) %2] = geometry.instance("core_0_1", mod=self.dummy_cell, is_bitcell=True, mirror='MY')
core_block[(1 + self.column_offset) %2][(1+self.mirror) %2] = geometry.instance("core_1_1", mod=self.dummy_cell, is_bitcell=True, mirror='XY')
core_block = [[0 for x in range(1)] for y in range(2)]
core_block[(0+self.mirror) %2][0] = geometry.instance("core_0_0", mod=self.dummy_cell, is_bitcell=True)
core_block[(1+self.mirror) %2][0] = geometry.instance("core_1_0", mod=self.dummy_cell, is_bitcell=True, mirror='MX')
self.pattern = pattern(self, "dummy_array", core_block, num_rows=self.row_size, num_cols=self.column_size)

View File

@ -108,7 +108,7 @@ class pattern():
for dr in range(len(block)):
for dc in range(len(block[0])):
if(self.bit_rows.count(self.num_rows) != self.num_cols and self.bit_cols.count(self.bit_cols) != self.num_rows):
inst = block[dc][dr]
inst = block[dr][dc]
if(len(self.bit_rows) <= col + dc):
self.bit_rows.append(0)
if(len(self.bit_cols) <= row + dr):