mirror of https://github.com/openXC7/prjxray.git
Add workaround for double counting of long wire delay.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
This commit is contained in:
parent
f7e3442f74
commit
328903d2be
|
|
@ -125,7 +125,13 @@ class Net(object):
|
||||||
|
|
||||||
def extend_rc_tree(self, ws, current_rc_root, timing_lookup, node):
|
def extend_rc_tree(self, ws, current_rc_root, timing_lookup, node):
|
||||||
rc_elements = []
|
rc_elements = []
|
||||||
for wire in node['wires']:
|
|
||||||
|
# LV nodes have a workaround applied because of a working in the
|
||||||
|
# pip timing.
|
||||||
|
is_lv_node = any(
|
||||||
|
wire['name'].split('/')[1].startswith('LV')
|
||||||
|
for wire in node['wires'])
|
||||||
|
for idx, wire in enumerate(node['wires']):
|
||||||
wire_timing = timing_lookup.find_wire(wire['name'])
|
wire_timing = timing_lookup.find_wire(wire['name'])
|
||||||
ws['A{}'.format(self.row)] = wire['name']
|
ws['A{}'.format(self.row)] = wire['name']
|
||||||
ws['B{}'.format(self.row)] = 'Part of wire'
|
ws['B{}'.format(self.row)] = 'Part of wire'
|
||||||
|
|
@ -134,8 +140,20 @@ class Net(object):
|
||||||
cells = {}
|
cells = {}
|
||||||
cells['R'] = 'C{}'.format(self.row)
|
cells['R'] = 'C{}'.format(self.row)
|
||||||
cells['C'] = 'D{}'.format(self.row)
|
cells['C'] = 'D{}'.format(self.row)
|
||||||
ws[cells['R']] = wire_timing.resistance
|
if not is_lv_node:
|
||||||
ws[cells['C']] = wire_timing.capacitance
|
ws[cells['R']] = wire_timing.resistance
|
||||||
|
ws[cells['C']] = wire_timing.capacitance
|
||||||
|
else:
|
||||||
|
# Only use first 2 wire RC's, ignore the rest. It appears
|
||||||
|
# that some of the RC constant was lumped into the switch
|
||||||
|
# timing, so don't double count.
|
||||||
|
if idx < 2:
|
||||||
|
ws[cells['R']] = wire_timing.resistance
|
||||||
|
ws[cells['C']] = wire_timing.capacitance
|
||||||
|
else:
|
||||||
|
ws[cells['R']] = 0
|
||||||
|
ws[cells['C']] = 0
|
||||||
|
|
||||||
rc_elements.append(
|
rc_elements.append(
|
||||||
RcElement(
|
RcElement(
|
||||||
resistance=cells['R'],
|
resistance=cells['R'],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue