<?xml version="1.0"?>
<lsccip:ip version="1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:lsccip="http://www.latticesemi.com/XMLSchema/Radiant/ip"
		xmlns:xi="http://www.w3.org/2001/XInclude">

  <lsccip:general>
    <lsccip:vendor>latticesemi.com</lsccip:vendor>
    <lsccip:library>ip</lsccip:library>
    <lsccip:name>dphy_tx</lsccip:name>
    <lsccip:display_name>CSI-2/DSI D-PHY Transmitter</lsccip:display_name>
    <lsccip:version>2.4.1</lsccip:version>
    <lsccip:category>Audio_Video_and_Image_Processing</lsccip:category>
    <lsccip:min_radiant_version>2025.1</lsccip:min_radiant_version>
    <lsccip:min_esi_version>2025.1</lsccip:min_esi_version>
    <lsccip:supported_products>
      <lsccip:supported_family name="LIFCL"></lsccip:supported_family>
      <lsccip:supported_family name="LFD2NX"></lsccip:supported_family>
      <lsccip:supported_family name="LFCPNX"></lsccip:supported_family>
      <lsccip:supported_family name="LFMXO5"></lsccip:supported_family>
      <lsccip:supported_family name="LAV-AT"></lsccip:supported_family>
      <lsccip:supported_family name="LKH-CT"></lsccip:supported_family>
      <lsccip:supported_family name="LKH-MH"></lsccip:supported_family>
      <lsccip:supported_family name="LN2-CT"></lsccip:supported_family>
      <lsccip:supported_family name="LN2-MH"></lsccip:supported_family>      
    </lsccip:supported_products>
    <lsccip:supported_platforms>
      <lsccip:supported_platform name="esi"/>
      <lsccip:supported_platform name="radiant"/>
    </lsccip:supported_platforms>  
  </lsccip:general>

  <lsccip:settings>
    <lsccip:setting id                 = "FAMILY"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    default            = "LIFCL"
                    value_expr         = "getFamily(1)"
                    editable           = "False"
                    hidden             = "True"
                    title              = "Device Architecture"
                    group1             = "General"
    />

    <lsccip:setting id                 = "DEVICE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "Dev"
                    value_expr         = "runtime_info.device_info.device(1)"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "General"
    />

    <lsccip:setting id                 = "PACKAGE"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "Pack"
                    value_expr         = "runtime_info.device_info.package(1)"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "General"
    />

    <lsccip:setting id                 = "SPEED"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "Speed"
                    value_expr         = "runtime_info.device_info.speed(1)"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "General"
    />

    <lsccip:setting id                 = "OPCON"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "Operating Condition"
                    value_expr         = "runtime_info.device_info.operation()"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "General"
    />

    <lsccip:setting id                 = "TX_INTF"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "TX Interface Type"
                    options            = "['DSI', ('CSI-2', 'CSI2')]"
                    default            = "CSI2"
                    group1             = "Transmitter"
    />

    <lsccip:setting id                 = "DPHY_IP"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "D-PHY TX IP"
                    options            = "[('Hard D-PHY', 'MIXEL'),
                                           ('Soft D-PHY', 'LATTICE')]"
                    value_expr         = "getDPHY_DefValue(FAMILY,DEVICE)"
                    default            = "MIXEL"
                    editable           = "FAMILY == 'LIFCL' and (DEVICE == 'LIFCL-17' or DEVICE == 'LIFCL-40')"
                    group1             = "Transmitter"
    />

    <lsccip:setting id                 = "NUM_TX_LANE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "Number of TX Lanes"
                    options            = "[1, 2, 3, 4] if (PKT_FORMAT) else [1, 2, 4]"
                    default            = "4"
                    group1             = "Transmitter"
    />

    <lsccip:setting id                 = "GEAR"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "TX Gear"
                    options            = "[8, 16]"
                    default            = "8"
                    editable           = "DPHY_IP == 'MIXEL'"
                    group1             = "Transmitter"
    />

    <lsccip:setting id                 = "DAT_INTLVD"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Interleaved Input Data"
                    bool_value_mapping = "('ON', 'OFF')"
                    editable           = "GEAR == 16"
                    hidden             = "GEAR == 8"
                    default            = "False"
                    group1             = "Transmitter"
    />

    <lsccip:setting id                 = "CIL_BYPASS"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "CIL Bypass"
                    bool_value_mapping = "('CIL_BYPASSED', 'CIL_ENABLED')"
                    value_expr         = "False if DPHY_IP == 'MIXEL' else True"
                    editable           = "DPHY_IP == 'MIXEL'"
                    hidden             = "DPHY_IP == 'LATTICE'"
                    group1             = "Transmitter"
    />

    <lsccip:setting id                 = "PKT_FORMAT"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    bool_value_mapping = "('OFF', 'ON')"
                    title              = "Bypass Packet Formatter"
                    default            = "False"
                    group1             = "Transmitter"

    />

    <lsccip:setting id                 = "PKTHDR_FIFO_IMPL"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    options            = "['HARD_IP', 'EBR', 'LUT']"
                    title              = "DSI Packet Formatter FIFO Type"
                    default            = "HARD_IP"
                    editable           = "TX_INTF == 'DSI' and not PKT_FORMAT"
                    hidden             = "True"
                    group1             = "Transmitter"

    />


    <lsccip:setting id                 = "LMMI"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable LMMI Interface"
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "False"
                    editable           = "True"
                    group1             = "Transmitter"
    />

    <lsccip:setting id                 = "CSRCMD_IMPL"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "CSR CDC Implementation"
                    description        = "Specify the relationship of clock in LMMI module.
                                          ASYNC - CDC is done through wr/rd command.
                                          SYNC - CDC is done in shadow registers."
                    options            = "['SYNC', 'ASYNC']"
                    default            = "SYNC"
                    hidden             = "True"
                    editable           = "False"
                    group1             = "Transmitter"
    />

    <lsccip:setting id                 = "FREQ_CHANGE_TEST"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable freq change"
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "False"
                    editable           = "DPHY_IP == 'MIXEL'"
                    hidden             = "True"
                    group1             = "Transmitter"
    />

    <lsccip:setting id                 = "AXI4"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable AXI4-Stream Interface"
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "False"
                    drc                = "ext_phaseout_warn(1,'Legacy AXI4-Stream Interface')"
                    group1             = "Transmitter"
    />
	
    <lsccip:setting id                 = "PERIODIC_SKEWCAL"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable Periodic Skew Calibration"
                    bool_value_mapping = "('ON', 'OFF')"
                    editable           = "DPHY_IP == 'MIXEL' "
                    hidden             = "DPHY_IP == 'LATTICE' "
                    default            = "False"
                    group1             = "Transmitter"
    />

    <lsccip:setting id                 = "FRAME_CNT_ENABLE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable Frame Number Increment in Packet Formatter"
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "False"
                    editable           = "TX_INTF == 'CSI2' and not PKT_FORMAT"
                    hidden             = "TX_INTF == 'DSI'"
                    group1             = "Protocol"

    />

    <lsccip:setting id                 = "FRAME_CNT_VAL"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "Maximum Frame Number Value in Packet Formatter"
                    value_range        = "(2, 255)"
                    default            = "2"
                    editable           = "TX_INTF == 'CSI2' and FRAME_CNT_ENABLE and not PKT_FORMAT"
                    hidden             = "TX_INTF == 'DSI'"
                    group1             = "Protocol"

    />

    <lsccip:setting id                 = "LINE_CNT_ENABLE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable Line Number Increment in Packet Formatter"
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "False"
                    editable           = "TX_INTF == 'CSI2' and not PKT_FORMAT"
                    hidden             = "TX_INTF == 'DSI'"
                    group1             = "Protocol"

    />

    <lsccip:setting id                 = "VCX_EN"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Extended Virtual Channel ID"
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "False"
                    editable           = "TX_INTF == 'CSI2' and not PKT_FORMAT"
                    hidden             = "TX_INTF == 'DSI'"
                    group1             = "Protocol"

    />

    <lsccip:setting id                 = "EOTP_ENABLE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "EoTp Enable"
                    bool_value_mapping = "('ON','OFF')"
                    default            = "False"
                    editable           = "TX_INTF == 'DSI' and not PKT_FORMAT"
                    hidden             = "TX_INTF == 'CSI2'"
                    group1             = "Protocol"

    />
	<!-- =====================LPDT and BTA================================== -->    
    <lsccip:setting id                 = "LPTXESC"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable Low Power Escape Modes"
                    bool_value_mapping = "('ENABLE', 'DISABLE')"
                    editable           = "True"
                    hidden             = "True"
                    default            = "False"
                    group1             = "Protocol"
    />
    
    <lsccip:setting id                 = "BTA"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable Bus Turnaround"
                    bool_value_mapping = "('ENABLE', 'DISABLE')"
                    editable           = "LPTXESC"
                    hidden             = "True"
                    default            = "False"
                    group1             = "Transmitter"
    />   
    
    <lsccip:setting id                 = "BYTE_ESC_CLOCKS"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Synchronous Byte and Escape Clocks"
                    bool_value_mapping = "('SYNC', 'ASYNC')"
                    editable           = "LPTXESC"
                    hidden             = "True"
                    default            = "False"
                    group1             = "Transmitter"
    />     
	<!-- ====================end=LPDT=and=BTA=============================== -->    
  <!-- check max supported per device -->
    <lsccip:setting id                 = "TX_LINE_RATE_PER_LANE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "float"
                    title              = "Target TX Line Rate (Mbps per Lane)"
                    value_range        = "(value_expr_line_rate_ll(GEAR), value_expr_line_rate(DPHY_IP,FAMILY,PACKAGE,GEAR,SPEED,OPCON))"
                    drc                = "ext_check_tx_line_rate(DPHY_IP, TX_LINE_RATE_PER_LANE,FAMILY,PACKAGE,GEAR,SPEED,OPCON)"
                    default            = "800"
                    description        = "For the hard D-PHY, the maximum line rate depends on the gear setting. 
					                      For soft D-PHY, this depends on the device, package and speed grade. 
										  Please refer to the device datasheet for more information. "
                    group1             = "Clock"
    />

    <!-- ID name is misnomer. this should be total data rate                    -->
    <!--            value_range        = "(160, 10000)"                         -->
    <lsccip:setting id                 = "TX_LINE_RATE"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "float"
                    title              = "    Target TX Data Rate (Mbps)"
                    value_expr         = "(TX_LINE_RATE_PER_LANE * NUM_TX_LANE)"
                    editable           = "False"
                    group1             = "Clock"
    />
    <lsccip:setting id                 = "DELAYB_DEL_VALUE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "DELAYB Fine Delay Value"
                    value_expr         = "ext_get_delayb_del_value(TX_LINE_RATE_PER_LANE/2.0, 'DELAYB Fine Delay Value')"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "DELAYB_COARSE_DELAY"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "DELAYB Coarse Delay Value"
                    value_expr         = "ext_get_delayb_del_value(TX_LINE_RATE_PER_LANE/2.0, 'DELAYB Coarse Delay Value')"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "DPHY_CLK_FREQ"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "float"
                    title              = "    Target D-PHY Clock Frequency (MHz)"
                    value_expr         = "(TX_LINE_RATE_PER_LANE / 2.0)"
                    editable           = "False"
                    group1             = "Clock"
    />


    <lsccip:setting id                 = "TARGET_BYTE_CLK_FREQ"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "float"
                    title              = "    Target Byte Clock Frequency (MHz)"
                    value_expr         = "(TX_LINE_RATE_PER_LANE / GEAR)"
                    editable           = "False"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "CLK_MODE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "D-PHY Clock Mode"
                    options            = "[('Continuous', 'HS_ONLY'),
                                           ('Non-Continuous', 'HS_LP')]"
                    default            = "HS_ONLY"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "MAN_HSCLKCTRL_EN"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "    Enable Manual Control of D-PHY Clock"
                    description        = "Enable manual control of D-PHY clock via clk_hs_en_i port. 
                                          This is useful for cases when you may want to manually stop 
                                          the DPHY clock lane and enter LP mode."
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "False"
                    drc                = "clock_stop_ctrl(MAN_HSCLKCTRL_EN)"
                    editable           = "(not CIL_BYPASS and not PKT_FORMAT) or CLK_MODE == 'HS_ONLY'"
                    hidden             = "not ((not CIL_BYPASS and not PKT_FORMAT) or CLK_MODE == 'HS_ONLY')"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "CTRL_CLK_EN"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable New Control of D-PHY Clock"
                    description        = "Enable manual control of DPHY Clock via clk_hs_en_i port.
                                          This parameter is added to maintain availability of  
                                          old implementation wherein usability of clk_hs_en_i
                                          is limited."
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "True"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "PLL_MODE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "D-PHY PLL Mode"
                    options            = "[('Internal', 'INTERNAL'), ('External', 'EXTERNAL')]"
                    value_expr         = "'EXTERNAL' if (DPHY_IP == 'LATTICE') else 'INTERNAL'"
					default            = "INTERNAL"
                    editable           = "DPHY_IP == 'MIXEL'"
                    group1             = "Clock"
    />
    <lsccip:setting id                 = "ECLKO_EN_IN"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable ECLK output port"
                    description        = "Used to internally manipulate eclk_syncclk_o for maverick runs"
                    bool_value_mapping = "('ON', 'OFF')"
                    value_expr         = "False if (ECLK_SCLK_ENABLE == False) else True"
                    default            = "True"
                    editable           = "DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == True"
                    hidden             = "True"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "ECLK_SCLK_ENABLE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable Edge Clock Synchronizer and Divider "
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "True"
                    value_expr         = "True if (DPHY_IP == 'LATTICE') else False"
                    drc                = "ext_drc_eclk_out(ECLK_SCLK_ENABLE)"
                    editable           = "DPHY_IP == 'LATTICE'"
                    hidden             = "DPHY_IP == 'MIXEL'"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "BYTERST_MODE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable Synchronized Reset in Byte Clock Domain"
                    bool_value_mapping = "('SYNC', 'ASYNC')"
                    default            = "True"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />


    <lsccip:setting id                 = "REF_CLOCK_FREQ"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "float"
                    title              = "Reference Clock Frequency (MHz)"
                    value_range        = "(24 , 200)"
                    default            = "100"
                    group1             = "Clock"
                    drc                = "ext_check_pll_coefficients(DPHY_IP, PLL_MODE, REF_CLOCK_FREQ, TX_LINE_RATE_PER_LANE, CN)"
    />
                    <!-- drc                = "ext_check_pll_coefficients(CLKI_FREQ, CLKOP_FREQ,
                                                       CLKOP_TOLERANCE, CLKOS_FREQ, CLKOS_TOLERANCE,
                                                       CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ,
                                                       CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, 
                                                       CLKOS5_FREQ, CLKOS5_TOLERANCE, CLKOS_EN, CLKOS2_EN, 
                                                       CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, 
                                                       CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, FBK_MODE, FRAC_N_EN,
                                                       DPHY_IP, PLL_MODE, REF_CLOCK_FREQ, TX_LINE_RATE_PER_LANE, CN)" -->


    <lsccip:setting id                 = "HSEL"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "PLL High-Speed Configuration"
                    value_expr         = "'ENABLED'
                                              if (TX_LINE_RATE_PER_LANE > 1500)
                                              else 'DISABLED'"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "CN"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "PLL N Coefficient"
                    value_expr         = "ext_get_pll_coefficients(
                                              REF_CLOCK_FREQ,
                                              TX_LINE_RATE_PER_LANE, 'CN')"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />
	
    <lsccip:setting id                 = "CM"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "PLL M Coefficient"
                    value_expr         = "ext_get_pll_coefficients(
                                              REF_CLOCK_FREQ,
                                              TX_LINE_RATE_PER_LANE, 'CM')"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />	
	
    <lsccip:setting id                 = "CO"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "PLL O Coefficient"
                    value_expr         = "ext_get_pll_coefficients(
                                              REF_CLOCK_FREQ,
                                              TX_LINE_RATE_PER_LANE, 'CO')"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />	

    <lsccip:setting id                 = "TST"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "Charge Pump"
                    default            = "1001"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />	

    <lsccip:setting id                 = "RSEL"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "Loop Bandwidth Resistance"
                    default            = "01"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />
    
  <!-- hidden -->   
    <lsccip:setting id                 = "N"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "PLL N input divider"
                    value_expr         = "ext_get_pll_coefficients(
                                              REF_CLOCK_FREQ,
                                              TX_LINE_RATE_PER_LANE, 'N')"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />
	
    <lsccip:setting id                 = "M"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "PLL M multiplier"
                    value_expr         = "ext_get_pll_coefficients(
                                              REF_CLOCK_FREQ,
                                              TX_LINE_RATE_PER_LANE, 'M')"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />	
	
    <lsccip:setting id                 = "O"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "PLL O output divider "
                    value_expr         = "ext_get_pll_coefficients(
                                              REF_CLOCK_FREQ,
                                              TX_LINE_RATE_PER_LANE, 'O')"
                    editable           = "False"
                    hidden             = "True"
                    group1             = "Clock"
    />	  
  <!-- hidden -->   
    <lsccip:setting id                 = "ACT_TX_DATA_RATE"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "float"
                    title              = "    Actual D-PHY TX Data Rate (Mbps)"
                    value_expr         = "(ACTUAL_LINE_RATE * NUM_TX_LANE)"
                    editable           = "False"
                    hidden             = "not(PLL_MODE == 'INTERNAL')"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "ACTUAL_LINE_RATE"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "float"
                    title              = "    Actual TX Line Rate (Mbps)"
                    value_expr         = "ext_get_pll_coefficients(
                                              REF_CLOCK_FREQ,
                                              TX_LINE_RATE_PER_LANE, 'ACTUAL_RATE')"
                    editable           = "False"
                    hidden             = "not(PLL_MODE == 'INTERNAL')"
                    group1             = "Clock"
    />


    <lsccip:setting id                 = "ACTUAL_DPHY_CLK_FREQ"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "float"
                    title              = "    Actual D-PHY Clock Frequency (MHz)"
                    value_expr         = "(ACTUAL_LINE_RATE / 2.0)"
                    editable           = "False"
                    hidden             = "not(PLL_MODE == 'INTERNAL')"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "BYTE_CLK_FREQ"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "float"
                    title              = "    Actual Byte Clock Frequency (MHz)"
                    value_expr         = "(ACTUAL_LINE_RATE / GEAR) if (PLL_MODE == 'INTERNAL') else TARGET_BYTE_CLK_FREQ"
                    hidden             = "not(PLL_MODE == 'INTERNAL')"
                    editable           = "False"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "DEVIATION"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "    Deviation from Target Data Rate"
                    value_expr         = "ext_get_pll_coefficients(
                                              REF_CLOCK_FREQ,
                                              TX_LINE_RATE_PER_LANE, 'DEVIATION')"
                    editable           = "False"
                    hidden             = "not(PLL_MODE == 'INTERNAL')"
                    group1             = "Clock"
    />

    <lsccip:setting id                 = "TINIT_COUNT"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable tINIT Counter"
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "False"
                    group1             = "Initialization"
    />

    <lsccip:setting id                 = "TINIT_VALUE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "tINIT Counter Value (Number of Byte Clock Cycles)"
                    value_range        = "(1, 32768)"
                    default            = "1000"
                    editable           = "TINIT_COUNT"
                    group1             = "Initialization"
    />

    <lsccip:setting id                 = "TINIT_VALUE_input"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "float"
                    title              = "tINIT Counter Value in ns"
                    value_expr         = "TINIT_VALUE * (1000./BYTE_CLK_FREQ) if TINIT_COUNT else 0"
                    default            = "1000"
                    editable           = "False"
                    group1             = "Initialization"
    />
    <lsccip:setting id                 = "MISC_ON"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Enable Miscellaneous Status Signals"
                    bool_value_mapping = "('ON', 'OFF')"
                    default            = "False"
                    group1             = "Miscellaneous"
    />
    
    <lsccip:setting id                 = "USER_TIMING"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Customize TX Timing Parameter Values"
                    default            = "False"
                    drc                = "ext_show_notes(DPHY_IP)"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />
    
    <lsccip:setting id                 = "USER_TIMING_DISP_CTRL"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "bool"
                    title              = "Show TX Timing Parameter Actual RTL Values"
                    value_expr         = "bool(True) if (USER_TIMING == bool(True)) else bool(False)"
					default            = "True"
					editable           = "True"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_LPX"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_LPX"
                    value_range        = "(1, 255)"
                    value_expr         = "ext_math_floor(0.050 * BYTE_CLK_FREQ + 1)"
                    drc                = "ext_check_t_lpx(USER_TIMING, CIL_BYPASS, T_LPX, BYTE_CLK_FREQ, GEAR)"
                    editable           = "USER_TIMING and CIL_BYPASS"
                    default            = "16"
                    description        = "50ns minimum"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_LPX_ACT_RTL_VAL"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "    t_LPX (RTL) "
                    editable           = "False"
					value_expr         = "255 if (T_LPX > 255) else T_LPX"
					hidden             = "not USER_TIMING_DISP_CTRL"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_DATPREP"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_HS-PREPARE "
                    value_range        = "(1, 255)"
                    value_expr         = "value_expr_t_datprep(BYTE_CLK_FREQ, REF_CLOCK_FREQ, GEAR, CIL_BYPASS)"
                    drc                = "ext_check_t_datprep(USER_TIMING, CIL_BYPASS, T_DATPREP, REF_CLOCK_FREQ, BYTE_CLK_FREQ, GEAR)"
                    editable           = "USER_TIMING"
                    default            = "13"
                    description        = "(40ns + 4UI) to (85ns + 6UI)"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_DATPREP_ACT_RTL_VAL"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "    t_HS-PREPARE (RTL) "
                    editable           = "False"
					value_expr         = "255 if (T_DATPREP > 255) else T_DATPREP"
					hidden             = "not USER_TIMING_DISP_CTRL"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />
                    <!-- Give an error in 1000 megabit per second for default value-->

    <lsccip:setting id                 = "T_SKEWCAL_HSZERO_GUI"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_HS_ZERO during skew calibration"
                    value_expr         = "value_expr_t_dat_hszero(BYTE_CLK_FREQ, REF_CLOCK_FREQ, GEAR, CIL_BYPASS, 1)"
                    value_range        = "(2, 255)"
                    editable           = "USER_TIMING and CIL_BYPASS"
                    default            = "34"
                    description        = "(t_HS-PREPARE + t_HS_ZERO) >= (145ns + 10UI)"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_SKEWCAL_HSZERO"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "    t_HS_ZERO during skew calibration (RTL) "
                    value_expr         = "255 if ((T_SKEWCAL_HSZERO_GUI - 2) > 255) else (2 if (4 > T_SKEWCAL_HSZERO_GUI) else (T_SKEWCAL_HSZERO_GUI - 2))"
                    hidden             = "not USER_TIMING_DISP_CTRL"
                    editable           = "False"
                    default            = "34"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_DAT_HSZERO_GUI"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_HS_ZERO "
                    value_expr         = "value_expr_t_dat_hszero(BYTE_CLK_FREQ, REF_CLOCK_FREQ, GEAR, CIL_BYPASS, 0)"
                    description        = "The tHS-ZERO parameter is the number of byte-clock cycles 
                                          from the end of tHS-PREPARE to the assertion of the d_hs_rdy_o signal. 
                                          The actual HS-ZERO also depends on the arrival of the data from the requestor."
                    value_range        = "(1,  63 if (DPHY_IP == 'MIXEL' and not CIL_BYPASS) else 255)"
                    drc                = "ext_check_t_dathszero(USER_TIMING, CIL_BYPASS, T_DAT_HSZERO, T_DATPREP, REF_CLOCK_FREQ, BYTE_CLK_FREQ, GEAR)"
                    editable           = "USER_TIMING"
                    default            = "34"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />
    <lsccip:setting id                 = "T_DAT_HSZERO"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "    t_HS_ZERO (RTL) "
                    value_expr         = "255 if ((T_DAT_HSZERO_GUI + 1) > 255) else ((T_DAT_HSZERO_GUI + 1) if (DPHY_IP != 'LATTICE') else (T_DAT_HSZERO_GUI + 1))"
                    hidden             = "not USER_TIMING_DISP_CTRL"
					editable           = "False"
                    default            = "34"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />
                    <!-- Lattice => value_expr         = "ext_math_floor((0.104 * BYTE_CLK_FREQ) + (14 / GEAR))" -->

    <lsccip:setting id                 = "T_DATTRAIL_GUI"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_HS_TRAIL"
                    value_range        = "(3 if (DPHY_IP == 'LATTICE') else 1, 63 if (DPHY_IP == 'MIXEL' and not CIL_BYPASS) else 255)"
                    value_expr         = "value_expr_t_dat_hstrail(BYTE_CLK_FREQ, GEAR, CIL_BYPASS)"
                    editable           = "USER_TIMING"
                    default            = "20"
                    description        = "(105ns + 12UI) maximum"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_DATTRAIL"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "    t_HS_TRAIL (RTL) "
                    value_expr         = "ext_dattrail_for_rtl(T_DATTRAIL_GUI,DPHY_IP,GEAR, CIL_BYPASS)"
                    hidden             = "not USER_TIMING_DISP_CTRL"
                    editable           = "False"
                    default            = "20"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />


    <lsccip:setting id                 = "T_DATEXIT_GUI"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_HS_EXIT "
                    value_range        = "(1, 255)"
                    value_expr         = "(ext_math_floor(0.1 * BYTE_CLK_FREQ) + 1) if CIL_BYPASS else 1"
                    drc                = "ext_check_t_dataexit(USER_TIMING, T_DATEXIT, BYTE_CLK_FREQ, GEAR)"
                    editable           = "USER_TIMING and CIL_BYPASS"
                    description        = "When the clock lane is continuous, this is the duration before 
                                          the IP asserts the c2d_ready_o signal after a high speed burst.
                                          Actual tDAT-EXIT duration also depends on the arrival of the 
                                          transmit request."
                    default            = "32"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_DATEXIT"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "    t_HS_EXIT (RTL) "
                    value_expr         = "255 if ((T_DATEXIT_GUI + 1) > 255) else (T_DATEXIT_GUI + 1)"
                    hidden             = "not USER_TIMING_DISP_CTRL"
                    drc                = "ext_check_t_dataexit(USER_TIMING, T_DATEXIT, BYTE_CLK_FREQ, GEAR)"
                    editable           = "False"
                    default            = "32"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />


    <lsccip:setting id                 = "T_CLKPREP_GUI"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_CLK-PREPARE"
                    value_range        = "(1, 255)"
                    value_expr         = "(ext_math_ceil(0.038 * BYTE_CLK_FREQ)) if (CIL_BYPASS) else 1"
                    drc                = "ext_check_t_clkprep(USER_TIMING, CIL_BYPASS, T_CLKPREP, REF_CLOCK_FREQ, BYTE_CLK_FREQ, GEAR)"
                    editable           = "USER_TIMING"
                    default            = "12"
                    description        = " 38ns to 95ns "
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />
    <lsccip:setting id                 = "T_CLKPREP"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "    t_CLK-PREPARE (RTL) "
                    hidden             = "not USER_TIMING_DISP_CTRL"
                    value_expr         = "255 if (T_CLKPREP_GUI > 255) else (T_CLKPREP_GUI)"
                    editable           = "False"
                    default            = "12"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />
                    <!-- Lattice => value_expr         = "ext_math_floor(0.050 * BYTE_CLK_FREQ)" -->

    <lsccip:setting id                 = "T_CLK_HSZERO_GUI"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_CLK-ZERO "
                    value_range        = "(1, 127 if (DPHY_IP == 'MIXEL' and not CIL_BYPASS) else 255)"
                    value_expr         = "value_expr_t_clk_hszero(BYTE_CLK_FREQ, REF_CLOCK_FREQ, GEAR, CIL_BYPASS)"
                    drc                = "ext_check_t_clk_hszero(USER_TIMING, CIL_BYPASS, T_CLK_HSZERO, T_CLKPREP, REF_CLOCK_FREQ, BYTE_CLK_FREQ, GEAR)"
                    editable           = "USER_TIMING"
                    default            = "12"
                    description        = "(t_CLK-PREPARE + t_CLK_ZERO) >= 300ns"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />
    <lsccip:setting id                 = "T_CLK_HSZERO"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "    t_CLK-ZERO (RTL) "
                    value_expr         = "ext_clk_hszero_for_rtl(T_CLK_HSZERO_GUI,DPHY_IP,GEAR)"
                    hidden             = "not USER_TIMING_DISP_CTRL"
                    editable           = "False"
                    default            = "12"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />    
                    <!-- Lattice => value_expr         = "ext_math_ceil((0.250 * BYTE_CLK_FREQ) + 1)" -->

    <lsccip:setting id                 = "T_CLKPRE_GUI"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_CLK-PRE"
                    value_range        = "(ext_clkpre_min(DPHY_IP,GEAR), 255)"
                    value_expr         = "ext_math_ceil(8.0 / GEAR + 1)"
                    drc                = "ext_check_t_clk_pre(USER_TIMING, T_CLKPRE, BYTE_CLK_FREQ, GEAR)"
                    editable           = "USER_TIMING and CIL_BYPASS"
                    description        = " 8*UI minimum"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_CLKPRE"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "    t_CLK-PRE (RTL) "
                    value_expr         = "255 if ((T_CLKPRE_GUI - ext_clkpre_min(DPHY_IP,GEAR)) > 255) else (T_CLKPRE_GUI - ext_clkpre_min(DPHY_IP,GEAR))"
                    hidden             = "not USER_TIMING_DISP_CTRL"
                    editable           = "False"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_CLKPOST_GUI"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_CLK-POST "
                    value_range        = "((2 if (GEAR == 8) else 1), 255)"
                    value_expr         = "ext_math_floor((0.060 * BYTE_CLK_FREQ) + (52 / GEAR) + 1)"
                    drc                = "ext_check_t_clk_post(USER_TIMING, T_CLKPOST, BYTE_CLK_FREQ, GEAR)"
                    editable           = "USER_TIMING and CIL_BYPASS"
                    default            = "25"
                    description        = "(60ns + 52UI) minimum"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />
	
	<lsccip:setting id                 = "T_CLKPOST"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "    t_CLK-POST (RTL) "
                    value_expr         = "255 if ((T_CLKPOST_GUI + 1) > 255) else (T_CLKPOST_GUI + 1)"
                    hidden             = "not USER_TIMING_DISP_CTRL"
                    editable           = "False"
                    default            = "25"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />


    <lsccip:setting id                 = "T_CLKTRAIL_GUI"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_CLK-TRAIL"
                    value_range        = "(2, 31 if (DPHY_IP == 'MIXEL' and not CIL_BYPASS) else 255)"
                    value_expr         = "value_expr_t_clk_trail(BYTE_CLK_FREQ, GEAR, CIL_BYPASS)"
                    drc                = "ext_check_t_clk_trail(USER_TIMING, CIL_BYPASS, T_CLKTRAIL, REF_CLOCK_FREQ, BYTE_CLK_FREQ, GEAR)"
                    editable           = "USER_TIMING"
                    default            = "19"
                    description        = "60ns minimum"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_CLKTRAIL"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "    t_CLK-TRAIL (RTL) "
                    value_expr         = "T_CLKTRAIL_GUI if (DPHY_IP != 'LATTICE') else (T_CLKTRAIL_GUI - 1)"
                    drc                = "ext_check_t_clk_trail(USER_TIMING, CIL_BYPASS, T_CLKTRAIL, REF_CLOCK_FREQ, BYTE_CLK_FREQ, GEAR)"
                    hidden             = "not USER_TIMING_DISP_CTRL"
                    editable           = "False"
                    default            = "19"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_CLKEXIT_GUI"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_CLK-EXIT "
                    value_range        = "(1, 255)"
                    value_expr         = "ext_math_floor((0.100 * BYTE_CLK_FREQ) + 1)"
                    drc                = "ext_check_t_clk_exit(USER_TIMING, T_CLKEXIT, BYTE_CLK_FREQ, GEAR)"
                    editable           = "USER_TIMING and CIL_BYPASS"
                    description        = "When the clock lane is non-continuous, this is 
                                          the duration before the IP asserts the 
                                          c2d_ready_o signal after a high speed burst. 
                                          Actual tCLK-EXIT duration also depends on the 
                                          arrival of the transmit request."
                    default            = "32"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_CLKEXIT"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "    t_CLK-EXIT (RTL) "
                    value_expr         = "255 if ((T_CLKEXIT_GUI + 1) > 255) else (T_CLKEXIT_GUI + 1)"
                    drc                = "ext_check_t_clk_exit(USER_TIMING, T_CLKEXIT, BYTE_CLK_FREQ, GEAR)"
                    hidden             = "not USER_TIMING_DISP_CTRL"
                    editable           = "False"
                    default            = "32"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />
	
	<!-- =====================SKEW CALIBRATION================================== -->
	<lsccip:setting id                 = "T_SKEWCAL_INIT"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_SKEWCAL-INIT 2^15UI to 100us"
                    value_expr         = "ext_math_floor((32768/GEAR) + 1)"
                    editable           = "USER_TIMING and (TX_LINE_RATE_PER_LANE > 1500)"
                    value_range        = "((32768/GEAR)+1, (BYTE_CLK_FREQ*100)-1) if (TX_LINE_RATE_PER_LANE > 1500) else (1, (32768/GEAR) + 1)"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_SKEWCAL_INIT_ACT_RTL_VAL"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "    t_SKEWCAL-INIT (RTL) "
                    editable           = "False"
					value_expr         = "T_SKEWCAL_INIT"
					hidden             = "not USER_TIMING_DISP_CTRL"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />
	
	<lsccip:setting id                 = "T_SKEWCAL_PERIOD"
                    type               = "param"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "int"
                    title              = "t_SKEWCAL-PERIOD 2^10UI to 10us"
                    value_expr         = "ext_math_floor((1024/GEAR) + 1)"
                    editable           = "USER_TIMING and PERIODIC_SKEWCAL"
                    value_range        = "((1024/GEAR)+1, (BYTE_CLK_FREQ*10)-1) if PERIODIC_SKEWCAL else (1, (1024/GEAR) + 1)"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <lsccip:setting id                 = "T_SKEWCAL_PERIOD_ACT_RTL_VAL"
                    type               = "input"
                    conn_mod           = "lscc_dphy_tx"
                    value_type         = "string"
                    title              = "    t_SKEWCAL-PERIOD (RTL) "
                    editable           = "False"
					value_expr         = "T_SKEWCAL_PERIOD"
					hidden             = "not USER_TIMING_DISP_CTRL"
                    group1             = "TX Global Operation Timing Parameters"
                    group2             = "Protocol Timing Parameters"
    />

    <!-- ===================================================================== -->
    <!-- ================================ PLL ================================ -->
    <!-- ===================================================================== -->
    <!-- General -->
    <!-- <lsccip:setting id                 = "MODE" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "Mode" -->
                    <!-- options            = "[('Frequency', 'FREQUENCY'), ('Divider', 'DIVIDER')]" -->
                    <!-- default            = "FREQUENCY" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKI_FREQ" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKI: Frequency(MHz)" -->
                    <!-- value_range        = "(10, 800)" -->
                    <!-- default            = "100" -->
                    <!-- value_expr         = "REF_CLOCK_FREQ if (PLL_MODE == 'INTERNAL' and DPHY_IP == 'LATTICE') else 100" -->
                    <!-- editable           = "False" -->
                    <!-- drc                = "ext_check_analog_opt(ALL_ANALOG_PARAMS)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "PLL_REFCLK_FROM_PIN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "PLL Reference Clock from Pin"  -->
                    <!-- default            = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "IO_TYPE" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "I/O Standard for Reference Clock" -->
                    <!-- options            = "['LVDS', 'SUBLVDS', 'SLVS', 'HSTL15_I', 'HSTL15D_I', -->
                                           <!-- 'LVTTL33', 'LVCMOS33', 'LVCMOS25', 'LVCMOS18', -->
                                           <!-- 'LVCMOS18H', 'HSTL15D_I', 'LVCMOS15', 'LVCMOS15H', 'LVCMOS12',  -->
                                           <!-- 'LVCMOS12H', 'LVCMOS10H', 'LVCMOS10', 'LVCMOS10R']" -->
                    <!-- default            = "LVDS" -->
                    <!-- editable           = "PLL_REFCLK_FROM_PIN == True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKI_DIVIDER" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKI: Divider Desired Value" -->
                    <!-- value_range        = "(1, 128)" -->
                    <!-- default            = "1" -->
                    <!-- editable           = "MODE == 'DIVIDER'" -->
                    <!-- drc                = "ext_check_divider_ref(MODE, VCO_FREQ, CLKI_FREQ, CLKI_DIVIDER)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKI_DIVIDER_ACTUAL" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKI: Divider Actual Value" -->
                    <!-- value_expr         = "int(ext_calc_actual_values(1, CLKI_FREQ, CLKOP_FREQ, CLKOP_TOLERANCE, CLKOS_FREQ,  -->
                                                                        <!-- CLKOS_TOLERANCE, CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                                        <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, CLKOS5_FREQ, CLKOS5_TOLERANCE, CLKOS_EN,  -->
                                                                        <!-- CLKOS2_EN, CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, -->
                                                                        <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, CLKI_DIVIDER,  -->
                                                                        <!-- CLKOP_DIVIDER, CLKOS_DIVIDER, CLKOS2_DIVIDER, -->
                                                                        <!-- CLKOS3_DIVIDER, CLKOS4_DIVIDER, CLKOS5_DIVIDER, FBCLK_DIVIDER, FBK_MODE, MODE, FRAC_N_EN))" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKI_DIVIDER_ACTUAL_STR" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKI: Divider Actual Value Str" -->
                    <!-- value_expr         = "str(CLKI_DIVIDER_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "FBK_MODE" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKFB: Feedback Mode" -->
                    <!-- options            = "ext_calc_fbclk_list(CLKOS_EN, CLKOS2_EN, CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS)" -->
                    <!-- default            = "CLKOP" -->
                    <!-- editable           = "SS_EN == False and FRAC_N_EN == False" -->
                    <!-- drc                = "ext_check_mode_fbk(FBK_MODE, CLKOP_BYPASS, CLKOS_BYPASS, CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "FRAC_N_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKFB Modifier: Fractional-N Enable"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "SS_EN == False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "SS_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKFB Modifier: Spread Spectrum Enable"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "FRAC_N_EN == False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "FRAC_N_DIVIDER" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKFB Modifier: FBK Divider Desired Value" -->
                    <!-- value_range        = "(0, 4095)" -->
                    <!-- default            = "0" -->
                    <!-- editable           = "MODE == 'DIVIDER' and FRAC_N_EN == True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "FRAC_N_DIVIDER_ACTUAL" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKFB Modifier: FBK Divider Actual Value" -->
                    <!-- value_expr         = "int(ext_calc_actual_values(10, CLKI_FREQ, CLKOP_FREQ, CLKOP_TOLERANCE, CLKOS_FREQ,  -->
                                                                        <!-- CLKOS_TOLERANCE, CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                                        <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, CLKOS5_FREQ, CLKOS5_TOLERANCE, CLKOS_EN,  -->
                                                                        <!-- CLKOS2_EN, CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, -->
                                                                        <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, CLKI_DIVIDER, -->
                                                                        <!-- CLKOP_DIVIDER, CLKOS_DIVIDER, CLKOS2_DIVIDER, -->
                                                                        <!-- CLKOS3_DIVIDER, CLKOS4_DIVIDER, CLKOS5_DIVIDER, FBCLK_DIVIDER, FBK_MODE, MODE, FRAC_N_EN)) if (MODE == 'FREQUENCY' and FRAC_N_EN == True) else FRAC_N_DIVIDER" -->
                    <!-- default            = "0" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->


    <!-- <lsccip:setting id                 = "FBCLK_DIVIDER" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKFB: FBK Divider Desired Value(Integer)" -->
                    <!-- value_range        = "(1, 128)" -->
                    <!-- default            = "1" -->
                    <!-- editable           = "MODE == 'DIVIDER'" -->
                    <!-- drc                = "ext_check_divider_fbk(MODE, VCO_FREQ)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "FBCLK_DIVIDER_ACTUAL" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKFB: FBK Divider Actual Value(Integer)" -->
                    <!-- value_expr         = "int(ext_calc_actual_values(8, CLKI_FREQ, CLKOP_FREQ, CLKOP_TOLERANCE, CLKOS_FREQ,  -->
                                                                        <!-- CLKOS_TOLERANCE, CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                                        <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, CLKOS5_FREQ, CLKOS5_TOLERANCE, CLKOS_EN,  -->
                                                                        <!-- CLKOS2_EN, CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, -->
                                                                        <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, CLKI_DIVIDER, -->
                                                                        <!-- CLKOP_DIVIDER, CLKOS_DIVIDER, CLKOS2_DIVIDER, -->
                                                                        <!-- CLKOS3_DIVIDER, CLKOS4_DIVIDER, CLKOS5_DIVIDER, FBCLK_DIVIDER, FBK_MODE, MODE, FRAC_N_EN))" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->


    <!-- <lsccip:setting id                 = "FBCLK_DIVIDER_ACTUAL_STR" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "FBCLK: Divider Actual Value Str" -->
                    <!-- value_expr         = "str(FBCLK_DIVIDER_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->


    <!-- <lsccip:setting id                 = "SSC_N_CODE_STR" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "FBCLK Modifier: Divider Integer part" -->
                    <!-- value_expr         = "ext_int_bin_fract(FBCLK_DIVIDER_ACTUAL, 'int_part')" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "SSC_F_CODE_STR" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "FBCLK Modifier: Divider Fractional part" -->
                    <!-- value_expr         = "ext_int_bin_fract(FRAC_N_DIVIDER_ACTUAL, 'frac_part')" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "VCO_FREQ" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "VCO Frequency" -->
                    <!-- value_expr         = "(ext_calc_actual_values(0, CLKI_FREQ, CLKOP_FREQ, CLKOP_TOLERANCE, CLKOS_FREQ, CLKOS_TOLERANCE,  -->
                                                                     <!-- CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                                     <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, CLKOS5_FREQ, CLKOS5_TOLERANCE, CLKOS_EN,  -->
                                                                     <!-- CLKOS2_EN, CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, -->
                                                                     <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, CLKI_DIVIDER,  -->
                                                                     <!-- CLKOP_DIVIDER, CLKOS_DIVIDER, CLKOS2_DIVIDER, -->
                                                                     <!-- CLKOS3_DIVIDER, CLKOS4_DIVIDER, CLKOS5_DIVIDER, FBCLK_DIVIDER, FBK_MODE, MODE, FRAC_N_EN))" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOP_BYPASS" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOP: Bypass"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOP_FREQ" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOP: Frequency Desired Value (MHz)" -->
                    <!-- value_range        = "(6.35, 800)" -->
                    <!-- default            = "100" -->
                    <!-- editable           = "False" -->
                    <!-- value_expr         = "DPHY_CLK_FREQ if (PLL_MODE == 'INTERNAL' and DPHY_IP == 'LATTICE') else 100" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- />  -->


    <!-- <lsccip:setting id                 = "CLKOP_TOLERANCE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOP Tolerance (%)" -->
                    <!-- options            = "[0.0, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0, 10.0]" -->
                    <!-- default            = "0.0" -->
                    <!-- editable           = "MODE == 'FREQUENCY' and CLKOP_BYPASS != True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOP_DIVIDER" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOP: Divider Desired Value" -->
                    <!-- value_range        = "(1, 128)" -->
                    <!-- default            = "8" -->
                    <!-- editable           = "MODE == 'DIVIDER' and CLKOP_BYPASS != True" -->
                    <!-- drc                = "ext_check_divider_out(MODE, True, 'CLKOP', VCO_FREQ, FBK_MODE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DIVOP_ACTUAL" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOP: Divider Actual Value" -->
                    <!-- value_expr         = "int(ext_calc_actual_values(2, CLKI_FREQ, CLKOP_FREQ, CLKOP_TOLERANCE, CLKOS_FREQ,  -->
                                                                        <!-- CLKOS_TOLERANCE, CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                                        <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, CLKOS5_FREQ,  -->
                                                                        <!-- CLKOS5_TOLERANCE, CLKOS_EN, CLKOS2_EN, CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, -->
                                                                        <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, CLKI_DIVIDER, CLKOP_DIVIDER, CLKOS_DIVIDER, CLKOS2_DIVIDER, CLKOS3_DIVIDER, CLKOS4_DIVIDER, CLKOS5_DIVIDER, FBCLK_DIVIDER, FBK_MODE, MODE, FRAC_N_EN))" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DIVOP_ACTUAL_STR" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOP: Divider Actual Value Str" -->
                    <!-- value_expr         = "str(DIVOP_ACTUAL-1)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOP_FREQ_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOP: Frequency Actual Value (MHz)" -->
                    <!-- value_expr         = "VCO_FREQ/DIVOP_ACTUAL" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOP_PPM" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOP: ERROR (PPM)" -->
                    <!-- value_expr         = "ext_calc_ppm(CLKOP_FREQ, CLKOP_FREQ_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "TRIM_EN_P" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOP: Enable Trim for CLKOP"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOP_BYPASS != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOP_TRIM_MODE" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOP: Duty Trim Options Mode" -->
                    <!-- options            = "['Rising', 'Falling']" -->
                    <!-- default            = "Falling" -->
                    <!-- editable           = "CLKOP_BYPASS != True and TRIM_EN_P == True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOP_DEL_MULT" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOP: Duty Trim Options Delay Multiplier" -->
                    <!-- options            = "[('0', '000'), ('1', '001'), ('2', '010'), ('4', '100')]" -->
                    <!-- default            = "000" -->
                    <!-- editable           = "CLKOP_BYPASS != True and TRIM_EN_P == True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOP_TRIM" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOP: Trim" -->
                    <!-- value_expr         = "ext_calc_trim(CLKOP_TRIM_MODE, CLKOP_DEL_MULT)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS: Enable"  -->
                    <!-- default            = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_BYPASS" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS: Bypass"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_FREQ" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS: Frequency Desired Value (MHz)" -->
                    <!-- value_range        = "(6.35, 800)" -->
                    <!-- default            = "100" -->
                    <!-- editable           = "MODE == 'FREQUENCY' and CLKOS_EN == True and CLKOS_BYPASS != True" -->
                    <!-- drc                = "ext_check_freq_valid(CLKI_FREQ, CLKOP_FREQ, -->
                                                       <!-- CLKOP_TOLERANCE, CLKOS_FREQ, CLKOS_TOLERANCE, -->
                                                       <!-- CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                       <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE,  -->
                                                       <!-- CLKOS5_FREQ, CLKOS5_TOLERANCE, CLKOS_EN, CLKOS2_EN,  -->
                                                       <!-- CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS,  -->
                                                       <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, FBK_MODE, FRAC_N_EN)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_TOLERANCE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS: Tolerance (%)" -->
                    <!-- options            = "[0.0, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0, 10.0]" -->
                    <!-- default            = "0.0" -->
                    <!-- editable           = "MODE == 'FREQUENCY' and CLKOS_BYPASS != True and CLKOS_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_DIVIDER" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS: Divider Desired Value" -->
                    <!-- value_range        = "(1, 128)" -->
                    <!-- default            = "8" -->
                    <!-- editable           = "MODE == 'DIVIDER' and CLKOS_BYPASS != True and CLKOS_EN == True" -->
                    <!-- drc                = "ext_check_divider_out(MODE, CLKOS_EN, 'CLKOS', VCO_FREQ, FBK_MODE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->


    <!-- <lsccip:setting id                 = "DIVOS_ACTUAL" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS: Divider Actual Value" -->
                    <!-- value_expr         = "int(ext_calc_actual_values(3, CLKI_FREQ, CLKOP_FREQ, CLKOP_TOLERANCE, CLKOS_FREQ, -->
                                                                        <!-- CLKOS_TOLERANCE, CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                                        <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, CLKOS5_FREQ,  -->
                                                                        <!-- CLKOS5_TOLERANCE, CLKOS_EN, CLKOS2_EN, CLKOS3_EN,  -->
                                                                        <!-- CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, -->
                                                                        <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, CLKI_DIVIDER,  -->
                                                                        <!-- CLKOP_DIVIDER, CLKOS_DIVIDER, CLKOS2_DIVIDER, -->
                                                                        <!-- CLKOS3_DIVIDER, CLKOS4_DIVIDER, CLKOS5_DIVIDER, FBCLK_DIVIDER, FBK_MODE, MODE, FRAC_N_EN))" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DIVOS_ACTUAL_STR" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOS: Divider Actual Value Str" -->
                    <!-- value_expr         = "str(DIVOS_ACTUAL-1)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_FREQ_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS: Frequency Actual Value (MHz)" -->
                    <!-- value_expr         = "VCO_FREQ/DIVOS_ACTUAL" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_PPM" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS: ERROR (PPM)" -->
                    <!-- value_expr         = "ext_calc_ppm(CLKOS_FREQ, CLKOS_FREQ_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "TRIM_EN_S" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS: Enable Trim for CLKOS"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS_BYPASS != True and CLKOS_EN == True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_TRIM_MODE" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOS: Duty Trim Options Mode" -->
                    <!-- options            = "['Rising', 'Falling']" -->
                    <!-- default            = "Falling" -->
                    <!-- editable           = "CLKOS_BYPASS != True and CLKOS_EN == True and TRIM_EN_S == True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_DEL_MULT" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOS: Duty Trim Options Delay Multiplier" -->
                    <!-- options            = "[('0', '000'), ('1', '001'), ('2', '010'), ('4', '100')]" -->
                    <!-- default            = "000" -->
                    <!-- editable           = "CLKOS_BYPASS != True and CLKOS_EN == True and TRIM_EN_S == True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_TRIM" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOS: Trim" -->
                    <!-- value_expr         = "ext_calc_trim(CLKOS_TRIM_MODE, CLKOS_DEL_MULT)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS2_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS2: Enable"  -->
                    <!-- default            = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS2_BYPASS" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS2: Bypass"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS2_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS2_FREQ" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS2: Frequency Desired Value (MHz)" -->
                    <!-- value_range        = "(6.35, 800)" -->
                    <!-- default            = "100" -->
                    <!-- editable           = "CLKOS2_EN == True and CLKOS2_BYPASS != True and MODE == 'FREQUENCY'" -->
                    <!-- drc                = "ext_check_freq_valid(CLKI_FREQ, CLKOP_FREQ, -->
                                                       <!-- CLKOP_TOLERANCE, CLKOS_FREQ, CLKOS_TOLERANCE, -->
                                                       <!-- CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                       <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE,  -->
                                                       <!-- CLKOS5_FREQ, CLKOS5_TOLERANCE, CLKOS_EN, CLKOS2_EN,  -->
                                                       <!-- CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS,  -->
                                                       <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, FBK_MODE, FRAC_N_EN)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS2_TOLERANCE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS2: Tolerance (%)" -->
                    <!-- options            = "[0.0, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0, 10.0]" -->
                    <!-- default            = "0.0" -->
                    <!-- editable           = "MODE == 'FREQUENCY' and CLKOS2_BYPASS != True and CLKOS2_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS2_DIVIDER" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS2: Divider Desired Value" -->
                    <!-- value_range        = "(1, 128)" -->
                    <!-- default            = "8" -->
                    <!-- editable           = "MODE == 'DIVIDER' and CLKOS2_BYPASS != True and CLKOS2_EN == True" -->
                    <!-- drc                = "ext_check_divider_out(MODE, CLKOS2_EN, 'CLKOS2', VCO_FREQ, FBK_MODE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DIVOS2_ACTUAL" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS2: Divider Actual Value" -->
                    <!-- value_expr         = "int(ext_calc_actual_values(4, CLKI_FREQ, CLKOP_FREQ, CLKOP_TOLERANCE,  -->
                                                                       <!-- CLKOS_FREQ, CLKOS_TOLERANCE, CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                                       <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, CLKOS5_FREQ, CLKOS5_TOLERANCE,  -->
                                                                       <!-- CLKOS_EN, CLKOS2_EN, CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, -->
                                                                       <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, CLKI_DIVIDER,  -->
                                                                       <!-- CLKOP_DIVIDER, CLKOS_DIVIDER, CLKOS2_DIVIDER, -->
                                                                       <!-- CLKOS3_DIVIDER, CLKOS4_DIVIDER, CLKOS5_DIVIDER, FBCLK_DIVIDER, FBK_MODE, MODE, FRAC_N_EN))" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DIVOS2_ACTUAL_STR" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOS2: Divider Actual Value Str" -->
                    <!-- value_expr         = "str(DIVOS2_ACTUAL-1)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS2_FREQ_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS2: Frequency Actual Value (MHz)" -->
                    <!-- value_expr         = "VCO_FREQ/DIVOS2_ACTUAL" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS2_PPM" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS2: ERROR (PPM)" -->
                    <!-- value_expr         = "ext_calc_ppm(CLKOS2_FREQ, CLKOS2_FREQ_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->


    <!-- <lsccip:setting id                 = "CLKOS3_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS3: Enable"  -->
                    <!-- default            = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS3_BYPASS" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS3: Bypass"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS3_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS3_FREQ" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS3: Frequency Desired Value (MHz)" -->
                    <!-- value_range        = "(6.35, 800)" -->
                    <!-- default            = "100" -->
                    <!-- editable           = "CLKOS3_EN == True and CLKOS3_BYPASS != True and MODE == 'FREQUENCY'" -->
                    <!-- drc                = "ext_check_freq_valid(CLKI_FREQ, CLKOP_FREQ, -->
                                                       <!-- CLKOP_TOLERANCE, CLKOS_FREQ, CLKOS_TOLERANCE, -->
                                                       <!-- CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                       <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE,  -->
                                                       <!-- CLKOS5_FREQ, CLKOS5_TOLERANCE, CLKOS_EN, CLKOS2_EN,  -->
                                                       <!-- CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS,  -->
                                                       <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, FBK_MODE, FRAC_N_EN)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS3_TOLERANCE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS3: Tolerance (%)" -->
                    <!-- options            = "[0.0, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0, 10.0]" -->
                    <!-- default            = "0.0" -->
                    <!-- editable           = "MODE == 'FREQUENCY' and CLKOS3_BYPASS != True and CLKOS3_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS3_DIVIDER" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS3: Divider Desired Value" -->
                    <!-- value_range        = "(1, 128)" -->
                    <!-- default            = "8" -->
                    <!-- editable           = "MODE == 'DIVIDER' and CLKOS3_BYPASS != True and CLKOS3_EN == True" -->
                    <!-- drc                = "ext_check_divider_out(MODE, CLKOS3_EN, 'CLKOS3', VCO_FREQ, FBK_MODE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DIVOS3_ACTUAL" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS3: Divider Actual Value" -->
                    <!-- value_expr         = "int(ext_calc_actual_values(5, CLKI_FREQ, CLKOP_FREQ, CLKOP_TOLERANCE, CLKOS_FREQ,  -->
                                                                        <!-- CLKOS_TOLERANCE, CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                                        <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, CLKOS5_FREQ, CLKOS5_TOLERANCE,  -->
                                                                        <!-- CLKOS_EN, CLKOS2_EN, CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, -->
                                                                        <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, CLKI_DIVIDER,  -->
                                                                        <!-- CLKOP_DIVIDER, CLKOS_DIVIDER, CLKOS2_DIVIDER, -->
                                                                        <!-- CLKOS3_DIVIDER, CLKOS4_DIVIDER, CLKOS5_DIVIDER, FBCLK_DIVIDER, FBK_MODE, MODE, FRAC_N_EN))" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DIVOS3_ACTUAL_STR" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOS3: Divider Actual Value Str" -->
                    <!-- value_expr         = "str(DIVOS3_ACTUAL-1)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS3_FREQ_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS3: Frequency Actual Value (MHz)" -->
                    <!-- value_expr         = "VCO_FREQ/DIVOS3_ACTUAL" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS3_PPM" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS3: ERROR (PPM)" -->
                    <!-- value_expr         = "ext_calc_ppm(CLKOS3_FREQ, CLKOS3_FREQ_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS4_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS4: Enable"  -->
                    <!-- default            = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS4_BYPASS" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS4: Bypass"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS4_EN == True and FRAC_N_EN != True and SS_EN != True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS4_FREQ" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS4: Frequency Desired Value (MHz)" -->
                    <!-- value_range        = "(6.35, 800)" -->
                    <!-- default            = "100" -->
                    <!-- editable           = "CLKOS4_EN == True and MODE == 'FREQUENCY' and CLKOS4_BYPASS != True" -->
                    <!-- drc                = "ext_check_freq_valid(CLKI_FREQ, CLKOP_FREQ, -->
                                                       <!-- CLKOP_TOLERANCE, CLKOS_FREQ, CLKOS_TOLERANCE, -->
                                                       <!-- CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                       <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE,  -->
                                                       <!-- CLKOS5_FREQ, CLKOS5_TOLERANCE, CLKOS_EN, CLKOS2_EN,  -->
                                                       <!-- CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS,  -->
                                                       <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, FBK_MODE, FRAC_N_EN)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS4_TOLERANCE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS4: Tolerance (%)" -->
                    <!-- options            = "[0.0, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0, 10.0]" -->
                    <!-- default            = "0.0" -->
                    <!-- editable           = "MODE == 'FREQUENCY' and CLKOS4_BYPASS != True and CLKOS4_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS4_DIVIDER" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS4: Divider Desired Value" -->
                    <!-- value_range        = "(1, 128)" -->
                    <!-- default            = "8" -->
                    <!-- editable           = "MODE == 'DIVIDER' and CLKOS4_BYPASS != True and CLKOS4_EN == True" -->
                    <!-- drc                = "ext_check_divider_out(MODE, CLKOS4_EN, 'CLKOS4', VCO_FREQ, FBK_MODE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->


    <!-- <lsccip:setting id                 = "DIVOS4_ACTUAL" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS4: Divider Actual Value" -->
                    <!-- value_expr         = "int(ext_calc_actual_values(6, CLKI_FREQ, CLKOP_FREQ, CLKOP_TOLERANCE, CLKOS_FREQ, CLKOS_TOLERANCE,  -->
                                                                        <!-- CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                                        <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, CLKOS5_FREQ,  -->
                                                                        <!-- CLKOS5_TOLERANCE, CLKOS_EN, CLKOS2_EN, CLKOS3_EN, CLKOS4_EN, CLKOS5_EN,  -->
                                                                        <!-- CLKOP_BYPASS, CLKOS_BYPASS, -->
                                                                        <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS,  -->
                                                                        <!-- CLKI_DIVIDER, CLKOP_DIVIDER, CLKOS_DIVIDER, CLKOS2_DIVIDER, -->
                                                                        <!-- CLKOS3_DIVIDER, CLKOS4_DIVIDER, CLKOS5_DIVIDER, FBCLK_DIVIDER, FBK_MODE, MODE, FRAC_N_EN))" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DIVOS4_ACTUAL_STR" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOS4: Divider Actual Value Str" -->
                    <!-- value_expr         = "str(DIVOS4_ACTUAL-1)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS4_FREQ_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS4: Frequency Actual Value (MHz)" -->
                    <!-- value_expr         = "VCO_FREQ/DIVOS4_ACTUAL" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS4_PPM" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS4: ERROR (PPM)" -->
                    <!-- value_expr         = "ext_calc_ppm(CLKOS4_FREQ, CLKOS4_FREQ_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS5_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS5: Enable"  -->
                    <!-- default            = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS5_BYPASS" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "CLKOS5: Bypass"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS5_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS5_FREQ" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS5: Frequency Desired Value (MHz)" -->
                    <!-- value_range        = "(6.35, 800)" -->
                    <!-- default            = "100" -->
                    <!-- editable           = "CLKOS5_EN == True and CLKOS5_BYPASS != True and MODE == 'FREQUENCY'" -->
                    <!-- drc                = "ext_check_freq_valid(CLKI_FREQ, CLKOP_FREQ, -->
                                                       <!-- CLKOP_TOLERANCE, CLKOS_FREQ, CLKOS_TOLERANCE, -->
                                                       <!-- CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                       <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE,  -->
                                                       <!-- CLKOS5_FREQ, CLKOS5_TOLERANCE, CLKOS_EN, CLKOS2_EN,  -->
                                                       <!-- CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS,  -->
                                                       <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, FBK_MODE, FRAC_N_EN)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS5_TOLERANCE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS5: Tolerance (%)" -->
                    <!-- options            = "[0.0, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0, 10.0]" -->
                    <!-- default            = "0.0" -->
                    <!-- editable           = "MODE == 'FREQUENCY' and CLKOS5_BYPASS != True and CLKOS5_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS5_DIVIDER" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS5: Divider Desired Value" -->
                    <!-- value_range        = "(1, 128)" -->
                    <!-- default            = "8" -->
                    <!-- editable           = "MODE == 'DIVIDER' and CLKOS5_BYPASS != True and CLKOS5_EN == True" -->
                    <!-- drc                = "ext_check_divider_out(MODE, CLKOS5_EN, 'CLKOS5', VCO_FREQ, FBK_MODE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DIVOS5_ACTUAL" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS5: Divider Actual Value" -->
                    <!-- value_expr         = "int(ext_calc_actual_values(7, CLKI_FREQ, CLKOP_FREQ, CLKOP_TOLERANCE, CLKOS_FREQ,  -->
                                                                        <!-- CLKOS_TOLERANCE, CLKOS2_FREQ, CLKOS2_TOLERANCE, CLKOS3_FREQ, -->
                                                                        <!-- CLKOS3_TOLERANCE, CLKOS4_FREQ, CLKOS4_TOLERANCE, CLKOS5_FREQ,  -->
                                                                        <!-- CLKOS5_TOLERANCE, CLKOS_EN, CLKOS2_EN,  -->
                                                                        <!-- CLKOS3_EN, CLKOS4_EN, CLKOS5_EN, CLKOP_BYPASS, CLKOS_BYPASS, -->
                                                                        <!-- CLKOS2_BYPASS, CLKOS3_BYPASS, CLKOS4_BYPASS, CLKOS5_BYPASS, CLKI_DIVIDER,  -->
                                                                        <!-- CLKOP_DIVIDER, CLKOS_DIVIDER, CLKOS2_DIVIDER, -->
                                                                        <!-- CLKOS3_DIVIDER, CLKOS4_DIVIDER, CLKOS5_DIVIDER, FBCLK_DIVIDER, FBK_MODE, MODE, FRAC_N_EN))" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DIVOS5_ACTUAL_STR" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "CLKOS5: Divider Actual Value Str" -->
                    <!-- value_expr         = "str(DIVOS5_ACTUAL-1)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->


    <!-- <lsccip:setting id                 = "CLKOS5_FREQ_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS5: Frequency Actual Value (MHz)" -->
                    <!-- value_expr         = "VCO_FREQ/DIVOS5_ACTUAL" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS5_PPM" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "CLKOS5: ERROR (PPM)" -->
                    <!-- value_expr         = "ext_calc_ppm(CLKOS5_FREQ, CLKOS5_FREQ_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOP_PHASE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOP: Static Phase Shift Desired Degrees" -->
                    <!-- value_range        = "(0, 360)" -->
                    <!-- default            = "0" -->
                    <!-- editable           = "CLKOP_BYPASS != True and FBK_MODE != 'CLKOP' and FBK_MODE != 'INTCLKOP' and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- drc                = "ext_check_phase(CLKOP_PHASE_ACTUAL, CLKOP_PHASE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOP_PHASE_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOP: Static Phase Shift Actual Degrees" -->
                    <!-- value_expr         = "ext_calc_phase(CLKOP_PHASE, DIVOP_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DELA" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "DELA" -->
                    <!-- value_expr         = "ext_calc_phase_post_div(CLKOP_PHASE_ACTUAL, DIVOP_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "PHIA" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "PHIA" -->
                    <!-- value_expr         = "ext_calc_phi_vco(CLKOP_PHASE_ACTUAL, DIVOP_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_PHASE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS: Static Phase Shift Desired Degrees" -->
                    <!-- value_range        = "(0, 360)" -->
                    <!-- default            = "0" -->
                    <!-- editable           = "CLKOS_BYPASS != True and FBK_MODE != 'CLKOS' and  -->
                                          <!-- FBK_MODE != 'INTCLKOS' and CLKOS_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- drc                = "ext_check_phase(CLKOS_PHASE_ACTUAL, CLKOS_PHASE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS_PHASE_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS: Static Phase Shift Actual Degrees" -->
                    <!-- value_expr         = "ext_calc_phase(CLKOS_PHASE, DIVOS_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DELB" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "DELB" -->
                    <!-- value_expr         = "ext_calc_phase_post_div(CLKOS_PHASE_ACTUAL, DIVOS_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "PHIB" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "PHIB" -->
                    <!-- value_expr         = "ext_calc_phi_vco(CLKOS_PHASE_ACTUAL, DIVOS_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS2_PHASE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS2: Static Phase Shift Desired Degrees" -->
                    <!-- value_range        = "(0, 360)" -->
                    <!-- default            = "0" -->
                    <!-- editable           = "CLKOS2_BYPASS != True and FBK_MODE != 'CLKOS2' and  -->
                                          <!-- FBK_MODE != 'INTCLKOS2' and CLKOS2_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- drc                = "ext_check_phase(CLKOS2_PHASE_ACTUAL, CLKOS2_PHASE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS2_PHASE_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS2: Static Phase Shift Actual Degrees" -->
                    <!-- value_expr         = "ext_calc_phase(CLKOS2_PHASE, DIVOS2_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DELC" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "DELC" -->
                    <!-- value_expr         = "ext_calc_phase_post_div(CLKOS2_PHASE_ACTUAL, DIVOS2_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "PHIC" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "PHIC" -->
                    <!-- value_expr         = "ext_calc_phi_vco(CLKOS2_PHASE_ACTUAL, DIVOS2_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS3_PHASE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS3: Static Phase Shift Desired Degrees" -->
                    <!-- value_range        = "(0, 360)" -->
                    <!-- default            = "0" -->
                    <!-- editable           = "CLKOS3_BYPASS != True and FBK_MODE != 'CLKOS3' and  -->
                                          <!-- FBK_MODE != 'INTCLKOS3' and CLKOS3_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- drc                = "ext_check_phase(CLKOS3_PHASE_ACTUAL, CLKOS3_PHASE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS3_PHASE_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS3: Static Phase Shift Actual Degrees" -->
                    <!-- value_expr         = "ext_calc_phase(CLKOS3_PHASE, DIVOS3_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DELD" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "DELD" -->
                    <!-- value_expr         = "ext_calc_phase_post_div(CLKOS3_PHASE_ACTUAL, DIVOS3_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "PHID" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "PHID" -->
                    <!-- value_expr         = "ext_calc_phi_vco(CLKOS3_PHASE_ACTUAL, DIVOS3_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS4_PHASE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS4: Static Phase Shift Desired Degrees" -->
                    <!-- value_range        = "(0, 360)" -->
                    <!-- default            = "0" -->
                    <!-- editable           = "CLKOS4_BYPASS != True and FBK_MODE != 'CLKOS4' and  -->
                                          <!-- FBK_MODE != 'INTCLKOS4' and CLKOS4_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- drc                = "ext_check_phase(CLKOS4_PHASE_ACTUAL, CLKOS4_PHASE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS4_PHASE_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS4: Static Phase Shift Actual Degrees" -->
                    <!-- value_expr         = "ext_calc_phase(CLKOS4_PHASE, DIVOS4_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DELE" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "DELE" -->
                    <!-- value_expr         = "ext_calc_phase_post_div(CLKOS4_PHASE_ACTUAL, DIVOS4_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "PHIE" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "PHIE" -->
                    <!-- value_expr         = "ext_calc_phi_vco(CLKOS4_PHASE_ACTUAL, DIVOS4_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS5_PHASE" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS5: Static Phase Shift Desired Degrees" -->
                    <!-- value_range        = "(0, 360)" -->
                    <!-- default            = "0" -->
                    <!-- editable           = "CLKOS5_BYPASS != True and FBK_MODE != 'CLKOS5' and  -->
                                          <!-- FBK_MODE != 'INTCLKOS5' and CLKOS5_EN == True and FRAC_N_EN != True and SS_EN != True" -->
                    <!-- drc                = "ext_check_phase(CLKOS5_PHASE_ACTUAL, CLKOS5_PHASE)" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CLKOS5_PHASE_ACTUAL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "float" -->
                    <!-- title              = "CLKOS5: Static Phase Shift Actual Degrees" -->
                    <!-- value_expr         = "ext_calc_phase(CLKOS5_PHASE, DIVOS5_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DELF" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "DELF" -->
                    <!-- value_expr         = "ext_calc_phase_post_div(CLKOS5_PHASE_ACTUAL, DIVOS5_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "PHIF" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "PHIF" -->
                    <!-- value_expr         = "ext_calc_phi_vco(CLKOS5_PHASE_ACTUAL, DIVOS5_ACTUAL)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Phase" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "DYN_PORTS_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Optional Port Selection: Dynamic Phase Ports"  -->
                    <!-- default            = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "ENCLKOP_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Optional Port Selection: CLKOP Enable Port"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOP_BYPASS == False and FBK_MODE != 'CLKOP' and  -->
                                          <!-- FBK_MODE != 'INTCLKOP'" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "ENCLKOS_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Optional Port Selection: CLKOS Enable Port"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS_BYPASS == False and CLKOS_EN == True and FBK_MODE != 'CLKOS' and  -->
                                          <!-- FBK_MODE != 'INTCLKOS'" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "ENCLKOS2_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Optional Port Selection: CLKOS2 Enable Port"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS2_BYPASS == False and CLKOS2_EN == True and FBK_MODE != 'CLKOS2' and  -->
                                          <!-- FBK_MODE != 'INTCLKOS2'" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "ENCLKOS3_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Optional Port Selection: CLKOS3 Enable Port"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS3_BYPASS == False and CLKOS3_EN == True and FBK_MODE != 'CLKOS3' and  -->
                                          <!-- FBK_MODE != 'INTCLKOS3'" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "ENCLKOS4_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Optional Port Selection: CLKOS4 Enable Port"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS4_BYPASS == False and CLKOS4_EN == True and FBK_MODE != 'CLKOS4' and  -->
                                          <!-- FBK_MODE != 'INTCLKOS4'" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "ENCLKOS5_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Optional Port Selection: CLKOS5 Enable Port"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "CLKOS5_BYPASS == False and CLKOS5_EN == True and FBK_MODE != 'CLKOS5' and  -->
                                          <!-- FBK_MODE != 'INTCLKOS5'" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "PLL_RST" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "PLL Reset Options: Provide PLL Reset"  -->
                    <!-- default            = "True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "LOCK_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Lock Settings: Provide PLL Lock Signal"  -->
                    <!-- default            = "True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "PLL_LOCK_STICKY" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Lock Settings: PLL Lock is Sticky"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "LOCK_EN == True" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "LMMI_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "LMMI Interface: Provide LMMI Port"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "APB_EN == False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "APB_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "APB Interface: Provide APB Port"  -->
                    <!-- default            = "False" -->
                    <!-- editable           = "LMMI_EN == False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "LEGACY_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Power Mode Settings: Enable Legacy Mode"  -->
                    <!-- default            = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "POWERDOWN_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "bool" -->
                    <!-- title              = "Power Mode Settings: Enable Powerdown Mode"  -->
                    <!-- default            = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Optional Ports" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "VOLTAGE" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "Operating Voltage" -->
                    <!-- options            = "[('1V', 0), ('0.9V', 1)]" -->
                    <!-- default            = "0" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "V2I_KVCO_SEL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "VCO V2I gain" -->
                    <!-- value_expr         = "'55' if (VOLTAGE == 1) else '40'" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "KP_VCO" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "VCO KP" -->
                    <!-- value_expr         = "'0b11001' if (VOLTAGE == 1) else '0b00011'" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "V2I_1V_EN" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "VCO KP" -->
                    <!-- value_expr         = "'DISABLED' if (VOLTAGE == 1) else 'ENABLED'" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "BW_FACTOR" -->
                    <!-- type               = "input" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "int" -->
                    <!-- title              = "BW Factor" -->
                    <!-- value_range        = "(5, 30)" -->
                    <!-- default            = "5" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "ALL_ANALOG_PARAMS" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "All Analog Params" -->
                    <!-- value_expr         = "ext_calc_analog_params(CLKI_FREQ, CLKI_DIVIDER_ACTUAL, FBCLK_DIVIDER_ACTUAL, DIVOP_ACTUAL, DIVOS_ACTUAL,  -->
                                                                 <!-- DIVOS2_ACTUAL, DIVOS3_ACTUAL, DIVOS4_ACTUAL, DIVOS5_ACTUAL, FBK_MODE, BW_FACTOR, FRAC_N_EN)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CSET" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "Capasitor Setting" -->
                    <!-- value_expr         = "ext_calc_analog_param(ALL_ANALOG_PARAMS, 0)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "CRIPPLE" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "Cripple" -->
                    <!-- value_expr         = "ext_calc_analog_param(ALL_ANALOG_PARAMS, 1)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "IPP_CTRL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "IPP Control" -->
                    <!-- value_expr         = "ext_calc_analog_param(ALL_ANALOG_PARAMS, 4)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "IPP_SEL" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "IPP Select" -->
                    <!-- value_expr         = "ext_calc_analog_param(ALL_ANALOG_PARAMS, 3)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "BW_CTL_BIAS" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "BW Control Bias" -->
                    <!-- value_expr         = "ext_calc_analog_param(ALL_ANALOG_PARAMS, 5)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "V2I_PP_RES" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "Voltage to Current Resistor" -->
                    <!-- value_expr         = "ext_calc_analog_param(ALL_ANALOG_PARAMS, 2)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

    <!-- <lsccip:setting id                 = "IPI_CMP" -->
                    <!-- type               = "param" -->
                    <!-- conn_mod           = "lscc_dphy_tx" -->
                    <!-- value_type         = "string" -->
                    <!-- title              = "Ipath CP control bit" -->
                    <!-- value_expr         = "ext_calc_analog_param(ALL_ANALOG_PARAMS, 6)" -->
                    <!-- editable           = "False" -->
                    <!-- group1             = "General" -->
                    <!-- hidden             = "True" -->
                    <!-- group2             = "Analog Settings" -->
    <!-- /> -->

  </lsccip:settings>

  <lsccip:ports>
    <!-- LMMI Interface -->
    <lsccip:port name      = "lmmi_clk_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lmmi_clk_i"
                 stick_low = "not LMMI"
                 bus_interface = "LMMI_SLV"
    />

    <lsccip:port name      = "lmmi_resetn_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lmmi_resetn_i"
                 stick_low = "not LMMI"
                 bus_interface = "LMMI_SLV"
    />

    <lsccip:port name      = "lmmi_wdata_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lmmi_wdata_i"
                 range     = "(7 , 0)"
                 stick_low = "not LMMI"
                 bus_interface = "LMMI_SLV"
    />

    <lsccip:port name      = "lmmi_wr_rdn_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lmmi_wr_rdn_i"
                 stick_low = "not LMMI"
                 bus_interface = "LMMI_SLV"
    />

    <lsccip:port name      = "lmmi_offset_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lmmi_offset_i"
                 range     = "(7 , 0)"
                 stick_low = "not LMMI"
                 bus_interface = "LMMI_SLV"
    />

    <lsccip:port name      = "lmmi_request_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lmmi_request_i"
                 stick_low = "not LMMI"
                 bus_interface = "LMMI_SLV"
    />

    <lsccip:port name      = "lmmi_ready_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lmmi_ready_o"
                 dangling  = "not LMMI"
                 bus_interface = "LMMI_SLV"
    />

    <lsccip:port name      = "lmmi_rdata_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lmmi_rdata_o"
                 range     = "(7 , 0)"
                 dangling  = "not LMMI"
                 bus_interface = "LMMI_SLV"
    />

    <lsccip:port name      = "lmmi_rdata_valid_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lmmi_rdata_valid_o"
                 dangling  = "not LMMI"
                 bus_interface = "LMMI_SLV"
    />

    <!-- AXI4-Stream Interface -->
    <lsccip:port name          = "axis_tvalid_i"
                 dir           = "in"
                 conn_mod      = "lscc_dphy_tx"
                 conn_port     = "axis_tvalid_i"
                 stick_low     = "not AXI4"
				 bus_interface = "AXI4S_S0"
    />

    <lsccip:port name          = "axis_tdata_i"
                 dir           = "in"
                 conn_mod      = "lscc_dphy_tx"
                 conn_port     = "axis_tdata_i"
                 range         = "(GEAR * NUM_TX_LANE + 24 - 1 if (not PKT_FORMAT and not VCX_EN) else
                                   GEAR * NUM_TX_LANE + 26 - 1 if (not PKT_FORMAT and     VCX_EN) else
                                   GEAR * NUM_TX_LANE - 1, 0)"
                 stick_low     = "not AXI4"
				 bus_interface = "AXI4S_S0"
    />

    <lsccip:port name          = "axis_tready_o"
                 dir           = "out"
                 conn_mod      = "lscc_dphy_tx"
                 conn_port     = "axis_tready_o"
                 dangling      = "not AXI4"
				 bus_interface = "AXI4S_S0"
    />

    <!-- D-PHY TX Interface -->
    <!-- stick_low = "CIL_BYPASS and PLL_MODE == 'EXTERNAL' and DPHY_IP != 'LATTICE'" -->
    <lsccip:port name      = "ref_clk_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "ref_clk_i"
                 stick_low = "(DPHY_IP == 'LATTICE' and not ECLK_SCLK_ENABLE)"
    />

    <lsccip:port name      = "reset_n_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "reset_n_i"
    />

    <lsccip:port name      = "usrstdby_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "usrstdby_i"
                 stick_low = "PLL_MODE == 'EXTERNAL'"
    />

    <lsccip:port name      = "pd_dphy_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "pd_dphy_i"
                 stick_low = "DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == False"
    />

    <lsccip:port name      = "byte_or_pkt_data_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "byte_or_pkt_data_i"
                 range     = "(GEAR * NUM_TX_LANE - 1, 0)"
                 stick_low = "AXI4"
    />

    <lsccip:port name      = "byte_or_pkt_data_en_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "byte_or_pkt_data_en_i"
                 stick_low = "AXI4 or (not CIL_BYPASS and PKT_FORMAT)"
    />

    <lsccip:port name      = "vcx_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "vcx_i"
                 range     = "(1, 0)"
                 stick_low = "AXI4 or PKT_FORMAT or not VCX_EN"
    />

    <lsccip:port name      = "vc_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "vc_i"
                 range     = "(1, 0)"
                 stick_low = "AXI4 or PKT_FORMAT"
    />

    <lsccip:port name      = "dt_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "dt_i"
                 range     = "(5, 0)"
                 stick_low = "AXI4 or PKT_FORMAT"
    />

    <lsccip:port name      = "wc_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "wc_i"
                 range     = "(15, 0)"
                 stick_low = "AXI4 or PKT_FORMAT"
    />

    <lsccip:port name      = "clk_hs_en_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "clk_hs_en_i"
                 stick_high = "not MAN_HSCLKCTRL_EN and ((not CIL_BYPASS and not PKT_FORMAT) or CLK_MODE == 'HS_ONLY')"
    />

    <lsccip:port name      = "d_hs_en_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "d_hs_en_i"
                 stick_low = "not CIL_BYPASS and not PKT_FORMAT"
    />


    <lsccip:port name      = "tx_cil_word_valid_lane0_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "tx_cil_word_valid_lane0_i"
                 range     = "(3,0)"
                 stick_low = "CIL_BYPASS or not PKT_FORMAT or DPHY_IP == 'LATTICE'"
    />

    <lsccip:port name      = "tx_cil_word_valid_lane1_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "tx_cil_word_valid_lane1_i"
                 range     = "(3,0)"
                 stick_low = "CIL_BYPASS or not PKT_FORMAT or DPHY_IP == 'LATTICE'"
    />

    <lsccip:port name      = "tx_cil_word_valid_lane2_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "tx_cil_word_valid_lane2_i"
                 range     = "(3,0)"
                 stick_low = "CIL_BYPASS or not PKT_FORMAT or DPHY_IP == 'LATTICE'"
    />

    <lsccip:port name      = "tx_cil_word_valid_lane3_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "tx_cil_word_valid_lane3_i"
                 range     = "(3,0)"
                 stick_low = "CIL_BYPASS or not PKT_FORMAT or DPHY_IP == 'LATTICE'"
    />

    <lsccip:port name      = "line_disable_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "line_disable_i"
                 range     = "(NUM_TX_LANE - 1, 0)"
                 stick_low = "CIL_BYPASS or not PKT_FORMAT"
    />

    <lsccip:port name      = "tinit_done_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "tinit_done_o"
                 dangling  = "not MISC_ON or not TINIT_COUNT"
    />

    <lsccip:port name      = "pll_lock_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "pll_lock_o"
                 dangling  = "not MISC_ON"
    />

    <lsccip:port name      = "pix2byte_rstn_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "pix2byte_rstn_o"
                 dangling  = "not MISC_ON or TX_INTF == 'DSI' or PKT_FORMAT or not CIL_BYPASS"
    />

    <lsccip:port name      = "pkt_format_ready_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "pkt_format_ready_o"
                 dangling  = "PKT_FORMAT or TX_INTF == 'DSI' or AXI4 or
                                  not MISC_ON"
    />

    <lsccip:port name      = "d_hs_rdy_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "d_hs_rdy_o"
    />

    <lsccip:port name      = "byte_clk_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "byte_clk_o"
                 dangling  = "DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == False"
    />

    <lsccip:port name      = "ready_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "ready_o"
                 dangling  = "DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == False"
    />

    <lsccip:port name      = "ddr_reset_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "ddr_reset_o"
                 dangling  = "DPHY_IP == 'MIXEL' or 
                             (DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == False)"
    />

    <lsccip:port name      = "eclk_syncclk_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "eclk_syncclk_o"
                 dangling  = "DPHY_IP == 'MIXEL' or 
                             (DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == False) or
                             (DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == True and ECLKO_EN_IN == False)"
    />

    <lsccip:port name      = "eclk_syncclk_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "eclk_syncclk_i"
                 stick_low = "DPHY_IP == 'MIXEL' or 
                             (DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == True)"
    />

    <lsccip:port name      = "byte_clk_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "byte_clk_i"
                 stick_low = "DPHY_IP == 'MIXEL' or 
                             (DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == True)"
    />

    <lsccip:port name      = "ddr_reset_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "ddr_reset_i"
                 stick_low = "DPHY_IP == 'MIXEL' or 
                             (DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == True)"
    />

    <lsccip:port name      = "ready_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "ready_i"
                 stick_low = "DPHY_IP == 'MIXEL' or 
                             (DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == True)"
    />


    <!-- <lsccip:port name      = "byte_rstn_o"   -->
    <!--             dir       = "out"            -->
    <!--             conn_mod  = "lscc_dphy_tx"   -->
    <!--             conn_port = "byte_rstn_o"    -->
    <!-- />                                       -->
  
    <lsccip:port name      = "c2d_ready_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "c2d_ready_o"
    />

    <lsccip:port name      = "phdr_xfr_done_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "phdr_xfr_done_o"
                 dangling  = "PKT_FORMAT or TX_INTF == 'DSI' or not CIL_BYPASS"
    />

    <lsccip:port name      = "ld_pyld_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "ld_pyld_o"
                 dangling  = "PKT_FORMAT or TX_INTF == 'DSI' or not CIL_BYPASS"
    />

    <lsccip:port name      = "clk_p_io"
                 dir       = "inout"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "clk_p_io"
    />

    <lsccip:port name      = "clk_n_io"
                 dir       = "inout"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "clk_n_io"
    />

    <lsccip:port name      = "d_p_io"
                 dir       = "inout"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "d_p_io"
                 range     = "(NUM_TX_LANE - 1, 0)"
    />

    <lsccip:port name      = "d_n_io"
                 dir       = "inout"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "d_n_io"
                 range     = "(NUM_TX_LANE - 1, 0)"
    />

    <!-- PLL Inputs -->
    <lsccip:port name      = "pll_clkop_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "pll_clkop_i"
                 stick_low = "PLL_MODE == 'INTERNAL' or 
                              (DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == False)"
    />
    
    <lsccip:port name      = "pll_clkos_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "pll_clkos_i"
                 stick_low = "PLL_MODE == 'INTERNAL' or 
                              (PLL_MODE == 'EXTERNAL' and DPHY_IP == 'MIXEL')"
    />

    <lsccip:port name      = "pll_lock_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "pll_lock_i"
                 stick_low = "PLL_MODE == 'INTERNAL' or 
                              (DPHY_IP == 'LATTICE' and ECLK_SCLK_ENABLE == False)"
    />

    <!-- Native Interface -->
    <lsccip:port name      = "sp_en_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "sp_en_i"
                 stick_low = "PKT_FORMAT"
    />

    <lsccip:port name      = "lp_en_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lp_en_i"
                 stick_low = "TX_INTF == 'DSI' or PKT_FORMAT"
    />

    <!-- Short and Long packets generalized between DSI and CSI-2-->
    <!--     <lsccip:port name      = "vsync_start_i"                    -->
    <!--                  dir       = "in"                               -->
    <!--                  conn_mod  = "lscc_dphy_tx"                     -->
    <!--                  conn_port = "vsync_start_i"                    -->
    <!--                  stick_low = "TX_INTF == 'CSI2' or PKT_FORMAT"  -->
    <!--     />                                                          -->
    <!--                                                                 -->
    <!--     <lsccip:port name      = "hsync_start_i"                    -->
    <!--                  dir       = "in"                               -->
    <!--                  conn_mod  = "lscc_dphy_tx"                     -->
    <!--                  conn_port = "hsync_start_i"                    -->
    <!--                  stick_low = "TX_INTF == 'CSI2' or PKT_FORMAT"  -->
    <!--     />                                                          -->
  
    <lsccip:port name      = "skewcal_period_en_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "skewcal_period_en_i"
                 stick_low = "not PERIODIC_SKEWCAL"
    />

    <!-- CIL -->
    <lsccip:port name      = "fifo_reset_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "fifo_reset_i"
                 stick_low = "True"
    />

    <lsccip:port name      = "cil_hs_tx_ready_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "hs_tx_cil_ready_o"
                 range     = "(NUM_TX_LANE - 1, 0)"
                 dangling  = "(CIL_BYPASS) or DPHY_IP == 'LATTICE'"
    />
    
    <lsccip:port name      = "hs_clk_cil_ready_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "hs_clk_cil_ready_o"
                 dangling  = "CIL_BYPASS or not PKT_FORMAT or DPHY_IP == 'LATTICE'"
    />

    <lsccip:port name      = "cil_data_lane_ss_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "data_lane_ss_o"
                 range     = "(NUM_TX_LANE - 1, 0)"
                 dangling  = "(CIL_BYPASS) or DPHY_IP == 'LATTICE'"
    />

    <lsccip:port name      = "lp_rx_en_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lp_rx_en_i"
                 stick_low = "(TX_INTF == 'CSI2' and CIL_BYPASS) or 
                              (DPHY_IP == 'MIXEL' and not CIL_BYPASS)"
    />

    <lsccip:port name      = "lp_rx_data_p_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lp_rx_data_p_o"
                 dangling  = "TX_INTF == 'CSI2'"
    />

    <lsccip:port name      = "lp_rx_data_n_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lp_rx_data_n_o"
                 dangling  = "TX_INTF == 'CSI2'"
    />

	<!-- ================start=LPDT=and=BTA=ports=========================== -->    
    <lsccip:port name      = "esc_clk_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "esc_clk_i"
                 stick_low = "not LPTXESC"
    />
    
    <lsccip:port name      = "esc_rst_n_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "esc_rst_n_i"
                 stick_low = "not LPTXESC"
    />    
    
    <lsccip:port name      = "esc_req_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "esc_req_i"
                 stick_low = "not LPTXESC"
    />  

    <lsccip:port name      = "esc_lpdt_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "esc_lpdt_i"
                 stick_low = "not LPTXESC"
    />  

    <lsccip:port name      = "esc_trig_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "esc_trig_i"
                 range     = "(3,0)"
                 stick_low = "not LPTXESC"
    />  

    <lsccip:port name      = "esc_btareq_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "esc_btareq_i"
                 stick_low = "not BTA"
    /> 

    <lsccip:port name      = "esc_data_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "esc_data_i"
                 range     = "(7,0)"
                 stick_low = "not LPTXESC"
    /> 

    <lsccip:port name      = "esc_data_vld_i"
                 dir       = "in"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "esc_data_vld_i"
                 stick_low = "not LPTXESC"
    />    

    <lsccip:port name      = "rxlpdtesc_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "rxlpdtesc_o"
                 dangling  = "not BTA"
    />       
    
    <lsccip:port name      = "rxdataesc_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "rxdataesc_o"
                 range     = "(7,0)"
                 dangling  = "not BTA"
    /> 

    <lsccip:port name      = "rxvalidesc_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "rxvalidesc_o"
                 dangling  = "not BTA"
    /> 

    <lsccip:port name      = "txesc_ready_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "txesc_ready_o"
                 dangling  = "not LPTXESC"
    /> 
    <lsccip:port name      = "bta_dxn_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "bta_dxn_o"
                 dangling  = "not BTA"
    /> 
    
    <lsccip:port name      = "lprxclk_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lprxclk_o"
                 dangling  = "not BTA"
    /> 

    <lsccip:port name      = "lprx_rst_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lprx_rst_o"
                 dangling  = "not BTA"
    /> 
    <lsccip:port name      = "lprx_curstate_o"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "lprx_curstate_o"
                 dangling  =  "True"
    />    
    
    <lsccip:port name      = "bta_stopstate"
                 dir       = "out"
                 conn_mod  = "lscc_dphy_tx"
                 conn_port = "bta_stopstate"
                 dangling  = "True"
    /> 
    
    
	<!-- =================end==LPDT=and=BTA=ports=========================== -->       
  </lsccip:ports>

    <lsccip:outFileConfigs>
      <lsccip:fileConfig name="wrapper" file_suffix="sv" file_description="top_level_system_verilog"></lsccip:fileConfig>
    </lsccip:outFileConfigs>
    
    <xi:include href="bus_interface.xml" parse="xml" />
    <xi:include href="memory_map.xml" parse="xml" />
	
	<lsccip:componentGenerators>
	<lsccip:componentGenerator>
	  <lsccip:name>constraint_setup</lsccip:name>
      <lsccip:generatorExe>eval/ip_eval_setup.py</lsccip:generatorExe>
    </lsccip:componentGenerator>
  </lsccip:componentGenerators>
	
</lsccip:ip>

