From 74c12f944ff47567a85c7e881252b5844cc6bf8b Mon Sep 17 00:00:00 2001 From: Jesse Cirimelli-Low Date: Mon, 14 Aug 2023 13:59:31 -0700 Subject: [PATCH] mirror skywater dp --- compiler/modules/bitcell_array.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/compiler/modules/bitcell_array.py b/compiler/modules/bitcell_array.py index 582829cf..08dff652 100644 --- a/compiler/modules/bitcell_array.py +++ b/compiler/modules/bitcell_array.py @@ -60,9 +60,17 @@ class bitcell_array(bitcell_base_array): def create_instances(self): self.cell_inst={} - core_block = [[0 for x in range(1)] for y in range(2)] - 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') + if self.cell.mirror.y: + core_block = [[0 for x in range(2)] for y in range(2)] + 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') + core_block[0][1] = geometry.instance("core_0_1", mod=self.cell, is_bitcell=True, mirror='MY') + core_block[1][1] = geometry.instance("core_1_1", mod=self.cell, is_bitcell=True, mirror='XY') + else: + core_block = [[0 for x in range(1)] for y in range(2)] + 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,name_template="bit_r{0}_c{1}") self.pattern.connect_array()