From 9eedb5d9483affc8d3fc6edcd123569184df4f8f Mon Sep 17 00:00:00 2001 From: chungshien-chai Date: Tue, 17 Sep 2024 13:38:07 -0700 Subject: [PATCH 1/3] Make sure SERDES data with is good --- .../Gemini/config_attributes.mapping.json | 58 ++++++++++++++++++- .../Virgo/config_attributes.mapping.json | 58 ++++++++++++++++++- ...ompact_10x8_config_attributes.mapping.json | 58 ++++++++++++++++++- ...ompact_22x4_config_attributes.mapping.json | 58 ++++++++++++++++++- 4 files changed, 228 insertions(+), 4 deletions(-) diff --git a/src/ConfigurationRaptor/CFGDeviceDatabase/Gemini/config_attributes.mapping.json b/src/ConfigurationRaptor/CFGDeviceDatabase/Gemini/config_attributes.mapping.json index bb8fa237..ce46f153 100644 --- a/src/ConfigurationRaptor/CFGDeviceDatabase/Gemini/config_attributes.mapping.json +++ b/src/ConfigurationRaptor/CFGDeviceDatabase/Gemini/config_attributes.mapping.json @@ -66,6 +66,16 @@ "RX_BYPASS" : "RX_gear_on" } }, + "I_SERDES.BYPASS_PEER" : { + "rules" : { + "WIDTH" : "__arg0__" + }, + "results" : { + "__define__" : "parse_serdes_width_peer", + "__location__": "__peer_location__", + "PEER_IS_ON" : "__peer_is_on__" + } + }, "I_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -121,6 +131,16 @@ "TX_BYPASS" : "TX_gear_on" } }, + "O_SERDES.BYPASS_PEER" : { + "rules" : { + "WIDTH" : "__arg0__" + }, + "results" : { + "__define__" : "parse_serdes_width_peer", + "__location__": "__peer_location__", + "PEER_IS_ON" : "__peer_is_on__" + } + }, "O_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -438,7 +458,8 @@ "g_boot_clock_resources = 0", "g_pin_resources = {}", "g_fabric_clock_resources = 0", - "g_pll_resources = []" + "g_pll_resources = []", + "g_gearbox_width = {}" ] }, "__primary_validation__" : { @@ -533,6 +554,7 @@ "__secondary_validation__" : { "__seqeunce__" : [ "__check_fabric_clock_resource__", + "__check_data_width_parameter__", "__check_data_rate_parameter__", "__check_dpa_mode_parameter__", "__check_clock_phase_parameter__", @@ -546,6 +568,25 @@ "pin_result = (__connectivity_count__ + g_fabric_clock_resources) <= MAX_FABRIC_CLOCK_RESOURCE" ] }, + "__check_data_width_parameter__" : { + "__module__" : ["I_SERDES", "O_SERDES"], + "__parameter__" : ["WIDTH"], + "__equation__" : [ + "import re", + "assert '__location__' in g_all_pins", + "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", + "assert m != None", + "pn = 'P' if m.group(6) == 'N' else 'N'", + "index = int(m.group(4)) & ~1", + "index += (1 if pn == 'N' else 0)", + "peer_location = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", + "width = int('WIDTH')", + "pin_result = width >= 3 and width <= (10 if m.group(6) == 'P' else 5)", + "pin_result = pin_result and ((peer_location not in g_gearbox_width) or (g_gearbox_width[peer_location] <= 5 and width <=5))", + "g_gearbox_width['__location__' if pin_result else ''] = width", + "g_gearbox_width.pop('', None)" + ] + }, "__check_data_rate_parameter__" : { "__module__" : ["I_SERDES", "O_SERDES", "O_SERDES_CLK"], "__parameter__" : ["DATA_RATE"], @@ -648,6 +689,21 @@ "width = int('__arg0__')", "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" ] + }, + "parse_serdes_width_peer": { + "__args__" : ["__peer_is_on__", "__peer_location__"], + "__equation__" : [ + "import re", + "assert '__location__' in g_all_pins", + "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", + "assert m != None", + "pn = 'P' if m.group(6) == 'N' else 'N'", + "index = int(m.group(4)) & ~1", + "index += (1 if pn == 'N' else 0)", + "__peer_location__ = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", + "width = int('__arg0__')", + "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" + ] } } } \ No newline at end of file diff --git a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/config_attributes.mapping.json b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/config_attributes.mapping.json index bb8fa237..ce46f153 100644 --- a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/config_attributes.mapping.json +++ b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/config_attributes.mapping.json @@ -66,6 +66,16 @@ "RX_BYPASS" : "RX_gear_on" } }, + "I_SERDES.BYPASS_PEER" : { + "rules" : { + "WIDTH" : "__arg0__" + }, + "results" : { + "__define__" : "parse_serdes_width_peer", + "__location__": "__peer_location__", + "PEER_IS_ON" : "__peer_is_on__" + } + }, "I_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -121,6 +131,16 @@ "TX_BYPASS" : "TX_gear_on" } }, + "O_SERDES.BYPASS_PEER" : { + "rules" : { + "WIDTH" : "__arg0__" + }, + "results" : { + "__define__" : "parse_serdes_width_peer", + "__location__": "__peer_location__", + "PEER_IS_ON" : "__peer_is_on__" + } + }, "O_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -438,7 +458,8 @@ "g_boot_clock_resources = 0", "g_pin_resources = {}", "g_fabric_clock_resources = 0", - "g_pll_resources = []" + "g_pll_resources = []", + "g_gearbox_width = {}" ] }, "__primary_validation__" : { @@ -533,6 +554,7 @@ "__secondary_validation__" : { "__seqeunce__" : [ "__check_fabric_clock_resource__", + "__check_data_width_parameter__", "__check_data_rate_parameter__", "__check_dpa_mode_parameter__", "__check_clock_phase_parameter__", @@ -546,6 +568,25 @@ "pin_result = (__connectivity_count__ + g_fabric_clock_resources) <= MAX_FABRIC_CLOCK_RESOURCE" ] }, + "__check_data_width_parameter__" : { + "__module__" : ["I_SERDES", "O_SERDES"], + "__parameter__" : ["WIDTH"], + "__equation__" : [ + "import re", + "assert '__location__' in g_all_pins", + "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", + "assert m != None", + "pn = 'P' if m.group(6) == 'N' else 'N'", + "index = int(m.group(4)) & ~1", + "index += (1 if pn == 'N' else 0)", + "peer_location = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", + "width = int('WIDTH')", + "pin_result = width >= 3 and width <= (10 if m.group(6) == 'P' else 5)", + "pin_result = pin_result and ((peer_location not in g_gearbox_width) or (g_gearbox_width[peer_location] <= 5 and width <=5))", + "g_gearbox_width['__location__' if pin_result else ''] = width", + "g_gearbox_width.pop('', None)" + ] + }, "__check_data_rate_parameter__" : { "__module__" : ["I_SERDES", "O_SERDES", "O_SERDES_CLK"], "__parameter__" : ["DATA_RATE"], @@ -648,6 +689,21 @@ "width = int('__arg0__')", "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" ] + }, + "parse_serdes_width_peer": { + "__args__" : ["__peer_is_on__", "__peer_location__"], + "__equation__" : [ + "import re", + "assert '__location__' in g_all_pins", + "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", + "assert m != None", + "pn = 'P' if m.group(6) == 'N' else 'N'", + "index = int(m.group(4)) & ~1", + "index += (1 if pn == 'N' else 0)", + "__peer_location__ = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", + "width = int('__arg0__')", + "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" + ] } } } \ No newline at end of file diff --git a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_10x8_config_attributes.mapping.json b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_10x8_config_attributes.mapping.json index 8f9d5f0b..15998b98 100644 --- a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_10x8_config_attributes.mapping.json +++ b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_10x8_config_attributes.mapping.json @@ -66,6 +66,16 @@ "RX_BYPASS" : "RX_gear_on" } }, + "I_SERDES.BYPASS_PEER" : { + "rules" : { + "WIDTH" : "__arg0__" + }, + "results" : { + "__define__" : "parse_serdes_width_peer", + "__location__": "__peer_location__", + "PEER_IS_ON" : "__peer_is_on__" + } + }, "I_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -121,6 +131,16 @@ "TX_BYPASS" : "TX_gear_on" } }, + "O_SERDES.BYPASS_PEER" : { + "rules" : { + "WIDTH" : "__arg0__" + }, + "results" : { + "__define__" : "parse_serdes_width_peer", + "__location__": "__peer_location__", + "PEER_IS_ON" : "__peer_is_on__" + } + }, "O_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -438,7 +458,8 @@ "g_boot_clock_resources = 0", "g_pin_resources = {}", "g_fabric_clock_resources = 0", - "g_pll_resources = []" + "g_pll_resources = []", + "g_gearbox_width = {}" ] }, "__primary_validation__" : { @@ -533,6 +554,7 @@ "__secondary_validation__" : { "__seqeunce__" : [ "__check_fabric_clock_resource__", + "__check_data_width_parameter__", "__check_data_rate_parameter__", "__check_dpa_mode_parameter__", "__check_clock_phase_parameter__", @@ -546,6 +568,25 @@ "pin_result = (__connectivity_count__ + g_fabric_clock_resources) <= MAX_FABRIC_CLOCK_RESOURCE" ] }, + "__check_data_width_parameter__" : { + "__module__" : ["I_SERDES", "O_SERDES"], + "__parameter__" : ["WIDTH"], + "__equation__" : [ + "import re", + "assert '__location__' in g_all_pins", + "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", + "assert m != None", + "pn = 'P' if m.group(6) == 'N' else 'N'", + "index = int(m.group(4)) & ~1", + "index += (1 if pn == 'N' else 0)", + "peer_location = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", + "width = int('WIDTH')", + "pin_result = width >= 3 and width <= (10 if m.group(6) == 'P' else 5)", + "pin_result = pin_result and ((peer_location not in g_gearbox_width) or (g_gearbox_width[peer_location] <= 5 and width <=5))", + "g_gearbox_width['__location__' if pin_result else ''] = width", + "g_gearbox_width.pop('', None)" + ] + }, "__check_data_rate_parameter__" : { "__module__" : ["I_SERDES", "O_SERDES", "O_SERDES_CLK"], "__parameter__" : ["DATA_RATE"], @@ -648,6 +689,21 @@ "width = int('__arg0__')", "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" ] + }, + "parse_serdes_width_peer": { + "__args__" : ["__peer_is_on__", "__peer_location__"], + "__equation__" : [ + "import re", + "assert '__location__' in g_all_pins", + "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", + "assert m != None", + "pn = 'P' if m.group(6) == 'N' else 'N'", + "index = int(m.group(4)) & ~1", + "index += (1 if pn == 'N' else 0)", + "__peer_location__ = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", + "width = int('__arg0__')", + "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" + ] } } } \ No newline at end of file diff --git a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_22x4_config_attributes.mapping.json b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_22x4_config_attributes.mapping.json index f607fb80..b135e61b 100644 --- a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_22x4_config_attributes.mapping.json +++ b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_22x4_config_attributes.mapping.json @@ -66,6 +66,16 @@ "RX_BYPASS" : "RX_gear_on" } }, + "I_SERDES.BYPASS_PEER" : { + "rules" : { + "WIDTH" : "__arg0__" + }, + "results" : { + "__define__" : "parse_serdes_width_peer", + "__location__": "__peer_location__", + "PEER_IS_ON" : "__peer_is_on__" + } + }, "I_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -121,6 +131,16 @@ "TX_BYPASS" : "TX_gear_on" } }, + "O_SERDES.BYPASS_PEER" : { + "rules" : { + "WIDTH" : "__arg0__" + }, + "results" : { + "__define__" : "parse_serdes_width_peer", + "__location__": "__peer_location__", + "PEER_IS_ON" : "__peer_is_on__" + } + }, "O_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -437,7 +457,8 @@ "g_boot_clock_resources = 0", "g_pin_resources = {}", "g_fabric_clock_resources = 0", - "g_pll_resources = []" + "g_pll_resources = []", + "g_gearbox_width = {}" ] }, "__primary_validation__" : { @@ -532,6 +553,7 @@ "__secondary_validation__" : { "__seqeunce__" : [ "__check_fabric_clock_resource__", + "__check_data_width_parameter__", "__check_data_rate_parameter__", "__check_dpa_mode_parameter__", "__check_clock_phase_parameter__", @@ -545,6 +567,25 @@ "pin_result = (__connectivity_count__ + g_fabric_clock_resources) <= MAX_FABRIC_CLOCK_RESOURCE" ] }, + "__check_data_width_parameter__" : { + "__module__" : ["I_SERDES", "O_SERDES"], + "__parameter__" : ["WIDTH"], + "__equation__" : [ + "import re", + "assert '__location__' in g_all_pins", + "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", + "assert m != None", + "pn = 'P' if m.group(6) == 'N' else 'N'", + "index = int(m.group(4)) & ~1", + "index += (1 if pn == 'N' else 0)", + "peer_location = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", + "width = int('WIDTH')", + "pin_result = width >= 3 and width <= (10 if m.group(6) == 'P' else 5)", + "pin_result = pin_result and ((peer_location not in g_gearbox_width) or (g_gearbox_width[peer_location] <= 5 and width <=5))", + "g_gearbox_width['__location__' if pin_result else ''] = width", + "g_gearbox_width.pop('', None)" + ] + }, "__check_data_rate_parameter__" : { "__module__" : ["I_SERDES", "O_SERDES", "O_SERDES_CLK"], "__parameter__" : ["DATA_RATE"], @@ -647,6 +688,21 @@ "width = int('__arg0__')", "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" ] + }, + "parse_serdes_width_peer": { + "__args__" : ["__peer_is_on__", "__peer_location__"], + "__equation__" : [ + "import re", + "assert '__location__' in g_all_pins", + "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", + "assert m != None", + "pn = 'P' if m.group(6) == 'N' else 'N'", + "index = int(m.group(4)) & ~1", + "index += (1 if pn == 'N' else 0)", + "__peer_location__ = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", + "width = int('__arg0__')", + "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" + ] } } } \ No newline at end of file From 61aa9888dc1b193db165b3fcee70f995afd3feb9 Mon Sep 17 00:00:00 2001 From: chungshien-chai Date: Tue, 17 Sep 2024 14:20:25 -0700 Subject: [PATCH 2/3] Revert peer gearbox PEER_IS_ON setting --- .../Gemini/config_attributes.mapping.json | 35 ------------------- .../Virgo/config_attributes.mapping.json | 35 ------------------- ...ompact_10x8_config_attributes.mapping.json | 35 ------------------- ...ompact_22x4_config_attributes.mapping.json | 35 ------------------- 4 files changed, 140 deletions(-) diff --git a/src/ConfigurationRaptor/CFGDeviceDatabase/Gemini/config_attributes.mapping.json b/src/ConfigurationRaptor/CFGDeviceDatabase/Gemini/config_attributes.mapping.json index ce46f153..e8e48ebc 100644 --- a/src/ConfigurationRaptor/CFGDeviceDatabase/Gemini/config_attributes.mapping.json +++ b/src/ConfigurationRaptor/CFGDeviceDatabase/Gemini/config_attributes.mapping.json @@ -66,16 +66,6 @@ "RX_BYPASS" : "RX_gear_on" } }, - "I_SERDES.BYPASS_PEER" : { - "rules" : { - "WIDTH" : "__arg0__" - }, - "results" : { - "__define__" : "parse_serdes_width_peer", - "__location__": "__peer_location__", - "PEER_IS_ON" : "__peer_is_on__" - } - }, "I_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -131,16 +121,6 @@ "TX_BYPASS" : "TX_gear_on" } }, - "O_SERDES.BYPASS_PEER" : { - "rules" : { - "WIDTH" : "__arg0__" - }, - "results" : { - "__define__" : "parse_serdes_width_peer", - "__location__": "__peer_location__", - "PEER_IS_ON" : "__peer_is_on__" - } - }, "O_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -689,21 +669,6 @@ "width = int('__arg0__')", "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" ] - }, - "parse_serdes_width_peer": { - "__args__" : ["__peer_is_on__", "__peer_location__"], - "__equation__" : [ - "import re", - "assert '__location__' in g_all_pins", - "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", - "assert m != None", - "pn = 'P' if m.group(6) == 'N' else 'N'", - "index = int(m.group(4)) & ~1", - "index += (1 if pn == 'N' else 0)", - "__peer_location__ = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", - "width = int('__arg0__')", - "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" - ] } } } \ No newline at end of file diff --git a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/config_attributes.mapping.json b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/config_attributes.mapping.json index ce46f153..e8e48ebc 100644 --- a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/config_attributes.mapping.json +++ b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/config_attributes.mapping.json @@ -66,16 +66,6 @@ "RX_BYPASS" : "RX_gear_on" } }, - "I_SERDES.BYPASS_PEER" : { - "rules" : { - "WIDTH" : "__arg0__" - }, - "results" : { - "__define__" : "parse_serdes_width_peer", - "__location__": "__peer_location__", - "PEER_IS_ON" : "__peer_is_on__" - } - }, "I_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -131,16 +121,6 @@ "TX_BYPASS" : "TX_gear_on" } }, - "O_SERDES.BYPASS_PEER" : { - "rules" : { - "WIDTH" : "__arg0__" - }, - "results" : { - "__define__" : "parse_serdes_width_peer", - "__location__": "__peer_location__", - "PEER_IS_ON" : "__peer_is_on__" - } - }, "O_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -689,21 +669,6 @@ "width = int('__arg0__')", "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" ] - }, - "parse_serdes_width_peer": { - "__args__" : ["__peer_is_on__", "__peer_location__"], - "__equation__" : [ - "import re", - "assert '__location__' in g_all_pins", - "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", - "assert m != None", - "pn = 'P' if m.group(6) == 'N' else 'N'", - "index = int(m.group(4)) & ~1", - "index += (1 if pn == 'N' else 0)", - "__peer_location__ = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", - "width = int('__arg0__')", - "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" - ] } } } \ No newline at end of file diff --git a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_10x8_config_attributes.mapping.json b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_10x8_config_attributes.mapping.json index 15998b98..ca1d1de5 100644 --- a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_10x8_config_attributes.mapping.json +++ b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_10x8_config_attributes.mapping.json @@ -66,16 +66,6 @@ "RX_BYPASS" : "RX_gear_on" } }, - "I_SERDES.BYPASS_PEER" : { - "rules" : { - "WIDTH" : "__arg0__" - }, - "results" : { - "__define__" : "parse_serdes_width_peer", - "__location__": "__peer_location__", - "PEER_IS_ON" : "__peer_is_on__" - } - }, "I_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -131,16 +121,6 @@ "TX_BYPASS" : "TX_gear_on" } }, - "O_SERDES.BYPASS_PEER" : { - "rules" : { - "WIDTH" : "__arg0__" - }, - "results" : { - "__define__" : "parse_serdes_width_peer", - "__location__": "__peer_location__", - "PEER_IS_ON" : "__peer_is_on__" - } - }, "O_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -689,21 +669,6 @@ "width = int('__arg0__')", "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" ] - }, - "parse_serdes_width_peer": { - "__args__" : ["__peer_is_on__", "__peer_location__"], - "__equation__" : [ - "import re", - "assert '__location__' in g_all_pins", - "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", - "assert m != None", - "pn = 'P' if m.group(6) == 'N' else 'N'", - "index = int(m.group(4)) & ~1", - "index += (1 if pn == 'N' else 0)", - "__peer_location__ = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", - "width = int('__arg0__')", - "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" - ] } } } \ No newline at end of file diff --git a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_22x4_config_attributes.mapping.json b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_22x4_config_attributes.mapping.json index b135e61b..2d88336f 100644 --- a/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_22x4_config_attributes.mapping.json +++ b/src/ConfigurationRaptor/CFGDeviceDatabase/Virgo/gemini_compact_22x4_config_attributes.mapping.json @@ -66,16 +66,6 @@ "RX_BYPASS" : "RX_gear_on" } }, - "I_SERDES.BYPASS_PEER" : { - "rules" : { - "WIDTH" : "__arg0__" - }, - "results" : { - "__define__" : "parse_serdes_width_peer", - "__location__": "__peer_location__", - "PEER_IS_ON" : "__peer_is_on__" - } - }, "I_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -131,16 +121,6 @@ "TX_BYPASS" : "TX_gear_on" } }, - "O_SERDES.BYPASS_PEER" : { - "rules" : { - "WIDTH" : "__arg0__" - }, - "results" : { - "__define__" : "parse_serdes_width_peer", - "__location__": "__peer_location__", - "PEER_IS_ON" : "__peer_is_on__" - } - }, "O_SERDES.DDR_MODE" : { "rules" : { "DATA_RATE" : "__arg0__" @@ -688,21 +668,6 @@ "width = int('__arg0__')", "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" ] - }, - "parse_serdes_width_peer": { - "__args__" : ["__peer_is_on__", "__peer_location__"], - "__equation__" : [ - "import re", - "assert '__location__' in g_all_pins", - "m = re.search(r'H(P|R?)_(\\d?)(|_CC?)_(\\d+?)_(\\d\\d?)(P|N?)', '__location__')", - "assert m != None", - "pn = 'P' if m.group(6) == 'N' else 'N'", - "index = int(m.group(4)) & ~1", - "index += (1 if pn == 'N' else 0)", - "__peer_location__ = 'H%s_%s%s_%d_%s%s' % (m.group(1), m.group(2), m.group(3), index, m.group(5), pn)", - "width = int('__arg0__')", - "__peer_is_on__ = 'PEER_on' if width <= 5 else 'PEER_off'" - ] } } } \ No newline at end of file From db4bb5068fab31473a41c00cf816ce09838ca431 Mon Sep 17 00:00:00 2001 From: chungshien-chai Date: Tue, 17 Sep 2024 16:58:08 -0700 Subject: [PATCH 3/3] Port latest FOEDAG_rs and yosys_verific_rs --- FOEDAG_rs | 2 +- yosys_verific_rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/FOEDAG_rs b/FOEDAG_rs index 90a0c8d6..1695d54e 160000 --- a/FOEDAG_rs +++ b/FOEDAG_rs @@ -1 +1 @@ -Subproject commit 90a0c8d6c3eb15ba35921902702acdb2ceb74ec4 +Subproject commit 1695d54e83ca2f59bf0760d8334e63ca41f75612 diff --git a/yosys_verific_rs b/yosys_verific_rs index 8ecfba6e..919dee7c 160000 --- a/yosys_verific_rs +++ b/yosys_verific_rs @@ -1 +1 @@ -Subproject commit 8ecfba6eae88aa53904fe4bbd488c5eb7914f554 +Subproject commit 919dee7cd258fda3b18559a2fa033cce41ab6116