@@ -274,7 +274,8 @@ def display_ai_response(response, error):
274274 config = ai_assistant .lastRecommendedConfigs .get ("balanced" , {})
275275 if config :
276276 apply_config_by_mode ("balanced" )
277- clickUpdate (master )
277+ updateMultiCgraPanelOnly (master ) # Update Multi-CGRA panel without resetting Per-CGRA entries
278+ clickUpdate (master ) # Update Per-CGRA panel with AI values
278279 # Apply FU types after clickUpdate to avoid being overwritten
279280 fu_types = config .get ("fu_types" , [])
280281 apply_fu_types_to_cgra (fu_types )
@@ -508,7 +509,8 @@ def apply_recommended_config():
508509 def apply_and_update (mode ):
509510 dialog .destroy ()
510511 apply_config_by_mode (mode )
511- clickUpdate (master )
512+ updateMultiCgraPanelOnly (master ) # Update Multi-CGRA panel without resetting Per-CGRA entries
513+ clickUpdate (master ) # Update Per-CGRA panel with AI values
512514 fu_types = ai_assistant .lastRecommendedConfigs .get (mode , {}).get ("fu_types" , [])
513515 apply_fu_types_to_cgra (fu_types )
514516
@@ -1984,6 +1986,30 @@ def clickMultiCgraUpdate(root):
19841986 create_param_pannel (root )
19851987
19861988
1989+ def updateMultiCgraPanelOnly (root ):
1990+ """Only update Multi-CGRA panel visualization without resetting Per-CGRA entries."""
1991+ cgraRows = int (widgets ["multiCgraRowsLabelEntry" ].get ())
1992+ cgraCols = int (widgets ["multiCgraColumnsEntry" ].get ())
1993+
1994+ global multiCgraParam
1995+ global selectedCgraParam
1996+
1997+ multiCgraParam = MultiCGRAParam (rows = cgraRows , cols = cgraCols , globalWidgets = widgets )
1998+ multiCgraParam .setSelectedCgra (0 , 0 )
1999+ selectedCgraParam = multiCgraParam .getSelectedCgra ()
2000+ selectedCgraParam .set_cgra_param_callbacks (switchDataSPMOutLinks = switchDataSPMOutLinks ,
2001+ updateFunCheckoutButtons = updateFunCheckoutButtons ,
2002+ updateFunCheckVars = updateFunCheckVars ,
2003+ updateXbarCheckbuttons = updateXbarCheckbuttons ,
2004+ updateXbarCheckVars = updateXbarCheckVars ,
2005+ getFunCheckVars = getFunCheckVars ,
2006+ getXbarCheckVars = getXbarCheckVars )
2007+
2008+ # Only update Multi-CGRA panel, don't touch Per-CGRA panels
2009+ multiCgraPanel = create_multi_cgra_panel (root , cgraRows , cgraCols )
2010+ multiCgraPanel .grid (row = 0 , column = 0 , padx = (0 , 5 ), sticky = "nsew" )
2011+
2012+
19872013def create_cgra_pannel (master , rows , columns ):
19882014 # Clear previous CGRA panel if it exists
19892015 if 'cgraPannel' in widgets :
0 commit comments