# Definitional proc to organize widgets for parameters.
proc init_gui { IPINST } {
  ipgui::add_param $IPINST -name "Component_Name"
  #Adding Page
  set Page_0 [ipgui::add_page $IPINST -name "Page 0" -display_name {Saving FPGA resources}]
  set_property tooltip {Saving FPGA resources} ${Page_0}
  #Adding Group
  set PWM_Modulators [ipgui::add_group $IPINST -name "PWM Modulators" -parent ${Page_0} -display_name {PWM modulators}]
  set_property tooltip {PWM modulators} ${PWM_Modulators}
  ipgui::add_param $IPINST -name "Remove_CB_PWM_0_to_7" -parent ${PWM_Modulators}
  ipgui::add_param $IPINST -name "Remove_CB_PWM_8_to_15" -parent ${PWM_Modulators}
  ipgui::add_param $IPINST -name "Remove_CB_PWM_16_to_23" -parent ${PWM_Modulators}
  ipgui::add_param $IPINST -name "Remove_CB_PWM_24_to_31" -parent ${PWM_Modulators}
  ipgui::add_param $IPINST -name "Remove_CB_PWM_32_to_39" -parent ${PWM_Modulators}
  ipgui::add_param $IPINST -name "Remove_CB_PWM_40_to_47" -parent ${PWM_Modulators}
  ipgui::add_param $IPINST -name "Remove_SS_PWM" -parent ${PWM_Modulators}
  ipgui::add_param $IPINST -name "Remove_PP_PWM" -parent ${PWM_Modulators}


  #Adding Page
  set Configuration [ipgui::add_page $IPINST -name "Configuration"]
  set_property tooltip {Configure sandbox interfaces} ${Configuration}
  #Adding Group
  set ADC_Interface [ipgui::add_group $IPINST -name "ADC_Interface" -parent ${Configuration}]
  set_property tooltip {Configure 32-bit ADC interface visibility} ${ADC_Interface}
  ipgui::add_param $IPINST -name "Show_32bit_Float_ADC" -parent ${ADC_Interface}

  #Adding Group
  set SFP_Lanes [ipgui::add_group $IPINST -name "SFP_Lanes" -parent ${Configuration}]
  set_property tooltip {Configure SFP lanes 4-7 for sandbox access} ${SFP_Lanes}
  ipgui::add_param $IPINST -name "Enable_GT_Lane_4" -parent ${SFP_Lanes}
  ipgui::add_param $IPINST -name "Enable_GT_Lane_5" -parent ${SFP_Lanes}
  ipgui::add_param $IPINST -name "Enable_GT_Lane_6" -parent ${SFP_Lanes}
  ipgui::add_param $IPINST -name "Enable_GT_Lane_7" -parent ${SFP_Lanes}

  #Adding Group
  set Serial_Ports [ipgui::add_group $IPINST -name "Serial_Ports" -parent ${Configuration}]
  set_property tooltip {Configure RS485 serial ports A and B for sandbox access} ${Serial_Ports}
  ipgui::add_param $IPINST -name "Enable_Serial_A" -parent ${Serial_Ports}
  ipgui::add_param $IPINST -name "Enable_Serial_B" -parent ${Serial_Ports}

  #Adding Group
  set BSCAN_Interface [ipgui::add_group $IPINST -name "BSCAN_Interface" -parent ${Configuration}]
  set_property tooltip {Configure BSCAN debug interface visibility} ${BSCAN_Interface}
  ipgui::add_param $IPINST -name "Enable_BSCAN" -parent ${BSCAN_Interface}



}

proc update_PARAM_VALUE.Enable_BSCAN { PARAM_VALUE.Enable_BSCAN } {
	# Procedure called to update Enable_BSCAN when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Enable_BSCAN { PARAM_VALUE.Enable_BSCAN } {
	# Procedure called to validate Enable_BSCAN
	return true
}

proc update_PARAM_VALUE.Enable_GT_Lane_4 { PARAM_VALUE.Enable_GT_Lane_4 } {
	# Procedure called to update Enable_GT_Lane_4 when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Enable_GT_Lane_4 { PARAM_VALUE.Enable_GT_Lane_4 } {
	# Procedure called to validate Enable_GT_Lane_4
	return true
}

proc update_PARAM_VALUE.Enable_GT_Lane_5 { PARAM_VALUE.Enable_GT_Lane_5 } {
	# Procedure called to update Enable_GT_Lane_5 when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Enable_GT_Lane_5 { PARAM_VALUE.Enable_GT_Lane_5 } {
	# Procedure called to validate Enable_GT_Lane_5
	return true
}

proc update_PARAM_VALUE.Enable_GT_Lane_6 { PARAM_VALUE.Enable_GT_Lane_6 } {
	# Procedure called to update Enable_GT_Lane_6 when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Enable_GT_Lane_6 { PARAM_VALUE.Enable_GT_Lane_6 } {
	# Procedure called to validate Enable_GT_Lane_6
	return true
}

proc update_PARAM_VALUE.Enable_GT_Lane_7 { PARAM_VALUE.Enable_GT_Lane_7 } {
	# Procedure called to update Enable_GT_Lane_7 when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Enable_GT_Lane_7 { PARAM_VALUE.Enable_GT_Lane_7 } {
	# Procedure called to validate Enable_GT_Lane_7
	return true
}

proc update_PARAM_VALUE.Enable_Serial_A { PARAM_VALUE.Enable_Serial_A } {
	# Procedure called to update Enable_Serial_A when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Enable_Serial_A { PARAM_VALUE.Enable_Serial_A } {
	# Procedure called to validate Enable_Serial_A
	return true
}

proc update_PARAM_VALUE.Enable_Serial_B { PARAM_VALUE.Enable_Serial_B } {
	# Procedure called to update Enable_Serial_B when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Enable_Serial_B { PARAM_VALUE.Enable_Serial_B } {
	# Procedure called to validate Enable_Serial_B
	return true
}

proc update_PARAM_VALUE.Remove_CB_PWM_0_to_7 { PARAM_VALUE.Remove_CB_PWM_0_to_7 } {
	# Procedure called to update Remove_CB_PWM_0_to_7 when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Remove_CB_PWM_0_to_7 { PARAM_VALUE.Remove_CB_PWM_0_to_7 } {
	# Procedure called to validate Remove_CB_PWM_0_to_7
	return true
}

proc update_PARAM_VALUE.Remove_CB_PWM_16_to_23 { PARAM_VALUE.Remove_CB_PWM_16_to_23 } {
	# Procedure called to update Remove_CB_PWM_16_to_23 when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Remove_CB_PWM_16_to_23 { PARAM_VALUE.Remove_CB_PWM_16_to_23 } {
	# Procedure called to validate Remove_CB_PWM_16_to_23
	return true
}

proc update_PARAM_VALUE.Remove_CB_PWM_24_to_31 { PARAM_VALUE.Remove_CB_PWM_24_to_31 } {
	# Procedure called to update Remove_CB_PWM_24_to_31 when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Remove_CB_PWM_24_to_31 { PARAM_VALUE.Remove_CB_PWM_24_to_31 } {
	# Procedure called to validate Remove_CB_PWM_24_to_31
	return true
}

proc update_PARAM_VALUE.Remove_CB_PWM_32_to_39 { PARAM_VALUE.Remove_CB_PWM_32_to_39 } {
	# Procedure called to update Remove_CB_PWM_32_to_39 when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Remove_CB_PWM_32_to_39 { PARAM_VALUE.Remove_CB_PWM_32_to_39 } {
	# Procedure called to validate Remove_CB_PWM_32_to_39
	return true
}

proc update_PARAM_VALUE.Remove_CB_PWM_40_to_47 { PARAM_VALUE.Remove_CB_PWM_40_to_47 } {
	# Procedure called to update Remove_CB_PWM_40_to_47 when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Remove_CB_PWM_40_to_47 { PARAM_VALUE.Remove_CB_PWM_40_to_47 } {
	# Procedure called to validate Remove_CB_PWM_40_to_47
	return true
}

proc update_PARAM_VALUE.Remove_CB_PWM_8_to_15 { PARAM_VALUE.Remove_CB_PWM_8_to_15 } {
	# Procedure called to update Remove_CB_PWM_8_to_15 when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Remove_CB_PWM_8_to_15 { PARAM_VALUE.Remove_CB_PWM_8_to_15 } {
	# Procedure called to validate Remove_CB_PWM_8_to_15
	return true
}

proc update_PARAM_VALUE.Remove_PP_PWM { PARAM_VALUE.Remove_PP_PWM } {
	# Procedure called to update Remove_PP_PWM when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Remove_PP_PWM { PARAM_VALUE.Remove_PP_PWM } {
	# Procedure called to validate Remove_PP_PWM
	return true
}

proc update_PARAM_VALUE.Remove_SS_PWM { PARAM_VALUE.Remove_SS_PWM } {
	# Procedure called to update Remove_SS_PWM when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Remove_SS_PWM { PARAM_VALUE.Remove_SS_PWM } {
	# Procedure called to validate Remove_SS_PWM
	return true
}

proc update_PARAM_VALUE.Show_32bit_Fixed_ADC { PARAM_VALUE.Show_32bit_Fixed_ADC } {
	# Procedure called to update Show_32bit_Fixed_ADC when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Show_32bit_Fixed_ADC { PARAM_VALUE.Show_32bit_Fixed_ADC } {
	# Procedure called to validate Show_32bit_Fixed_ADC
	return true
}

proc update_PARAM_VALUE.Show_32bit_Float_ADC { PARAM_VALUE.Show_32bit_Float_ADC } {
	# Procedure called to update Show_32bit_Float_ADC when any of the dependent parameters in the arguments change
}

proc validate_PARAM_VALUE.Show_32bit_Float_ADC { PARAM_VALUE.Show_32bit_Float_ADC } {
	# Procedure called to validate Show_32bit_Float_ADC
	return true
}


proc update_MODELPARAM_VALUE.Remove_CB_PWM_0_to_7 { MODELPARAM_VALUE.Remove_CB_PWM_0_to_7 PARAM_VALUE.Remove_CB_PWM_0_to_7 } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Remove_CB_PWM_0_to_7}] ${MODELPARAM_VALUE.Remove_CB_PWM_0_to_7}
}

proc update_MODELPARAM_VALUE.Remove_CB_PWM_8_to_15 { MODELPARAM_VALUE.Remove_CB_PWM_8_to_15 PARAM_VALUE.Remove_CB_PWM_8_to_15 } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Remove_CB_PWM_8_to_15}] ${MODELPARAM_VALUE.Remove_CB_PWM_8_to_15}
}

proc update_MODELPARAM_VALUE.Remove_CB_PWM_16_to_23 { MODELPARAM_VALUE.Remove_CB_PWM_16_to_23 PARAM_VALUE.Remove_CB_PWM_16_to_23 } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Remove_CB_PWM_16_to_23}] ${MODELPARAM_VALUE.Remove_CB_PWM_16_to_23}
}

proc update_MODELPARAM_VALUE.Remove_CB_PWM_24_to_31 { MODELPARAM_VALUE.Remove_CB_PWM_24_to_31 PARAM_VALUE.Remove_CB_PWM_24_to_31 } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Remove_CB_PWM_24_to_31}] ${MODELPARAM_VALUE.Remove_CB_PWM_24_to_31}
}

proc update_MODELPARAM_VALUE.Remove_CB_PWM_32_to_39 { MODELPARAM_VALUE.Remove_CB_PWM_32_to_39 PARAM_VALUE.Remove_CB_PWM_32_to_39 } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Remove_CB_PWM_32_to_39}] ${MODELPARAM_VALUE.Remove_CB_PWM_32_to_39}
}

proc update_MODELPARAM_VALUE.Remove_CB_PWM_40_to_47 { MODELPARAM_VALUE.Remove_CB_PWM_40_to_47 PARAM_VALUE.Remove_CB_PWM_40_to_47 } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Remove_CB_PWM_40_to_47}] ${MODELPARAM_VALUE.Remove_CB_PWM_40_to_47}
}

proc update_MODELPARAM_VALUE.Remove_PP_PWM { MODELPARAM_VALUE.Remove_PP_PWM PARAM_VALUE.Remove_PP_PWM } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Remove_PP_PWM}] ${MODELPARAM_VALUE.Remove_PP_PWM}
}

proc update_MODELPARAM_VALUE.Remove_SS_PWM { MODELPARAM_VALUE.Remove_SS_PWM PARAM_VALUE.Remove_SS_PWM } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Remove_SS_PWM}] ${MODELPARAM_VALUE.Remove_SS_PWM}
}

proc update_MODELPARAM_VALUE.Enable_GT_Lane_4 { MODELPARAM_VALUE.Enable_GT_Lane_4 PARAM_VALUE.Enable_GT_Lane_4 } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Enable_GT_Lane_4}] ${MODELPARAM_VALUE.Enable_GT_Lane_4}
}

proc update_MODELPARAM_VALUE.Enable_GT_Lane_5 { MODELPARAM_VALUE.Enable_GT_Lane_5 PARAM_VALUE.Enable_GT_Lane_5 } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Enable_GT_Lane_5}] ${MODELPARAM_VALUE.Enable_GT_Lane_5}
}

proc update_MODELPARAM_VALUE.Enable_GT_Lane_6 { MODELPARAM_VALUE.Enable_GT_Lane_6 PARAM_VALUE.Enable_GT_Lane_6 } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Enable_GT_Lane_6}] ${MODELPARAM_VALUE.Enable_GT_Lane_6}
}

proc update_MODELPARAM_VALUE.Enable_GT_Lane_7 { MODELPARAM_VALUE.Enable_GT_Lane_7 PARAM_VALUE.Enable_GT_Lane_7 } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Enable_GT_Lane_7}] ${MODELPARAM_VALUE.Enable_GT_Lane_7}
}

proc update_MODELPARAM_VALUE.Enable_Serial_A { MODELPARAM_VALUE.Enable_Serial_A PARAM_VALUE.Enable_Serial_A } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Enable_Serial_A}] ${MODELPARAM_VALUE.Enable_Serial_A}
}

proc update_MODELPARAM_VALUE.Enable_Serial_B { MODELPARAM_VALUE.Enable_Serial_B PARAM_VALUE.Enable_Serial_B } {
	# Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value
	set_property value [get_property value ${PARAM_VALUE.Enable_Serial_B}] ${MODELPARAM_VALUE.Enable_Serial_B}
}

