|
|
@ -114,7 +114,7 @@ class StilFile: |
|
|
|
for si_port in self.si_ports.keys(): |
|
|
|
for si_port in self.si_ports.keys(): |
|
|
|
pattern = logic.mv_xor(p.load[si_port], scan_inversions[si_port]) |
|
|
|
pattern = logic.mv_xor(p.load[si_port], scan_inversions[si_port]) |
|
|
|
init.data[scan_maps[si_port], i] = pattern.data[:, 0] |
|
|
|
init.data[scan_maps[si_port], i] = pattern.data[:, 0] |
|
|
|
init.data[pi_map, i] = logic.MVArray(p.launch['_pi']).data[:, 0] |
|
|
|
init.data[pi_map, i] = logic.MVArray(p.launch['_pi'] if '_pi' in p.launch else p.capture['_pi']).data[:, 0] |
|
|
|
launch_bp = logic.BPArray(init) |
|
|
|
launch_bp = logic.BPArray(init) |
|
|
|
sim4v = LogicSim(circuit, len(init), m=4) |
|
|
|
sim4v = LogicSim(circuit, len(init), m=4) |
|
|
|
sim4v.assign(launch_bp) |
|
|
|
sim4v.assign(launch_bp) |
|
|
@ -122,8 +122,8 @@ class StilFile: |
|
|
|
sim4v.capture(launch_bp) |
|
|
|
sim4v.capture(launch_bp) |
|
|
|
launch = logic.MVArray(launch_bp) |
|
|
|
launch = logic.MVArray(launch_bp) |
|
|
|
for i, p in enumerate(self.patterns): |
|
|
|
for i, p in enumerate(self.patterns): |
|
|
|
# if there was no launch clock, then init = launch |
|
|
|
# if there was no launch cycle or launch clock, then init = launch |
|
|
|
if ('P' not in p.launch['_pi']) or ('P' not in p.capture['_pi']): |
|
|
|
if '_pi' not in p.launch or 'P' not in p.launch['_pi'] or 'P' not in p.capture['_pi']: |
|
|
|
for si_port in self.si_ports.keys(): |
|
|
|
for si_port in self.si_ports.keys(): |
|
|
|
pattern = logic.mv_xor(p.load[si_port], scan_inversions[si_port]) |
|
|
|
pattern = logic.mv_xor(p.load[si_port], scan_inversions[si_port]) |
|
|
|
launch.data[scan_maps[si_port], i] = pattern.data[:, 0] |
|
|
|
launch.data[scan_maps[si_port], i] = pattern.data[:, 0] |
|
|
|