// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{ name: "main",
  type: "xbar",
  clock_primary: "clk_main_i", // Main clock, used in sockets
  other_clock_list: [ "clk_fixed_i", "clk_spi_host0_i", "clk_spi_host1_i", "clk_usb_i"] // Secondary clocks used by specific nodes
  reset_primary: "rst_main_ni", // Main reset, used in sockets
  other_reset_list: [ "rst_fixed_ni", "rst_spi_host0_ni", "rst_spi_host1_ni", "rst_usb_ni"] // Secondary clocks used by specific nodes

  // Rationale for pipeline and req/rsp_fifo_pass:
  // For host interfaces that are used during production state (corei/cored),
  // minimize the amount of host introduced latency.  This is accomplished
  // by setting pipeline to false.
  // For host interfaces that are only used for debug, relax the timing by
  // inserting a register slice and not allowing passthrough (more access
  // latency. This is accomplished by setting `req/rsp_fifo_pass` to false,
  // and implicitly using the default of pipeline true.
  //
  // For device interfaces, especially configuration registers, latency is
  // not generally a concern, thus use `req/rsp_fifo_pass` false and pipeline
  // true.
  // For device accesses to memories (ram / rom / flash), performance is a concern,
  // so use pipeline false where permissible by timing. If not, find a combination
  // that works.
  nodes: [
    { name:  "rv_core_ibex.corei",
      type:  "host",
      clock: "clk_main_i",
      reset: "rst_main_ni",
      pipeline: false
    },
    { name:  "rv_core_ibex.cored",
      type:  "host",
      clock: "clk_main_i",
      reset: "rst_main_ni",
      pipeline: false
    },
    { name:      "rv_dm.sba",
      type:      "host",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "rv_dm.regs",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "rv_dm.mem",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "rom_ctrl.rom",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      req_fifo_pass: true,
      rsp_fifo_pass: false,
    },
    { name:      "rom_ctrl.regs",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "peri",
      type:      "device",
      clock:     "clk_fixed_i",
      reset:     "rst_fixed_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "spi_host0",
      type:      "device",
      clock:     "clk_spi_host0_i",
      reset:     "rst_spi_host0_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "spi_host1",
      type:      "device",
      clock:     "clk_spi_host1_i",
      reset:     "rst_spi_host1_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "usbdev",
      type:      "device",
      clock:     "clk_usb_i",
      reset:     "rst_usb_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "flash_ctrl.core",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "flash_ctrl.prim",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    // Return and examine whether this path
    // latency can be improved.
    { name:      "flash_ctrl.mem",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "hmac",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:         "kmac"
      type:         "device"
      clock:        "clk_main_i"
      reset:        "rst_main_ni"
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    }
    { name:      "aes",
      type:      "device",
      clock:     "clk_main_i"
      reset:     "rst_main_ni"
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "entropy_src",
      type:      "device",
      clock:     "clk_main_i"
      reset:     "rst_main_ni"
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "csrng",
      type:      "device",
      clock:     "clk_main_i"
      reset:     "rst_main_ni"
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "edn0",
      type:      "device",
      clock:     "clk_main_i"
      reset:     "rst_main_ni"
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "edn1",
      type:      "device",
      clock:     "clk_main_i"
      reset:     "rst_main_ni"
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "rv_plic",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      inst_type: "rv_plic",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "otbn",
      type:      "device",
      clock:     "clk_main_i"
      reset:     "rst_main_ni"
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "keymgr",
      type:      "device",
      clock:     "clk_main_i"
      reset:     "rst_main_ni"
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "rv_core_ibex.cfg",
      type:      "device",
      clock:     "clk_main_i"
      reset:     "rst_main_ni"
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "sram_ctrl_main.regs",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      req_fifo_pass: false,
      rsp_fifo_pass: false,
    },
    { name:      "sram_ctrl_main.ram",
      type:      "device",
      clock:     "clk_main_i",
      reset:     "rst_main_ni",
      pipeline:  false
    },
  ],
  connections: {
    rv_core_ibex.corei:  ["rom_ctrl.rom", "rv_dm.mem", "sram_ctrl_main.ram", "flash_ctrl.mem"],
    rv_core_ibex.cored:  [
      "rom_ctrl.rom", "rom_ctrl.regs", "rv_dm.mem", "rv_dm.regs",
      "sram_ctrl_main.ram", "peri", "spi_host0", "spi_host1", "usbdev",
      "flash_ctrl.core", "flash_ctrl.prim", "flash_ctrl.mem",
      "aes", "entropy_src", "csrng", "edn0", "edn1", "hmac",
      "rv_plic", "otbn", "keymgr", "kmac", "sram_ctrl_main.regs",
      "rv_core_ibex.cfg"
    ],
    rv_dm.sba: [
      "rom_ctrl.rom", "rom_ctrl.regs", "rv_dm.mem", "rv_dm.regs",
      "sram_ctrl_main.ram", "peri", "spi_host0", "spi_host1", "usbdev",
      "flash_ctrl.core", "flash_ctrl.prim", "flash_ctrl.mem",
      "aes", "entropy_src", "csrng", "edn0", "edn1", "hmac",
      "rv_plic", "otbn", "keymgr", "kmac", "sram_ctrl_main.regs",
      "rv_core_ibex.cfg",
    ],
  },
}
