X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=decoders%2Fjtag_ejtag%2Fpd.py;h=38933ec56ca3e166963ce807e3a3e0d015056d33;hp=b479398338d69563b15e914f0665d23c5808fc63;hb=aaaf37e1229ca414d4e077b3ce9d05cfd7b19e7f;hpb=4bfb9af72ff70a63322ce238a0ed23a3ebf8505b diff --git a/decoders/jtag_ejtag/pd.py b/decoders/jtag_ejtag/pd.py index b479398..38933ec 100644 --- a/decoders/jtag_ejtag/pd.py +++ b/decoders/jtag_ejtag/pd.py @@ -179,8 +179,8 @@ class PraccState(object): self.data_in = None self.data_out = None self.write = False - self.start_sample = 0 - self.end_sample = 0 + self.ss = 0 + self.es = 0 def __init__(self): self.reset() @@ -231,10 +231,7 @@ class Decoder(srd.Decoder): self.out_ann = self.register(srd.OUTPUT_ANN) def select_reg(self, ir_value: int): - if ir_value in ejtag_state_map: - self.state = ejtag_state_map[ir_value] - else: - self.state = State.RESET + self.state = ejtag_state_map.get(ir_value, State.RESET) def parse_pracc(self): control_in = bin_to_int(self.last_data['in']['data'][0]) @@ -245,8 +242,7 @@ class Decoder(srd.Decoder): (control_out & ControlReg.PRACC)): return - start_sample = self.pracc_state.start_sample - end_sample = self.pracc_state.end_sample + ss, es = self.pracc_state.ss, self.pracc_state.es pracc_write = (control_out & ControlReg.PRNW) != 0 display_string = 'PrAcc: ' @@ -266,17 +262,12 @@ class Decoder(srd.Decoder): self.pracc_state.reset() display_data = [Ann.PRACC, [display_string]] - self.put_at(start_sample, end_sample, display_data) + self.put_at(ss, es, display_data) def parse_control_reg(self, ann): reg_write = ann == Ann.CONTROL_FIELD_IN control_bit_positions = [] - data_select = '' - - if reg_write: - data_select = 'in' - else: - data_select = 'out' + data_select = 'in' if (reg_write) else 'out' control_bit_positions = self.last_data[data_select]['data'][1] control_data = self.last_data[data_select]['data'][0] @@ -295,8 +286,8 @@ class Decoder(srd.Decoder): else: value_descriptions = field[3][0] - start_sample = control_bit_positions[start_bit][0] - end_sample = control_bit_positions[end_bit][1] + ss = control_bit_positions[start_bit][0] + es = control_bit_positions[end_bit][1] value_str = control_data[end_bit : start_bit + 1] value_index = bin_to_int(value_str) @@ -305,7 +296,7 @@ class Decoder(srd.Decoder): long_desc = value_descriptions[value_index] if len(value_descriptions) > value_index else '?' display_data = [ann, [short_desc, long_desc]] - self.put_at(start_sample, end_sample, display_data) + self.put_at(ss, es, display_data) def check_last_data(self): if not hasattr(self, 'last_data'): @@ -329,8 +320,8 @@ class Decoder(srd.Decoder): fastdata_bit_pos = bit_sample_pos[32] data_pos = [bit_sample_pos[31][0], bit_sample_pos[0][1]] - fastdata_sample_start, fastdata_sample_end = fastdata_bit_pos - data_sample_start, data_sample_end = data_pos + ss_fastdata, es_fastdata = fastdata_bit_pos + ss_data, es_data = data_pos display_data = [ann, ['0x{:08X}'.format(data)]] spracc_display_data = [] @@ -340,16 +331,15 @@ class Decoder(srd.Decoder): elif ann == Ann.CONTROL_FIELD_OUT: spracc_display_data = [ann, spracc_read_desc[int(fastdata_state)]] - self.put_at(fastdata_sample_start, fastdata_sample_end, spracc_display_data) - self.put_at(data_sample_start, data_sample_end, display_data) + self.put_at(ss_fastdata, es_fastdata, spracc_display_data) + self.put_at(ss_data, es_data, display_data) def handle_dr_tdi(self, val): value = bin_to_int(val[0]) self.check_last_data() self.last_data['in'] = {'ss': self.ss, 'es': self.es, 'data': val} - self.pracc_state.start_sample = self.ss - self.pracc_state.end_sample = self.es + self.pracc_state.ss, self.pracc_state.es = self.ss, self.es if self.state == State.ADDRESS: self.pracc_state.address_in = value