// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// TOP English Breakfast configuration
{ name: "englishbreakfast",
  type: "top",

  /////////////////////////////////////////////////////////////
  // Seed for compile-time random constants                  //
  // NOTE: REPLACE THIS WITH A NEW VALUE BEFORE THE TAPEOUT  //
  /////////////////////////////////////////////////////////////
  rnd_cnst_seed: 4881560218908238235

  // 32-bit datawidth
  datawidth: "32",

  // Power information for the design
  power: {
    // Power domains supported by the design
    // Aon represents domain aon
    // 0 represents domain 0
    domains: ["Aon", "0"],

    // Default power domain used for the design
    default: "0"
  },

  // This is the clock data structure of the design.
  // The hier path refers to the clock reference path (struct / port)
  //   - The top/ext desgination follows the same scheme as inter-module
  // The src key indicates the raw clock sources in the design
  // The groups key indicates the various clock groupings in the design
  clocks: {

    hier_paths: {
      top: "clkmgr_aon_clocks.", // top level is a struct
      ext: "",                   // ext is a port of the clock name
      lpg: "clkmgr_aon_cg_en.",  // top level struct for alert lpg reset enables
    },

    // Clock Source attributes
    // name: Name of group.
    // aon:  Whether the clock is free running all the time.
    //       If it is, the clock is not hanlded by clkmgr.
    // freq: Absolute frequency of clk in Hz
    srcs: [
      { name: "main", aon: "no",  freq: "100000000" }
      { name: "io",   aon: "no",  freq: "96000000" }
      { name: "usb",  aon: "no",  freq: "48000000" }
      { name: "aon",  aon: "yes", freq: "200000" }
    ],

    // Derived clock source attributes
    // name: Name of group.
    // aon:  Whether the clock is free running all the time.
    //       If it is, the clock is not hanlded by clkmgr.
    // freq: Absolute frequency of clk in Hz
    // src:  From which clock source is the clock derived
    // div:  Ratio between derived clock and source clock
    derived_srcs: [
      { name: "io_div2", aon: "no", div: 2, src: "io", freq: "48000000" }
      { name: "io_div4", aon: "no", div: 4, src: "io", freq: "24000000" }
    ],

    // Clock Group attributes
    // name: name of group.
    //
    // src: The hierarchical source of the clock
    // "ext"  - clock is supplied from a port of the top module
    // "top"  - clock is supplied from a net inside the top module
    //
    // sw_cg: whether software is allowed to gate the clock
    // "no"   - software is not allowed to gate clocks
    // "yes"  - software is allowed to gate clocks
    // "hint" - software can provide a hint, and hw controls the rest
    //
    // unique: whether each module in the group can be separately gated
    //         if sw_cg is "no", this field has no meaning
    // "yes"  - each clock is individually controlled
    // "no"   - the group is controlled as one single unit
    //
    // The powerup and proc groups are unique.
    // The powerup group of clocks do not feed through the clock
    // controller as they manage clock controller behavior
    // The proc group is not peripheral, and directly hardwired

    groups: [
      // the ast group is used to represent input clocks to the top
      { name: "ast",     src:"ext", sw_cg: "no"                   }
      // the powerup group is used exclusively by clk/pwr/rstmgr/pinmux
      { name: "ast",     src:"ext", sw_cg: "no"                   }
      { name: "powerup", src:"top", sw_cg: "no"                   }
      { name: "trans",   src:"top", sw_cg: "hint", unique: "yes", }
      { name: "infra",   src:"top", sw_cg: "no",                  }
      { name: "secure",  src:"top", sw_cg: "no"                   }
      { name: "peri",    src:"top", sw_cg: "yes",  unique: "no"   }
      { name: "timers",  src:"top", sw_cg: "no"                   }
      { name: "proc",
        src: "no",
        sw_cg: "no",
        unique: "no",
        clocks: {
          clk_proc_main: main
        }
      }
    ],
  },

  // This is the reset data structure of the design.
  // The hier path refers to the reset reference path (struct / port)
  //   - The top/ext desgination follows the same scheme as inter-module
  // The node key represents all the known resets in the design
  resets: {

    hier_paths: {
      top: "rstmgr_aon_resets.", // top level is a struct
      ext: "",                   // ext is a port of the clock name
      lpg: "rstmgr_aon_rst_en.", // top level struct for alert lpg reset enables
    },

    // Reset node attributes
    // name: name of reset.
    //
    // gen: whether the reset is generated
    // true: it is a generated reset inside rstmgr
    // false: it is a hardwired design reset inside rstmgr (roots and por)
    // For non-generated resets, the parent / domain definitions have no meaning.
    //
    // type: the reset type [ext, top]
    // ext: the reset is coming in from the ports, external to englishbreakfast
    // int: the reset is only used inside rstmgr
    // top: the reset is output from rstmgr to top level struct
    //
    // parent: The parent reset
    // If type is "ext", there is no root, since it is external
    //
    // domains: The power domains of a particular reset
    // This is a list of of the supported power domains.
    // Valid values are Aon and (power domain)0 ~ (power domain)1.
    // If no value is supplied, the default is only the Aon version.
    //
    // clk:  related clock domain for synchronous release
    // If type is "por", there is not related clock, since it is
    // likely external or generated from a voltage comparator
    //
    nodes: [
      { name: "por_aon",     gen: false, type: "top",                    clk: "aon"     }
      { name: "lc_src",      gen: false, type: "int",                    clk: "io_div4" }
      { name: "sys_src",     gen: false, type: "int",                    clk: "io_div4" }
      { name: "por",         gen: true,  type: "top", parent: "por_aon", clk: "main"    }
      { name: "por_io",      gen: true,  type: "top", parent: "por_aon", clk: "io"      }
      { name: "por_io_div2", gen: true,  type: "top", parent: "por_aon", clk: "io_div2" }
      { name: "por_io_div4", gen: true , type: "top", parent: "por_aon", clk: "io_div4" }
      { name: "por_usb",     gen: true,  type: "top", parent: "por_aon", clk: "usb"     }
      { name: "lc",          gen: true,  type: "top", parent: "lc_src",  clk: "main"    }
      { name: "lc_io_div4",  gen: true,  type: "top", parent: "lc_src",  clk: "io_div4" }
      { name: "sys",         gen: true,  type: "top", parent: "sys_src", clk: "main"    }
      { name: "sys_io_div4", gen: true,  type: "top", parent: "sys_src", clk: "io_div4" }
      { name: "sys_aon",     gen: true,  type: "top", parent: "sys_src", clk: "aon"     }
      { name: "spi_device",  gen: true,  type: "top", parent: "sys_src", clk: "io_div2", sw: true }
      { name: "spi_host0",   gen: true,  type: "top", parent: "sys_src", clk: "io",      sw: true }
      { name: "usb",         gen: true,  type: "top", parent: "sys_src", clk: "usb",     sw: true }
    ]
  }

  // Number of cores: used in rv_plic and timer
  num_cores: "1",

  // `module` defines the peripherals.
  // Details are coming from each modules' config file `ip.hjson`
  // TODO: Define parameter here
  // attr: There are a few types of modules supported
     //   normal(default): Normal, non-templated modules that will be instantiated
     //   templated:   These modules are templated and must be run through topgen
     //   reggen_top:  These modules are not templated, but need to have reggen run
     //                because they live exclusively in hw/top_* instead of hw/ip_*.
     //                These modules are also instantiated in the top level.
     //   reggen_only: Similar to reggen_top, but are not instantiated in the top level.
  module: [
    { name: "uart0",    // instance name
      type: "uart",     // Must be matched to the ip name in `ip.hson` (_reg, _cfg permitted)
                        // and `hw/ip/{type}`

      // clock connections defines the port to top level clock connection
      // the ip.hjson will declare the clock port names
      // If none are defined at ip.hjson, clk_i is used by default
      clock_srcs: {clk_i: "io_div4"},

      // reset connections defines the port to top level reset connection
      // the ip.hjson will declare the reset port names
      // If none are defined at ip.hjson, rst_ni is used by default
      reset_connections: {rst_ni: "sys_io_div4"},
      base_addr: "0x40000000",
    },
    { name: "gpio",
      type: "gpio",
      clock_srcs: {clk_i: "io_div4"},
      clock_group: "peri",
      reset_connections: {rst_ni: "sys_io_div4"},
      base_addr: "0x40040000",
    }
    { name: "spi_device",
      type: "spi_device",
      clock_srcs: {clk_i: "io_div4", scan_clk_i: "io_div2"},
      clock_group: "peri",
      reset_connections: {rst_ni: "spi_device"},
      base_addr: "0x40050000",
    },
    { name: "spi_host0",
      type: "spi_host",
      clock_srcs: {clk_i: "io"},
      clock_group: "peri",
      reset_connections: {rst_ni: "spi_host0"},
      base_addr: "0x40060000",
    },
    { name: "rv_timer",
      type: "rv_timer",
      clock_srcs: {clk_i: "io_div4"},
      clock_group: "timers",
      reset_connections: {rst_ni: "sys_io_div4"},
      base_addr: "0x40100000",
    },
    { name: "usbdev",
      type: "usbdev",
      clock_srcs: {clk_i: "io_div4", clk_aon_i: "aon", clk_usb_48mhz_i: "usb"},
      clock_group: "peri",
      reset_connections: {rst_ni: "sys_io_div4", rst_aon_ni: "sys_aon", rst_usb_48mhz_ni: "usb"},
      base_addr: "0x40110000",
    },
    { name: "pwrmgr_aon",
      type: "pwrmgr",
      clock_srcs: {clk_i: "io_div4", clk_slow_i: "aon", clk_esc_i: "io_div4"},
      clock_group: "powerup",
      reset_connections: {
        rst_ni: "por_io_div4",
        rst_esc_ni: "lc_io_div4",
        rst_main_ni: "por_aon",
        rst_slow_ni: "por_aon"
      },
      domain: ["Aon"],
      base_addr: "0x40400000",
      attr: "templated",

    },
    { name: "rstmgr_aon",
      type: "rstmgr",
      clock_srcs: {clk_i: "io_div4", clk_aon_i: "aon", clk_main_i: "main", clk_io_i: "io", clk_usb_i: "usb",
                   clk_io_div2_i: "io_div2", clk_io_div4_i: "io_div4"},
      clock_group: "powerup",
      reset_connections: {rst_ni: "por_io_div4"},
      domain: ["Aon"],
      base_addr: "0x40410000",
      attr: "templated",
    },
    { name: "clkmgr_aon",
      type: "clkmgr",
      clock_srcs: {
        clk_i: "io_div4",
        clk_main_i: {
          group: "ast",
          clock: "main"
        },
        clk_io_i: {
          group: "ast",
          clock: "io"
        },
        clk_usb_i: {
          group: "ast",
          clock: "usb"
        },
        clk_aon_i: {
          group: "ast",
          clock: "aon"
        }
      },
      clock_group: "powerup",
      reset_connections: {rst_ni: "por_io_div4",
                          rst_main_ni: "por",
                          rst_io_ni: "por_io",
                          rst_usb_ni: "por_usb",
                          rst_io_div2_ni: "por_io_div2",
                          rst_io_div4_ni: "por_io_div4",
                          rst_aon_ni: "por_aon"},
      domain: ["Aon"],
      base_addr: "0x40420000",
      attr: "templated",
    },
    { name: "pinmux_aon",
      type: "pinmux",
      clock_srcs: {clk_i: "io_div4", clk_aon_i: "aon"},
      clock_group: "powerup",
      reset_connections: {rst_ni: "sys_io_div4", rst_aon_ni: "sys_aon"},
      domain: ["Aon"],
      base_addr: "0x40460000",
      attr: "templated",
    },
    { name: "aon_timer_aon",
      type: "aon_timer",
      clock_srcs: {clk_i: "io_div4", clk_aon_i: "aon"},
      clock_group: "timers",
      reset_connections: {rst_ni: "sys_io_div4", rst_aon_ni: "sys_aon"},
      domain: ["Aon"],
      base_addr: "0x40470000",
      attr: "templated",
    },
    { name: "ast",
      type: "ast",
      clock_srcs: {
        clk_ast_tlul_i: "io_div4",
        clk_ast_adc_i: "aon",
        clk_ast_alert_i: "io_div4",
        clk_ast_es_i: "main",
        clk_ast_rng_i: "main",
        clk_ast_usb_i: "usb"
      },
      clock_group: "secure",
      reset_connections: {
        rst_ast_tlul_ni: "lc_io_div4",
        rst_ast_adc_ni: "sys_aon",
        rst_ast_alert_ni: "lc_io_div4",
        rst_ast_es_ni: "sys",
        rst_ast_rng_ni: "sys",
        rst_ast_usb_ni: "usb"
      },
      base_addr: "0x40480000",
      attr: "reggen_only",
    },
    { name: "sram_ctrl_ret_aon",
      type: "sram_ctrl",
      clock_srcs: {clk_i: "io_div4", clk_otp_i: "io_div4"},
      clock_group: "infra",
      reset_connections: {rst_ni: "sys_io_div4", rst_otp_ni: "lc_io_div4"},
      domain: ["Aon"],
      param_decl: {
        InstrExec: "0",
      }
      base_addrs: {regs: "0x40500000", ram: "0x40600000"},
      // Memory regions must be associated with a dedicated
      // TL-UL device interface.
      memory: {
        ram: {
          label:    "ram_ret_aon",
          swaccess:   "rw",
          exec:       "True",
          byte_write: "True",
          size:     "0x1000"
        }
      }
    },
    { name: "flash_ctrl",
      type: "flash_ctrl",
      clock_srcs: {clk_i: "main", clk_otp_i: "io_div4"},
      clock_group: "infra",
      reset_connections: {rst_ni: "lc", rst_otp_ni: "lc_io_div4"},
      base_addrs: {core: "0x41000000", prim: "0x41008000", mem: "0x20000000"}
      memory: {
        mem: {
          label:      "eflash",
          swaccess:   "ro",
          exec:       "True",
          byte_write: "False",
          config: {
            type: "flash",
            banks: 2,
            pages_per_bank: 16,
            program_resolution: 8, // maximum number of flash words allowed to program at one time
          }
        }
      }
      attr: "templated",
    },
    { name: "rv_dm",
      type: "rv_dm",
      clock_srcs: {clk_i: "main"},
      clock_group: "infra",
      reset_connections: {rst_ni: "lc"},
      // Note that this module also contains a bus host.
      base_addrs: {rom: "0x00010000", regs: "0x41200000"}
    },
    { name: "rv_plic",
      type: "rv_plic",
      clock_srcs: {clk_i: "main"},
      clock_group: "secure",
      reset_connections: {rst_ni: "sys"},
      base_addr: "0x48000000",
      attr: "templated",
    },
    { name: "aes",
      type: "aes",
      clock_srcs: {clk_i: "main", clk_edn_i: "main"},
      clock_group: "trans",
      reset_connections: {rst_ni: "sys", rst_edn_ni: "sys"},
      param_decl: {
        Masking: "1",
        SBoxImpl: "aes_pkg::SBoxImplDom"
      }
      base_addr: "0x41100000",
    },
    { name: "hmac",
      type: "hmac",
      clock_srcs: {clk_i: "main"},
      clock_group: "trans",
      reset_connections: {rst_ni: "sys"},
      base_addr: "0x41110000",
    },
    { name: "sram_ctrl_main",
      type: "sram_ctrl",
      clock_srcs: {clk_i: "main", clk_otp_i: "io_div4"},
      clock_group: "secure",
      reset_connections: {rst_ni: "sys", rst_otp_ni: "lc_io_div4"},
      param_decl: {
        InstrExec: "1",
      }
      base_addrs: {regs: "0x411C0000", ram: "0x10000000"},
      // Memory regions must be associated with a dedicated
      // TL-UL device interface.
      memory: {
        ram: {
          label:      "ram_main",
          swaccess:   "rw",
          exec:       "True",
          byte_write: "True",
          size:       "0x20000"
        }
      }
    },
    { name: "rom_ctrl",
      type: "rom_ctrl",
      clock_srcs: {clk_i: "main"},
      clock_group: "infra",
      reset_connections: {rst_ni: "sys"},
      base_addrs: {rom: "0x00008000", regs: "0x411e0000"}
      memory: {
        rom: {
          label:      "rom",
          swaccess:   "ro",
          exec:       "True",
          byte_write: "False",
          size:       "0x8000"
        }
      },
      param_decl: {
        SecDisableScrambling: "1'b1"
      }
    },
    { name: "rv_core_ibex",
      type: "rv_core_ibex",
      param_decl: {PMPEnable: "1",
                   PMPGranularity: "0",
                   PMPNumRegions: "16",
                   MHPMCounterNum: "10",
                   MHPMCounterWidth: "32",
                   RV32E: "0",
                   RV32M: "ibex_pkg::RV32MSingleCycle",
                   RV32B: "ibex_pkg::RV32BNone",
                   RegFile: "ibex_pkg::RegFileFF",
                   BranchTargetALU: "1",
                   WritebackStage: "1",
                   ICache: "1",
                   ICacheECC: "1",
                   BranchPredictor: "0",
                   DbgTriggerEn: "1",
                   SecureIbex: "1",
                   DmHaltAddr: "tl_main_pkg::ADDR_SPACE_RV_DM__ROM + dm::HaltAddress[31:0]",
                   DmExceptionAddr: "tl_main_pkg::ADDR_SPACE_RV_DM__ROM + dm::ExceptionAddress[31:0]",
                   PipeLine: "0"
                  }
      clock_srcs: {clk_i: "main", clk_esc_i: "io_div4"},
      clock_group: "infra",
      reset_connections: {rst_ni: "sys", rst_esc_ni: "lc_io_div4"},
      base_addr: "0x411F0000",
    },
  ]

  // All memories wrapped up in relevant controllers
  memory: [],

  // The port data structure is not something that should be used liberally.
  // It is used specifically to assign special attributes to specific ports.
  // For example, this allows us to designate a port as part of inter-module
  // connections.
  port: [
    { name: "ast",
      inter_signal_list: [
        { struct: "edn",
          type: "req_rsp",
          name: "edn",
          // The activity direction for a port inter-signal is "opposite" of
          // what the external module actually needs.
          act:  "rsp",
          package: "edn_pkg",
        },

        { struct: "lc_tx",
          type: "uni",
          name: "lc_dft_en",
          // The activity direction for a port inter-signal is "opposite" of
          // what the external module actually needs.
          act:  "req",
          package: "lc_ctrl_pkg",
        },

        { struct:  "ram_1p_cfg",
          package: "prim_ram_1p_pkg",
          type:    "uni",
          name:    "ram_1p_cfg",
          // The activity direction for a port inter-signal is "opposite" of
          // what the external module actually needs.
          act:     "rcv"
        },

        { struct:  "ram_2p_cfg",
          package: "prim_ram_2p_pkg",
          type:    "uni",
          name:    "ram_2p_cfg",
          // The activity direction for a port inter-signal is "opposite" of
          // what the external module actually needs.
          act:     "rcv"
        },

        { struct:  "rom_cfg",
          package: "prim_rom_pkg",
          type:    "uni",
          name:    "rom_cfg",
          // The activity direction for a port inter-signal is "opposite" of
          // what the external module actually needs.
          act:     "rcv"
        }
      ]
    },
  ]

  // Inter-module Connection.
  // format:
  //    requester: [ resp1, resp2, ... ],
  //
  //  the field and value should be module_inst.port_name
  //  e.g flash_ctrl0.flash: [flash_phy0.flash_ctrl]
  inter_module: {
    'connect': {
      'pwrmgr_aon.pwr_flash'    : ['flash_ctrl.pwrmgr'],
      'pwrmgr_aon.pwr_rst'      : ['rstmgr_aon.pwr'],
      'pwrmgr_aon.pwr_clk'      : ['clkmgr_aon.pwr'],
      'pwrmgr_aon.strap'        : ['pinmux_aon.strap_en'],
      'pwrmgr_aon.low_power'    : ['pinmux_aon.sleep_en',
                                   'aon_timer_aon.sleep_mode'],
      'pwrmgr_aon.fetch_en'     : ['rv_core_ibex.pwrmgr_cpu_en'],

      // usbdev connection to pinmux
      'usbdev.usb_out_of_rst'   : ['pinmux_aon.usb_out_of_rst'],
      'usbdev.usb_aon_wake_en'  : ['pinmux_aon.usb_aon_wake_en'],
      'usbdev.usb_aon_wake_ack' : ['pinmux_aon.usb_aon_wake_ack'],
      'usbdev.usb_suspend'      : ['pinmux_aon.usb_suspend'],
      'pinmux_aon.usb_state_debug' : ['usbdev.usb_state_debug'],

      // The idle connection is automatically connected through topgen.
      // The user does not need to explicitly declare anything other than
      // an empty list.
      'clkmgr_aon.idle'         : [],

      // Pinmux JTAG signals
      'pinmux_aon.rv_jtag' : ['rv_dm.jtag'],

      // rv_plic connections
      'rv_plic.msip' : ['rv_core_ibex.irq_software'],
      'rv_plic.irq'  : ['rv_core_ibex.irq_external'],

      // rv_dm connections
      'rv_dm.debug_req': ['rv_core_ibex.debug_req'],

      // rv_timer connections


      // rv core ibex connections
      'rv_core_ibex.rst_cpu_n'  : ['rstmgr_aon.rst_cpu_n'],
      'rv_core_ibex.crash_dump' : ['rstmgr_aon.cpu_dump'],
      'rv_core_ibex.pwrmgr'     : ['pwrmgr_aon.pwr_cpu'],

      // spi passthrough connection
      'spi_device.passthrough'     : ['spi_host0.passthrough']

      // Debug module reset request to reset manager
      'rv_dm.ndmreset_req' : ['rstmgr_aon.ndmreset_req']

      // Reset manager software reset request to pwrmgr
      'rstmgr_aon.sw_rst_req' : ['pwrmgr_aon.sw_rst_req'],
    }

    // top is to connect to top net/struct.
    // It defines the signal in the top and connect from the module,
    // use of the signal is up to top template
    'top': [
        // top level net for clocks
        'clkmgr_aon.clocks',

        // top level clock gating indications for alert subsystem
        'clkmgr_aon.cg_en',

        // top level net for reset
        'rstmgr_aon.resets',

        // top level reset asserted indications for alert subsystem
        'rstmgr_aon.rst_en',

        // dedicated timer interrupt
        'rv_core_ibex.irq_timer',

        // hardwired connections
        'rv_core_ibex.hart_id', 'rv_core_ibex.boot_addr',

        // lc_ctrl.lc_cpu_en - always enabled for English Breakfast
        'rv_core_ibex.lc_cpu_en'

        // Xbars

        // Pinmux JTAG signals for the tool-inserted DFT TAP
        'pinmux_aon.dft_jtag',

        // OTP HW_CFG Broadcast signals.
        // TODO(#6713): The actual struct breakout and mapping currently needs to
        // be performed by hand in the toplevel template.
        'sram_ctrl_main.otp_en_sram_ifetch',
        'sram_ctrl_ret_aon.otp_en_sram_ifetch'
    ],

    // ext is to create port in the top.
    'external': {
        # 'adc_ctrl_aon.adc'             : 'adc'
        'ast.edn'                      : '',
        'ast.lc_dft_en'                : '',
        'ast.ram_1p_cfg'               : 'ram_1p_cfg',
        'ast.ram_2p_cfg'               : 'ram_2p_cfg',
        'ast.rom_cfg'                  : 'rom_cfg',
        'clkmgr_aon.jitter_en'         : 'clk_main_jitter_en',
        'clkmgr_aon.hi_speed_sel'      : 'hi_speed_sel',
        'clkmgr_aon.all_clk_byp_req'   : 'all_clk_byp_req',
        'clkmgr_aon.all_clk_byp_ack'   : 'all_clk_byp_ack',
        'clkmgr_aon.io_clk_byp_req'    : 'io_clk_byp_req',
        'clkmgr_aon.io_clk_byp_ack'    : 'io_clk_byp_ack',
        'flash_ctrl.flash_alert'           : 'flash_alert',
        'flash_ctrl.flash_bist_enable'     : 'flash_bist_enable',
        'flash_ctrl.flash_power_down_h'    : 'flash_power_down_h',
        'flash_ctrl.flash_power_ready_h'   : 'flash_power_ready_h',
        # 'entropy_src.entropy_src_rng'  : '',
        # 'entropy_src.rng_fips'         : '',
        'peri.tl_ast'                  : 'ast_tl',
        'pinmux_aon.dft_strap_test'    : 'dft_strap_test'
        'pinmux_aon.dft_hold_tap_sel'  : 'dft_hold_tap_sel',
        'pwrmgr_aon.pwr_ast'           : 'pwrmgr_ast',
        # 'otp_ctrl.otp_ast_pwr_seq'     : '',
        # 'otp_ctrl.otp_ast_pwr_seq_h'   : '',
        # 'otp_ctrl.otp_alert'           : 'otp_alert',
        'rstmgr_aon.por_n'               : 'por_n'
        'usbdev.usb_ref_val'             : '',
        'usbdev.usb_ref_pulse'           : '',
        'spi_device.sck_monitor'         : 'sck_monitor',
    },
  },

  // Crossbars: having a top level crossbar
  // This version assumes all crossbars are instantiated at the top.
  // Assume xbar.hjson is located in the same directory of top.hjson
  xbar: [
    { name: "main",
      clock_srcs: {clk_main_i: "main", clk_fixed_i: "io_div4"},
      clock_group: "infra",
      reset: "sys",
      reset_connections: {rst_main_ni: "sys", rst_fixed_ni: "sys_io_div4"}
    },
    { name: "peri",
      clock_srcs: {clk_peri_i: "io_div4", clk_spi_host0_i: "io"},
      clock_group: "infra",
      reset: "sys_io_div4",
      reset_connections: {rst_peri_ni: "sys_io_div4", rst_spi_host0_ni: "spi_host0"},
    }
  ],

  // Modules whose interrupts are connected to RV_PLIC.
  interrupt_module: [
    "uart0",
    "gpio",
    "spi_device",
    "spi_host0",
    // "rv_timer", connected to a dedicated interrupt input in rv_core_ibex.
    "usbdev",
    "pwrmgr_aon",
    "aon_timer_aon",
    "flash_ctrl",
    "hmac",
  ]

  // ===== PINMUX & PINOUT ======================================================

  pinout: {
    // IO power bank declaration.
    // This list defines the IO bank power domains on the ASIC.
    // Each individual pad must be in one of the declared power domains.
    banks: ['VCC', 'AVCC', 'VIOA', 'VIOB'],
    // Pad declaration.
    // Each entry must have the following four keys:
    //
    // - name: Name of the pad (this will be exposed at the chiplevel).
    //
    // - type: Pad type (this maps to the pad types defined in prim_pad_wrapper_pkg.sv)
    //
    // - bank: Specifies in which of the IO power banks this pad lives.
    //
    // - connection: Can have either of the following values:
    //
    //               1) 'direct': This is a dedicated IO Pad that is directly connected to a peripheral.
    //
    //               2) 'manual': This is a dedicated IO signal that is not directly connected to a
    //                            peripheral. It needs to be manually wired up in the template.
    //
    //               3) 'muxed': This is a muxed IO pad that will be connected to the pinmux.
    //
    // Optionally, each pad can also have a 'desc' field for further description.
    pads: [
      // Special manually connected pads
      { name: 'POR_N'           , type: 'InputStd', bank: 'VCC' , connection: 'manual', desc: 'System reset'},
      { name: 'USB_P'           , type: 'BidirTol', bank: 'VCC' , connection: 'manual', desc: 'USB P signal'},
      { name: 'USB_N'           , type: 'BidirTol', bank: 'VCC' , connection: 'manual', desc: 'USB N signal'},
      { name: 'CC1'             , type: 'InputStd', bank: 'AVCC', connection: 'manual', desc: 'ADC input 1'},
      { name: 'CC2'             , type: 'InputStd', bank: 'AVCC', connection: 'manual', desc: 'ADC input 2'},
      { name: 'FLASH_TEST_VOLT' , type: 'AnalogIn0',bank: 'VCC' , connection: 'manual', desc: 'Flash test voltage input'},
      { name: 'FLASH_TEST_MODE0', type: 'InputStd', bank: 'VCC' , connection: 'manual', desc: 'Flash test mode signal'},
      { name: 'FLASH_TEST_MODE1', type: 'InputStd', bank: 'VCC' , connection: 'manual', desc: 'Flash test mode signal'},
      // Dedicated IOs
      { name: 'SPI_HOST_D0'     , type: 'BidirStd', bank: 'VIOA', connection: 'direct', desc: 'SPI host data'},
      { name: 'SPI_HOST_D1'     , type: 'BidirStd', bank: 'VIOA', connection: 'direct', desc: 'SPI host data'},
      { name: 'SPI_HOST_D2'     , type: 'BidirStd', bank: 'VIOA', connection: 'direct', desc: 'SPI host data'},
      { name: 'SPI_HOST_D3'     , type: 'BidirStd', bank: 'VIOA', connection: 'direct', desc: 'SPI host data'},
      { name: 'SPI_HOST_CLK'    , type: 'BidirStd', bank: 'VIOA', connection: 'direct', desc: 'SPI host clock'},
      { name: 'SPI_HOST_CS_L'   , type: 'BidirStd', bank: 'VIOA', connection: 'direct', desc: 'SPI host chip select'},
      { name: 'SPI_DEV_D0'      , type: 'BidirStd', bank: 'VIOA', connection: 'direct', desc: 'SPI device data'},
      { name: 'SPI_DEV_D1'      , type: 'BidirStd', bank: 'VIOA', connection: 'direct', desc: 'SPI device data'},
      { name: 'SPI_DEV_D2'      , type: 'BidirStd', bank: 'VIOA', connection: 'direct', desc: 'SPI device data'},
      { name: 'SPI_DEV_D3'      , type: 'BidirStd', bank: 'VIOA', connection: 'direct', desc: 'SPI device data'},
      { name: 'SPI_DEV_CLK'     , type: 'InputStd', bank: 'VIOA', connection: 'direct', desc: 'SPI device clock'},
      { name: 'SPI_DEV_CS_L'    , type: 'InputStd', bank: 'VIOA', connection: 'direct', desc: 'SPI device chip select'},
      // IOA
      { name: 'IOA0'            , type: 'BidirStd', bank: 'VIOA', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOA1'            , type: 'BidirStd', bank: 'VIOA', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOA2'            , type: 'BidirStd', bank: 'VIOA', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOA3'            , type: 'BidirStd', bank: 'VIOA', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOA4'            , type: 'BidirStd', bank: 'VIOA', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOA5'            , type: 'BidirStd', bank: 'VIOA', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOA6'            , type: 'BidirOd',  bank: 'VIOA', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOA7'            , type: 'BidirOd',  bank: 'VIOA', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOA8'            , type: 'BidirOd',  bank: 'VIOA', connection: 'muxed' , desc: 'Muxed IO pad'},
      // IOB
      { name: 'IOB0'            , type: 'BidirStd', bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB1'            , type: 'BidirStd', bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB2'            , type: 'BidirStd', bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB3'            , type: 'BidirStd', bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB4'            , type: 'BidirStd', bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB5'            , type: 'BidirStd', bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB6'            , type: 'BidirStd', bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB7'            , type: 'BidirStd', bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB8'            , type: 'BidirStd', bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB9'            , type: 'BidirOd' , bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB10'           , type: 'BidirOd' , bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB11'           , type: 'BidirOd' , bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOB12'           , type: 'BidirOd' , bank: 'VIOB', connection: 'muxed' , desc: 'Muxed IO pad'},
      // IOC
      { name: 'IOC0'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC1'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC2'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC3'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC4'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC5'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC6'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC7'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC8'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC9'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC10'           , type: 'BidirOd' , bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC11'           , type: 'BidirOd' , bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOC12'           , type: 'BidirOd' , bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      // IOR
      { name: 'IOR0'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR1'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR2'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR3'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR4'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR5'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR6'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR7'            , type: 'BidirStd', bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR10'           , type: 'BidirOd' , bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR11'           , type: 'BidirOd' , bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR12'           , type: 'BidirOd' , bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
      { name: 'IOR13'           , type: 'BidirOd' , bank: 'VCC' , connection: 'muxed' , desc: 'Muxed IO pad'},
    ]
  }

  pinmux: {
    // Signal to pinmux/pad mapping.
    // Each entry in the list below must have the following two mandatory keys:
    //
    // - instance: This is the comportable IO instance name where the IO signal comes from.
    //
    // - connection: This key is similar to the connection key in the pinout/pad configuration and
    //               can have either of the following values:
    //
    //               1) 'direct': This is a dedicated IO signal that is directly connected to a pad.
    //                            Such an IO signal must also specify the 'port' and 'pad' keys
    //                            (see further below).
    //
    //               2) 'manual': This is a dedicated IO signal that is not directly connected to a pad.
    //                            It needs to be manually wired up in the template.
    //                            Such an IO signal may have a 'port' key, but no 'pad' key.
    //
    //               3) 'muxed': This is a muxed IO signal that will be connected to the pinmux.
    //                           Such an IO signal may have a 'port' key, but no 'pad' key.
    //
    // Depending on the connection type specified, each entry may have the following optional keys:
    //
    // - port: Name of the available IO signal of the instance.
    //         This is required for 'direct' connections, but optional for the others.
    //         Individual signals of a bus IO signal must be indexed with square brackets, e.g. mybus[1].
    //         Not specifying this key or setting it to an empty string acts as a wild card
    //         and includes all available IOs of this instance.
    //
    // - pad: Name of the pad the 'direct' connection should connect to.
    //        This is not required for 'muxed' and 'manual' connections.
    //
    // - desc: Optional description field.
    //
    // - attr: Manual direct IOs may specify an additional pad attr field.
    //         This is used to create the correct pad attribute CSR for that DIO channel (since the
    //         DIO is manual, there is no way to automatically infer the corresponding pad type).
    //
    signals: [
      // SPI Host0
      { instance: 'spi_host0',       port: 'sck',   connection: 'direct', pad: 'SPI_HOST_CLK' , desc: ''},
      { instance: 'spi_host0',       port: 'csb',   connection: 'direct', pad: 'SPI_HOST_CS_L', desc: ''},
      { instance: 'spi_host0',       port: 'sd[0]', connection: 'direct', pad: 'SPI_HOST_D0'  , desc: ''},
      { instance: 'spi_host0',       port: 'sd[1]', connection: 'direct', pad: 'SPI_HOST_D1'  , desc: ''},
      { instance: 'spi_host0',       port: 'sd[2]', connection: 'direct', pad: 'SPI_HOST_D2'  , desc: ''},
      { instance: 'spi_host0',       port: 'sd[3]', connection: 'direct', pad: 'SPI_HOST_D3'  , desc: ''},
      // SPI Device
      { instance: 'spi_device',      port: 'sck',   connection: 'direct', pad: 'SPI_DEV_CLK'  , desc: ''},
      { instance: 'spi_device',      port: 'csb',   connection: 'direct', pad: 'SPI_DEV_CS_L' , desc: ''},
      { instance: 'spi_device',      port: 'sd[0]', connection: 'direct', pad: 'SPI_DEV_D0'   , desc: ''},
      { instance: 'spi_device',      port: 'sd[1]', connection: 'direct', pad: 'SPI_DEV_D1'   , desc: ''},
      { instance: 'spi_device',      port: 'sd[2]', connection: 'direct', pad: 'SPI_DEV_D2'   , desc: ''},
      { instance: 'spi_device',      port: 'sd[3]', connection: 'direct', pad: 'SPI_DEV_D3'   , desc: ''},
      // USBDEV
      { instance: 'usbdev',          port: '',      connection: 'manual', pad: ''             , desc: '', attr: 'BidirTol'},
      // MIOs
      { instance: "gpio",            port: '',      connection: 'muxed' , pad: ''             , desc: ''},
      { instance: "uart0",           port: '',      connection: 'muxed' , pad: ''             , desc: ''},
      { instance: "flash_ctrl",      port: '',      connection: 'muxed' , pad: ''             , desc: ''},
    ],

    // Number of wakeup detectors to instantiate, and bitwidth for the wakeup counters.
    num_wkup_detect: 8
    wkup_cnt_width:  8
  }

  // Implementation targets.
  // This defines the configuration of the target-specific chip-levels  to
  // generate from the shared template. Each target uses the same base
  // configuration for the  pinmux and pinout as defined above, and the
  // generated software constants for the pinmux DIF do not change among the
  // implementation targets. However, in order to accommodate slight
  // differences among the ASIC, FPGA emulation and simulation environments,
  // it is possible to make very limited pinout changes below. In particular,
  // it is possible to remove and tie-off specific pads, or add more 'manual'
  // pads that need to be manually connected in the template. It is also possible
  // to override the JTAG and strap locations indices, since the testing and DFT
  // setups may differ among the targets.
  targets: [
    { name: 'cw305',
      pinout: {
        remove_ports: [],
        remove_pads: [
          'CC1', 'CC2',
          'SPI_DEV_D2', 'SPI_DEV_D3'
          'SPI_HOST_CLK', 'SPI_HOST_CS_L',
          'SPI_HOST_D0', 'SPI_HOST_D1', 'SPI_HOST_D2', 'SPI_HOST_D3',
          'FLASH_TEST_VOLT',
          'FLASH_TEST_MODE0', 'FLASH_TEST_MODE1',
          'IOB10', 'IOB11', 'IOB12',
          'IOC0', 'IOC1', 'IOC2', 'IOC3', 'IOC4', 'IOC5', 'IOC6', 'IOC7', 'IOC8', 'IOC9', 'IOC12',
          'IOR0', 'IOR1', 'IOR2', 'IOR3', 'IOR4', 'IOR5', 'IOR6', 'IOR7', 'IOR10', 'IOR11', 'IOR12', 'IOR13'
        ],

        add_pads: [
          // Additional infrastucture pads
          { name: 'IO_CLK',           type: 'InputStd', bank: 'VCC', connection: 'manual', desc: 'Extra clock input for FPGA target'}
          { name: 'IO_JSRST_N',       type: 'InputStd', bank: 'VCC', connection: 'manual', desc: 'Dedicated JTAG system reset input'}
          // Custom USB pads
          { name: 'IO_USB_SENSE0',    type: 'BidirStd', bank: 'VCC', connection: 'manual', desc: 'Manual USB signal for FPGA target'}
          { name: 'IO_USB_DNPULLUP0', type: 'BidirStd', bank: 'VCC', connection: 'manual', desc: 'Manual USB signal for FPGA target'}
          { name: 'IO_USB_DPPULLUP0', type: 'BidirStd', bank: 'VCC', connection: 'manual', desc: 'Manual USB signal for FPGA target'}
          // ChipWhisperer IO
          { name: 'IO_CLKOUT',        type: 'BidirStd', bank: 'VCC', connection: 'manual', desc: 'Manual clock output for SCA setup'}
          { name: 'IO_TRIGGER',       type: 'BidirStd', bank: 'VCC', connection: 'manual', desc: 'Manual trigger output for SCA setup'}
          { name: 'IO_UTX_DEBUG',     type: 'BidirStd', bank: 'VCC', connection: 'manual', desc: 'Manual UART TX debug output'}
        ],
      }

      pinmux: {
        special_signals: [
          // Straps
          { name: 'tap0',   pad: 'IOC0' ,        desc: 'TAP strap signal, maps to a stubbed-off MIO.'  },
          { name: 'tap1',   pad: 'IOB7',         desc: 'TAP strap signal, maps to MIO pad 16.'         },
          { name: 'dft0',   pad: 'IOC1' ,        desc: 'DFT strap signal, maps to a stubbed-off MIO.'  },
          { name: 'dft1',   pad: 'IOC12',        desc: 'DFT strap signal, maps to a stubbed-off MIO.'  },
          // JTAG
          { name: 'tck',    pad: 'SPI_DEV_CLK' , desc: 'JTAG tck signal, overlaid on SPI_DEV.'   },
          { name: 'tms',    pad: 'SPI_DEV_CS_L', desc: 'JTAG tms signal, overlaid on SPI_DEV.'   },
          { name: 'trst_n', pad: 'IOB9'        , desc: 'JTAG trst_n signal, maps to MIO pad 18.' },
          { name: 'tdi',    pad: 'SPI_DEV_D0'  , desc: 'JTAG tdi signal, overlaid on SPI_DEV.'   },
          { name: 'tdo',    pad: 'SPI_DEV_D1'  , desc: 'JTAG tdo signal, overlaid on SPI_DEV.'   },
        ],
      }
    }
  ]
}
