|  |  | @ -169,7 +169,7 @@ class SimOps: | 
			
		
	
		
		
			
				
					
					|  |  |  |         self.tmp_idx = self.zero_idx + 1 |  |  |  |         self.tmp_idx = self.zero_idx + 1 | 
			
		
	
		
		
			
				
					
					|  |  |  |         self.ppi_offset = self.tmp_idx + 1 |  |  |  |         self.ppi_offset = self.tmp_idx + 1 | 
			
		
	
		
		
			
				
					
					|  |  |  |         self.ppo_offset = self.ppi_offset + len(self.s_nodes) |  |  |  |         self.ppo_offset = self.ppi_offset + len(self.s_nodes) | 
			
		
	
		
		
			
				
					
					|  |  |  |         self.vat_length = self.ppo_offset + len(self.s_nodes) |  |  |  |         self.vat_len = self.ppo_offset + len(self.s_nodes) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         # translate circuit structure into self.ops |  |  |  |         # translate circuit structure into self.ops | 
			
		
	
		
		
			
				
					
					|  |  |  |         ops = [] |  |  |  |         ops = [] | 
			
		
	
	
		
		
			
				
					|  |  | @ -217,7 +217,7 @@ class SimOps: | 
			
		
	
		
		
			
				
					
					|  |  |  |         self.ops = np.asarray(ops, dtype='int32') |  |  |  |         self.ops = np.asarray(ops, dtype='int32') | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         # create a map from fanout lines to stem lines for fork stripping |  |  |  |         # create a map from fanout lines to stem lines for fork stripping | 
			
		
	
		
		
			
				
					
					|  |  |  |         stems = np.zeros(self.vat_length, dtype='int32') - 1  # default to -1: 'no fanout line' |  |  |  |         stems = np.zeros(self.vat_len, dtype='int32') - 1  # default to -1: 'no fanout line' | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         if strip_forks: |  |  |  |         if strip_forks: | 
			
		
	
		
		
			
				
					
					|  |  |  |             for f in circuit.forks.values(): |  |  |  |             for f in circuit.forks.values(): | 
			
		
	
		
		
			
				
					
					|  |  |  |                 prev_line = f.ins[0] |  |  |  |                 prev_line = f.ins[0] | 
			
		
	
	
		
		
			
				
					|  |  | @ -228,8 +228,8 @@ class SimOps: | 
			
		
	
		
		
			
				
					
					|  |  |  |                     stems[ol] = stem_idx |  |  |  |                     stems[ol] = stem_idx | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         # calculate level (distance from PI/PPI) and reference count for each line |  |  |  |         # calculate level (distance from PI/PPI) and reference count for each line | 
			
		
	
		
		
			
				
					
					|  |  |  |         levels = np.zeros(self.vat_length, dtype='int32') |  |  |  |         levels = np.zeros(self.vat_len, dtype='int32') | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         ref_count = np.zeros(self.vat_length, dtype='int32') |  |  |  |         ref_count = np.zeros(self.vat_len, dtype='int32') | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         level_starts = [0] |  |  |  |         level_starts = [0] | 
			
		
	
		
		
			
				
					
					|  |  |  |         current_level = 1 |  |  |  |         current_level = 1 | 
			
		
	
		
		
			
				
					
					|  |  |  |         for i, op in enumerate(self.ops): |  |  |  |         for i, op in enumerate(self.ops): | 
			
		
	
	
		
		
			
				
					|  |  | @ -250,7 +250,7 @@ class SimOps: | 
			
		
	
		
		
			
				
					
					|  |  |  |         self.level_stops = np.asarray(level_starts[1:] + [len(self.ops)], dtype='int32') |  |  |  |         self.level_stops = np.asarray(level_starts[1:] + [len(self.ops)], dtype='int32') | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         # state allocation table. maps line and interface indices to self.state memory locations |  |  |  |         # state allocation table. maps line and interface indices to self.state memory locations | 
			
		
	
		
		
			
				
					
					|  |  |  |         self.vat = np.zeros((self.vat_length, 3), dtype='int') |  |  |  |         self.vat = np.zeros((self.vat_len, 3), dtype='int') | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         self.vat[:, 0] = -1 |  |  |  |         self.vat[:, 0] = -1 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         h = Heap() |  |  |  |         h = Heap() | 
			
		
	
	
		
		
			
				
					|  |  | 
 |