def timeslice(self, time): Node.timeslice(self,time) ev = self.event_available('IN',time) if ev: newstate = int(not ev.state) ev.set_processed() else: newstate = int(not self.in_port_states['IN']) if self.out_port_states['OUT'] != newstate: self.send_state_change('OUT',newstate, time) self.timeslice_updatestates(time)
def timeslice(self, time): timepass = time - self.lastslice lastslice = self.lastslice Node.timeslice(self, time) if self.state is None: self.state = self.initstate self.send_state_change('CLK', self.state, time) else: period = self.period while (timepass): period = period - 1 timepass = timepass - 1 if period == 0: self.state = int(not self.state) self.send_state_change('CLK', self.state, lastslice + (time - timepass)) period = self.initperiod self.period = period
def timeslice(self, time): Node.timeslice(self, time) A = self.in_port_states['A'] B = self.in_port_states['B'] aevent = self.event_available('A',time) bevent = self.event_available('B',time) if aevent: aevent.set_processed() A = aevent.state if self.in_events.has_key('B'): bevent.set_processed() B = bevent.state result = self.operator(A, B) if result != self.lastout: self.lastout = result self.send_state_change('OUT', result, time) self.timeslice_updatestates(time)
def timeslice(self, time): Node.timeslice(self, time) for node in self.contents: node.timeslice(time)