<?xml version="1.0"?>
<lsccip:ip version="1.0"  
    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>cre_mux</lsccip:name>
    <lsccip:display_name>CRE Mux</lsccip:display_name>
    <lsccip:version>1.0.0</lsccip:version>
    <lsccip:category>Processors_Controllers_and_Peripherals</lsccip:category>
	  <lsccip:keywords>BusType_APB</lsccip:keywords>
    <lsccip:min_radiant_version>2022.1</lsccip:min_radiant_version>
    <lsccip:min_esi_version>2023.1</lsccip:min_esi_version>
    <lsccip:supported_products>
      <lsccip:supported_family name="LFMXO4">
        <lsccip:supported_device name="LFMXO4D-040HC"/>
        <lsccip:supported_device name="LFMXO4D-040ZC"/>
        <lsccip:supported_device name="LFMXO4D-050HC"/>
        <lsccip:supported_device name="LFMXO4D-050ZC"/>
        <lsccip:supported_device name="LFMXO4D-080HC"/>
        <lsccip:supported_device name="LFMXO4D-080HE"/>
        <lsccip:supported_device name="LFMXO4D-080ZC"/>
        <lsccip:supported_device name="LFMXO4D-110HC"/>
        <lsccip:supported_device name="LFMXO4D-110HE"/>
        <lsccip:supported_device name="LFMXO4D-110ZC"/>
      </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 conn_mod           = "lscc_cre_mux_apb"
                    group1             = "General"
                    id                 = "param"
                    type               = "input"
                    value_type         = "string"
                    default            = "NONE"
                    editable           = "False"
                    hidden             = "False"
                    title              = "Parameter settings"/>    
  </lsccip:settings>
  
  <lsccip:ports>
    <!-- System IO -->
    <lsccip:port  name      = "apb_pclk_i"
                  dir       = "in"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "apb_pclk_i"
				          port_type = "clock"
                  extension = "bus_interface='APB_S0'"
    />
	
    <lsccip:port  name      = "asf_clk_i"
                  dir       = "in"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "asf_clk_i"
                  port_type = "clock"
                  extension = "bus_interface='ASF_S0'"
    />

    <!-- Free-running oscillator, owned by no bus interface; intentionally has no bus_interface extension -->
    <lsccip:port  name      = "cre_clk_i"
                  dir       = "in"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "cre_clk_i"
                  port_type = "clock"
    />

    <lsccip:port  name      = "reset_n_i"
                  dir       = "in"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "reset_n_i"
                  port_type = "reset"
                  extension = "bus_interface='APB_S0';polarity='low'"
    />
	
	
    <!-- APB interface -->
    <lsccip:port  name          = "apb_penable_i"
                  dir           = "in"
                  conn_mod      = "lscc_cre_mux_apb"
                  conn_port     = "apb_penable_i"
				          bus_interface = "APB_S0"
    />

    <lsccip:port  name      = "apb_psel_i"
                  dir       = "in"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "apb_psel_i"
				          bus_interface = "APB_S0"		 
    />

    <lsccip:port  name      = "apb_pwrite_i"
                  dir       = "in"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "apb_pwrite_i"
				          bus_interface = "APB_S0"
    />
	
    <lsccip:port  name      = "apb_paddr_i"
                  dir       = "in"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "apb_paddr_i"
                  range     = "(31, 0)"
				          bus_interface = "APB_S0"
    />

    <lsccip:port  name      = "apb_pwdata_i"
                  dir       = "in"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "apb_pwdata_i"
                  range     = "(31, 0)"
				          bus_interface = "APB_S0"
    />
	
    <lsccip:port  name      = "apb_pready_o"
                  dir       = "out"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "apb_pready_o"
				          bus_interface = "APB_S0"
    />

    <lsccip:port  name      = "apb_prdata_o"
                  dir       = "out"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "apb_prdata_o"
                  range     = "(31, 0)"
				          bus_interface = "APB_S0"
    />

    <lsccip:port  name      = "apb_pslverr_o"
                  dir       = "out"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "apb_pslverr_o"
				          bus_interface = "APB_S0"
    />
	
    <!-- HSP interface -->
    <lsccip:port  name      = "asf_dat_i"
                  dir       = "in"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "asf_dat_i"
				          range     = "(31, 0)"
    />

    <lsccip:port  name      = "asf_dat_o"
                  dir       = "out"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "asf_dat_o"
				          range     = "(31, 0)"
    />

    <lsccip:port  name      = "asf_full_o"
                  dir       = "out"
                  conn_mod  = "lscc_cre_mux_apb"
                  conn_port = "asf_full_o"
    />
	
    <lsccip:port    name      = "asf_empty_o"
                    dir       = "out"
                    conn_mod  = "lscc_cre_mux_apb"
                    conn_port = "asf_empty_o"
    />
	
    <lsccip:port    name      = "asf_wr_i"
                    dir       = "in"
                    conn_mod  = "lscc_cre_mux_apb"
                    conn_port = "asf_wr_i"
    />
	
    <lsccip:port    name      = "asf_rd_i"
                    dir       = "in"
                    conn_mod  = "lscc_cre_mux_apb"
                    conn_port = "asf_rd_i"
    />
  </lsccip:ports>
  
  <xi:include href="bus_interface.xml" parse="xml" />  
  <xi:include href="memory_map.xml" parse="xml" />

</lsccip:ip>
