diff --git a/compiler/modules/bitcell_array.py b/compiler/modules/bitcell_array.py index c4aa8c5d..6d546baa 100644 --- a/compiler/modules/bitcell_array.py +++ b/compiler/modules/bitcell_array.py @@ -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() diff --git a/compiler/modules/dummy_array.py b/compiler/modules/dummy_array.py index f890d98e..73d6dc0e 100644 --- a/compiler/modules/dummy_array.py +++ b/compiler/modules/dummy_array.py @@ -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) diff --git a/compiler/modules/pattern.py b/compiler/modules/pattern.py index 3cbd5a08..01f106bc 100644 --- a/compiler/modules/pattern.py +++ b/compiler/modules/pattern.py @@ -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):