mirror of https://github.com/openXC7/prjxray.git
timfuz: handle passthrough lut bel_pin
Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
parent
dd88616a88
commit
0d8c5aaa29
|
|
@ -139,6 +139,8 @@ proc write_info4 {} {
|
||||||
set dst_cell_pin [get_pins $dst_cell_pin_str]
|
set dst_cell_pin [get_pins $dst_cell_pin_str]
|
||||||
set dst_cell [get_cells -of_objects $dst_cell_pin]
|
set dst_cell [get_cells -of_objects $dst_cell_pin]
|
||||||
set dst_bel [get_bels -of_objects $dst_cell]
|
set dst_bel [get_bels -of_objects $dst_cell]
|
||||||
|
# WARNING: when there is a passthrough LUT, this can be multiple values
|
||||||
|
# (one for the real dest pin, and one for the passthrough lut input)
|
||||||
set dst_bel_pin [get_bel_pins -of_objects $dst_cell_pin]
|
set dst_bel_pin [get_bel_pins -of_objects $dst_cell_pin]
|
||||||
set dst_site [get_sites -of_objects $dst_bel]
|
set dst_site [get_sites -of_objects $dst_bel]
|
||||||
set dst_site_type [get_property SITE_TYPE $dst_site]
|
set dst_site_type [get_property SITE_TYPE $dst_site]
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,21 @@ def gen_timing4(fn, speed_i2s):
|
||||||
assert len(parts) == ncols, "Expected %u parts, got %u" % (
|
assert len(parts) == ncols, "Expected %u parts, got %u" % (
|
||||||
ncols, len(parts))
|
ncols, len(parts))
|
||||||
_lintype, net, src_site, src_site_type, src_site_pin, src_bel, src_bel_pin, dst_site, dst_site_type, dst_site_pin, dst_bel, dst_bel_pin, ico, fast_max, fast_min, slow_max, slow_min, pips, wires = parts
|
_lintype, net, src_site, src_site_type, src_site_pin, src_bel, src_bel_pin, dst_site, dst_site_type, dst_site_pin, dst_bel, dst_bel_pin, ico, fast_max, fast_min, slow_max, slow_min, pips, wires = parts
|
||||||
|
|
||||||
|
def filt_passthru_lut(bel_pins):
|
||||||
|
'''
|
||||||
|
Ex: SLICE_X11Y110/A6LUT/A6 SLICE_X11Y110/AFF/D
|
||||||
|
'''
|
||||||
|
parts = bel_pins.split()
|
||||||
|
if len(parts) == 1:
|
||||||
|
return parts[0]
|
||||||
|
else:
|
||||||
|
assert len(parts) == 2
|
||||||
|
# the LUT shoudl always go first?
|
||||||
|
bel_pin_lut, bel_pin_dst = parts
|
||||||
|
assert '6LUT' in bel_pin_lut
|
||||||
|
return bel_pin_dst
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'net': net,
|
'net': net,
|
||||||
'src': {
|
'src': {
|
||||||
|
|
@ -82,7 +97,7 @@ def gen_timing4(fn, speed_i2s):
|
||||||
'site_type': dst_site_type,
|
'site_type': dst_site_type,
|
||||||
'site_pin': dst_site_pin,
|
'site_pin': dst_site_pin,
|
||||||
'bel': dst_bel,
|
'bel': dst_bel,
|
||||||
'bel_pin': dst_bel_pin,
|
'bel_pin': filt_passthru_lut(dst_bel_pin),
|
||||||
},
|
},
|
||||||
't': {
|
't': {
|
||||||
# ps
|
# ps
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue