blob: 0c214530d9fb3032e83b465078671ed674b07963 [file] [log] [blame]
// Copyright 2022 Google LLC.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// ------------------- W A R N I N G: A U T O - G E N E R A T E D C O D E !! -------------------//
// PLEASE DO NOT HAND-EDIT THIS FILE. IT HAS BEEN AUTO-GENERATED WITH THE FOLLOWING COMMAND:
//
// util/topgen_matcha.py -t hw/top_matcha/data/top_matcha.hjson \
// -o hw/top_matcha/ \
// --rnd_cnst_seed 4881560218908238235
module top_matcha #(
// Manually defined parameters
// Auto-inferred parameters
// parameters for uart0
// parameters for uart1
// parameters for uart2
// parameters for uart3
// parameters for gpio
parameter bit GpioGpioAsyncOn = 1,
// parameters for spi_device
// parameters for i2c0
// parameters for i2c1
// parameters for i2c2
// parameters for pattgen
// parameters for rv_timer
// parameters for otp_ctrl
parameter OtpCtrlMemInitFile = "",
// parameters for lc_ctrl
parameter logic [15:0] LcCtrlChipGen = 16'h 0000,
parameter logic [15:0] LcCtrlChipRev = 16'h 0000,
parameter logic [31:0] LcCtrlIdcodeValue = jtag_id_pkg::JTAG_IDCODE,
// parameters for alert_handler
// parameters for spi_host0
// parameters for spi_host1
// parameters for usbdev
parameter bit UsbdevStub = 0,
parameter int UsbdevRcvrWakeTimeUs = 100,
// parameters for pwrmgr_aon
// parameters for rstmgr_aon
parameter bit SecRstmgrAonCheck = 1'b1,
parameter int SecRstmgrAonMaxSyncDelay = 2,
// parameters for clkmgr_aon
// parameters for sysrst_ctrl_aon
// parameters for adc_ctrl_aon
// parameters for pwm_aon
// parameters for pinmux_aon
parameter pinmux_pkg::target_cfg_t PinmuxAonTargetCfg = pinmux_pkg::DefaultTargetCfg,
// parameters for aon_timer_aon
// parameters for sensor_ctrl
// parameters for sram_ctrl_ret_aon
parameter bit SramCtrlRetAonInstrExec = 0,
// parameters for flash_ctrl
parameter bit SecFlashCtrlScrambleEn = 1,
parameter int FlashCtrlProgFifoDepth = 4,
parameter int FlashCtrlRdFifoDepth = 16,
// parameters for rv_dm
parameter logic [31:0] RvDmIdcodeValue = jtag_id_pkg::JTAG_IDCODE,
// parameters for rv_plic
// parameters for aes
parameter bit SecAesMasking = 1,
parameter aes_pkg::sbox_impl_e SecAesSBoxImpl = aes_pkg::SBoxImplDom,
parameter int unsigned SecAesStartTriggerDelay = 0,
parameter bit SecAesAllowForcingMasks = 1'b0,
parameter bit SecAesSkipPRNGReseeding = 1'b0,
// parameters for hmac
// parameters for kmac
parameter bit KmacEnMasking = 1,
parameter bit KmacSwKeyMasked = 0,
parameter int SecKmacCmdDelay = 0,
parameter bit SecKmacIdleAcceptSwMsg = 0,
// parameters for otbn
parameter bit OtbnStub = 0,
parameter otbn_pkg::regfile_e OtbnRegFile = otbn_pkg::RegFileFF,
parameter bit SecOtbnMuteUrnd = 0,
parameter bit SecOtbnSkipUrndReseedAtStart = 0,
// parameters for keymgr
parameter bit KeymgrKmacEnMasking = 1,
// parameters for csrng
parameter aes_pkg::sbox_impl_e CsrngSBoxImpl = aes_pkg::SBoxImplCanright,
// parameters for entropy_src
parameter bit EntropySrcStub = 0,
// parameters for edn0
// parameters for edn1
// parameters for sram_ctrl_main
parameter bit SramCtrlMainInstrExec = 1,
// parameters for rom_ctrl
parameter RomCtrlBootRomInitFile = "",
parameter bit SecRomCtrlDisableScrambling = 1'b0,
// parameters for rv_core_ibex_sec
parameter bit RvCoreIbexSecPMPEnable = 1,
parameter int unsigned RvCoreIbexSecPMPGranularity = 0,
parameter int unsigned RvCoreIbexSecPMPNumRegions = 16,
parameter int unsigned RvCoreIbexSecMHPMCounterNum = 10,
parameter int unsigned RvCoreIbexSecMHPMCounterWidth = 32,
parameter bit RvCoreIbexSecRV32E = 0,
parameter ibex_pkg::rv32m_e RvCoreIbexSecRV32M = ibex_pkg::RV32MSingleCycle,
parameter ibex_pkg::rv32b_e RvCoreIbexSecRV32B = ibex_pkg::RV32BOTEarlGrey,
parameter ibex_pkg::regfile_e RvCoreIbexSecRegFile = ibex_pkg::RegFileFF,
parameter bit RvCoreIbexSecBranchTargetALU = 1,
parameter bit RvCoreIbexSecWritebackStage = 1,
parameter bit RvCoreIbexSecICache = 1,
parameter bit RvCoreIbexSecICacheECC = 1,
parameter bit RvCoreIbexSecICacheScramble = 1,
parameter bit RvCoreIbexSecBranchPredictor = 0,
parameter bit RvCoreIbexSecDbgTriggerEn = 1,
parameter int RvCoreIbexSecDbgHwBreakNum = 4,
parameter bit RvCoreIbexSecSecureIbex = 1,
parameter int unsigned RvCoreIbexSecDmHaltAddr =
tl_main_pkg::ADDR_SPACE_DBG + dm::HaltAddress[31:0],
parameter int unsigned RvCoreIbexSecDmExceptionAddr =
tl_main_pkg::ADDR_SPACE_DBG + dm::ExceptionAddress[31:0],
parameter bit RvCoreIbexSecPipeLine = 0,
// parameters for dma0
// parameters for smc_uart
// parameters for rv_timer_smc
// parameters for smc_ctrl
// parameters for cam_i2c
// parameters for cam_ctrl
// parameters for isp_wrapper
parameter int IspWrapperAhbLiteDataWidth = 32,
parameter int IspWrapperTimeoutLimit = 65535,
// parameters for dma_smc
// parameters for rv_plic_smc
// parameters for tlul_mailbox_sec
parameter int TlulMailboxSecMailboxDepth = 8,
// parameters for tlul_mailbox_smc
parameter int TlulMailboxSmcMailboxDepth = 8,
// parameters for ml_top
// parameters for spi_host2
// parameters for rv_timer_smc2
// parameters for i2s0
// parameters for rv_core_ibex_smc
parameter bit RvCoreIbexSmcPMPEnable = 0,
parameter int unsigned RvCoreIbexSmcPMPGranularity = 0,
parameter int unsigned RvCoreIbexSmcPMPNumRegions = 16,
parameter int unsigned RvCoreIbexSmcMHPMCounterNum = 10,
parameter int unsigned RvCoreIbexSmcMHPMCounterWidth = 32,
parameter bit RvCoreIbexSmcRV32E = 0,
parameter smc_pkg::rv32m_e RvCoreIbexSmcRV32M = smc_pkg::RV32MSingleCycle,
parameter smc_pkg::rv32b_e RvCoreIbexSmcRV32B = smc_pkg::RV32BNone,
parameter bit RvCoreIbexSmcRV32A = 1,
parameter smc_pkg::regfile_e RvCoreIbexSmcRegFile = smc_pkg::RegFileFF,
parameter bit RvCoreIbexSmcBranchTargetALU = 0,
parameter bit RvCoreIbexSmcWritebackStage = 0,
parameter bit RvCoreIbexSmcICache = 0,
parameter bit RvCoreIbexSmcICacheECC = 0,
parameter bit RvCoreIbexSmcICacheScramble = 0,
parameter bit RvCoreIbexSmcBranchPredictor = 0,
parameter bit RvCoreIbexSmcDbgTriggerEn = 1,
parameter int RvCoreIbexSmcDbgHwBreakNum = 1,
parameter bit RvCoreIbexSmcSecureSmc = 0,
parameter int unsigned RvCoreIbexSmcDmHaltAddr =
tl_main_pkg::ADDR_SPACE_DBG + dm::HaltAddress[31:0],
parameter int unsigned RvCoreIbexSmcDmExceptionAddr =
tl_main_pkg::ADDR_SPACE_DBG + dm::ExceptionAddress[31:0],
parameter bit RvCoreIbexSmcPipeLine = 0,
parameter int RvCoreIbexSmcITLBEntries = 64,
parameter int RvCoreIbexSmcDTLBEntries = 64,
parameter int RvCoreIbexSmcASIDWidth = 9
) (
// Multiplexed I/O
input [52:0] mio_in_i,
output logic [52:0] mio_out_o,
output logic [52:0] mio_oe_o,
// Dedicated I/O
input [15:0] dio_in_i,
output logic [15:0] dio_out_o,
output logic [15:0] dio_oe_o,
// pad attributes to padring
output prim_pad_wrapper_pkg::pad_attr_t [pinmux_reg_pkg::NMioPads-1:0] mio_attr_o,
output prim_pad_wrapper_pkg::pad_attr_t [pinmux_reg_pkg::NDioPads-1:0] dio_attr_o,
// Inter-module Signal External type
output ast_pkg::adc_ast_req_t adc_req_o,
input ast_pkg::adc_ast_rsp_t adc_rsp_i,
input edn_pkg::edn_req_t ast_edn_req_i,
output edn_pkg::edn_rsp_t ast_edn_rsp_o,
output lc_ctrl_pkg::lc_tx_t ast_lc_dft_en_o,
input ast_pkg::ast_obs_ctrl_t obs_ctrl_i,
input prim_ram_1p_pkg::ram_1p_cfg_t ram_1p_cfg_i,
input prim_ram_2p_pkg::ram_2p_cfg_t ram_2p_cfg_i,
input prim_rom_pkg::rom_cfg_t rom_cfg_i,
output prim_mubi_pkg::mubi4_t clk_main_jitter_en_o,
output prim_mubi_pkg::mubi4_t io_clk_byp_req_o,
input prim_mubi_pkg::mubi4_t io_clk_byp_ack_i,
output prim_mubi_pkg::mubi4_t all_clk_byp_req_o,
input prim_mubi_pkg::mubi4_t all_clk_byp_ack_i,
output prim_mubi_pkg::mubi4_t hi_speed_sel_o,
input prim_mubi_pkg::mubi4_t div_step_down_req_i,
input prim_mubi_pkg::mubi4_t calib_rdy_i,
input prim_mubi_pkg::mubi4_t flash_bist_enable_i,
input logic flash_power_down_h_i,
input logic flash_power_ready_h_i,
inout [1:0] flash_test_mode_a_io,
inout flash_test_voltage_h_io,
output logic [7:0] flash_obs_o,
output entropy_src_pkg::entropy_src_rng_req_t es_rng_req_o,
input entropy_src_pkg::entropy_src_rng_rsp_t es_rng_rsp_i,
output logic es_rng_fips_o,
output tlul_pkg::tl_h2d_t ast_tl_req_o,
input tlul_pkg::tl_d2h_t ast_tl_rsp_i,
output pinmux_pkg::dft_strap_test_req_t dft_strap_test_o,
input logic dft_hold_tap_sel_i,
output logic usb_dp_pullup_en_o,
output logic usb_dn_pullup_en_o,
output pwrmgr_pkg::pwr_ast_req_t pwrmgr_ast_req_o,
input pwrmgr_pkg::pwr_ast_rsp_t pwrmgr_ast_rsp_i,
output otp_ctrl_pkg::otp_ast_req_t otp_ctrl_otp_ast_pwr_seq_o,
input otp_ctrl_pkg::otp_ast_rsp_t otp_ctrl_otp_ast_pwr_seq_h_i,
inout otp_ext_voltage_h_io,
output logic [7:0] otp_obs_o,
input logic [1:0] por_n_i,
input logic [31:0] fpga_info_i,
input ast_pkg::ast_alert_req_t sensor_ctrl_ast_alert_req_i,
output ast_pkg::ast_alert_rsp_t sensor_ctrl_ast_alert_rsp_o,
input ast_pkg::ast_status_t sensor_ctrl_ast_status_i,
input logic [8:0] ast2pinmux_i,
input prim_mubi_pkg::mubi4_t ast_init_done_i,
output logic sck_monitor_o,
input logic usbdev_usb_rx_d_i,
output logic usbdev_usb_tx_d_o,
output logic usbdev_usb_tx_se0_o,
output logic usbdev_usb_tx_use_d_se0_o,
output logic usbdev_usb_rx_enable_o,
output logic usbdev_usb_ref_val_o,
output logic usbdev_usb_ref_pulse_o,
// All externally supplied clocks
input clk_main_i,
input clk_io_i,
input clk_usb_i,
input clk_aon_i,
input clk_ml_i,
input clk_smc_i,
input clk_video_i,
input clk_audio_i,
// All clocks forwarded to ast
output clkmgr_pkg::clkmgr_out_t clks_ast_o,
output rstmgr_pkg::rstmgr_out_t rsts_ast_o,
input scan_rst_ni, // reset used for test mode
input scan_en_i,
input prim_mubi_pkg::mubi4_t scanmode_i // lc_ctrl_pkg::On for Scan
);
import tlul_pkg::*;
import top_pkg::*;
import tl_main_pkg::*;
import tl_smc_pkg::*;
import top_matcha_pkg::*;
// Compile-time random constants
import top_matcha_rnd_cnst_pkg::*;
// Signals
logic [75:0] mio_p2d;
logic [88:0] mio_d2p;
logic [88:0] mio_en_d2p;
logic [15:0] dio_p2d;
logic [15:0] dio_d2p;
logic [15:0] dio_en_d2p;
// uart0
logic cio_uart0_rx_p2d;
logic cio_uart0_tx_d2p;
logic cio_uart0_tx_en_d2p;
// uart1
logic cio_uart1_rx_p2d;
logic cio_uart1_tx_d2p;
logic cio_uart1_tx_en_d2p;
// uart2
logic cio_uart2_rx_p2d;
logic cio_uart2_tx_d2p;
logic cio_uart2_tx_en_d2p;
// uart3
logic cio_uart3_rx_p2d;
logic cio_uart3_tx_d2p;
logic cio_uart3_tx_en_d2p;
// gpio
logic [31:0] cio_gpio_gpio_p2d;
logic [31:0] cio_gpio_gpio_d2p;
logic [31:0] cio_gpio_gpio_en_d2p;
// spi_device
logic cio_spi_device_sck_p2d;
logic cio_spi_device_csb_p2d;
logic cio_spi_device_tpm_csb_p2d;
logic [3:0] cio_spi_device_sd_p2d;
logic [3:0] cio_spi_device_sd_d2p;
logic [3:0] cio_spi_device_sd_en_d2p;
// i2c0
logic cio_i2c0_sda_p2d;
logic cio_i2c0_scl_p2d;
logic cio_i2c0_sda_d2p;
logic cio_i2c0_sda_en_d2p;
logic cio_i2c0_scl_d2p;
logic cio_i2c0_scl_en_d2p;
// i2c1
logic cio_i2c1_sda_p2d;
logic cio_i2c1_scl_p2d;
logic cio_i2c1_sda_d2p;
logic cio_i2c1_sda_en_d2p;
logic cio_i2c1_scl_d2p;
logic cio_i2c1_scl_en_d2p;
// i2c2
logic cio_i2c2_sda_p2d;
logic cio_i2c2_scl_p2d;
logic cio_i2c2_sda_d2p;
logic cio_i2c2_sda_en_d2p;
logic cio_i2c2_scl_d2p;
logic cio_i2c2_scl_en_d2p;
// pattgen
logic cio_pattgen_pda0_tx_d2p;
logic cio_pattgen_pda0_tx_en_d2p;
logic cio_pattgen_pcl0_tx_d2p;
logic cio_pattgen_pcl0_tx_en_d2p;
logic cio_pattgen_pda1_tx_d2p;
logic cio_pattgen_pda1_tx_en_d2p;
logic cio_pattgen_pcl1_tx_d2p;
logic cio_pattgen_pcl1_tx_en_d2p;
// rv_timer
// otp_ctrl
logic [7:0] cio_otp_ctrl_test_d2p;
logic [7:0] cio_otp_ctrl_test_en_d2p;
// lc_ctrl
// alert_handler
// spi_host0
logic [3:0] cio_spi_host0_sd_p2d;
logic cio_spi_host0_sck_d2p;
logic cio_spi_host0_sck_en_d2p;
logic cio_spi_host0_csb_d2p;
logic cio_spi_host0_csb_en_d2p;
logic [3:0] cio_spi_host0_sd_d2p;
logic [3:0] cio_spi_host0_sd_en_d2p;
// spi_host1
logic [3:0] cio_spi_host1_sd_p2d;
logic cio_spi_host1_sck_d2p;
logic cio_spi_host1_sck_en_d2p;
logic cio_spi_host1_csb_d2p;
logic cio_spi_host1_csb_en_d2p;
logic [3:0] cio_spi_host1_sd_d2p;
logic [3:0] cio_spi_host1_sd_en_d2p;
// usbdev
logic cio_usbdev_sense_p2d;
logic cio_usbdev_usb_dp_p2d;
logic cio_usbdev_usb_dn_p2d;
logic cio_usbdev_usb_dp_d2p;
logic cio_usbdev_usb_dp_en_d2p;
logic cio_usbdev_usb_dn_d2p;
logic cio_usbdev_usb_dn_en_d2p;
// pwrmgr_aon
// rstmgr_aon
// clkmgr_aon
// sysrst_ctrl_aon
logic cio_sysrst_ctrl_aon_ac_present_p2d;
logic cio_sysrst_ctrl_aon_key0_in_p2d;
logic cio_sysrst_ctrl_aon_key1_in_p2d;
logic cio_sysrst_ctrl_aon_key2_in_p2d;
logic cio_sysrst_ctrl_aon_pwrb_in_p2d;
logic cio_sysrst_ctrl_aon_lid_open_p2d;
logic cio_sysrst_ctrl_aon_ec_rst_l_p2d;
logic cio_sysrst_ctrl_aon_flash_wp_l_p2d;
logic cio_sysrst_ctrl_aon_bat_disable_d2p;
logic cio_sysrst_ctrl_aon_bat_disable_en_d2p;
logic cio_sysrst_ctrl_aon_key0_out_d2p;
logic cio_sysrst_ctrl_aon_key0_out_en_d2p;
logic cio_sysrst_ctrl_aon_key1_out_d2p;
logic cio_sysrst_ctrl_aon_key1_out_en_d2p;
logic cio_sysrst_ctrl_aon_key2_out_d2p;
logic cio_sysrst_ctrl_aon_key2_out_en_d2p;
logic cio_sysrst_ctrl_aon_pwrb_out_d2p;
logic cio_sysrst_ctrl_aon_pwrb_out_en_d2p;
logic cio_sysrst_ctrl_aon_z3_wakeup_d2p;
logic cio_sysrst_ctrl_aon_z3_wakeup_en_d2p;
logic cio_sysrst_ctrl_aon_ec_rst_l_d2p;
logic cio_sysrst_ctrl_aon_ec_rst_l_en_d2p;
logic cio_sysrst_ctrl_aon_flash_wp_l_d2p;
logic cio_sysrst_ctrl_aon_flash_wp_l_en_d2p;
// adc_ctrl_aon
// pwm_aon
logic [5:0] cio_pwm_aon_pwm_d2p;
logic [5:0] cio_pwm_aon_pwm_en_d2p;
// pinmux_aon
// aon_timer_aon
// sensor_ctrl
logic [8:0] cio_sensor_ctrl_ast_debug_out_d2p;
logic [8:0] cio_sensor_ctrl_ast_debug_out_en_d2p;
// sram_ctrl_ret_aon
// flash_ctrl
logic cio_flash_ctrl_tck_p2d;
logic cio_flash_ctrl_tms_p2d;
logic cio_flash_ctrl_tdi_p2d;
logic cio_flash_ctrl_tdo_d2p;
logic cio_flash_ctrl_tdo_en_d2p;
// rv_dm
// rv_plic
// aes
// hmac
// kmac
// otbn
// keymgr
// csrng
// entropy_src
// edn0
// edn1
// sram_ctrl_main
// rom_ctrl
// rv_core_ibex_sec
// dma0
// smc_uart
logic cio_smc_uart_rx_p2d;
logic cio_smc_uart_tx_d2p;
logic cio_smc_uart_tx_en_d2p;
// rv_timer_smc
// smc_ctrl
// cam_i2c
logic cio_cam_i2c_sda_p2d;
logic cio_cam_i2c_scl_p2d;
logic cio_cam_i2c_sda_d2p;
logic cio_cam_i2c_sda_en_d2p;
logic cio_cam_i2c_scl_d2p;
logic cio_cam_i2c_scl_en_d2p;
// cam_ctrl
logic cio_cam_ctrl_cam_int_p2d;
logic cio_cam_ctrl_cam_trig_d2p;
logic cio_cam_ctrl_cam_trig_en_d2p;
// isp_wrapper
logic cio_isp_wrapper_s_pclk_p2d;
logic [7:0] cio_isp_wrapper_s_data_p2d;
logic cio_isp_wrapper_s_hsync_p2d;
logic cio_isp_wrapper_s_vsync_p2d;
// dma_smc
// rv_plic_smc
// tlul_mailbox_sec
// tlul_mailbox_smc
// ml_top
// spi_host2
logic [3:0] cio_spi_host2_sd_p2d;
logic cio_spi_host2_sck_d2p;
logic cio_spi_host2_sck_en_d2p;
logic cio_spi_host2_csb_d2p;
logic cio_spi_host2_csb_en_d2p;
logic [3:0] cio_spi_host2_sd_d2p;
logic [3:0] cio_spi_host2_sd_en_d2p;
// rv_timer_smc2
// i2s0
logic cio_i2s0_rx_sd_p2d;
logic cio_i2s0_rx_sclk_d2p;
logic cio_i2s0_rx_sclk_en_d2p;
logic cio_i2s0_rx_ws_d2p;
logic cio_i2s0_rx_ws_en_d2p;
logic cio_i2s0_tx_sclk_d2p;
logic cio_i2s0_tx_sclk_en_d2p;
logic cio_i2s0_tx_ws_d2p;
logic cio_i2s0_tx_ws_en_d2p;
logic cio_i2s0_tx_sd_d2p;
logic cio_i2s0_tx_sd_en_d2p;
// rv_core_ibex_smc
logic [189:0] sec_intr_vector;
// Interrupt source list for Security core
logic intr_uart0_tx_watermark;
logic intr_uart0_rx_watermark;
logic intr_uart0_tx_empty;
logic intr_uart0_rx_overflow;
logic intr_uart0_rx_frame_err;
logic intr_uart0_rx_break_err;
logic intr_uart0_rx_timeout;
logic intr_uart0_rx_parity_err;
logic intr_uart1_tx_watermark;
logic intr_uart1_rx_watermark;
logic intr_uart1_tx_empty;
logic intr_uart1_rx_overflow;
logic intr_uart1_rx_frame_err;
logic intr_uart1_rx_break_err;
logic intr_uart1_rx_timeout;
logic intr_uart1_rx_parity_err;
logic intr_uart2_tx_watermark;
logic intr_uart2_rx_watermark;
logic intr_uart2_tx_empty;
logic intr_uart2_rx_overflow;
logic intr_uart2_rx_frame_err;
logic intr_uart2_rx_break_err;
logic intr_uart2_rx_timeout;
logic intr_uart2_rx_parity_err;
logic intr_uart3_tx_watermark;
logic intr_uart3_rx_watermark;
logic intr_uart3_tx_empty;
logic intr_uart3_rx_overflow;
logic intr_uart3_rx_frame_err;
logic intr_uart3_rx_break_err;
logic intr_uart3_rx_timeout;
logic intr_uart3_rx_parity_err;
logic [31:0] intr_gpio_gpio;
logic intr_spi_device_generic_rx_full;
logic intr_spi_device_generic_rx_watermark;
logic intr_spi_device_generic_tx_watermark;
logic intr_spi_device_generic_rx_error;
logic intr_spi_device_generic_rx_overflow;
logic intr_spi_device_generic_tx_underflow;
logic intr_spi_device_upload_cmdfifo_not_empty;
logic intr_spi_device_upload_payload_not_empty;
logic intr_spi_device_upload_payload_overflow;
logic intr_spi_device_readbuf_watermark;
logic intr_spi_device_readbuf_flip;
logic intr_spi_device_tpm_header_not_empty;
logic intr_i2c0_fmt_threshold;
logic intr_i2c0_rx_threshold;
logic intr_i2c0_fmt_overflow;
logic intr_i2c0_rx_overflow;
logic intr_i2c0_nak;
logic intr_i2c0_scl_interference;
logic intr_i2c0_sda_interference;
logic intr_i2c0_stretch_timeout;
logic intr_i2c0_sda_unstable;
logic intr_i2c0_cmd_complete;
logic intr_i2c0_tx_stretch;
logic intr_i2c0_tx_overflow;
logic intr_i2c0_acq_full;
logic intr_i2c0_unexp_stop;
logic intr_i2c0_host_timeout;
logic intr_i2c1_fmt_threshold;
logic intr_i2c1_rx_threshold;
logic intr_i2c1_fmt_overflow;
logic intr_i2c1_rx_overflow;
logic intr_i2c1_nak;
logic intr_i2c1_scl_interference;
logic intr_i2c1_sda_interference;
logic intr_i2c1_stretch_timeout;
logic intr_i2c1_sda_unstable;
logic intr_i2c1_cmd_complete;
logic intr_i2c1_tx_stretch;
logic intr_i2c1_tx_overflow;
logic intr_i2c1_acq_full;
logic intr_i2c1_unexp_stop;
logic intr_i2c1_host_timeout;
logic intr_i2c2_fmt_threshold;
logic intr_i2c2_rx_threshold;
logic intr_i2c2_fmt_overflow;
logic intr_i2c2_rx_overflow;
logic intr_i2c2_nak;
logic intr_i2c2_scl_interference;
logic intr_i2c2_sda_interference;
logic intr_i2c2_stretch_timeout;
logic intr_i2c2_sda_unstable;
logic intr_i2c2_cmd_complete;
logic intr_i2c2_tx_stretch;
logic intr_i2c2_tx_overflow;
logic intr_i2c2_acq_full;
logic intr_i2c2_unexp_stop;
logic intr_i2c2_host_timeout;
logic intr_pattgen_done_ch0;
logic intr_pattgen_done_ch1;
logic intr_rv_timer_timer_expired_hart0_timer0;
logic intr_otp_ctrl_otp_operation_done;
logic intr_otp_ctrl_otp_error;
logic intr_alert_handler_classa;
logic intr_alert_handler_classb;
logic intr_alert_handler_classc;
logic intr_alert_handler_classd;
logic intr_spi_host0_error;
logic intr_spi_host0_spi_event;
logic intr_spi_host1_error;
logic intr_spi_host1_spi_event;
logic intr_usbdev_pkt_received;
logic intr_usbdev_pkt_sent;
logic intr_usbdev_disconnected;
logic intr_usbdev_host_lost;
logic intr_usbdev_link_reset;
logic intr_usbdev_link_suspend;
logic intr_usbdev_link_resume;
logic intr_usbdev_av_empty;
logic intr_usbdev_rx_full;
logic intr_usbdev_av_overflow;
logic intr_usbdev_link_in_err;
logic intr_usbdev_rx_crc_err;
logic intr_usbdev_rx_pid_err;
logic intr_usbdev_rx_bitstuff_err;
logic intr_usbdev_frame;
logic intr_usbdev_powered;
logic intr_usbdev_link_out_err;
logic intr_pwrmgr_aon_wakeup;
logic intr_sysrst_ctrl_aon_event_detected;
logic intr_adc_ctrl_aon_match_done;
logic intr_aon_timer_aon_wkup_timer_expired;
logic intr_aon_timer_aon_wdog_timer_bark;
logic intr_sensor_ctrl_io_status_change;
logic intr_sensor_ctrl_init_status_change;
logic intr_flash_ctrl_prog_empty;
logic intr_flash_ctrl_prog_lvl;
logic intr_flash_ctrl_rd_full;
logic intr_flash_ctrl_rd_lvl;
logic intr_flash_ctrl_op_done;
logic intr_flash_ctrl_corr_err;
logic intr_hmac_hmac_done;
logic intr_hmac_fifo_empty;
logic intr_hmac_hmac_err;
logic intr_kmac_kmac_done;
logic intr_kmac_fifo_empty;
logic intr_kmac_kmac_err;
logic intr_otbn_done;
logic intr_keymgr_op_done;
logic intr_csrng_cs_cmd_req_done;
logic intr_csrng_cs_entropy_req;
logic intr_csrng_cs_hw_inst_exc;
logic intr_csrng_cs_fatal_err;
logic intr_entropy_src_es_entropy_valid;
logic intr_entropy_src_es_health_test_failed;
logic intr_entropy_src_es_observe_fifo_ready;
logic intr_entropy_src_es_fatal_err;
logic intr_edn0_edn_cmd_req_done;
logic intr_edn0_edn_fatal_err;
logic intr_edn1_edn_cmd_req_done;
logic intr_edn1_edn_fatal_err;
logic intr_dma0_writer_done;
logic intr_dma0_reader_done;
logic intr_tlul_mailbox_sec_wtirq;
logic intr_tlul_mailbox_sec_rtirq;
logic intr_tlul_mailbox_sec_eirq;
// smc_intr_vector for SMC core
logic [42:0] smc_intr_vector;
// Interrupt source list for SMC core
logic intr_smc_uart_tx_watermark;
logic intr_smc_uart_rx_watermark;
logic intr_smc_uart_tx_empty;
logic intr_smc_uart_rx_overflow;
logic intr_smc_uart_rx_frame_err;
logic intr_smc_uart_rx_break_err;
logic intr_smc_uart_rx_timeout;
logic intr_smc_uart_rx_parity_err;
logic intr_rv_timer_smc_timer_expired_hart0_timer0;
logic intr_cam_i2c_fmt_threshold;
logic intr_cam_i2c_rx_threshold;
logic intr_cam_i2c_fmt_overflow;
logic intr_cam_i2c_rx_overflow;
logic intr_cam_i2c_nak;
logic intr_cam_i2c_scl_interference;
logic intr_cam_i2c_sda_interference;
logic intr_cam_i2c_stretch_timeout;
logic intr_cam_i2c_sda_unstable;
logic intr_cam_i2c_cmd_complete;
logic intr_cam_i2c_tx_stretch;
logic intr_cam_i2c_tx_overflow;
logic intr_cam_i2c_acq_full;
logic intr_cam_i2c_unexp_stop;
logic intr_cam_i2c_host_timeout;
logic intr_cam_ctrl_cam_motion_detect;
logic intr_isp_wrapper_isp;
logic intr_isp_wrapper_mi;
logic intr_dma_smc_writer_done;
logic intr_dma_smc_reader_done;
logic intr_tlul_mailbox_smc_wtirq;
logic intr_tlul_mailbox_smc_rtirq;
logic intr_tlul_mailbox_smc_eirq;
logic intr_ml_top_host_req;
logic intr_ml_top_finish;
logic intr_ml_top_fault;
logic intr_spi_host2_error;
logic intr_spi_host2_spi_event;
logic intr_rv_timer_smc2_timer_expired_hart0_timer0;
logic intr_i2s0_tx_watermark;
logic intr_i2s0_rx_watermark;
logic intr_i2s0_tx_empty;
logic intr_i2s0_rx_overflow;
// Alert list
prim_alert_pkg::alert_tx_t [alert_pkg::NAlerts-1:0] alert_tx;
prim_alert_pkg::alert_rx_t [alert_pkg::NAlerts-1:0] alert_rx;
// define inter-module signals
ast_pkg::ast_obs_ctrl_t ast_obs_ctrl;
prim_ram_1p_pkg::ram_1p_cfg_t ast_ram_1p_cfg;
prim_ram_2p_pkg::ram_2p_cfg_t ast_ram_2p_cfg;
prim_rom_pkg::rom_cfg_t ast_rom_cfg;
alert_pkg::alert_crashdump_t alert_handler_crashdump;
prim_esc_pkg::esc_rx_t [3:0] alert_handler_esc_rx;
prim_esc_pkg::esc_tx_t [3:0] alert_handler_esc_tx;
logic aon_timer_aon_nmi_wdog_timer_bark;
csrng_pkg::csrng_req_t [1:0] csrng_csrng_cmd_req;
csrng_pkg::csrng_rsp_t [1:0] csrng_csrng_cmd_rsp;
entropy_src_pkg::entropy_src_hw_if_req_t csrng_entropy_src_hw_if_req;
entropy_src_pkg::entropy_src_hw_if_rsp_t csrng_entropy_src_hw_if_rsp;
entropy_src_pkg::cs_aes_halt_req_t csrng_cs_aes_halt_req;
entropy_src_pkg::cs_aes_halt_rsp_t csrng_cs_aes_halt_rsp;
flash_ctrl_pkg::keymgr_flash_t flash_ctrl_keymgr;
otp_ctrl_pkg::flash_otp_key_req_t flash_ctrl_otp_req;
otp_ctrl_pkg::flash_otp_key_rsp_t flash_ctrl_otp_rsp;
lc_ctrl_pkg::lc_flash_rma_seed_t flash_ctrl_rma_seed;
otp_ctrl_pkg::sram_otp_key_req_t [2:0] otp_ctrl_sram_otp_key_req;
otp_ctrl_pkg::sram_otp_key_rsp_t [2:0] otp_ctrl_sram_otp_key_rsp;
pwrmgr_pkg::pwr_flash_t pwrmgr_aon_pwr_flash;
pwrmgr_pkg::pwr_rst_req_t pwrmgr_aon_pwr_rst_req;
pwrmgr_pkg::pwr_rst_rsp_t pwrmgr_aon_pwr_rst_rsp;
pwrmgr_pkg::pwr_clk_req_t pwrmgr_aon_pwr_clk_req;
pwrmgr_pkg::pwr_clk_rsp_t pwrmgr_aon_pwr_clk_rsp;
pwrmgr_pkg::pwr_otp_req_t pwrmgr_aon_pwr_otp_req;
pwrmgr_pkg::pwr_otp_rsp_t pwrmgr_aon_pwr_otp_rsp;
pwrmgr_pkg::pwr_lc_req_t pwrmgr_aon_pwr_lc_req;
pwrmgr_pkg::pwr_lc_rsp_t pwrmgr_aon_pwr_lc_rsp;
logic pwrmgr_aon_strap;
logic pwrmgr_aon_low_power;
lc_ctrl_pkg::lc_tx_t pwrmgr_aon_fetch_en;
rom_ctrl_pkg::pwrmgr_data_t rom_ctrl_pwrmgr_data;
rom_ctrl_pkg::keymgr_data_t rom_ctrl_keymgr_data;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_flash_rma_req;
lc_ctrl_pkg::lc_tx_t flash_ctrl_rma_ack;
lc_ctrl_pkg::lc_tx_t otbn_lc_rma_ack;
logic usbdev_usb_dp_pullup;
logic usbdev_usb_dn_pullup;
logic usbdev_usb_aon_suspend_req;
logic usbdev_usb_aon_wake_ack;
logic usbdev_usb_aon_bus_reset;
logic usbdev_usb_aon_sense_lost;
logic pinmux_aon_usbdev_wake_detect_active;
logic isp_wrapper_isp_cvalid;
logic isp_wrapper_isp_cready;
logic isp_wrapper_isp_cwrite;
logic [21:0] isp_wrapper_isp_caddr;
logic [255:0] isp_wrapper_isp_wdata;
logic [31:0] isp_wrapper_isp_wmask;
edn_pkg::edn_req_t [7:0] edn0_edn_req;
edn_pkg::edn_rsp_t [7:0] edn0_edn_rsp;
edn_pkg::edn_req_t [7:0] edn1_edn_req;
edn_pkg::edn_rsp_t [7:0] edn1_edn_rsp;
otp_ctrl_pkg::otbn_otp_key_req_t otp_ctrl_otbn_otp_key_req;
otp_ctrl_pkg::otbn_otp_key_rsp_t otp_ctrl_otbn_otp_key_rsp;
otp_ctrl_pkg::otp_keymgr_key_t otp_ctrl_otp_keymgr_key;
keymgr_pkg::hw_key_req_t keymgr_aes_key;
keymgr_pkg::hw_key_req_t keymgr_kmac_key;
keymgr_pkg::otbn_key_req_t keymgr_otbn_key;
kmac_pkg::app_req_t [2:0] kmac_app_req;
kmac_pkg::app_rsp_t [2:0] kmac_app_rsp;
logic kmac_en_masking;
prim_mubi_pkg::mubi4_t [3:0] clkmgr_aon_idle;
jtag_pkg::jtag_req_t pinmux_aon_lc_jtag_req;
jtag_pkg::jtag_rsp_t pinmux_aon_lc_jtag_rsp;
jtag_pkg::jtag_req_t pinmux_aon_rv_jtag_req;
jtag_pkg::jtag_rsp_t pinmux_aon_rv_jtag_rsp;
lc_ctrl_pkg::lc_tx_t pinmux_aon_pinmux_hw_debug_en;
otp_ctrl_pkg::otp_lc_data_t otp_ctrl_otp_lc_data;
otp_ctrl_pkg::lc_otp_program_req_t lc_ctrl_lc_otp_program_req;
otp_ctrl_pkg::lc_otp_program_rsp_t lc_ctrl_lc_otp_program_rsp;
otp_ctrl_pkg::lc_otp_vendor_test_req_t lc_ctrl_lc_otp_vendor_test_req;
otp_ctrl_pkg::lc_otp_vendor_test_rsp_t lc_ctrl_lc_otp_vendor_test_rsp;
lc_ctrl_pkg::lc_keymgr_div_t lc_ctrl_lc_keymgr_div;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_dft_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_nvm_debug_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_hw_debug_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_cpu_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_keymgr_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_escalate_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_check_byp_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_clk_byp_req;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_clk_byp_ack;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_creator_seed_sw_rw_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_owner_seed_sw_rw_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_iso_part_sw_rd_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_iso_part_sw_wr_en;
lc_ctrl_pkg::lc_tx_t lc_ctrl_lc_seed_hw_rd_en;
logic [1:0] rv_plic_msip;
logic [1:0] rv_plic_irq;
logic rv_plic_smc_msip;
logic rv_plic_smc_irq;
logic [1:0] rv_dm_debug_req;
rv_core_ibex_pkg::cpu_crash_dump_t rv_core_ibex_sec_crash_dump;
pwrmgr_pkg::pwr_cpu_t rv_core_ibex_sec_pwrmgr;
lc_ctrl_pkg::lc_tx_t rv_core_ibex_smc_pwrmgr_cpu_en;
spi_device_pkg::passthrough_req_t spi_device_passthrough_req;
spi_device_pkg::passthrough_rsp_t spi_device_passthrough_rsp;
logic rv_dm_ndmreset_req;
prim_mubi_pkg::mubi4_t rstmgr_aon_sw_rst_req;
logic [5:0] pwrmgr_aon_wakeups;
logic [1:0] pwrmgr_aon_rstreqs;
tlul_pkg::tl_h2d_t main_tl_rv_core_ibex_sec__corei_req;
tlul_pkg::tl_d2h_t main_tl_rv_core_ibex_sec__corei_rsp;
tlul_pkg::tl_h2d_t main_tl_rv_core_ibex_sec__cored_req;
tlul_pkg::tl_d2h_t main_tl_rv_core_ibex_sec__cored_rsp;
tlul_pkg::tl_h2d_t main_tl_rv_dm__sba_req;
tlul_pkg::tl_d2h_t main_tl_rv_dm__sba_rsp;
tlul_pkg::tl_h2d_t main_tl_dma0__reader_req;
tlul_pkg::tl_d2h_t main_tl_dma0__reader_rsp;
tlul_pkg::tl_h2d_t main_tl_dma0__writer_req;
tlul_pkg::tl_d2h_t main_tl_dma0__writer_rsp;
tlul_pkg::tl_h2d_t dma0_tl_d_req;
tlul_pkg::tl_d2h_t dma0_tl_d_rsp;
tlul_pkg::tl_h2d_t rom_ctrl_rom_tl_req;
tlul_pkg::tl_d2h_t rom_ctrl_rom_tl_rsp;
tlul_pkg::tl_h2d_t rom_ctrl_regs_tl_req;
tlul_pkg::tl_d2h_t rom_ctrl_regs_tl_rsp;
tlul_pkg::tl_h2d_t main_tl_peri_req;
tlul_pkg::tl_d2h_t main_tl_peri_rsp;
tlul_pkg::tl_h2d_t spi_host0_tl_req;
tlul_pkg::tl_d2h_t spi_host0_tl_rsp;
tlul_pkg::tl_h2d_t spi_host1_tl_req;
tlul_pkg::tl_d2h_t spi_host1_tl_rsp;
tlul_pkg::tl_h2d_t usbdev_tl_req;
tlul_pkg::tl_d2h_t usbdev_tl_rsp;
tlul_pkg::tl_h2d_t flash_ctrl_core_tl_req;
tlul_pkg::tl_d2h_t flash_ctrl_core_tl_rsp;
tlul_pkg::tl_h2d_t flash_ctrl_prim_tl_req;
tlul_pkg::tl_d2h_t flash_ctrl_prim_tl_rsp;
tlul_pkg::tl_h2d_t flash_ctrl_mem_tl_req;
tlul_pkg::tl_d2h_t flash_ctrl_mem_tl_rsp;
tlul_pkg::tl_h2d_t hmac_tl_req;
tlul_pkg::tl_d2h_t hmac_tl_rsp;
tlul_pkg::tl_h2d_t kmac_tl_req;
tlul_pkg::tl_d2h_t kmac_tl_rsp;
tlul_pkg::tl_h2d_t aes_tl_req;
tlul_pkg::tl_d2h_t aes_tl_rsp;
tlul_pkg::tl_h2d_t entropy_src_tl_req;
tlul_pkg::tl_d2h_t entropy_src_tl_rsp;
tlul_pkg::tl_h2d_t csrng_tl_req;
tlul_pkg::tl_d2h_t csrng_tl_rsp;
tlul_pkg::tl_h2d_t edn0_tl_req;
tlul_pkg::tl_d2h_t edn0_tl_rsp;
tlul_pkg::tl_h2d_t edn1_tl_req;
tlul_pkg::tl_d2h_t edn1_tl_rsp;
tlul_pkg::tl_h2d_t rv_plic_tl_req;
tlul_pkg::tl_d2h_t rv_plic_tl_rsp;
tlul_pkg::tl_h2d_t otbn_tl_req;
tlul_pkg::tl_d2h_t otbn_tl_rsp;
tlul_pkg::tl_h2d_t keymgr_tl_req;
tlul_pkg::tl_d2h_t keymgr_tl_rsp;
tlul_pkg::tl_h2d_t rv_core_ibex_sec_cfg_tl_d_req;
tlul_pkg::tl_d2h_t rv_core_ibex_sec_cfg_tl_d_rsp;
tlul_pkg::tl_h2d_t sram_ctrl_main_regs_tl_req;
tlul_pkg::tl_d2h_t sram_ctrl_main_regs_tl_rsp;
tlul_pkg::tl_h2d_t sram_ctrl_main_ram_tl_req;
tlul_pkg::tl_d2h_t sram_ctrl_main_ram_tl_rsp;
tlul_pkg::tl_h2d_t tlul_mailbox_sec_tl_req;
tlul_pkg::tl_d2h_t tlul_mailbox_sec_tl_rsp;
tlul_pkg::tl_h2d_t main_tl_smc_req;
tlul_pkg::tl_d2h_t main_tl_smc_rsp;
tlul_pkg::tl_h2d_t main_tl_dbg_req;
tlul_pkg::tl_d2h_t main_tl_dbg_rsp;
tlul_pkg::tl_h2d_t uart0_tl_req;
tlul_pkg::tl_d2h_t uart0_tl_rsp;
tlul_pkg::tl_h2d_t uart1_tl_req;
tlul_pkg::tl_d2h_t uart1_tl_rsp;
tlul_pkg::tl_h2d_t uart2_tl_req;
tlul_pkg::tl_d2h_t uart2_tl_rsp;
tlul_pkg::tl_h2d_t uart3_tl_req;
tlul_pkg::tl_d2h_t uart3_tl_rsp;
tlul_pkg::tl_h2d_t i2c0_tl_req;
tlul_pkg::tl_d2h_t i2c0_tl_rsp;
tlul_pkg::tl_h2d_t i2c1_tl_req;
tlul_pkg::tl_d2h_t i2c1_tl_rsp;
tlul_pkg::tl_h2d_t i2c2_tl_req;
tlul_pkg::tl_d2h_t i2c2_tl_rsp;
tlul_pkg::tl_h2d_t pattgen_tl_req;
tlul_pkg::tl_d2h_t pattgen_tl_rsp;
tlul_pkg::tl_h2d_t pwm_aon_tl_req;
tlul_pkg::tl_d2h_t pwm_aon_tl_rsp;
tlul_pkg::tl_h2d_t gpio_tl_req;
tlul_pkg::tl_d2h_t gpio_tl_rsp;
tlul_pkg::tl_h2d_t spi_device_tl_req;
tlul_pkg::tl_d2h_t spi_device_tl_rsp;
tlul_pkg::tl_h2d_t rv_timer_tl_req;
tlul_pkg::tl_d2h_t rv_timer_tl_rsp;
tlul_pkg::tl_h2d_t pwrmgr_aon_tl_req;
tlul_pkg::tl_d2h_t pwrmgr_aon_tl_rsp;
tlul_pkg::tl_h2d_t rstmgr_aon_tl_req;
tlul_pkg::tl_d2h_t rstmgr_aon_tl_rsp;
tlul_pkg::tl_h2d_t clkmgr_aon_tl_req;
tlul_pkg::tl_d2h_t clkmgr_aon_tl_rsp;
tlul_pkg::tl_h2d_t pinmux_aon_tl_req;
tlul_pkg::tl_d2h_t pinmux_aon_tl_rsp;
tlul_pkg::tl_h2d_t otp_ctrl_core_tl_req;
tlul_pkg::tl_d2h_t otp_ctrl_core_tl_rsp;
tlul_pkg::tl_h2d_t otp_ctrl_prim_tl_req;
tlul_pkg::tl_d2h_t otp_ctrl_prim_tl_rsp;
tlul_pkg::tl_h2d_t lc_ctrl_tl_req;
tlul_pkg::tl_d2h_t lc_ctrl_tl_rsp;
tlul_pkg::tl_h2d_t sensor_ctrl_tl_req;
tlul_pkg::tl_d2h_t sensor_ctrl_tl_rsp;
tlul_pkg::tl_h2d_t alert_handler_tl_req;
tlul_pkg::tl_d2h_t alert_handler_tl_rsp;
tlul_pkg::tl_h2d_t sram_ctrl_ret_aon_regs_tl_req;
tlul_pkg::tl_d2h_t sram_ctrl_ret_aon_regs_tl_rsp;
tlul_pkg::tl_h2d_t sram_ctrl_ret_aon_ram_tl_req;
tlul_pkg::tl_d2h_t sram_ctrl_ret_aon_ram_tl_rsp;
tlul_pkg::tl_h2d_t aon_timer_aon_tl_req;
tlul_pkg::tl_d2h_t aon_timer_aon_tl_rsp;
tlul_pkg::tl_h2d_t sysrst_ctrl_aon_tl_req;
tlul_pkg::tl_d2h_t sysrst_ctrl_aon_tl_rsp;
tlul_pkg::tl_h2d_t adc_ctrl_aon_tl_req;
tlul_pkg::tl_d2h_t adc_ctrl_aon_tl_rsp;
tlul_pkg::tl_h2d_t smc_tl_rv_core_ibex_smc__corei_req;
tlul_pkg::tl_d2h_t smc_tl_rv_core_ibex_smc__corei_rsp;
tlul_pkg::tl_h2d_t smc_tl_rv_core_ibex_smc__cored_req;
tlul_pkg::tl_d2h_t smc_tl_rv_core_ibex_smc__cored_rsp;
tlul_pkg::tl_h2d_t smc_tl_dma_smc__reader_req;
tlul_pkg::tl_d2h_t smc_tl_dma_smc__reader_rsp;
tlul_pkg::tl_h2d_t smc_tl_dma_smc__writer_req;
tlul_pkg::tl_d2h_t smc_tl_dma_smc__writer_rsp;
tlul_pkg::tl_h2d_t rv_plic_smc_tl_req;
tlul_pkg::tl_d2h_t rv_plic_smc_tl_rsp;
tlul_pkg::tl_h2d_t rv_core_ibex_smc_cfg_tl_d_req;
tlul_pkg::tl_d2h_t rv_core_ibex_smc_cfg_tl_d_rsp;
tlul_pkg::tl_h2d_t ram_smc_tl_req;
tlul_pkg::tl_d2h_t ram_smc_tl_rsp;
tlul_pkg::tl_h2d_t smc_uart_tl_req;
tlul_pkg::tl_d2h_t smc_uart_tl_rsp;
tlul_pkg::tl_h2d_t rv_timer_smc_tl_req;
tlul_pkg::tl_d2h_t rv_timer_smc_tl_rsp;
tlul_pkg::tl_h2d_t tlul_mailbox_smc_tl_req;
tlul_pkg::tl_d2h_t tlul_mailbox_smc_tl_rsp;
tlul_pkg::tl_h2d_t smc_ctrl_tl_req;
tlul_pkg::tl_d2h_t smc_ctrl_tl_rsp;
tlul_pkg::tl_h2d_t cam_i2c_tl_req;
tlul_pkg::tl_d2h_t cam_i2c_tl_rsp;
tlul_pkg::tl_h2d_t cam_ctrl_tl_req;
tlul_pkg::tl_d2h_t cam_ctrl_tl_rsp;
tlul_pkg::tl_h2d_t ml_top_dmem_tl_req;
tlul_pkg::tl_d2h_t ml_top_dmem_tl_rsp;
tlul_pkg::tl_h2d_t ml_top_core_tl_req;
tlul_pkg::tl_d2h_t ml_top_core_tl_rsp;
tlul_pkg::tl_h2d_t isp_wrapper_tl_req;
tlul_pkg::tl_d2h_t isp_wrapper_tl_rsp;
tlul_pkg::tl_h2d_t dma_smc_tl_d_req;
tlul_pkg::tl_d2h_t dma_smc_tl_d_rsp;
tlul_pkg::tl_h2d_t spi_host2_tl_req;
tlul_pkg::tl_d2h_t spi_host2_tl_rsp;
tlul_pkg::tl_h2d_t smc_tl_dbg_req;
tlul_pkg::tl_d2h_t smc_tl_dbg_rsp;
tlul_pkg::tl_h2d_t rv_timer_smc2_tl_req;
tlul_pkg::tl_d2h_t rv_timer_smc2_tl_rsp;
tlul_pkg::tl_h2d_t i2s0_tl_req;
tlul_pkg::tl_d2h_t i2s0_tl_rsp;
tlul_pkg::tl_h2d_t rv_dm_regs_tl_d_req;
tlul_pkg::tl_d2h_t rv_dm_regs_tl_d_rsp;
tlul_pkg::tl_h2d_t rv_dm_mem_tl_d_req;
tlul_pkg::tl_d2h_t rv_dm_mem_tl_d_rsp;
clkmgr_pkg::clkmgr_out_t clkmgr_aon_clocks;
clkmgr_pkg::clkmgr_cg_en_t clkmgr_aon_cg_en;
rstmgr_pkg::rstmgr_out_t rstmgr_aon_resets;
rstmgr_pkg::rstmgr_rst_en_t rstmgr_aon_rst_en;
logic rv_core_ibex_sec_irq_timer;
logic rv_core_ibex_smc_irq_timer;
logic [31:0] rv_core_ibex_sec_hart_id;
logic [31:0] rv_core_ibex_sec_boot_addr;
logic [31:0] rv_core_ibex_smc_hart_id;
logic [31:0] rv_core_ibex_smc_boot_addr;
jtag_pkg::jtag_req_t pinmux_aon_dft_jtag_req;
jtag_pkg::jtag_rsp_t pinmux_aon_dft_jtag_rsp;
otp_ctrl_part_pkg::otp_hw_cfg_t otp_ctrl_otp_hw_cfg;
prim_mubi_pkg::mubi8_t csrng_otp_en_csrng_sw_app_read;
prim_mubi_pkg::mubi8_t entropy_src_otp_en_entropy_src_fw_read;
prim_mubi_pkg::mubi8_t entropy_src_otp_en_entropy_src_fw_over;
otp_ctrl_pkg::otp_device_id_t lc_ctrl_otp_device_id;
otp_ctrl_pkg::otp_manuf_state_t lc_ctrl_otp_manuf_state;
otp_ctrl_pkg::otp_device_id_t keymgr_otp_device_id;
prim_mubi_pkg::mubi8_t sram_ctrl_main_otp_en_sram_ifetch;
// define mixed connection to port
assign edn0_edn_req[2] = ast_edn_req_i;
assign ast_edn_rsp_o = edn0_edn_rsp[2];
assign ast_lc_dft_en_o = lc_ctrl_lc_dft_en;
assign ast_obs_ctrl = obs_ctrl_i;
assign ast_ram_1p_cfg = ram_1p_cfg_i;
assign ast_ram_2p_cfg = ram_2p_cfg_i;
assign ast_rom_cfg = rom_cfg_i;
// define partial inter-module tie-off
edn_pkg::edn_rsp_t unused_edn1_edn_rsp1;
edn_pkg::edn_rsp_t unused_edn1_edn_rsp2;
edn_pkg::edn_rsp_t unused_edn1_edn_rsp3;
edn_pkg::edn_rsp_t unused_edn1_edn_rsp4;
edn_pkg::edn_rsp_t unused_edn1_edn_rsp5;
edn_pkg::edn_rsp_t unused_edn1_edn_rsp6;
edn_pkg::edn_rsp_t unused_edn1_edn_rsp7;
// assign partial inter-module tie-off
assign unused_edn1_edn_rsp1 = edn1_edn_rsp[1];
assign unused_edn1_edn_rsp2 = edn1_edn_rsp[2];
assign unused_edn1_edn_rsp3 = edn1_edn_rsp[3];
assign unused_edn1_edn_rsp4 = edn1_edn_rsp[4];
assign unused_edn1_edn_rsp5 = edn1_edn_rsp[5];
assign unused_edn1_edn_rsp6 = edn1_edn_rsp[6];
assign unused_edn1_edn_rsp7 = edn1_edn_rsp[7];
assign edn1_edn_req[1] = '0;
assign edn1_edn_req[2] = '0;
assign edn1_edn_req[3] = '0;
assign edn1_edn_req[4] = '0;
assign edn1_edn_req[5] = '0;
assign edn1_edn_req[6] = '0;
assign edn1_edn_req[7] = '0;
// OTP HW_CFG Broadcast signals.
// TODO(#6713): The actual struct breakout and mapping currently needs to
// be performed by hand.
assign csrng_otp_en_csrng_sw_app_read = otp_ctrl_otp_hw_cfg.data.en_csrng_sw_app_read;
assign entropy_src_otp_en_entropy_src_fw_read = otp_ctrl_otp_hw_cfg.data.en_entropy_src_fw_read;
assign entropy_src_otp_en_entropy_src_fw_over = otp_ctrl_otp_hw_cfg.data.en_entropy_src_fw_over;
assign sram_ctrl_main_otp_en_sram_ifetch = otp_ctrl_otp_hw_cfg.data.en_sram_ifetch;
assign lc_ctrl_otp_device_id = otp_ctrl_otp_hw_cfg.data.device_id;
assign lc_ctrl_otp_manuf_state = otp_ctrl_otp_hw_cfg.data.manuf_state;
assign keymgr_otp_device_id = otp_ctrl_otp_hw_cfg.data.device_id;
logic unused_otp_hw_cfg_bits;
assign unused_otp_hw_cfg_bits = ^{
otp_ctrl_otp_hw_cfg.valid,
otp_ctrl_otp_hw_cfg.data.hw_cfg_digest,
otp_ctrl_otp_hw_cfg.data.unallocated
};
// See #7978 This below is a hack.
// This is because ast is a comportable-like module that sits outside
// of top_matcha's boundary.
assign clks_ast_o = clkmgr_aon_clocks;
assign rsts_ast_o = rstmgr_aon_resets;
// ibex specific assignments
// TODO(b/271173103).
assign rv_core_ibex_sec_irq_timer = intr_rv_timer_timer_expired_hart0_timer0;
assign rv_core_ibex_sec_hart_id = 0;
assign rv_core_ibex_smc_irq_timer = intr_rv_timer_smc_timer_expired_hart0_timer0;
assign rv_core_ibex_smc_hart_id = 1;
assign rv_core_ibex_sec_boot_addr = ADDR_SPACE_ROM_CTRL__ROM;
assign rv_core_ibex_smc_boot_addr = ADDR_SPACE_RAM_SMC;
// Struct breakout module tool-inserted DFT TAP signals
pinmux_jtag_breakout u_dft_tap_breakout (
.req_i (pinmux_aon_dft_jtag_req),
.rsp_o (pinmux_aon_dft_jtag_rsp),
.tck_o (),
.trst_no (),
.tms_o (),
.tdi_o (),
.tdo_i (1'b0),
.tdo_oe_i (1'b0)
);
// sram device
logic ram_smc_req;
logic ram_smc_we;
logic [19:0] ram_smc_addr;
logic [31:0] ram_smc_wdata;
logic [31:0] ram_smc_wmask;
logic [31:0] ram_smc_rdata;
logic ram_smc_rvalid;
logic [1:0] ram_smc_rerror;
tluh_adapter_sram #(
.MemLatency(1),
.MaxBurstSize(2)
) u_tl_adapter_ram_smc (
.clk_i (clkmgr_aon_clocks.clk_smc_infra),
.rst_ni (rstmgr_aon_resets.rst_smc_n[rstmgr_pkg::Domain0Sel]),
.tl_i (ram_smc_tl_req),
.tl_o (ram_smc_tl_rsp),
.req_o (ram_smc_req),
.gnt_i (ram_smc_req), // Grant when requests occur
.we_o (ram_smc_we),
.addr_o (ram_smc_addr),
.wdata_o (ram_smc_wdata),
.wmask_o (ram_smc_wmask),
.rdata_i (ram_smc_rdata),
.rvalid_i (ram_smc_rvalid),
.err_i (ram_smc_rerror[0])
);
prim_ram_1p_adv #(
.Width(32),
.Depth(1048576),
.DataBitsPerMask(8),
// TODO: enable parity once supported by the simulation infrastructure
.EnableParity(0)
) u_ram1p_ram_smc (
.clk_i (clkmgr_aon_clocks.clk_smc_infra),
.rst_ni (rstmgr_aon_resets.rst_smc_n[rstmgr_pkg::Domain0Sel]),
.req_i (ram_smc_req),
.write_i (ram_smc_we),
.addr_i (ram_smc_addr),
.wdata_i (ram_smc_wdata),
.wmask_i (ram_smc_wmask),
.rdata_o (ram_smc_rdata),
.rvalid_o (ram_smc_rvalid),
.rerror_o (ram_smc_rerror),
.cfg_i ('0)
);
// Wire up alert handler LPGs
prim_mubi_pkg::mubi4_t [alert_pkg::NLpg-1:0] lpg_cg_en;
prim_mubi_pkg::mubi4_t [alert_pkg::NLpg-1:0] lpg_rst_en;
// peri_lc_io_div4_0
assign lpg_cg_en[0] = clkmgr_aon_cg_en.io_div4_peri;
assign lpg_rst_en[0] = rstmgr_aon_rst_en.lc_io_div4[rstmgr_pkg::Domain0Sel];
// peri_spi_device_0
assign lpg_cg_en[1] = clkmgr_aon_cg_en.io_div4_peri;
assign lpg_rst_en[1] = rstmgr_aon_rst_en.spi_device[rstmgr_pkg::Domain0Sel];
// peri_i2c0_0
assign lpg_cg_en[2] = clkmgr_aon_cg_en.io_div4_peri;
assign lpg_rst_en[2] = rstmgr_aon_rst_en.i2c0[rstmgr_pkg::Domain0Sel];
// peri_i2c1_0
assign lpg_cg_en[3] = clkmgr_aon_cg_en.io_div4_peri;
assign lpg_rst_en[3] = rstmgr_aon_rst_en.i2c1[rstmgr_pkg::Domain0Sel];
// peri_i2c2_0
assign lpg_cg_en[4] = clkmgr_aon_cg_en.io_div4_peri;
assign lpg_rst_en[4] = rstmgr_aon_rst_en.i2c2[rstmgr_pkg::Domain0Sel];
// timers_lc_io_div4_0
assign lpg_cg_en[5] = clkmgr_aon_cg_en.io_div4_timers;
assign lpg_rst_en[5] = rstmgr_aon_rst_en.lc_io_div4[rstmgr_pkg::Domain0Sel];
// secure_lc_io_div4_0
assign lpg_cg_en[6] = clkmgr_aon_cg_en.io_div4_secure;
assign lpg_rst_en[6] = rstmgr_aon_rst_en.lc_io_div4[rstmgr_pkg::Domain0Sel];
// peri_spi_host0_0
assign lpg_cg_en[7] = clkmgr_aon_cg_en.io_peri;
assign lpg_rst_en[7] = rstmgr_aon_rst_en.spi_host0[rstmgr_pkg::Domain0Sel];
// peri_spi_host1_0
assign lpg_cg_en[8] = clkmgr_aon_cg_en.io_peri;
assign lpg_rst_en[8] = rstmgr_aon_rst_en.spi_host1[rstmgr_pkg::Domain0Sel];
// peri_usb_0
assign lpg_cg_en[9] = clkmgr_aon_cg_en.usb_peri;
assign lpg_rst_en[9] = rstmgr_aon_rst_en.usb[rstmgr_pkg::Domain0Sel];
// powerup_por_io_div4_Aon
assign lpg_cg_en[10] = clkmgr_aon_cg_en.io_div4_powerup;
assign lpg_rst_en[10] = rstmgr_aon_rst_en.por_io_div4[rstmgr_pkg::DomainAonSel];
// powerup_lc_io_div4_Aon
assign lpg_cg_en[11] = clkmgr_aon_cg_en.io_div4_powerup;
assign lpg_rst_en[11] = rstmgr_aon_rst_en.lc_io_div4[rstmgr_pkg::DomainAonSel];
// secure_lc_io_div4_Aon
assign lpg_cg_en[12] = clkmgr_aon_cg_en.io_div4_secure;
assign lpg_rst_en[12] = rstmgr_aon_rst_en.lc_io_div4[rstmgr_pkg::DomainAonSel];
// peri_lc_io_div4_Aon
assign lpg_cg_en[13] = clkmgr_aon_cg_en.io_div4_peri;
assign lpg_rst_en[13] = rstmgr_aon_rst_en.lc_io_div4[rstmgr_pkg::DomainAonSel];
// timers_lc_io_div4_Aon
assign lpg_cg_en[14] = clkmgr_aon_cg_en.io_div4_timers;
assign lpg_rst_en[14] = rstmgr_aon_rst_en.lc_io_div4[rstmgr_pkg::DomainAonSel];
// infra_lc_io_div4_0
assign lpg_cg_en[15] = clkmgr_aon_cg_en.io_div4_infra;
assign lpg_rst_en[15] = rstmgr_aon_rst_en.lc_io_div4[rstmgr_pkg::Domain0Sel];
// infra_lc_io_div4_Aon
assign lpg_cg_en[16] = clkmgr_aon_cg_en.io_div4_infra;
assign lpg_rst_en[16] = rstmgr_aon_rst_en.lc_io_div4[rstmgr_pkg::DomainAonSel];
// infra_lc_0
assign lpg_cg_en[17] = clkmgr_aon_cg_en.main_infra;
assign lpg_rst_en[17] = rstmgr_aon_rst_en.lc[rstmgr_pkg::Domain0Sel];
// infra_sys_0
assign lpg_cg_en[18] = clkmgr_aon_cg_en.main_infra;
assign lpg_rst_en[18] = rstmgr_aon_rst_en.sys[rstmgr_pkg::Domain0Sel];
// secure_lc_0
assign lpg_cg_en[19] = clkmgr_aon_cg_en.main_secure;
assign lpg_rst_en[19] = rstmgr_aon_rst_en.lc[rstmgr_pkg::Domain0Sel];
// aes_trans_lc_0
assign lpg_cg_en[20] = clkmgr_aon_cg_en.main_aes;
assign lpg_rst_en[20] = rstmgr_aon_rst_en.lc[rstmgr_pkg::Domain0Sel];
// hmac_trans_lc_0
assign lpg_cg_en[21] = clkmgr_aon_cg_en.main_hmac;
assign lpg_rst_en[21] = rstmgr_aon_rst_en.lc[rstmgr_pkg::Domain0Sel];
// kmac_trans_lc_0
assign lpg_cg_en[22] = clkmgr_aon_cg_en.main_kmac;
assign lpg_rst_en[22] = rstmgr_aon_rst_en.lc[rstmgr_pkg::Domain0Sel];
// otbn_trans_lc_0
assign lpg_cg_en[23] = clkmgr_aon_cg_en.main_otbn;
assign lpg_rst_en[23] = rstmgr_aon_rst_en.lc[rstmgr_pkg::Domain0Sel];
// secure_smc_0
assign lpg_cg_en[24] = clkmgr_aon_cg_en.smc_secure;
assign lpg_rst_en[24] = rstmgr_aon_rst_en.smc[rstmgr_pkg::Domain0Sel];
// peri_cam_i2c_0
assign lpg_cg_en[25] = clkmgr_aon_cg_en.io_div4_peri;
assign lpg_rst_en[25] = rstmgr_aon_rst_en.cam_i2c[rstmgr_pkg::Domain0Sel];
// peri_smc_0
assign lpg_cg_en[26] = clkmgr_aon_cg_en.video_peri;
assign lpg_rst_en[26] = rstmgr_aon_rst_en.smc[rstmgr_pkg::Domain0Sel];
// infra_smc_0
assign lpg_cg_en[27] = clkmgr_aon_cg_en.smc_infra;
assign lpg_rst_en[27] = rstmgr_aon_rst_en.smc[rstmgr_pkg::Domain0Sel];
// peri_ml_0
assign lpg_cg_en[28] = clkmgr_aon_cg_en.ml_peri;
assign lpg_rst_en[28] = rstmgr_aon_rst_en.ml[rstmgr_pkg::Domain0Sel];
// peri_spi_host2_0
assign lpg_cg_en[29] = clkmgr_aon_cg_en.io_peri;
assign lpg_rst_en[29] = rstmgr_aon_rst_en.spi_host2[rstmgr_pkg::Domain0Sel];
// timers_sys_io_div4_0
assign lpg_cg_en[30] = clkmgr_aon_cg_en.io_div4_timers;
assign lpg_rst_en[30] = rstmgr_aon_rst_en.sys_io_div4[rstmgr_pkg::Domain0Sel];
// peri_sys_io_div4_0
assign lpg_cg_en[31] = clkmgr_aon_cg_en.io_div4_peri;
assign lpg_rst_en[31] = rstmgr_aon_rst_en.sys_io_div4[rstmgr_pkg::Domain0Sel];
// tie-off unused connections
//VCS coverage off
// pragma coverage off
prim_mubi_pkg::mubi4_t unused_cg_en_0;
assign unused_cg_en_0 = clkmgr_aon_cg_en.aon_powerup;
prim_mubi_pkg::mubi4_t unused_cg_en_1;
assign unused_cg_en_1 = clkmgr_aon_cg_en.main_powerup;
prim_mubi_pkg::mubi4_t unused_cg_en_2;
assign unused_cg_en_2 = clkmgr_aon_cg_en.io_powerup;
prim_mubi_pkg::mubi4_t unused_cg_en_3;
assign unused_cg_en_3 = clkmgr_aon_cg_en.usb_powerup;
prim_mubi_pkg::mubi4_t unused_cg_en_4;
assign unused_cg_en_4 = clkmgr_aon_cg_en.io_div2_powerup;
prim_mubi_pkg::mubi4_t unused_cg_en_5;
assign unused_cg_en_5 = clkmgr_aon_cg_en.smc_powerup;
prim_mubi_pkg::mubi4_t unused_cg_en_6;
assign unused_cg_en_6 = clkmgr_aon_cg_en.ml_powerup;
prim_mubi_pkg::mubi4_t unused_cg_en_7;
assign unused_cg_en_7 = clkmgr_aon_cg_en.video_powerup;
prim_mubi_pkg::mubi4_t unused_cg_en_8;
assign unused_cg_en_8 = clkmgr_aon_cg_en.audio_powerup;
prim_mubi_pkg::mubi4_t unused_cg_en_9;
assign unused_cg_en_9 = clkmgr_aon_cg_en.aon_secure;
prim_mubi_pkg::mubi4_t unused_cg_en_10;
assign unused_cg_en_10 = clkmgr_aon_cg_en.aon_peri;
prim_mubi_pkg::mubi4_t unused_cg_en_11;
assign unused_cg_en_11 = clkmgr_aon_cg_en.aon_timers;
prim_mubi_pkg::mubi4_t unused_cg_en_12;
assign unused_cg_en_12 = clkmgr_aon_cg_en.usb_infra;
prim_mubi_pkg::mubi4_t unused_cg_en_13;
assign unused_cg_en_13 = clkmgr_aon_cg_en.io_infra;
prim_mubi_pkg::mubi4_t unused_cg_en_14;
assign unused_cg_en_14 = clkmgr_aon_cg_en.ml_infra;
prim_mubi_pkg::mubi4_t unused_cg_en_15;
assign unused_cg_en_15 = clkmgr_aon_cg_en.video_infra;
prim_mubi_pkg::mubi4_t unused_cg_en_16;
assign unused_cg_en_16 = clkmgr_aon_cg_en.audio_infra;
prim_mubi_pkg::mubi4_t unused_cg_en_17;
assign unused_cg_en_17 = clkmgr_aon_cg_en.io_div2_peri;
prim_mubi_pkg::mubi4_t unused_cg_en_18;
assign unused_cg_en_18 = clkmgr_aon_cg_en.audio_peri;
prim_mubi_pkg::mubi4_t unused_cg_en_19;
assign unused_cg_en_19 = clkmgr_aon_cg_en.smc_peri;
prim_mubi_pkg::mubi4_t unused_rst_en_0;
assign unused_rst_en_0 = rstmgr_aon_rst_en.por_aon[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_1;
assign unused_rst_en_1 = rstmgr_aon_rst_en.por_aon[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_2;
assign unused_rst_en_2 = rstmgr_aon_rst_en.por[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_3;
assign unused_rst_en_3 = rstmgr_aon_rst_en.por[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_4;
assign unused_rst_en_4 = rstmgr_aon_rst_en.por_io[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_5;
assign unused_rst_en_5 = rstmgr_aon_rst_en.por_io[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_6;
assign unused_rst_en_6 = rstmgr_aon_rst_en.por_io_div2[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_7;
assign unused_rst_en_7 = rstmgr_aon_rst_en.por_io_div2[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_8;
assign unused_rst_en_8 = rstmgr_aon_rst_en.por_io_div4[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_9;
assign unused_rst_en_9 = rstmgr_aon_rst_en.por_usb[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_10;
assign unused_rst_en_10 = rstmgr_aon_rst_en.por_usb[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_11;
assign unused_rst_en_11 = rstmgr_aon_rst_en.por_smc[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_12;
assign unused_rst_en_12 = rstmgr_aon_rst_en.por_smc[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_13;
assign unused_rst_en_13 = rstmgr_aon_rst_en.por_ml[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_14;
assign unused_rst_en_14 = rstmgr_aon_rst_en.por_ml[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_15;
assign unused_rst_en_15 = rstmgr_aon_rst_en.por_video[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_16;
assign unused_rst_en_16 = rstmgr_aon_rst_en.por_video[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_17;
assign unused_rst_en_17 = rstmgr_aon_rst_en.por_audio[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_18;
assign unused_rst_en_18 = rstmgr_aon_rst_en.por_audio[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_19;
assign unused_rst_en_19 = rstmgr_aon_rst_en.lc_shadowed[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_20;
assign unused_rst_en_20 = rstmgr_aon_rst_en.lc[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_21;
assign unused_rst_en_21 = rstmgr_aon_rst_en.lc_shadowed[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_22;
assign unused_rst_en_22 = rstmgr_aon_rst_en.lc_aon[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_23;
assign unused_rst_en_23 = rstmgr_aon_rst_en.lc_aon[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_24;
assign unused_rst_en_24 = rstmgr_aon_rst_en.lc_io[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_25;
assign unused_rst_en_25 = rstmgr_aon_rst_en.lc_io[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_26;
assign unused_rst_en_26 = rstmgr_aon_rst_en.lc_io_div2[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_27;
assign unused_rst_en_27 = rstmgr_aon_rst_en.lc_io_div2[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_28;
assign unused_rst_en_28 = rstmgr_aon_rst_en.lc_io_div4_shadowed[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_29;
assign unused_rst_en_29 = rstmgr_aon_rst_en.lc_io_div4_shadowed[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_30;
assign unused_rst_en_30 = rstmgr_aon_rst_en.lc_usb[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_31;
assign unused_rst_en_31 = rstmgr_aon_rst_en.lc_usb[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_32;
assign unused_rst_en_32 = rstmgr_aon_rst_en.lc_smc[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_33;
assign unused_rst_en_33 = rstmgr_aon_rst_en.lc_smc[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_34;
assign unused_rst_en_34 = rstmgr_aon_rst_en.lc_ml[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_35;
assign unused_rst_en_35 = rstmgr_aon_rst_en.lc_ml[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_36;
assign unused_rst_en_36 = rstmgr_aon_rst_en.lc_video[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_37;
assign unused_rst_en_37 = rstmgr_aon_rst_en.lc_video[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_38;
assign unused_rst_en_38 = rstmgr_aon_rst_en.lc_audio[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_39;
assign unused_rst_en_39 = rstmgr_aon_rst_en.lc_audio[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_40;
assign unused_rst_en_40 = rstmgr_aon_rst_en.sys[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_41;
assign unused_rst_en_41 = rstmgr_aon_rst_en.sys_io_div4[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_42;
assign unused_rst_en_42 = rstmgr_aon_rst_en.spi_device[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_43;
assign unused_rst_en_43 = rstmgr_aon_rst_en.spi_host0[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_44;
assign unused_rst_en_44 = rstmgr_aon_rst_en.spi_host1[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_45;
assign unused_rst_en_45 = rstmgr_aon_rst_en.spi_host2[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_46;
assign unused_rst_en_46 = rstmgr_aon_rst_en.usb[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_47;
assign unused_rst_en_47 = rstmgr_aon_rst_en.usb_aon[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_48;
assign unused_rst_en_48 = rstmgr_aon_rst_en.usb_aon[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_49;
assign unused_rst_en_49 = rstmgr_aon_rst_en.i2c0[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_50;
assign unused_rst_en_50 = rstmgr_aon_rst_en.i2c1[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_51;
assign unused_rst_en_51 = rstmgr_aon_rst_en.i2c2[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_52;
assign unused_rst_en_52 = rstmgr_aon_rst_en.smc[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_53;
assign unused_rst_en_53 = rstmgr_aon_rst_en.ml[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_54;
assign unused_rst_en_54 = rstmgr_aon_rst_en.cam_i2c[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_55;
assign unused_rst_en_55 = rstmgr_aon_rst_en.video[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_56;
assign unused_rst_en_56 = rstmgr_aon_rst_en.video[rstmgr_pkg::Domain0Sel];
prim_mubi_pkg::mubi4_t unused_rst_en_57;
assign unused_rst_en_57 = rstmgr_aon_rst_en.audio[rstmgr_pkg::DomainAonSel];
prim_mubi_pkg::mubi4_t unused_rst_en_58;
assign unused_rst_en_58 = rstmgr_aon_rst_en.audio[rstmgr_pkg::Domain0Sel];
//VCS coverage on
// pragma coverage on
// Peripheral Instantiation
uart #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[0:0])
) u_uart0 (
// Input
.cio_rx_i (cio_uart0_rx_p2d),
// Output
.cio_tx_o (cio_uart0_tx_d2p),
.cio_tx_en_o (cio_uart0_tx_en_d2p),
// Interrupt
.intr_tx_watermark_o (intr_uart0_tx_watermark),
.intr_rx_watermark_o (intr_uart0_rx_watermark),
.intr_tx_empty_o (intr_uart0_tx_empty),
.intr_rx_overflow_o (intr_uart0_rx_overflow),
.intr_rx_frame_err_o (intr_uart0_rx_frame_err),
.intr_rx_break_err_o (intr_uart0_rx_break_err),
.intr_rx_timeout_o (intr_uart0_rx_timeout),
.intr_rx_parity_err_o (intr_uart0_rx_parity_err),
// [0]: fatal_fault
.alert_tx_o ( alert_tx[0:0] ),
.alert_rx_i ( alert_rx[0:0] ),
// Inter-module signals
.tl_i(uart0_tl_req),
.tl_o(uart0_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
uart #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[1:1])
) u_uart1 (
// Input
.cio_rx_i (cio_uart1_rx_p2d),
// Output
.cio_tx_o (cio_uart1_tx_d2p),
.cio_tx_en_o (cio_uart1_tx_en_d2p),
// Interrupt
.intr_tx_watermark_o (intr_uart1_tx_watermark),
.intr_rx_watermark_o (intr_uart1_rx_watermark),
.intr_tx_empty_o (intr_uart1_tx_empty),
.intr_rx_overflow_o (intr_uart1_rx_overflow),
.intr_rx_frame_err_o (intr_uart1_rx_frame_err),
.intr_rx_break_err_o (intr_uart1_rx_break_err),
.intr_rx_timeout_o (intr_uart1_rx_timeout),
.intr_rx_parity_err_o (intr_uart1_rx_parity_err),
// [1]: fatal_fault
.alert_tx_o ( alert_tx[1:1] ),
.alert_rx_i ( alert_rx[1:1] ),
// Inter-module signals
.tl_i(uart1_tl_req),
.tl_o(uart1_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
uart #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[2:2])
) u_uart2 (
// Input
.cio_rx_i (cio_uart2_rx_p2d),
// Output
.cio_tx_o (cio_uart2_tx_d2p),
.cio_tx_en_o (cio_uart2_tx_en_d2p),
// Interrupt
.intr_tx_watermark_o (intr_uart2_tx_watermark),
.intr_rx_watermark_o (intr_uart2_rx_watermark),
.intr_tx_empty_o (intr_uart2_tx_empty),
.intr_rx_overflow_o (intr_uart2_rx_overflow),
.intr_rx_frame_err_o (intr_uart2_rx_frame_err),
.intr_rx_break_err_o (intr_uart2_rx_break_err),
.intr_rx_timeout_o (intr_uart2_rx_timeout),
.intr_rx_parity_err_o (intr_uart2_rx_parity_err),
// [2]: fatal_fault
.alert_tx_o ( alert_tx[2:2] ),
.alert_rx_i ( alert_rx[2:2] ),
// Inter-module signals
.tl_i(uart2_tl_req),
.tl_o(uart2_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
uart #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[3:3])
) u_uart3 (
// Input
.cio_rx_i (cio_uart3_rx_p2d),
// Output
.cio_tx_o (cio_uart3_tx_d2p),
.cio_tx_en_o (cio_uart3_tx_en_d2p),
// Interrupt
.intr_tx_watermark_o (intr_uart3_tx_watermark),
.intr_rx_watermark_o (intr_uart3_rx_watermark),
.intr_tx_empty_o (intr_uart3_tx_empty),
.intr_rx_overflow_o (intr_uart3_rx_overflow),
.intr_rx_frame_err_o (intr_uart3_rx_frame_err),
.intr_rx_break_err_o (intr_uart3_rx_break_err),
.intr_rx_timeout_o (intr_uart3_rx_timeout),
.intr_rx_parity_err_o (intr_uart3_rx_parity_err),
// [3]: fatal_fault
.alert_tx_o ( alert_tx[3:3] ),
.alert_rx_i ( alert_rx[3:3] ),
// Inter-module signals
.tl_i(uart3_tl_req),
.tl_o(uart3_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
gpio #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[4:4]),
.GpioAsyncOn(GpioGpioAsyncOn)
) u_gpio (
// Input
.cio_gpio_i (cio_gpio_gpio_p2d),
// Output
.cio_gpio_o (cio_gpio_gpio_d2p),
.cio_gpio_en_o (cio_gpio_gpio_en_d2p),
// Interrupt
.intr_gpio_o (intr_gpio_gpio),
// [4]: fatal_fault
.alert_tx_o ( alert_tx[4:4] ),
.alert_rx_i ( alert_rx[4:4] ),
// Inter-module signals
.tl_i(gpio_tl_req),
.tl_o(gpio_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
spi_device #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[5:5])
) u_spi_device (
// Input
.cio_sck_i (cio_spi_device_sck_p2d),
.cio_csb_i (cio_spi_device_csb_p2d),
.cio_tpm_csb_i (cio_spi_device_tpm_csb_p2d),
.cio_sd_i (cio_spi_device_sd_p2d),
// Output
.cio_sd_o (cio_spi_device_sd_d2p),
.cio_sd_en_o (cio_spi_device_sd_en_d2p),
// Interrupt
.intr_generic_rx_full_o (intr_spi_device_generic_rx_full),
.intr_generic_rx_watermark_o (intr_spi_device_generic_rx_watermark),
.intr_generic_tx_watermark_o (intr_spi_device_generic_tx_watermark),
.intr_generic_rx_error_o (intr_spi_device_generic_rx_error),
.intr_generic_rx_overflow_o (intr_spi_device_generic_rx_overflow),
.intr_generic_tx_underflow_o (intr_spi_device_generic_tx_underflow),
.intr_upload_cmdfifo_not_empty_o (intr_spi_device_upload_cmdfifo_not_empty),
.intr_upload_payload_not_empty_o (intr_spi_device_upload_payload_not_empty),
.intr_upload_payload_overflow_o (intr_spi_device_upload_payload_overflow),
.intr_readbuf_watermark_o (intr_spi_device_readbuf_watermark),
.intr_readbuf_flip_o (intr_spi_device_readbuf_flip),
.intr_tpm_header_not_empty_o (intr_spi_device_tpm_header_not_empty),
// [5]: fatal_fault
.alert_tx_o ( alert_tx[5:5] ),
.alert_rx_i ( alert_rx[5:5] ),
// Inter-module signals
.ram_cfg_i(ast_ram_2p_cfg),
.passthrough_o(spi_device_passthrough_req),
.passthrough_i(spi_device_passthrough_rsp),
.mbist_en_i('0),
.sck_monitor_o(sck_monitor_o),
.tl_i(spi_device_tl_req),
.tl_o(spi_device_tl_rsp),
.scanmode_i,
.scan_rst_ni,
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.scan_clk_i (clkmgr_aon_clocks.clk_io_div2_peri),
.rst_ni (rstmgr_aon_resets.rst_spi_device_n[rstmgr_pkg::Domain0Sel])
);
i2c #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[6:6])
) u_i2c0 (
// Input
.cio_sda_i (cio_i2c0_sda_p2d),
.cio_scl_i (cio_i2c0_scl_p2d),
// Output
.cio_sda_o (cio_i2c0_sda_d2p),
.cio_sda_en_o (cio_i2c0_sda_en_d2p),
.cio_scl_o (cio_i2c0_scl_d2p),
.cio_scl_en_o (cio_i2c0_scl_en_d2p),
// Interrupt
.intr_fmt_threshold_o (intr_i2c0_fmt_threshold),
.intr_rx_threshold_o (intr_i2c0_rx_threshold),
.intr_fmt_overflow_o (intr_i2c0_fmt_overflow),
.intr_rx_overflow_o (intr_i2c0_rx_overflow),
.intr_nak_o (intr_i2c0_nak),
.intr_scl_interference_o (intr_i2c0_scl_interference),
.intr_sda_interference_o (intr_i2c0_sda_interference),
.intr_stretch_timeout_o (intr_i2c0_stretch_timeout),
.intr_sda_unstable_o (intr_i2c0_sda_unstable),
.intr_cmd_complete_o (intr_i2c0_cmd_complete),
.intr_tx_stretch_o (intr_i2c0_tx_stretch),
.intr_tx_overflow_o (intr_i2c0_tx_overflow),
.intr_acq_full_o (intr_i2c0_acq_full),
.intr_unexp_stop_o (intr_i2c0_unexp_stop),
.intr_host_timeout_o (intr_i2c0_host_timeout),
// [6]: fatal_fault
.alert_tx_o ( alert_tx[6:6] ),
.alert_rx_i ( alert_rx[6:6] ),
// Inter-module signals
.tl_i(i2c0_tl_req),
.tl_o(i2c0_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_i2c0_n[rstmgr_pkg::Domain0Sel])
);
i2c #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[7:7])
) u_i2c1 (
// Input
.cio_sda_i (cio_i2c1_sda_p2d),
.cio_scl_i (cio_i2c1_scl_p2d),
// Output
.cio_sda_o (cio_i2c1_sda_d2p),
.cio_sda_en_o (cio_i2c1_sda_en_d2p),
.cio_scl_o (cio_i2c1_scl_d2p),
.cio_scl_en_o (cio_i2c1_scl_en_d2p),
// Interrupt
.intr_fmt_threshold_o (intr_i2c1_fmt_threshold),
.intr_rx_threshold_o (intr_i2c1_rx_threshold),
.intr_fmt_overflow_o (intr_i2c1_fmt_overflow),
.intr_rx_overflow_o (intr_i2c1_rx_overflow),
.intr_nak_o (intr_i2c1_nak),
.intr_scl_interference_o (intr_i2c1_scl_interference),
.intr_sda_interference_o (intr_i2c1_sda_interference),
.intr_stretch_timeout_o (intr_i2c1_stretch_timeout),
.intr_sda_unstable_o (intr_i2c1_sda_unstable),
.intr_cmd_complete_o (intr_i2c1_cmd_complete),
.intr_tx_stretch_o (intr_i2c1_tx_stretch),
.intr_tx_overflow_o (intr_i2c1_tx_overflow),
.intr_acq_full_o (intr_i2c1_acq_full),
.intr_unexp_stop_o (intr_i2c1_unexp_stop),
.intr_host_timeout_o (intr_i2c1_host_timeout),
// [7]: fatal_fault
.alert_tx_o ( alert_tx[7:7] ),
.alert_rx_i ( alert_rx[7:7] ),
// Inter-module signals
.tl_i(i2c1_tl_req),
.tl_o(i2c1_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_i2c1_n[rstmgr_pkg::Domain0Sel])
);
i2c #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[8:8])
) u_i2c2 (
// Input
.cio_sda_i (cio_i2c2_sda_p2d),
.cio_scl_i (cio_i2c2_scl_p2d),
// Output
.cio_sda_o (cio_i2c2_sda_d2p),
.cio_sda_en_o (cio_i2c2_sda_en_d2p),
.cio_scl_o (cio_i2c2_scl_d2p),
.cio_scl_en_o (cio_i2c2_scl_en_d2p),
// Interrupt
.intr_fmt_threshold_o (intr_i2c2_fmt_threshold),
.intr_rx_threshold_o (intr_i2c2_rx_threshold),
.intr_fmt_overflow_o (intr_i2c2_fmt_overflow),
.intr_rx_overflow_o (intr_i2c2_rx_overflow),
.intr_nak_o (intr_i2c2_nak),
.intr_scl_interference_o (intr_i2c2_scl_interference),
.intr_sda_interference_o (intr_i2c2_sda_interference),
.intr_stretch_timeout_o (intr_i2c2_stretch_timeout),
.intr_sda_unstable_o (intr_i2c2_sda_unstable),
.intr_cmd_complete_o (intr_i2c2_cmd_complete),
.intr_tx_stretch_o (intr_i2c2_tx_stretch),
.intr_tx_overflow_o (intr_i2c2_tx_overflow),
.intr_acq_full_o (intr_i2c2_acq_full),
.intr_unexp_stop_o (intr_i2c2_unexp_stop),
.intr_host_timeout_o (intr_i2c2_host_timeout),
// [8]: fatal_fault
.alert_tx_o ( alert_tx[8:8] ),
.alert_rx_i ( alert_rx[8:8] ),
// Inter-module signals
.tl_i(i2c2_tl_req),
.tl_o(i2c2_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_i2c2_n[rstmgr_pkg::Domain0Sel])
);
pattgen #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[9:9])
) u_pattgen (
// Output
.cio_pda0_tx_o (cio_pattgen_pda0_tx_d2p),
.cio_pda0_tx_en_o (cio_pattgen_pda0_tx_en_d2p),
.cio_pcl0_tx_o (cio_pattgen_pcl0_tx_d2p),
.cio_pcl0_tx_en_o (cio_pattgen_pcl0_tx_en_d2p),
.cio_pda1_tx_o (cio_pattgen_pda1_tx_d2p),
.cio_pda1_tx_en_o (cio_pattgen_pda1_tx_en_d2p),
.cio_pcl1_tx_o (cio_pattgen_pcl1_tx_d2p),
.cio_pcl1_tx_en_o (cio_pattgen_pcl1_tx_en_d2p),
// Interrupt
.intr_done_ch0_o (intr_pattgen_done_ch0),
.intr_done_ch1_o (intr_pattgen_done_ch1),
// [9]: fatal_fault
.alert_tx_o ( alert_tx[9:9] ),
.alert_rx_i ( alert_rx[9:9] ),
// Inter-module signals
.tl_i(pattgen_tl_req),
.tl_o(pattgen_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
rv_timer #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[10:10])
) u_rv_timer (
// Interrupt
.intr_timer_expired_hart0_timer0_o (intr_rv_timer_timer_expired_hart0_timer0),
// [10]: fatal_fault
.alert_tx_o ( alert_tx[10:10] ),
.alert_rx_i ( alert_rx[10:10] ),
// Inter-module signals
.tl_i(rv_timer_tl_req),
.tl_o(rv_timer_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_timers),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
otp_ctrl #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[15:11]),
.MemInitFile(OtpCtrlMemInitFile),
.RndCnstLfsrSeed(RndCnstOtpCtrlLfsrSeed),
.RndCnstLfsrPerm(RndCnstOtpCtrlLfsrPerm),
.RndCnstScrmblKeyInit(RndCnstOtpCtrlScrmblKeyInit)
) u_otp_ctrl (
// Output
.cio_test_o (cio_otp_ctrl_test_d2p),
.cio_test_en_o (cio_otp_ctrl_test_en_d2p),
// Interrupt
.intr_otp_operation_done_o (intr_otp_ctrl_otp_operation_done),
.intr_otp_error_o (intr_otp_ctrl_otp_error),
// [11]: fatal_macro_error
// [12]: fatal_check_error
// [13]: fatal_bus_integ_error
// [14]: fatal_prim_otp_alert
// [15]: recov_prim_otp_alert
.alert_tx_o ( alert_tx[15:11] ),
.alert_rx_i ( alert_rx[15:11] ),
// Inter-module signals
.otp_ext_voltage_h_io(otp_ext_voltage_h_io),
.otp_ast_pwr_seq_o(otp_ctrl_otp_ast_pwr_seq_o),
.otp_ast_pwr_seq_h_i(otp_ctrl_otp_ast_pwr_seq_h_i),
.edn_o(edn0_edn_req[1]),
.edn_i(edn0_edn_rsp[1]),
.pwr_otp_i(pwrmgr_aon_pwr_otp_req),
.pwr_otp_o(pwrmgr_aon_pwr_otp_rsp),
.lc_otp_vendor_test_i(lc_ctrl_lc_otp_vendor_test_req),
.lc_otp_vendor_test_o(lc_ctrl_lc_otp_vendor_test_rsp),
.lc_otp_program_i(lc_ctrl_lc_otp_program_req),
.lc_otp_program_o(lc_ctrl_lc_otp_program_rsp),
.otp_lc_data_o(otp_ctrl_otp_lc_data),
.lc_escalate_en_i(lc_ctrl_lc_escalate_en),
.lc_creator_seed_sw_rw_en_i(lc_ctrl_lc_creator_seed_sw_rw_en),
.lc_seed_hw_rd_en_i(lc_ctrl_lc_seed_hw_rd_en),
.lc_dft_en_i(lc_ctrl_lc_dft_en),
.lc_check_byp_en_i(lc_ctrl_lc_check_byp_en),
.otp_keymgr_key_o(otp_ctrl_otp_keymgr_key),
.flash_otp_key_i(flash_ctrl_otp_req),
.flash_otp_key_o(flash_ctrl_otp_rsp),
.sram_otp_key_i(otp_ctrl_sram_otp_key_req),
.sram_otp_key_o(otp_ctrl_sram_otp_key_rsp),
.otbn_otp_key_i(otp_ctrl_otbn_otp_key_req),
.otbn_otp_key_o(otp_ctrl_otbn_otp_key_rsp),
.otp_hw_cfg_o(otp_ctrl_otp_hw_cfg),
.obs_ctrl_i(ast_obs_ctrl),
.otp_obs_o(otp_obs_o),
.core_tl_i(otp_ctrl_core_tl_req),
.core_tl_o(otp_ctrl_core_tl_rsp),
.prim_tl_i(otp_ctrl_prim_tl_req),
.prim_tl_o(otp_ctrl_prim_tl_rsp),
.scanmode_i,
.scan_rst_ni,
.scan_en_i,
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_secure),
.clk_edn_i (clkmgr_aon_clocks.clk_main_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel]),
.rst_edn_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
lc_ctrl #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[18:16]),
.RndCnstLcKeymgrDivInvalid(RndCnstLcCtrlLcKeymgrDivInvalid),
.RndCnstLcKeymgrDivTestDevRma(RndCnstLcCtrlLcKeymgrDivTestDevRma),
.RndCnstLcKeymgrDivProduction(RndCnstLcCtrlLcKeymgrDivProduction),
.RndCnstInvalidTokens(RndCnstLcCtrlInvalidTokens),
.ChipGen(LcCtrlChipGen),
.ChipRev(LcCtrlChipRev),
.IdcodeValue(LcCtrlIdcodeValue)
) u_lc_ctrl (
// [16]: fatal_prog_error
// [17]: fatal_state_error
// [18]: fatal_bus_integ_error
.alert_tx_o ( alert_tx[18:16] ),
.alert_rx_i ( alert_rx[18:16] ),
// Inter-module signals
.jtag_i(pinmux_aon_lc_jtag_req),
.jtag_o(pinmux_aon_lc_jtag_rsp),
.esc_scrap_state0_tx_i(alert_handler_esc_tx[1]),
.esc_scrap_state0_rx_o(alert_handler_esc_rx[1]),
.esc_scrap_state1_tx_i(alert_handler_esc_tx[2]),
.esc_scrap_state1_rx_o(alert_handler_esc_rx[2]),
.pwr_lc_i(pwrmgr_aon_pwr_lc_req),
.pwr_lc_o(pwrmgr_aon_pwr_lc_rsp),
.lc_otp_vendor_test_o(lc_ctrl_lc_otp_vendor_test_req),
.lc_otp_vendor_test_i(lc_ctrl_lc_otp_vendor_test_rsp),
.otp_lc_data_i(otp_ctrl_otp_lc_data),
.lc_otp_program_o(lc_ctrl_lc_otp_program_req),
.lc_otp_program_i(lc_ctrl_lc_otp_program_rsp),
.kmac_data_o(kmac_app_req[1]),
.kmac_data_i(kmac_app_rsp[1]),
.lc_dft_en_o(lc_ctrl_lc_dft_en),
.lc_nvm_debug_en_o(lc_ctrl_lc_nvm_debug_en),
.lc_hw_debug_en_o(lc_ctrl_lc_hw_debug_en),
.lc_cpu_en_o(lc_ctrl_lc_cpu_en),
.lc_keymgr_en_o(lc_ctrl_lc_keymgr_en),
.lc_escalate_en_o(lc_ctrl_lc_escalate_en),
.lc_clk_byp_req_o(lc_ctrl_lc_clk_byp_req),
.lc_clk_byp_ack_i(lc_ctrl_lc_clk_byp_ack),
.lc_flash_rma_req_o(lc_ctrl_lc_flash_rma_req),
.lc_flash_rma_seed_o(flash_ctrl_rma_seed),
.lc_flash_rma_ack_i(otbn_lc_rma_ack),
.lc_check_byp_en_o(lc_ctrl_lc_check_byp_en),
.lc_creator_seed_sw_rw_en_o(lc_ctrl_lc_creator_seed_sw_rw_en),
.lc_owner_seed_sw_rw_en_o(lc_ctrl_lc_owner_seed_sw_rw_en),
.lc_iso_part_sw_rd_en_o(lc_ctrl_lc_iso_part_sw_rd_en),
.lc_iso_part_sw_wr_en_o(lc_ctrl_lc_iso_part_sw_wr_en),
.lc_seed_hw_rd_en_o(lc_ctrl_lc_seed_hw_rd_en),
.lc_keymgr_div_o(lc_ctrl_lc_keymgr_div),
.otp_device_id_i(lc_ctrl_otp_device_id),
.otp_manuf_state_i(lc_ctrl_otp_manuf_state),
.hw_rev_o(),
.tl_i(lc_ctrl_tl_req),
.tl_o(lc_ctrl_tl_rsp),
.scanmode_i,
.scan_rst_ni,
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_secure),
.clk_kmac_i (clkmgr_aon_clocks.clk_main_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel]),
.rst_kmac_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
alert_handler #(
.RndCnstLfsrSeed(RndCnstAlertHandlerLfsrSeed),
.RndCnstLfsrPerm(RndCnstAlertHandlerLfsrPerm)
) u_alert_handler (
// Interrupt
.intr_classa_o (intr_alert_handler_classa),
.intr_classb_o (intr_alert_handler_classb),
.intr_classc_o (intr_alert_handler_classc),
.intr_classd_o (intr_alert_handler_classd),
// Inter-module signals
.crashdump_o(alert_handler_crashdump),
.edn_o(edn0_edn_req[4]),
.edn_i(edn0_edn_rsp[4]),
.esc_rx_i(alert_handler_esc_rx),
.esc_tx_o(alert_handler_esc_tx),
.tl_i(alert_handler_tl_req),
.tl_o(alert_handler_tl_rsp),
// alert signals
.alert_rx_o ( alert_rx ),
.alert_tx_i ( alert_tx ),
// synchronized clock gated / reset asserted
// indications for each alert
.lpg_cg_en_i ( lpg_cg_en ),
.lpg_rst_en_i ( lpg_rst_en ),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_secure),
.clk_edn_i (clkmgr_aon_clocks.clk_main_secure),
.rst_shadowed_ni (rstmgr_aon_resets.rst_lc_io_div4_shadowed_n[rstmgr_pkg::Domain0Sel]),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel]),
.rst_edn_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
spi_host #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[19:19])
) u_spi_host0 (
// Input
.cio_sd_i (cio_spi_host0_sd_p2d),
// Output
.cio_sck_o (cio_spi_host0_sck_d2p),
.cio_sck_en_o (cio_spi_host0_sck_en_d2p),
.cio_csb_o (cio_spi_host0_csb_d2p),
.cio_csb_en_o (cio_spi_host0_csb_en_d2p),
.cio_sd_o (cio_spi_host0_sd_d2p),
.cio_sd_en_o (cio_spi_host0_sd_en_d2p),
// Interrupt
.intr_error_o (intr_spi_host0_error),
.intr_spi_event_o (intr_spi_host0_spi_event),
// [19]: fatal_fault
.alert_tx_o ( alert_tx[19:19] ),
.alert_rx_i ( alert_rx[19:19] ),
// Inter-module signals
.passthrough_i(spi_device_passthrough_req),
.passthrough_o(spi_device_passthrough_rsp),
.tl_i(spi_host0_tl_req),
.tl_o(spi_host0_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_peri),
.rst_ni (rstmgr_aon_resets.rst_spi_host0_n[rstmgr_pkg::Domain0Sel])
);
spi_host #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[20:20])
) u_spi_host1 (
// Input
.cio_sd_i (cio_spi_host1_sd_p2d),
// Output
.cio_sck_o (cio_spi_host1_sck_d2p),
.cio_sck_en_o (cio_spi_host1_sck_en_d2p),
.cio_csb_o (cio_spi_host1_csb_d2p),
.cio_csb_en_o (cio_spi_host1_csb_en_d2p),
.cio_sd_o (cio_spi_host1_sd_d2p),
.cio_sd_en_o (cio_spi_host1_sd_en_d2p),
// Interrupt
.intr_error_o (intr_spi_host1_error),
.intr_spi_event_o (intr_spi_host1_spi_event),
// [20]: fatal_fault
.alert_tx_o ( alert_tx[20:20] ),
.alert_rx_i ( alert_rx[20:20] ),
// Inter-module signals
.passthrough_i(spi_device_pkg::PASSTHROUGH_REQ_DEFAULT),
.passthrough_o(),
.tl_i(spi_host1_tl_req),
.tl_o(spi_host1_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_peri),
.rst_ni (rstmgr_aon_resets.rst_spi_host1_n[rstmgr_pkg::Domain0Sel])
);
usbdev #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[21:21]),
.Stub(UsbdevStub),
.RcvrWakeTimeUs(UsbdevRcvrWakeTimeUs)
) u_usbdev (
// Input
.cio_sense_i (cio_usbdev_sense_p2d),
.cio_usb_dp_i (cio_usbdev_usb_dp_p2d),
.cio_usb_dn_i (cio_usbdev_usb_dn_p2d),
// Output
.cio_usb_dp_o (cio_usbdev_usb_dp_d2p),
.cio_usb_dp_en_o (cio_usbdev_usb_dp_en_d2p),
.cio_usb_dn_o (cio_usbdev_usb_dn_d2p),
.cio_usb_dn_en_o (cio_usbdev_usb_dn_en_d2p),
// Interrupt
.intr_pkt_received_o (intr_usbdev_pkt_received),
.intr_pkt_sent_o (intr_usbdev_pkt_sent),
.intr_disconnected_o (intr_usbdev_disconnected),
.intr_host_lost_o (intr_usbdev_host_lost),
.intr_link_reset_o (intr_usbdev_link_reset),
.intr_link_suspend_o (intr_usbdev_link_suspend),
.intr_link_resume_o (intr_usbdev_link_resume),
.intr_av_empty_o (intr_usbdev_av_empty),
.intr_rx_full_o (intr_usbdev_rx_full),
.intr_av_overflow_o (intr_usbdev_av_overflow),
.intr_link_in_err_o (intr_usbdev_link_in_err),
.intr_rx_crc_err_o (intr_usbdev_rx_crc_err),
.intr_rx_pid_err_o (intr_usbdev_rx_pid_err),
.intr_rx_bitstuff_err_o (intr_usbdev_rx_bitstuff_err),
.intr_frame_o (intr_usbdev_frame),
.intr_powered_o (intr_usbdev_powered),
.intr_link_out_err_o (intr_usbdev_link_out_err),
// [21]: fatal_fault
.alert_tx_o ( alert_tx[21:21] ),
.alert_rx_i ( alert_rx[21:21] ),
// Inter-module signals
.usb_rx_d_i(usbdev_usb_rx_d_i),
.usb_tx_d_o(usbdev_usb_tx_d_o),
.usb_tx_se0_o(usbdev_usb_tx_se0_o),
.usb_tx_use_d_se0_o(usbdev_usb_tx_use_d_se0_o),
.usb_dp_pullup_o(usbdev_usb_dp_pullup),
.usb_dn_pullup_o(usbdev_usb_dn_pullup),
.usb_rx_enable_o(usbdev_usb_rx_enable_o),
.usb_ref_val_o(usbdev_usb_ref_val_o),
.usb_ref_pulse_o(usbdev_usb_ref_pulse_o),
.usb_aon_suspend_req_o(usbdev_usb_aon_suspend_req),
.usb_aon_wake_ack_o(usbdev_usb_aon_wake_ack),
.usb_aon_bus_reset_i(usbdev_usb_aon_bus_reset),
.usb_aon_sense_lost_i(usbdev_usb_aon_sense_lost),
.usb_aon_wake_detect_active_i(pinmux_aon_usbdev_wake_detect_active),
.ram_cfg_i(ast_ram_2p_cfg),
.tl_i(usbdev_tl_req),
.tl_o(usbdev_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_usb_peri),
.clk_aon_i (clkmgr_aon_clocks.clk_aon_peri),
.rst_ni (rstmgr_aon_resets.rst_usb_n[rstmgr_pkg::Domain0Sel]),
.rst_aon_ni (rstmgr_aon_resets.rst_usb_aon_n[rstmgr_pkg::Domain0Sel])
);
pwrmgr #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[22:22])
) u_pwrmgr_aon (
// Interrupt
.intr_wakeup_o (intr_pwrmgr_aon_wakeup),
// [22]: fatal_fault
.alert_tx_o ( alert_tx[22:22] ),
.alert_rx_i ( alert_rx[22:22] ),
// Inter-module signals
.pwr_ast_o(pwrmgr_ast_req_o),
.pwr_ast_i(pwrmgr_ast_rsp_i),
.pwr_rst_o(pwrmgr_aon_pwr_rst_req),
.pwr_rst_i(pwrmgr_aon_pwr_rst_rsp),
.pwr_clk_o(pwrmgr_aon_pwr_clk_req),
.pwr_clk_i(pwrmgr_aon_pwr_clk_rsp),
.pwr_otp_o(pwrmgr_aon_pwr_otp_req),
.pwr_otp_i(pwrmgr_aon_pwr_otp_rsp),
.pwr_lc_o(pwrmgr_aon_pwr_lc_req),
.pwr_lc_i(pwrmgr_aon_pwr_lc_rsp),
.pwr_flash_i(pwrmgr_aon_pwr_flash),
.esc_rst_tx_i(alert_handler_esc_tx[3]),
.esc_rst_rx_o(alert_handler_esc_rx[3]),
.pwr_cpu_i(rv_core_ibex_sec_pwrmgr),
.wakeups_i(pwrmgr_aon_wakeups),
.rstreqs_i(pwrmgr_aon_rstreqs),
.ndmreset_req_i(rv_dm_ndmreset_req),
.strap_o(pwrmgr_aon_strap),
.low_power_o(pwrmgr_aon_low_power),
.rom_ctrl_i(rom_ctrl_pwrmgr_data),
.fetch_en_o(pwrmgr_aon_fetch_en),
.lc_dft_en_i(lc_ctrl_lc_dft_en),
.lc_hw_debug_en_i(lc_ctrl_lc_hw_debug_en),
.sw_rst_req_i(rstmgr_aon_sw_rst_req),
.tl_i(pwrmgr_aon_tl_req),
.tl_o(pwrmgr_aon_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_powerup),
.clk_slow_i (clkmgr_aon_clocks.clk_aon_powerup),
.clk_lc_i (clkmgr_aon_clocks.clk_io_div4_powerup),
.clk_esc_i (clkmgr_aon_clocks.clk_io_div4_secure),
.rst_ni (rstmgr_aon_resets.rst_por_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_main_ni (rstmgr_aon_resets.rst_por_aon_n[rstmgr_pkg::Domain0Sel]),
.rst_lc_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_esc_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_slow_ni (rstmgr_aon_resets.rst_por_aon_n[rstmgr_pkg::DomainAonSel])
);
rstmgr #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[24:23]),
.SecCheck(SecRstmgrAonCheck),
.SecMaxSyncDelay(SecRstmgrAonMaxSyncDelay)
) u_rstmgr_aon (
// [23]: fatal_fault
// [24]: fatal_cnsty_fault
.alert_tx_o ( alert_tx[24:23] ),
.alert_rx_i ( alert_rx[24:23] ),
// Inter-module signals
.por_n_i(por_n_i),
.pwr_i(pwrmgr_aon_pwr_rst_req),
.pwr_o(pwrmgr_aon_pwr_rst_rsp),
.resets_o(rstmgr_aon_resets),
.rst_en_o(rstmgr_aon_rst_en),
.alert_dump_i(alert_handler_crashdump),
.cpu_dump_i(rv_core_ibex_sec_crash_dump),
.sw_rst_req_o(rstmgr_aon_sw_rst_req),
.tl_i(rstmgr_aon_tl_req),
.tl_o(rstmgr_aon_tl_rsp),
.scanmode_i,
.scan_rst_ni,
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_powerup),
.clk_por_i (clkmgr_aon_clocks.clk_io_div4_powerup),
.clk_aon_i (clkmgr_aon_clocks.clk_aon_powerup),
.clk_main_i (clkmgr_aon_clocks.clk_main_powerup),
.clk_io_i (clkmgr_aon_clocks.clk_io_powerup),
.clk_usb_i (clkmgr_aon_clocks.clk_usb_powerup),
.clk_io_div2_i (clkmgr_aon_clocks.clk_io_div2_powerup),
.clk_io_div4_i (clkmgr_aon_clocks.clk_io_div4_powerup),
.clk_smc_i (clkmgr_aon_clocks.clk_smc_powerup),
.clk_ml_i (clkmgr_aon_clocks.clk_ml_powerup),
.clk_video_i (clkmgr_aon_clocks.clk_video_powerup),
.clk_audio_i (clkmgr_aon_clocks.clk_audio_powerup),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_por_ni (rstmgr_aon_resets.rst_por_io_div4_n[rstmgr_pkg::DomainAonSel])
);
clkmgr #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[26:25])
) u_clkmgr_aon (
// [25]: recov_fault
// [26]: fatal_fault
.alert_tx_o ( alert_tx[26:25] ),
.alert_rx_i ( alert_rx[26:25] ),
// Inter-module signals
.clocks_o(clkmgr_aon_clocks),
.cg_en_o(clkmgr_aon_cg_en),
.lc_hw_debug_en_i(lc_ctrl_lc_hw_debug_en),
.io_clk_byp_req_o(io_clk_byp_req_o),
.io_clk_byp_ack_i(io_clk_byp_ack_i),
.all_clk_byp_req_o(all_clk_byp_req_o),
.all_clk_byp_ack_i(all_clk_byp_ack_i),
.hi_speed_sel_o(hi_speed_sel_o),
.div_step_down_req_i(div_step_down_req_i),
.lc_clk_byp_req_i(lc_ctrl_lc_clk_byp_req),
.lc_clk_byp_ack_o(lc_ctrl_lc_clk_byp_ack),
.jitter_en_o(clk_main_jitter_en_o),
.pwr_i(pwrmgr_aon_pwr_clk_req),
.pwr_o(pwrmgr_aon_pwr_clk_rsp),
.idle_i(clkmgr_aon_idle),
.calib_rdy_i(calib_rdy_i),
.tl_i(clkmgr_aon_tl_req),
.tl_o(clkmgr_aon_tl_rsp),
.scanmode_i,
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_powerup),
.clk_main_i (clk_main_i),
.clk_io_i (clk_io_i),
.clk_usb_i (clk_usb_i),
.clk_aon_i (clk_aon_i),
.clk_ml_i (clk_ml_i),
.clk_smc_i (clk_smc_i),
.clk_video_i (clk_video_i),
.clk_audio_i (clk_audio_i),
.rst_shadowed_ni (rstmgr_aon_resets.rst_lc_io_div4_shadowed_n[rstmgr_pkg::DomainAonSel]),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_aon_ni (rstmgr_aon_resets.rst_lc_aon_n[rstmgr_pkg::DomainAonSel]),
.rst_io_ni (rstmgr_aon_resets.rst_lc_io_n[rstmgr_pkg::DomainAonSel]),
.rst_io_div2_ni (rstmgr_aon_resets.rst_lc_io_div2_n[rstmgr_pkg::DomainAonSel]),
.rst_io_div4_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_main_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::DomainAonSel]),
.rst_usb_ni (rstmgr_aon_resets.rst_lc_usb_n[rstmgr_pkg::DomainAonSel]),
.rst_smc_ni (rstmgr_aon_resets.rst_lc_smc_n[rstmgr_pkg::DomainAonSel]),
.rst_ml_ni (rstmgr_aon_resets.rst_lc_ml_n[rstmgr_pkg::DomainAonSel]),
.rst_video_ni (rstmgr_aon_resets.rst_lc_video_n[rstmgr_pkg::DomainAonSel]),
.rst_audio_ni (rstmgr_aon_resets.rst_lc_audio_n[rstmgr_pkg::DomainAonSel]),
.rst_root_ni (rstmgr_aon_resets.rst_por_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_root_io_ni (rstmgr_aon_resets.rst_por_io_n[rstmgr_pkg::DomainAonSel]),
.rst_root_io_div2_ni (rstmgr_aon_resets.rst_por_io_div2_n[rstmgr_pkg::DomainAonSel]),
.rst_root_io_div4_ni (rstmgr_aon_resets.rst_por_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_root_main_ni (rstmgr_aon_resets.rst_por_n[rstmgr_pkg::DomainAonSel]),
.rst_root_usb_ni (rstmgr_aon_resets.rst_por_usb_n[rstmgr_pkg::DomainAonSel]),
.rst_root_smc_ni (rstmgr_aon_resets.rst_por_smc_n[rstmgr_pkg::DomainAonSel]),
.rst_root_ml_ni (rstmgr_aon_resets.rst_por_ml_n[rstmgr_pkg::DomainAonSel]),
.rst_root_video_ni (rstmgr_aon_resets.rst_por_video_n[rstmgr_pkg::DomainAonSel]),
.rst_root_audio_ni (rstmgr_aon_resets.rst_por_audio_n[rstmgr_pkg::DomainAonSel])
);
sysrst_ctrl #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[27:27])
) u_sysrst_ctrl_aon (
// Input
.cio_ac_present_i (cio_sysrst_ctrl_aon_ac_present_p2d),
.cio_key0_in_i (cio_sysrst_ctrl_aon_key0_in_p2d),
.cio_key1_in_i (cio_sysrst_ctrl_aon_key1_in_p2d),
.cio_key2_in_i (cio_sysrst_ctrl_aon_key2_in_p2d),
.cio_pwrb_in_i (cio_sysrst_ctrl_aon_pwrb_in_p2d),
.cio_lid_open_i (cio_sysrst_ctrl_aon_lid_open_p2d),
.cio_ec_rst_l_i (cio_sysrst_ctrl_aon_ec_rst_l_p2d),
.cio_flash_wp_l_i (cio_sysrst_ctrl_aon_flash_wp_l_p2d),
// Output
.cio_bat_disable_o (cio_sysrst_ctrl_aon_bat_disable_d2p),
.cio_bat_disable_en_o (cio_sysrst_ctrl_aon_bat_disable_en_d2p),
.cio_key0_out_o (cio_sysrst_ctrl_aon_key0_out_d2p),
.cio_key0_out_en_o (cio_sysrst_ctrl_aon_key0_out_en_d2p),
.cio_key1_out_o (cio_sysrst_ctrl_aon_key1_out_d2p),
.cio_key1_out_en_o (cio_sysrst_ctrl_aon_key1_out_en_d2p),
.cio_key2_out_o (cio_sysrst_ctrl_aon_key2_out_d2p),
.cio_key2_out_en_o (cio_sysrst_ctrl_aon_key2_out_en_d2p),
.cio_pwrb_out_o (cio_sysrst_ctrl_aon_pwrb_out_d2p),
.cio_pwrb_out_en_o (cio_sysrst_ctrl_aon_pwrb_out_en_d2p),
.cio_z3_wakeup_o (cio_sysrst_ctrl_aon_z3_wakeup_d2p),
.cio_z3_wakeup_en_o (cio_sysrst_ctrl_aon_z3_wakeup_en_d2p),
.cio_ec_rst_l_o (cio_sysrst_ctrl_aon_ec_rst_l_d2p),
.cio_ec_rst_l_en_o (cio_sysrst_ctrl_aon_ec_rst_l_en_d2p),
.cio_flash_wp_l_o (cio_sysrst_ctrl_aon_flash_wp_l_d2p),
.cio_flash_wp_l_en_o (cio_sysrst_ctrl_aon_flash_wp_l_en_d2p),
// Interrupt
.intr_event_detected_o (intr_sysrst_ctrl_aon_event_detected),
// [27]: fatal_fault
.alert_tx_o ( alert_tx[27:27] ),
.alert_rx_i ( alert_rx[27:27] ),
// Inter-module signals
.wkup_req_o(pwrmgr_aon_wakeups[0]),
.rst_req_o(pwrmgr_aon_rstreqs[0]),
.tl_i(sysrst_ctrl_aon_tl_req),
.tl_o(sysrst_ctrl_aon_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_secure),
.clk_aon_i (clkmgr_aon_clocks.clk_aon_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_aon_ni (rstmgr_aon_resets.rst_lc_aon_n[rstmgr_pkg::DomainAonSel])
);
adc_ctrl #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[28:28])
) u_adc_ctrl_aon (
// Interrupt
.intr_match_done_o (intr_adc_ctrl_aon_match_done),
// [28]: fatal_fault
.alert_tx_o ( alert_tx[28:28] ),
.alert_rx_i ( alert_rx[28:28] ),
// Inter-module signals
.adc_o(adc_req_o),
.adc_i(adc_rsp_i),
.wkup_req_o(pwrmgr_aon_wakeups[1]),
.tl_i(adc_ctrl_aon_tl_req),
.tl_o(adc_ctrl_aon_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.clk_aon_i (clkmgr_aon_clocks.clk_aon_peri),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_aon_ni (rstmgr_aon_resets.rst_lc_aon_n[rstmgr_pkg::DomainAonSel])
);
pwm #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[29:29])
) u_pwm_aon (
// Output
.cio_pwm_o (cio_pwm_aon_pwm_d2p),
.cio_pwm_en_o (cio_pwm_aon_pwm_en_d2p),
// [29]: fatal_fault
.alert_tx_o ( alert_tx[29:29] ),
.alert_rx_i ( alert_rx[29:29] ),
// Inter-module signals
.tl_i(pwm_aon_tl_req),
.tl_o(pwm_aon_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.clk_core_i (clkmgr_aon_clocks.clk_aon_peri),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_core_ni (rstmgr_aon_resets.rst_lc_aon_n[rstmgr_pkg::DomainAonSel])
);
pinmux #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[30:30]),
.TargetCfg(PinmuxAonTargetCfg)
) u_pinmux_aon (
// [30]: fatal_fault
.alert_tx_o ( alert_tx[30:30] ),
.alert_rx_i ( alert_rx[30:30] ),
// Inter-module signals
.lc_hw_debug_en_i(lc_ctrl_lc_hw_debug_en),
.lc_dft_en_i(lc_ctrl_lc_dft_en),
.lc_escalate_en_i(lc_ctrl_lc_escalate_en),
.lc_check_byp_en_i(lc_ctrl_lc_check_byp_en),
.pinmux_hw_debug_en_o(pinmux_aon_pinmux_hw_debug_en),
.lc_jtag_o(pinmux_aon_lc_jtag_req),
.lc_jtag_i(pinmux_aon_lc_jtag_rsp),
.rv_jtag_o(pinmux_aon_rv_jtag_req),
.rv_jtag_i(pinmux_aon_rv_jtag_rsp),
.dft_jtag_o(pinmux_aon_dft_jtag_req),
.dft_jtag_i(pinmux_aon_dft_jtag_rsp),
.dft_strap_test_o(dft_strap_test_o),
.dft_hold_tap_sel_i(dft_hold_tap_sel_i),
.sleep_en_i(pwrmgr_aon_low_power),
.strap_en_i(pwrmgr_aon_strap),
.pin_wkup_req_o(pwrmgr_aon_wakeups[2]),
.usbdev_dppullup_en_i(usbdev_usb_dp_pullup),
.usbdev_dnpullup_en_i(usbdev_usb_dn_pullup),
.usb_dppullup_en_o(usb_dp_pullup_en_o),
.usb_dnpullup_en_o(usb_dn_pullup_en_o),
.usb_wkup_req_o(pwrmgr_aon_wakeups[3]),
.usbdev_suspend_req_i(usbdev_usb_aon_suspend_req),
.usbdev_wake_ack_i(usbdev_usb_aon_wake_ack),
.usbdev_bus_reset_o(usbdev_usb_aon_bus_reset),
.usbdev_sense_lost_o(usbdev_usb_aon_sense_lost),
.usbdev_wake_detect_active_o(pinmux_aon_usbdev_wake_detect_active),
.tl_i(pinmux_aon_tl_req),
.tl_o(pinmux_aon_tl_rsp),
.periph_to_mio_i (mio_d2p ),
.periph_to_mio_oe_i (mio_en_d2p ),
.mio_to_periph_o (mio_p2d ),
.mio_attr_o,
.mio_out_o,
.mio_oe_o,
.mio_in_i,
.periph_to_dio_i (dio_d2p ),
.periph_to_dio_oe_i (dio_en_d2p ),
.dio_to_periph_o (dio_p2d ),
.dio_attr_o,
.dio_out_o,
.dio_oe_o,
.dio_in_i,
.scanmode_i,
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_powerup),
.clk_aon_i (clkmgr_aon_clocks.clk_aon_powerup),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_aon_ni (rstmgr_aon_resets.rst_lc_aon_n[rstmgr_pkg::DomainAonSel]),
.rst_sys_ni (rstmgr_aon_resets.rst_sys_io_div4_n[rstmgr_pkg::DomainAonSel])
);
aon_timer #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[31:31])
) u_aon_timer_aon (
// Interrupt
.intr_wkup_timer_expired_o (intr_aon_timer_aon_wkup_timer_expired),
.intr_wdog_timer_bark_o (intr_aon_timer_aon_wdog_timer_bark),
// [31]: fatal_fault
.alert_tx_o ( alert_tx[31:31] ),
.alert_rx_i ( alert_rx[31:31] ),
// Inter-module signals
.nmi_wdog_timer_bark_o(aon_timer_aon_nmi_wdog_timer_bark),
.wkup_req_o(pwrmgr_aon_wakeups[4]),
.aon_timer_rst_req_o(pwrmgr_aon_rstreqs[1]),
.lc_escalate_en_i(lc_ctrl_lc_escalate_en),
.sleep_mode_i(pwrmgr_aon_low_power),
.tl_i(aon_timer_aon_tl_req),
.tl_o(aon_timer_aon_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_timers),
.clk_aon_i (clkmgr_aon_clocks.clk_aon_timers),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_aon_ni (rstmgr_aon_resets.rst_lc_aon_n[rstmgr_pkg::DomainAonSel])
);
sensor_ctrl #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[33:32])
) u_sensor_ctrl (
// Output
.cio_ast_debug_out_o (cio_sensor_ctrl_ast_debug_out_d2p),
.cio_ast_debug_out_en_o (cio_sensor_ctrl_ast_debug_out_en_d2p),
// Interrupt
.intr_io_status_change_o (intr_sensor_ctrl_io_status_change),
.intr_init_status_change_o (intr_sensor_ctrl_init_status_change),
// [32]: recov_alert
// [33]: fatal_alert
.alert_tx_o ( alert_tx[33:32] ),
.alert_rx_i ( alert_rx[33:32] ),
// Inter-module signals
.ast_alert_i(sensor_ctrl_ast_alert_req_i),
.ast_alert_o(sensor_ctrl_ast_alert_rsp_o),
.ast_status_i(sensor_ctrl_ast_status_i),
.ast_init_done_i(ast_init_done_i),
.ast2pinmux_i(ast2pinmux_i),
.wkup_req_o(pwrmgr_aon_wakeups[5]),
.tl_i(sensor_ctrl_tl_req),
.tl_o(sensor_ctrl_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_secure),
.clk_aon_i (clkmgr_aon_clocks.clk_aon_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_aon_ni (rstmgr_aon_resets.rst_lc_aon_n[rstmgr_pkg::DomainAonSel])
);
sram_ctrl #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[34:34]),
.RndCnstSramKey(RndCnstSramCtrlRetAonSramKey),
.RndCnstSramNonce(RndCnstSramCtrlRetAonSramNonce),
.RndCnstLfsrSeed(RndCnstSramCtrlRetAonLfsrSeed),
.RndCnstLfsrPerm(RndCnstSramCtrlRetAonLfsrPerm),
.MemSizeRam(4096),
.InstrExec(SramCtrlRetAonInstrExec)
) u_sram_ctrl_ret_aon (
// [34]: fatal_error
.alert_tx_o ( alert_tx[34:34] ),
.alert_rx_i ( alert_rx[34:34] ),
// Inter-module signals
.sram_otp_key_o(otp_ctrl_sram_otp_key_req[1]),
.sram_otp_key_i(otp_ctrl_sram_otp_key_rsp[1]),
.cfg_i(ast_ram_1p_cfg),
.lc_escalate_en_i(lc_ctrl_lc_escalate_en),
.lc_hw_debug_en_i(lc_ctrl_pkg::Off),
.otp_en_sram_ifetch_i(prim_mubi_pkg::MuBi8False),
.regs_tl_i(sram_ctrl_ret_aon_regs_tl_req),
.regs_tl_o(sram_ctrl_ret_aon_regs_tl_rsp),
.ram_tl_i(sram_ctrl_ret_aon_ram_tl_req),
.ram_tl_o(sram_ctrl_ret_aon_ram_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_infra),
.clk_otp_i (clkmgr_aon_clocks.clk_io_div4_infra),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel]),
.rst_otp_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::DomainAonSel])
);
flash_ctrl #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[39:35]),
.RndCnstAddrKey(RndCnstFlashCtrlAddrKey),
.RndCnstDataKey(RndCnstFlashCtrlDataKey),
.RndCnstAllSeeds(RndCnstFlashCtrlAllSeeds),
.RndCnstLfsrSeed(RndCnstFlashCtrlLfsrSeed),
.RndCnstLfsrPerm(RndCnstFlashCtrlLfsrPerm),
.SecScrambleEn(SecFlashCtrlScrambleEn),
.ProgFifoDepth(FlashCtrlProgFifoDepth),
.RdFifoDepth(FlashCtrlRdFifoDepth)
) u_flash_ctrl (
// Input
.cio_tck_i (cio_flash_ctrl_tck_p2d),
.cio_tms_i (cio_flash_ctrl_tms_p2d),
.cio_tdi_i (cio_flash_ctrl_tdi_p2d),
// Output
.cio_tdo_o (cio_flash_ctrl_tdo_d2p),
.cio_tdo_en_o (cio_flash_ctrl_tdo_en_d2p),
// Interrupt
.intr_prog_empty_o (intr_flash_ctrl_prog_empty),
.intr_prog_lvl_o (intr_flash_ctrl_prog_lvl),
.intr_rd_full_o (intr_flash_ctrl_rd_full),
.intr_rd_lvl_o (intr_flash_ctrl_rd_lvl),
.intr_op_done_o (intr_flash_ctrl_op_done),
.intr_corr_err_o (intr_flash_ctrl_corr_err),
// [35]: recov_err
// [36]: fatal_std_err
// [37]: fatal_err
// [38]: fatal_prim_flash_alert
// [39]: recov_prim_flash_alert
.alert_tx_o ( alert_tx[39:35] ),
.alert_rx_i ( alert_rx[39:35] ),
// Inter-module signals
.otp_o(flash_ctrl_otp_req),
.otp_i(flash_ctrl_otp_rsp),
.lc_nvm_debug_en_i(lc_ctrl_lc_nvm_debug_en),
.flash_bist_enable_i(flash_bist_enable_i),
.flash_power_down_h_i(flash_power_down_h_i),
.flash_power_ready_h_i(flash_power_ready_h_i),
.flash_test_mode_a_io(flash_test_mode_a_io),
.flash_test_voltage_h_io(flash_test_voltage_h_io),
.lc_creator_seed_sw_rw_en_i(lc_ctrl_lc_creator_seed_sw_rw_en),
.lc_owner_seed_sw_rw_en_i(lc_ctrl_lc_owner_seed_sw_rw_en),
.lc_iso_part_sw_rd_en_i(lc_ctrl_lc_iso_part_sw_rd_en),
.lc_iso_part_sw_wr_en_i(lc_ctrl_lc_iso_part_sw_wr_en),
.lc_seed_hw_rd_en_i(lc_ctrl_lc_seed_hw_rd_en),
.lc_escalate_en_i(lc_ctrl_lc_escalate_en),
.rma_req_i(lc_ctrl_lc_flash_rma_req),
.rma_ack_o(flash_ctrl_rma_ack),
.rma_seed_i(flash_ctrl_rma_seed),
.pwrmgr_o(pwrmgr_aon_pwr_flash),
.keymgr_o(flash_ctrl_keymgr),
.obs_ctrl_i(ast_obs_ctrl),
.fla_obs_o(flash_obs_o),
.core_tl_i(flash_ctrl_core_tl_req),
.core_tl_o(flash_ctrl_core_tl_rsp),
.prim_tl_i(flash_ctrl_prim_tl_req),
.prim_tl_o(flash_ctrl_prim_tl_rsp),
.mem_tl_i(flash_ctrl_mem_tl_req),
.mem_tl_o(flash_ctrl_mem_tl_rsp),
.scanmode_i,
.scan_rst_ni,
.scan_en_i,
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_infra),
.clk_otp_i (clkmgr_aon_clocks.clk_io_div4_infra),
.rst_shadowed_ni (rstmgr_aon_resets.rst_lc_shadowed_n[rstmgr_pkg::Domain0Sel]),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
.rst_otp_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
rv_dm #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[40:40]),
.IdcodeValue(RvDmIdcodeValue)
) u_rv_dm (
// [40]: fatal_fault
.alert_tx_o ( alert_tx[40:40] ),
.alert_rx_i ( alert_rx[40:40] ),
// Inter-module signals
.jtag_i(pinmux_aon_rv_jtag_req),
.jtag_o(pinmux_aon_rv_jtag_rsp),
.lc_hw_debug_en_i(lc_ctrl_lc_hw_debug_en),
.pinmux_hw_debug_en_i(pinmux_aon_pinmux_hw_debug_en),
.unavailable_i(2'b0),
.ndmreset_req_o(rv_dm_ndmreset_req),
.dmactive_o(),
.debug_req_o(rv_dm_debug_req),
.sba_tl_h_o(main_tl_rv_dm__sba_req),
.sba_tl_h_i(main_tl_rv_dm__sba_rsp),
.regs_tl_d_i(rv_dm_regs_tl_d_req),
.regs_tl_d_o(rv_dm_regs_tl_d_rsp),
.mem_tl_d_i(rv_dm_mem_tl_d_req),
.mem_tl_d_o(rv_dm_mem_tl_d_rsp),
.scanmode_i,
.scan_rst_ni,
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_infra),
.rst_ni (rstmgr_aon_resets.rst_sys_n[rstmgr_pkg::Domain0Sel])
);
rv_plic #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[41:41])
) u_rv_plic (
// [41]: fatal_fault
.alert_tx_o ( alert_tx[41:41] ),
.alert_rx_i ( alert_rx[41:41] ),
// Inter-module signals
.irq_o(rv_plic_irq),
.irq_id_o(),
.msip_o(rv_plic_msip),
.tl_i(rv_plic_tl_req),
.tl_o(rv_plic_tl_rsp),
.intr_src_i (sec_intr_vector),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
aes #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[43:42]),
.AES192Enable(1'b1),
.SecMasking(SecAesMasking),
.SecSBoxImpl(SecAesSBoxImpl),
.SecStartTriggerDelay(SecAesStartTriggerDelay),
.SecAllowForcingMasks(SecAesAllowForcingMasks),
.SecSkipPRNGReseeding(SecAesSkipPRNGReseeding),
.RndCnstClearingLfsrSeed(RndCnstAesClearingLfsrSeed),
.RndCnstClearingLfsrPerm(RndCnstAesClearingLfsrPerm),
.RndCnstClearingSharePerm(RndCnstAesClearingSharePerm),
.RndCnstMaskingLfsrSeed(RndCnstAesMaskingLfsrSeed),
.RndCnstMaskingLfsrPerm(RndCnstAesMaskingLfsrPerm)
) u_aes (
// [42]: recov_ctrl_update_err
// [43]: fatal_fault
.alert_tx_o ( alert_tx[43:42] ),
.alert_rx_i ( alert_rx[43:42] ),
// Inter-module signals
.idle_o(clkmgr_aon_idle[0]),
.lc_escalate_en_i(lc_ctrl_lc_escalate_en),
.edn_o(edn0_edn_req[5]),
.edn_i(edn0_edn_rsp[5]),
.keymgr_key_i(keymgr_aes_key),
.tl_i(aes_tl_req),
.tl_o(aes_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_aes),
.clk_edn_i (clkmgr_aon_clocks.clk_main_aes),
.rst_shadowed_ni (rstmgr_aon_resets.rst_lc_shadowed_n[rstmgr_pkg::Domain0Sel]),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
.rst_edn_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
hmac #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[44:44])
) u_hmac (
// Interrupt
.intr_hmac_done_o (intr_hmac_hmac_done),
.intr_fifo_empty_o (intr_hmac_fifo_empty),
.intr_hmac_err_o (intr_hmac_hmac_err),
// [44]: fatal_fault
.alert_tx_o ( alert_tx[44:44] ),
.alert_rx_i ( alert_rx[44:44] ),
// Inter-module signals
.idle_o(clkmgr_aon_idle[1]),
.tl_i(hmac_tl_req),
.tl_o(hmac_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_hmac),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
kmac #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[46:45]),
.EnMasking(KmacEnMasking),
.SwKeyMasked(KmacSwKeyMasked),
.SecCmdDelay(SecKmacCmdDelay),
.SecIdleAcceptSwMsg(SecKmacIdleAcceptSwMsg),
.RndCnstLfsrSeed(RndCnstKmacLfsrSeed),
.RndCnstLfsrPerm(RndCnstKmacLfsrPerm),
.RndCnstLfsrFwdPerm(RndCnstKmacLfsrFwdPerm),
.RndCnstMsgPerm(RndCnstKmacMsgPerm)
) u_kmac (
// Interrupt
.intr_kmac_done_o (intr_kmac_kmac_done),
.intr_fifo_empty_o (intr_kmac_fifo_empty),
.intr_kmac_err_o (intr_kmac_kmac_err),
// [45]: recov_operation_err
// [46]: fatal_fault_err
.alert_tx_o ( alert_tx[46:45] ),
.alert_rx_i ( alert_rx[46:45] ),
// Inter-module signals
.keymgr_key_i(keymgr_kmac_key),
.app_i(kmac_app_req),
.app_o(kmac_app_rsp),
.entropy_o(edn0_edn_req[3]),
.entropy_i(edn0_edn_rsp[3]),
.idle_o(clkmgr_aon_idle[2]),
.en_masking_o(kmac_en_masking),
.lc_escalate_en_i(lc_ctrl_lc_escalate_en),
.tl_i(kmac_tl_req),
.tl_o(kmac_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_kmac),
.clk_edn_i (clkmgr_aon_clocks.clk_main_kmac),
.rst_shadowed_ni (rstmgr_aon_resets.rst_lc_shadowed_n[rstmgr_pkg::Domain0Sel]),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
.rst_edn_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
otbn #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[48:47]),
.Stub(OtbnStub),
.RegFile(OtbnRegFile),
.RndCnstUrndPrngSeed(RndCnstOtbnUrndPrngSeed),
.SecMuteUrnd(SecOtbnMuteUrnd),
.SecSkipUrndReseedAtStart(SecOtbnSkipUrndReseedAtStart),
.RndCnstOtbnKey(RndCnstOtbnOtbnKey),
.RndCnstOtbnNonce(RndCnstOtbnOtbnNonce)
) u_otbn (
// Interrupt
.intr_done_o (intr_otbn_done),
// [47]: fatal
// [48]: recov
.alert_tx_o ( alert_tx[48:47] ),
.alert_rx_i ( alert_rx[48:47] ),
// Inter-module signals
.otbn_otp_key_o(otp_ctrl_otbn_otp_key_req),
.otbn_otp_key_i(otp_ctrl_otbn_otp_key_rsp),
.edn_rnd_o(edn1_edn_req[0]),
.edn_rnd_i(edn1_edn_rsp[0]),
.edn_urnd_o(edn0_edn_req[6]),
.edn_urnd_i(edn0_edn_rsp[6]),
.idle_o(clkmgr_aon_idle[3]),
.ram_cfg_i(ast_ram_1p_cfg),
.lc_escalate_en_i(lc_ctrl_lc_escalate_en),
.lc_rma_req_i(flash_ctrl_rma_ack),
.lc_rma_ack_o(otbn_lc_rma_ack),
.keymgr_key_i(keymgr_otbn_key),
.tl_i(otbn_tl_req),
.tl_o(otbn_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_otbn),
.clk_edn_i (clkmgr_aon_clocks.clk_main_secure),
.clk_otp_i (clkmgr_aon_clocks.clk_io_div4_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
.rst_edn_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
.rst_otp_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
keymgr #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[50:49]),
.KmacEnMasking(KeymgrKmacEnMasking),
.RndCnstLfsrSeed(RndCnstKeymgrLfsrSeed),
.RndCnstLfsrPerm(RndCnstKeymgrLfsrPerm),
.RndCnstRandPerm(RndCnstKeymgrRandPerm),
.RndCnstRevisionSeed(RndCnstKeymgrRevisionSeed),
.RndCnstCreatorIdentitySeed(RndCnstKeymgrCreatorIdentitySeed),
.RndCnstOwnerIntIdentitySeed(RndCnstKeymgrOwnerIntIdentitySeed),
.RndCnstOwnerIdentitySeed(RndCnstKeymgrOwnerIdentitySeed),
.RndCnstSoftOutputSeed(RndCnstKeymgrSoftOutputSeed),
.RndCnstHardOutputSeed(RndCnstKeymgrHardOutputSeed),
.RndCnstAesSeed(RndCnstKeymgrAesSeed),
.RndCnstKmacSeed(RndCnstKeymgrKmacSeed),
.RndCnstOtbnSeed(RndCnstKeymgrOtbnSeed),
.RndCnstCdi(RndCnstKeymgrCdi),
.RndCnstNoneSeed(RndCnstKeymgrNoneSeed)
) u_keymgr (
// Interrupt
.intr_op_done_o (intr_keymgr_op_done),
// [49]: recov_operation_err
// [50]: fatal_fault_err
.alert_tx_o ( alert_tx[50:49] ),
.alert_rx_i ( alert_rx[50:49] ),
// Inter-module signals
.edn_o(edn0_edn_req[0]),
.edn_i(edn0_edn_rsp[0]),
.aes_key_o(keymgr_aes_key),
.kmac_key_o(keymgr_kmac_key),
.otbn_key_o(keymgr_otbn_key),
.kmac_data_o(kmac_app_req[0]),
.kmac_data_i(kmac_app_rsp[0]),
.otp_key_i(otp_ctrl_otp_keymgr_key),
.otp_device_id_i(keymgr_otp_device_id),
.flash_i(flash_ctrl_keymgr),
.lc_keymgr_en_i(lc_ctrl_lc_keymgr_en),
.lc_keymgr_div_i(lc_ctrl_lc_keymgr_div),
.rom_digest_i(rom_ctrl_keymgr_data),
.kmac_en_masking_i(kmac_en_masking),
.tl_i(keymgr_tl_req),
.tl_o(keymgr_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_secure),
.clk_edn_i (clkmgr_aon_clocks.clk_main_secure),
.rst_shadowed_ni (rstmgr_aon_resets.rst_lc_shadowed_n[rstmgr_pkg::Domain0Sel]),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
.rst_edn_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
csrng #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[52:51]),
.RndCnstCsKeymgrDivNonProduction(RndCnstCsrngCsKeymgrDivNonProduction),
.RndCnstCsKeymgrDivProduction(RndCnstCsrngCsKeymgrDivProduction),
.SBoxImpl(CsrngSBoxImpl)
) u_csrng (
// Interrupt
.intr_cs_cmd_req_done_o (intr_csrng_cs_cmd_req_done),
.intr_cs_entropy_req_o (intr_csrng_cs_entropy_req),
.intr_cs_hw_inst_exc_o (intr_csrng_cs_hw_inst_exc),
.intr_cs_fatal_err_o (intr_csrng_cs_fatal_err),
// [51]: recov_alert
// [52]: fatal_alert
.alert_tx_o ( alert_tx[52:51] ),
.alert_rx_i ( alert_rx[52:51] ),
// Inter-module signals
.csrng_cmd_i(csrng_csrng_cmd_req),
.csrng_cmd_o(csrng_csrng_cmd_rsp),
.entropy_src_hw_if_o(csrng_entropy_src_hw_if_req),
.entropy_src_hw_if_i(csrng_entropy_src_hw_if_rsp),
.cs_aes_halt_i(csrng_cs_aes_halt_req),
.cs_aes_halt_o(csrng_cs_aes_halt_rsp),
.otp_en_csrng_sw_app_read_i(csrng_otp_en_csrng_sw_app_read),
.lc_hw_debug_en_i(lc_ctrl_lc_hw_debug_en),
.tl_i(csrng_tl_req),
.tl_o(csrng_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
entropy_src #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[54:53]),
.Stub(EntropySrcStub)
) u_entropy_src (
// Interrupt
.intr_es_entropy_valid_o (intr_entropy_src_es_entropy_valid),
.intr_es_health_test_failed_o (intr_entropy_src_es_health_test_failed),
.intr_es_observe_fifo_ready_o (intr_entropy_src_es_observe_fifo_ready),
.intr_es_fatal_err_o (intr_entropy_src_es_fatal_err),
// [53]: recov_alert
// [54]: fatal_alert
.alert_tx_o ( alert_tx[54:53] ),
.alert_rx_i ( alert_rx[54:53] ),
// Inter-module signals
.entropy_src_hw_if_i(csrng_entropy_src_hw_if_req),
.entropy_src_hw_if_o(csrng_entropy_src_hw_if_rsp),
.cs_aes_halt_o(csrng_cs_aes_halt_req),
.cs_aes_halt_i(csrng_cs_aes_halt_rsp),
.entropy_src_rng_o(es_rng_req_o),
.entropy_src_rng_i(es_rng_rsp_i),
.entropy_src_xht_o(),
.entropy_src_xht_i(entropy_src_pkg::ENTROPY_SRC_XHT_RSP_DEFAULT),
.otp_en_entropy_src_fw_read_i(entropy_src_otp_en_entropy_src_fw_read),
.otp_en_entropy_src_fw_over_i(entropy_src_otp_en_entropy_src_fw_over),
.rng_fips_o(es_rng_fips_o),
.tl_i(entropy_src_tl_req),
.tl_o(entropy_src_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
edn #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[56:55])
) u_edn0 (
// Interrupt
.intr_edn_cmd_req_done_o (intr_edn0_edn_cmd_req_done),
.intr_edn_fatal_err_o (intr_edn0_edn_fatal_err),
// [55]: recov_alert
// [56]: fatal_alert
.alert_tx_o ( alert_tx[56:55] ),
.alert_rx_i ( alert_rx[56:55] ),
// Inter-module signals
.csrng_cmd_o(csrng_csrng_cmd_req[0]),
.csrng_cmd_i(csrng_csrng_cmd_rsp[0]),
.edn_i(edn0_edn_req),
.edn_o(edn0_edn_rsp),
.tl_i(edn0_tl_req),
.tl_o(edn0_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
edn #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[58:57])
) u_edn1 (
// Interrupt
.intr_edn_cmd_req_done_o (intr_edn1_edn_cmd_req_done),
.intr_edn_fatal_err_o (intr_edn1_edn_fatal_err),
// [57]: recov_alert
// [58]: fatal_alert
.alert_tx_o ( alert_tx[58:57] ),
.alert_rx_i ( alert_rx[58:57] ),
// Inter-module signals
.csrng_cmd_o(csrng_csrng_cmd_req[1]),
.csrng_cmd_i(csrng_csrng_cmd_rsp[1]),
.edn_i(edn1_edn_req),
.edn_o(edn1_edn_rsp),
.tl_i(edn1_tl_req),
.tl_o(edn1_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
sram_ctrl #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[59:59]),
.RndCnstSramKey(RndCnstSramCtrlMainSramKey),
.RndCnstSramNonce(RndCnstSramCtrlMainSramNonce),
.RndCnstLfsrSeed(RndCnstSramCtrlMainLfsrSeed),
.RndCnstLfsrPerm(RndCnstSramCtrlMainLfsrPerm),
.MemSizeRam(131072),
.InstrExec(SramCtrlMainInstrExec)
) u_sram_ctrl_main (
// [59]: fatal_error
.alert_tx_o ( alert_tx[59:59] ),
.alert_rx_i ( alert_rx[59:59] ),
// Inter-module signals
.sram_otp_key_o(otp_ctrl_sram_otp_key_req[0]),
.sram_otp_key_i(otp_ctrl_sram_otp_key_rsp[0]),
.cfg_i(ast_ram_1p_cfg),
.lc_escalate_en_i(lc_ctrl_lc_escalate_en),
.lc_hw_debug_en_i(lc_ctrl_lc_hw_debug_en),
.otp_en_sram_ifetch_i(sram_ctrl_main_otp_en_sram_ifetch),
.regs_tl_i(sram_ctrl_main_regs_tl_req),
.regs_tl_o(sram_ctrl_main_regs_tl_rsp),
.ram_tl_i(sram_ctrl_main_ram_tl_req),
.ram_tl_o(sram_ctrl_main_ram_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_infra),
.clk_otp_i (clkmgr_aon_clocks.clk_io_div4_infra),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
.rst_otp_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
rom_ctrl #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[60:60]),
.BootRomInitFile(RomCtrlBootRomInitFile),
.RndCnstScrNonce(RndCnstRomCtrlScrNonce),
.RndCnstScrKey(RndCnstRomCtrlScrKey),
.SecDisableScrambling(SecRomCtrlDisableScrambling)
) u_rom_ctrl (
// [60]: fatal
.alert_tx_o ( alert_tx[60:60] ),
.alert_rx_i ( alert_rx[60:60] ),
// Inter-module signals
.rom_cfg_i(ast_rom_cfg),
.pwrmgr_data_o(rom_ctrl_pwrmgr_data),
.keymgr_data_o(rom_ctrl_keymgr_data),
.kmac_data_o(kmac_app_req[2]),
.kmac_data_i(kmac_app_rsp[2]),
.regs_tl_i(rom_ctrl_regs_tl_req),
.regs_tl_o(rom_ctrl_regs_tl_rsp),
.rom_tl_i(rom_ctrl_rom_tl_req),
.rom_tl_o(rom_ctrl_rom_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_infra),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
rv_core_ibex #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[64:61]),
.RndCnstLfsrSeed(RndCnstRvCoreIbexSecLfsrSeed),
.RndCnstLfsrPerm(RndCnstRvCoreIbexSecLfsrPerm),
.RndCnstIbexKeyDefault(RndCnstRvCoreIbexSecIbexKeyDefault),
.RndCnstIbexNonceDefault(RndCnstRvCoreIbexSecIbexNonceDefault),
.PMPEnable(RvCoreIbexSecPMPEnable),
.PMPGranularity(RvCoreIbexSecPMPGranularity),
.PMPNumRegions(RvCoreIbexSecPMPNumRegions),
.MHPMCounterNum(RvCoreIbexSecMHPMCounterNum),
.MHPMCounterWidth(RvCoreIbexSecMHPMCounterWidth),
.RV32E(RvCoreIbexSecRV32E),
.RV32M(RvCoreIbexSecRV32M),
.RV32B(RvCoreIbexSecRV32B),
.RegFile(RvCoreIbexSecRegFile),
.BranchTargetALU(RvCoreIbexSecBranchTargetALU),
.WritebackStage(RvCoreIbexSecWritebackStage),
.ICache(RvCoreIbexSecICache),
.ICacheECC(RvCoreIbexSecICacheECC),
.ICacheScramble(RvCoreIbexSecICacheScramble),
.BranchPredictor(RvCoreIbexSecBranchPredictor),
.DbgTriggerEn(RvCoreIbexSecDbgTriggerEn),
.DbgHwBreakNum(RvCoreIbexSecDbgHwBreakNum),
.SecureIbex(RvCoreIbexSecSecureIbex),
.DmHaltAddr(RvCoreIbexSecDmHaltAddr),
.DmExceptionAddr(RvCoreIbexSecDmExceptionAddr),
.PipeLine(RvCoreIbexSecPipeLine)
) u_rv_core_ibex_sec (
// [61]: fatal_sw_err
// [62]: recov_sw_err
// [63]: fatal_hw_err
// [64]: recov_hw_err
.alert_tx_o ( alert_tx[64:61] ),
.alert_rx_i ( alert_rx[64:61] ),
// Inter-module signals
.rst_cpu_n_o(),
.ram_cfg_i(ast_ram_1p_cfg),
.hart_id_i(rv_core_ibex_sec_hart_id),
.boot_addr_i(rv_core_ibex_sec_boot_addr),
.irq_software_i(rv_plic_msip[0]),
.irq_timer_i(rv_core_ibex_sec_irq_timer),
.irq_external_i(rv_plic_irq[0]),
.esc_tx_i(alert_handler_esc_tx[0]),
.esc_rx_o(alert_handler_esc_rx[0]),
.debug_req_i(rv_dm_debug_req[0]),
.crash_dump_o(rv_core_ibex_sec_crash_dump),
.lc_cpu_en_i(lc_ctrl_lc_cpu_en),
.pwrmgr_cpu_en_i(pwrmgr_aon_fetch_en),
.pwrmgr_o(rv_core_ibex_sec_pwrmgr),
.nmi_wdog_i(aon_timer_aon_nmi_wdog_timer_bark),
.edn_o(edn0_edn_req[7]),
.edn_i(edn0_edn_rsp[7]),
.icache_otp_key_o(otp_ctrl_sram_otp_key_req[2]),
.icache_otp_key_i(otp_ctrl_sram_otp_key_rsp[2]),
.fpga_info_i(fpga_info_i),
.corei_tl_h_o(main_tl_rv_core_ibex_sec__corei_req),
.corei_tl_h_i(main_tl_rv_core_ibex_sec__corei_rsp),
.cored_tl_h_o(main_tl_rv_core_ibex_sec__cored_req),
.cored_tl_h_i(main_tl_rv_core_ibex_sec__cored_rsp),
.cfg_tl_d_i(rv_core_ibex_sec_cfg_tl_d_req),
.cfg_tl_d_o(rv_core_ibex_sec_cfg_tl_d_rsp),
.scanmode_i,
.scan_rst_ni,
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_infra),
.clk_edn_i (clkmgr_aon_clocks.clk_main_infra),
.clk_esc_i (clkmgr_aon_clocks.clk_io_div4_secure),
.clk_otp_i (clkmgr_aon_clocks.clk_io_div4_secure),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
.rst_edn_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
.rst_esc_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel]),
.rst_otp_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
dma u_dma0 (
// Interrupt
.intr_writer_done_o (intr_dma0_writer_done),
.intr_reader_done_o (intr_dma0_reader_done),
// Inter-module signals
.writer_tl_h_o(main_tl_dma0__writer_req),
.writer_tl_h_i(main_tl_dma0__writer_rsp),
.reader_tl_h_o(main_tl_dma0__reader_req),
.reader_tl_h_i(main_tl_dma0__reader_rsp),
.tl_d_i(dma0_tl_d_req),
.tl_d_o(dma0_tl_d_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_infra),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
uart #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[65:65])
) u_smc_uart (
// Input
.cio_rx_i (cio_smc_uart_rx_p2d),
// Output
.cio_tx_o (cio_smc_uart_tx_d2p),
.cio_tx_en_o (cio_smc_uart_tx_en_d2p),
// Interrupt
.intr_tx_watermark_o (intr_smc_uart_tx_watermark),
.intr_rx_watermark_o (intr_smc_uart_rx_watermark),
.intr_tx_empty_o (intr_smc_uart_tx_empty),
.intr_rx_overflow_o (intr_smc_uart_rx_overflow),
.intr_rx_frame_err_o (intr_smc_uart_rx_frame_err),
.intr_rx_break_err_o (intr_smc_uart_rx_break_err),
.intr_rx_timeout_o (intr_smc_uart_rx_timeout),
.intr_rx_parity_err_o (intr_smc_uart_rx_parity_err),
// [65]: fatal_fault
.alert_tx_o ( alert_tx[65:65] ),
.alert_rx_i ( alert_rx[65:65] ),
// Inter-module signals
.tl_i(smc_uart_tl_req),
.tl_o(smc_uart_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
rv_timer #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[66:66])
) u_rv_timer_smc (
// Interrupt
.intr_timer_expired_hart0_timer0_o (intr_rv_timer_smc_timer_expired_hart0_timer0),
// [66]: fatal_fault
.alert_tx_o ( alert_tx[66:66] ),
.alert_rx_i ( alert_rx[66:66] ),
// Inter-module signals
.tl_i(rv_timer_smc_tl_req),
.tl_o(rv_timer_smc_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_timers),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
logic smc_ctrl_boot_en_o;
assign rv_core_ibex_smc_pwrmgr_cpu_en = lc_ctrl_pkg::lc_tx_t'(smc_ctrl_boot_en_o);
smc_ctrl u_smc_ctrl (
// Inter-module signals
.smc_boot_en_o(smc_ctrl_boot_en_o),
.tl_i(smc_ctrl_tl_req),
.tl_o(smc_ctrl_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_smc_secure),
.rst_ni (rstmgr_aon_resets.rst_smc_n[rstmgr_pkg::Domain0Sel])
);
i2c #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[67:67])
) u_cam_i2c (
// Input
.cio_sda_i (cio_cam_i2c_sda_p2d),
.cio_scl_i (cio_cam_i2c_scl_p2d),
// Output
.cio_sda_o (cio_cam_i2c_sda_d2p),
.cio_sda_en_o (cio_cam_i2c_sda_en_d2p),
.cio_scl_o (cio_cam_i2c_scl_d2p),
.cio_scl_en_o (cio_cam_i2c_scl_en_d2p),
// Interrupt
.intr_fmt_threshold_o (intr_cam_i2c_fmt_threshold),
.intr_rx_threshold_o (intr_cam_i2c_rx_threshold),
.intr_fmt_overflow_o (intr_cam_i2c_fmt_overflow),
.intr_rx_overflow_o (intr_cam_i2c_rx_overflow),
.intr_nak_o (intr_cam_i2c_nak),
.intr_scl_interference_o (intr_cam_i2c_scl_interference),
.intr_sda_interference_o (intr_cam_i2c_sda_interference),
.intr_stretch_timeout_o (intr_cam_i2c_stretch_timeout),
.intr_sda_unstable_o (intr_cam_i2c_sda_unstable),
.intr_cmd_complete_o (intr_cam_i2c_cmd_complete),
.intr_tx_stretch_o (intr_cam_i2c_tx_stretch),
.intr_tx_overflow_o (intr_cam_i2c_tx_overflow),
.intr_acq_full_o (intr_cam_i2c_acq_full),
.intr_unexp_stop_o (intr_cam_i2c_unexp_stop),
.intr_host_timeout_o (intr_cam_i2c_host_timeout),
// [67]: fatal_fault
.alert_tx_o ( alert_tx[67:67] ),
.alert_rx_i ( alert_rx[67:67] ),
// Inter-module signals
.tl_i(cam_i2c_tl_req),
.tl_o(cam_i2c_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_cam_i2c_n[rstmgr_pkg::Domain0Sel])
);
cam_ctrl u_cam_ctrl (
// Input
.cio_cam_int_i (cio_cam_ctrl_cam_int_p2d),
// Output
.cio_cam_trig_o (cio_cam_ctrl_cam_trig_d2p),
.cio_cam_trig_en_o (cio_cam_ctrl_cam_trig_en_d2p),
// Interrupt
.intr_cam_motion_detect_o (intr_cam_ctrl_cam_motion_detect),
// Inter-module signals
.tl_i(cam_ctrl_tl_req),
.tl_o(cam_ctrl_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
isp_wrapper #(
.AhbLiteDataWidth(IspWrapperAhbLiteDataWidth),
.TimeoutLimit(IspWrapperTimeoutLimit)
) u_isp_wrapper (
// Input
.cio_s_pclk_i (cio_isp_wrapper_s_pclk_p2d),
.cio_s_data_i (cio_isp_wrapper_s_data_p2d),
.cio_s_hsync_i (cio_isp_wrapper_s_hsync_p2d),
.cio_s_vsync_i (cio_isp_wrapper_s_vsync_p2d),
// Interrupt
.intr_isp_o (intr_isp_wrapper_isp),
.intr_mi_o (intr_isp_wrapper_mi),
// Inter-module signals
.disable_isp_i('0),
.scanmode_i('0),
.out_y_r_frame_start_o(),
.out_y_r_frame_end_o(),
.out_y_r_line_start_o(),
.out_y_r_line_end_o(),
.out_cb_g_frame_start_o(),
.out_cb_g_frame_end_o(),
.out_cb_g_line_start_o(),
.out_cb_g_line_end_o(),
.out_cr_b_frame_start_o(),
.out_cr_b_frame_end_o(),
.out_cr_b_line_start_o(),
.out_cr_b_line_end_o(),
.out_y_r_val_stream_o(),
.out_y_r_data_stream_o(),
.out_cb_g_val_stream_o(),
.out_cb_g_data_stream_o(),
.out_cr_b_val_stream_o(),
.out_cr_b_data_stream_o(),
.isp_cvalid_o(isp_wrapper_isp_cvalid),
.isp_cready_i(isp_wrapper_isp_cready),
.isp_cwrite_o(isp_wrapper_isp_cwrite),
.isp_caddr_o(isp_wrapper_isp_caddr),
.isp_wdata_o(isp_wrapper_isp_wdata),
.isp_wmask_o(isp_wrapper_isp_wmask),
.tl_i(isp_wrapper_tl_req),
.tl_o(isp_wrapper_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_video_peri),
.clk_core_i (clkmgr_aon_clocks.clk_video_peri),
.clk_axi_i (clkmgr_aon_clocks.clk_video_peri),
.rst_ni (rstmgr_aon_resets.rst_smc_n[rstmgr_pkg::Domain0Sel])
);
dma u_dma_smc (
// Interrupt
.intr_writer_done_o (intr_dma_smc_writer_done),
.intr_reader_done_o (intr_dma_smc_reader_done),
// Inter-module signals
.writer_tl_h_o(smc_tl_dma_smc__writer_req),
.writer_tl_h_i(smc_tl_dma_smc__writer_rsp),
.reader_tl_h_o(smc_tl_dma_smc__reader_req),
.reader_tl_h_i(smc_tl_dma_smc__reader_rsp),
.tl_d_i(dma_smc_tl_d_req),
.tl_d_o(dma_smc_tl_d_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_smc_infra),
.rst_ni (rstmgr_aon_resets.rst_smc_n[rstmgr_pkg::Domain0Sel])
);
rv_plic_smc #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[68:68])
) u_rv_plic_smc (
// [68]: fatal_fault
.alert_tx_o ( alert_tx[68:68] ),
.alert_rx_i ( alert_rx[68:68] ),
// Inter-module signals
.irq_o(rv_plic_smc_irq),
.irq_id_o(),
.msip_o(rv_plic_smc_msip),
.tl_i(rv_plic_smc_tl_req),
.tl_o(rv_plic_smc_tl_rsp),
.intr_src_i (smc_intr_vector),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_smc_infra),
.rst_ni (rstmgr_aon_resets.rst_smc_n[rstmgr_pkg::Domain0Sel])
);
tlul_mailbox #(
.MailboxDepth(TlulMailboxSecMailboxDepth)
) u_tlul_mailbox_sec (
// Interrupt
.intr_core0_wtirq_o (intr_tlul_mailbox_sec_wtirq),
.intr_core1_wtirq_o (intr_tlul_mailbox_smc_wtirq),
.intr_core0_rtirq_o (intr_tlul_mailbox_sec_rtirq),
.intr_core1_rtirq_o (intr_tlul_mailbox_smc_rtirq),
.intr_core0_eirq_o (intr_tlul_mailbox_sec_eirq),
.intr_core1_eirq_o (intr_tlul_mailbox_smc_eirq),
// Inter-module signals
.core0_tl_i(tlul_mailbox_sec_tl_req),
.core0_tl_o(tlul_mailbox_sec_tl_rsp),
.core1_tl_i(tlul_mailbox_smc_tl_req),
.core1_tl_o(tlul_mailbox_smc_tl_rsp),
.test_i (1'b0),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_main_infra),
.rst_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel])
);
ml_top u_ml_top (
// Interrupt
.intr_host_req_o (intr_ml_top_host_req),
.intr_finish_o (intr_ml_top_finish),
.intr_fault_o (intr_ml_top_fault),
// Inter-module signals
.isp_cvalid_i(isp_wrapper_isp_cvalid),
.isp_cready_o(isp_wrapper_isp_cready),
.isp_cwrite_i(isp_wrapper_isp_cwrite),
.isp_caddr_i(isp_wrapper_isp_caddr),
.isp_wdata_i(isp_wrapper_isp_wdata),
.isp_wmask_i(isp_wrapper_isp_wmask),
.core_tl_i(ml_top_core_tl_req),
.core_tl_o(ml_top_core_tl_rsp),
.dmem_tl_i(ml_top_dmem_tl_req),
.dmem_tl_o(ml_top_dmem_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_ml_peri),
.rst_ni (rstmgr_aon_resets.rst_ml_n[rstmgr_pkg::Domain0Sel])
);
spi_host #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[69:69])
) u_spi_host2 (
// Input
.cio_sd_i (cio_spi_host2_sd_p2d),
// Output
.cio_sck_o (cio_spi_host2_sck_d2p),
.cio_sck_en_o (cio_spi_host2_sck_en_d2p),
.cio_csb_o (cio_spi_host2_csb_d2p),
.cio_csb_en_o (cio_spi_host2_csb_en_d2p),
.cio_sd_o (cio_spi_host2_sd_d2p),
.cio_sd_en_o (cio_spi_host2_sd_en_d2p),
// Interrupt
.intr_error_o (intr_spi_host2_error),
.intr_spi_event_o (intr_spi_host2_spi_event),
// [69]: fatal_fault
.alert_tx_o ( alert_tx[69:69] ),
.alert_rx_i ( alert_rx[69:69] ),
// Inter-module signals
.passthrough_i(spi_device_pkg::PASSTHROUGH_REQ_DEFAULT),
.passthrough_o(),
.tl_i(spi_host2_tl_req),
.tl_o(spi_host2_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_peri),
.rst_ni (rstmgr_aon_resets.rst_spi_host2_n[rstmgr_pkg::Domain0Sel])
);
rv_timer #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[70:70])
) u_rv_timer_smc2 (
// Interrupt
.intr_timer_expired_hart0_timer0_o (intr_rv_timer_smc2_timer_expired_hart0_timer0),
// [70]: fatal_fault
.alert_tx_o ( alert_tx[70:70] ),
.alert_rx_i ( alert_rx[70:70] ),
// Inter-module signals
.tl_i(rv_timer_smc2_tl_req),
.tl_o(rv_timer_smc2_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_timers),
.rst_ni (rstmgr_aon_resets.rst_sys_io_div4_n[rstmgr_pkg::Domain0Sel])
);
i2s u_i2s0 (
// Input
.cio_rx_sd_i (cio_i2s0_rx_sd_p2d),
// Output
.cio_rx_sclk_o (cio_i2s0_rx_sclk_d2p),
.cio_rx_sclk_en_o (cio_i2s0_rx_sclk_en_d2p),
.cio_rx_ws_o (cio_i2s0_rx_ws_d2p),
.cio_rx_ws_en_o (cio_i2s0_rx_ws_en_d2p),
.cio_tx_sclk_o (cio_i2s0_tx_sclk_d2p),
.cio_tx_sclk_en_o (cio_i2s0_tx_sclk_en_d2p),
.cio_tx_ws_o (cio_i2s0_tx_ws_d2p),
.cio_tx_ws_en_o (cio_i2s0_tx_ws_en_d2p),
.cio_tx_sd_o (cio_i2s0_tx_sd_d2p),
.cio_tx_sd_en_o (cio_i2s0_tx_sd_en_d2p),
// Interrupt
.intr_tx_watermark_o (intr_i2s0_tx_watermark),
.intr_rx_watermark_o (intr_i2s0_rx_watermark),
.intr_tx_empty_o (intr_i2s0_tx_empty),
.intr_rx_overflow_o (intr_i2s0_rx_overflow),
// Inter-module signals
.tl_i(i2s0_tl_req),
.tl_o(i2s0_tl_rsp),
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_io_div4_peri),
.clk_audio_i (clkmgr_aon_clocks.clk_audio_peri),
.rst_ni (rstmgr_aon_resets.rst_sys_io_div4_n[rstmgr_pkg::Domain0Sel])
);
rv_core_smc #(
.AlertAsyncOn(alert_handler_reg_pkg::AsyncOn[74:71]),
.RndCnstLfsrSeed(RndCnstRvCoreIbexSmcLfsrSeed),
.RndCnstLfsrPerm(RndCnstRvCoreIbexSmcLfsrPerm),
.RndCnstSmcKeyDefault(RndCnstRvCoreIbexSmcSmcKeyDefault),
.RndCnstSmcNonceDefault(RndCnstRvCoreIbexSmcSmcNonceDefault),
.PMPEnable(RvCoreIbexSmcPMPEnable),
.PMPGranularity(RvCoreIbexSmcPMPGranularity),
.PMPNumRegions(RvCoreIbexSmcPMPNumRegions),
.MHPMCounterNum(RvCoreIbexSmcMHPMCounterNum),
.MHPMCounterWidth(RvCoreIbexSmcMHPMCounterWidth),
.RV32E(RvCoreIbexSmcRV32E),
.RV32M(RvCoreIbexSmcRV32M),
.RV32B(RvCoreIbexSmcRV32B),
.RV32A(RvCoreIbexSmcRV32A),
.RegFile(RvCoreIbexSmcRegFile),
.BranchTargetALU(RvCoreIbexSmcBranchTargetALU),
.WritebackStage(RvCoreIbexSmcWritebackStage),
.ICache(RvCoreIbexSmcICache),
.ICacheECC(RvCoreIbexSmcICacheECC),
.ICacheScramble(RvCoreIbexSmcICacheScramble),
.BranchPredictor(RvCoreIbexSmcBranchPredictor),
.DbgTriggerEn(RvCoreIbexSmcDbgTriggerEn),
.DbgHwBreakNum(RvCoreIbexSmcDbgHwBreakNum),
.SecureSmc(RvCoreIbexSmcSecureSmc),
.DmHaltAddr(RvCoreIbexSmcDmHaltAddr),
.DmExceptionAddr(RvCoreIbexSmcDmExceptionAddr),
.PipeLine(RvCoreIbexSmcPipeLine),
.ITLBEntries(RvCoreIbexSmcITLBEntries),
.DTLBEntries(RvCoreIbexSmcDTLBEntries),
.ASIDWidth(RvCoreIbexSmcASIDWidth)
) u_rv_core_ibex_smc (
// [71]: fatal_sw_err
// [72]: recov_sw_err
// [73]: fatal_hw_err
// [74]: recov_hw_err
.alert_tx_o ( alert_tx[74:71] ),
.alert_rx_i ( alert_rx[74:71] ),
// Inter-module signals
.rst_cpu_n_o(),
.ram_cfg_i(ast_ram_1p_cfg),
.hart_id_i(rv_core_ibex_smc_hart_id),
.boot_addr_i(rv_core_ibex_smc_boot_addr),
.irq_software_i(rv_plic_smc_msip),
.irq_timer_i(rv_core_ibex_smc_irq_timer),
.irq_external_i(rv_plic_smc_irq),
.esc_tx_i(prim_esc_pkg::ESC_TX_DEFAULT),
.esc_rx_o(),
.debug_req_i(rv_dm_debug_req[1]),
.crash_dump_o(),
.lc_cpu_en_i(lc_ctrl_lc_cpu_en),
.pwrmgr_cpu_en_i(rv_core_ibex_smc_pwrmgr_cpu_en),
.pwrmgr_o(),
.nmi_wdog_i('0),
.edn_o(),
.edn_i(edn_pkg::EDN_RSP_DEFAULT),
.icache_otp_key_o(),
.icache_otp_key_i(otp_ctrl_pkg::SRAM_OTP_KEY_RSP_DEFAULT),
.fpga_info_i('0),
.corei_tl_h_o(smc_tl_rv_core_ibex_smc__corei_req),
.corei_tl_h_i(smc_tl_rv_core_ibex_smc__corei_rsp),
.cored_tl_h_o(smc_tl_rv_core_ibex_smc__cored_req),
.cored_tl_h_i(smc_tl_rv_core_ibex_smc__cored_rsp),
.cfg_tl_d_i(rv_core_ibex_smc_cfg_tl_d_req),
.cfg_tl_d_o(rv_core_ibex_smc_cfg_tl_d_rsp),
.scanmode_i,
.scan_rst_ni,
// Clock and reset connections
.clk_i (clkmgr_aon_clocks.clk_smc_peri),
.clk_esc_i (clkmgr_aon_clocks.clk_io_div4_peri),
.rst_ni (rstmgr_aon_resets.rst_smc_n[rstmgr_pkg::Domain0Sel]),
.rst_esc_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel])
);
// security core interrupt assignments
assign sec_intr_vector = {
intr_tlul_mailbox_sec_eirq, // IDs [189 +: 1]
intr_tlul_mailbox_sec_rtirq, // IDs [188 +: 1]
intr_tlul_mailbox_sec_wtirq, // IDs [187 +: 1]
intr_dma0_reader_done, // IDs [186 +: 1]
intr_dma0_writer_done, // IDs [185 +: 1]
intr_edn1_edn_fatal_err, // IDs [184 +: 1]
intr_edn1_edn_cmd_req_done, // IDs [183 +: 1]
intr_edn0_edn_fatal_err, // IDs [182 +: 1]
intr_edn0_edn_cmd_req_done, // IDs [181 +: 1]
intr_entropy_src_es_fatal_err, // IDs [180 +: 1]
intr_entropy_src_es_observe_fifo_ready, // IDs [179 +: 1]
intr_entropy_src_es_health_test_failed, // IDs [178 +: 1]
intr_entropy_src_es_entropy_valid, // IDs [177 +: 1]
intr_csrng_cs_fatal_err, // IDs [176 +: 1]
intr_csrng_cs_hw_inst_exc, // IDs [175 +: 1]
intr_csrng_cs_entropy_req, // IDs [174 +: 1]
intr_csrng_cs_cmd_req_done, // IDs [173 +: 1]
intr_keymgr_op_done, // IDs [172 +: 1]
intr_otbn_done, // IDs [171 +: 1]
intr_kmac_kmac_err, // IDs [170 +: 1]
intr_kmac_fifo_empty, // IDs [169 +: 1]
intr_kmac_kmac_done, // IDs [168 +: 1]
intr_hmac_hmac_err, // IDs [167 +: 1]
intr_hmac_fifo_empty, // IDs [166 +: 1]
intr_hmac_hmac_done, // IDs [165 +: 1]
intr_flash_ctrl_corr_err, // IDs [164 +: 1]
intr_flash_ctrl_op_done, // IDs [163 +: 1]
intr_flash_ctrl_rd_lvl, // IDs [162 +: 1]
intr_flash_ctrl_rd_full, // IDs [161 +: 1]
intr_flash_ctrl_prog_lvl, // IDs [160 +: 1]
intr_flash_ctrl_prog_empty, // IDs [159 +: 1]
intr_sensor_ctrl_init_status_change, // IDs [158 +: 1]
intr_sensor_ctrl_io_status_change, // IDs [157 +: 1]
intr_aon_timer_aon_wdog_timer_bark, // IDs [156 +: 1]
intr_aon_timer_aon_wkup_timer_expired, // IDs [155 +: 1]
intr_adc_ctrl_aon_match_done, // IDs [154 +: 1]
intr_sysrst_ctrl_aon_event_detected, // IDs [153 +: 1]
intr_pwrmgr_aon_wakeup, // IDs [152 +: 1]
intr_usbdev_link_out_err, // IDs [151 +: 1]
intr_usbdev_powered, // IDs [150 +: 1]
intr_usbdev_frame, // IDs [149 +: 1]
intr_usbdev_rx_bitstuff_err, // IDs [148 +: 1]
intr_usbdev_rx_pid_err, // IDs [147 +: 1]
intr_usbdev_rx_crc_err, // IDs [146 +: 1]
intr_usbdev_link_in_err, // IDs [145 +: 1]
intr_usbdev_av_overflow, // IDs [144 +: 1]
intr_usbdev_rx_full, // IDs [143 +: 1]
intr_usbdev_av_empty, // IDs [142 +: 1]
intr_usbdev_link_resume, // IDs [141 +: 1]
intr_usbdev_link_suspend, // IDs [140 +: 1]
intr_usbdev_link_reset, // IDs [139 +: 1]
intr_usbdev_host_lost, // IDs [138 +: 1]
intr_usbdev_disconnected, // IDs [137 +: 1]
intr_usbdev_pkt_sent, // IDs [136 +: 1]
intr_usbdev_pkt_received, // IDs [135 +: 1]
intr_spi_host1_spi_event, // IDs [134 +: 1]
intr_spi_host1_error, // IDs [133 +: 1]
intr_spi_host0_spi_event, // IDs [132 +: 1]
intr_spi_host0_error, // IDs [131 +: 1]
intr_alert_handler_classd, // IDs [130 +: 1]
intr_alert_handler_classc, // IDs [129 +: 1]
intr_alert_handler_classb, // IDs [128 +: 1]
intr_alert_handler_classa, // IDs [127 +: 1]
intr_otp_ctrl_otp_error, // IDs [126 +: 1]
intr_otp_ctrl_otp_operation_done, // IDs [125 +: 1]
intr_rv_timer_timer_expired_hart0_timer0, // IDs [124 +: 1]
intr_pattgen_done_ch1, // IDs [123 +: 1]
intr_pattgen_done_ch0, // IDs [122 +: 1]
intr_i2c2_host_timeout, // IDs [121 +: 1]
intr_i2c2_unexp_stop, // IDs [120 +: 1]
intr_i2c2_acq_full, // IDs [119 +: 1]
intr_i2c2_tx_overflow, // IDs [118 +: 1]
intr_i2c2_tx_stretch, // IDs [117 +: 1]
intr_i2c2_cmd_complete, // IDs [116 +: 1]
intr_i2c2_sda_unstable, // IDs [115 +: 1]
intr_i2c2_stretch_timeout, // IDs [114 +: 1]
intr_i2c2_sda_interference, // IDs [113 +: 1]
intr_i2c2_scl_interference, // IDs [112 +: 1]
intr_i2c2_nak, // IDs [111 +: 1]
intr_i2c2_rx_overflow, // IDs [110 +: 1]
intr_i2c2_fmt_overflow, // IDs [109 +: 1]
intr_i2c2_rx_threshold, // IDs [108 +: 1]
intr_i2c2_fmt_threshold, // IDs [107 +: 1]
intr_i2c1_host_timeout, // IDs [106 +: 1]
intr_i2c1_unexp_stop, // IDs [105 +: 1]
intr_i2c1_acq_full, // IDs [104 +: 1]
intr_i2c1_tx_overflow, // IDs [103 +: 1]
intr_i2c1_tx_stretch, // IDs [102 +: 1]
intr_i2c1_cmd_complete, // IDs [101 +: 1]
intr_i2c1_sda_unstable, // IDs [100 +: 1]
intr_i2c1_stretch_timeout, // IDs [99 +: 1]
intr_i2c1_sda_interference, // IDs [98 +: 1]
intr_i2c1_scl_interference, // IDs [97 +: 1]
intr_i2c1_nak, // IDs [96 +: 1]
intr_i2c1_rx_overflow, // IDs [95 +: 1]
intr_i2c1_fmt_overflow, // IDs [94 +: 1]
intr_i2c1_rx_threshold, // IDs [93 +: 1]
intr_i2c1_fmt_threshold, // IDs [92 +: 1]
intr_i2c0_host_timeout, // IDs [91 +: 1]
intr_i2c0_unexp_stop, // IDs [90 +: 1]
intr_i2c0_acq_full, // IDs [89 +: 1]
intr_i2c0_tx_overflow, // IDs [88 +: 1]
intr_i2c0_tx_stretch, // IDs [87 +: 1]
intr_i2c0_cmd_complete, // IDs [86 +: 1]
intr_i2c0_sda_unstable, // IDs [85 +: 1]
intr_i2c0_stretch_timeout, // IDs [84 +: 1]
intr_i2c0_sda_interference, // IDs [83 +: 1]
intr_i2c0_scl_interference, // IDs [82 +: 1]
intr_i2c0_nak, // IDs [81 +: 1]
intr_i2c0_rx_overflow, // IDs [80 +: 1]
intr_i2c0_fmt_overflow, // IDs [79 +: 1]
intr_i2c0_rx_threshold, // IDs [78 +: 1]
intr_i2c0_fmt_threshold, // IDs [77 +: 1]
intr_spi_device_tpm_header_not_empty, // IDs [76 +: 1]
intr_spi_device_readbuf_flip, // IDs [75 +: 1]
intr_spi_device_readbuf_watermark, // IDs [74 +: 1]
intr_spi_device_upload_payload_overflow, // IDs [73 +: 1]
intr_spi_device_upload_payload_not_empty, // IDs [72 +: 1]
intr_spi_device_upload_cmdfifo_not_empty, // IDs [71 +: 1]
intr_spi_device_generic_tx_underflow, // IDs [70 +: 1]
intr_spi_device_generic_rx_overflow, // IDs [69 +: 1]
intr_spi_device_generic_rx_error, // IDs [68 +: 1]
intr_spi_device_generic_tx_watermark, // IDs [67 +: 1]
intr_spi_device_generic_rx_watermark, // IDs [66 +: 1]
intr_spi_device_generic_rx_full, // IDs [65 +: 1]
intr_gpio_gpio, // IDs [33 +: 32]
intr_uart3_rx_parity_err, // IDs [32 +: 1]
intr_uart3_rx_timeout, // IDs [31 +: 1]
intr_uart3_rx_break_err, // IDs [30 +: 1]
intr_uart3_rx_frame_err, // IDs [29 +: 1]
intr_uart3_rx_overflow, // IDs [28 +: 1]
intr_uart3_tx_empty, // IDs [27 +: 1]
intr_uart3_rx_watermark, // IDs [26 +: 1]
intr_uart3_tx_watermark, // IDs [25 +: 1]
intr_uart2_rx_parity_err, // IDs [24 +: 1]
intr_uart2_rx_timeout, // IDs [23 +: 1]
intr_uart2_rx_break_err, // IDs [22 +: 1]
intr_uart2_rx_frame_err, // IDs [21 +: 1]
intr_uart2_rx_overflow, // IDs [20 +: 1]
intr_uart2_tx_empty, // IDs [19 +: 1]
intr_uart2_rx_watermark, // IDs [18 +: 1]
intr_uart2_tx_watermark, // IDs [17 +: 1]
intr_uart1_rx_parity_err, // IDs [16 +: 1]
intr_uart1_rx_timeout, // IDs [15 +: 1]
intr_uart1_rx_break_err, // IDs [14 +: 1]
intr_uart1_rx_frame_err, // IDs [13 +: 1]
intr_uart1_rx_overflow, // IDs [12 +: 1]
intr_uart1_tx_empty, // IDs [11 +: 1]
intr_uart1_rx_watermark, // IDs [10 +: 1]
intr_uart1_tx_watermark, // IDs [9 +: 1]
intr_uart0_rx_parity_err, // IDs [8 +: 1]
intr_uart0_rx_timeout, // IDs [7 +: 1]
intr_uart0_rx_break_err, // IDs [6 +: 1]
intr_uart0_rx_frame_err, // IDs [5 +: 1]
intr_uart0_rx_overflow, // IDs [4 +: 1]
intr_uart0_tx_empty, // IDs [3 +: 1]
intr_uart0_rx_watermark, // IDs [2 +: 1]
intr_uart0_tx_watermark, // IDs [1 +: 1]
1'b 0 // ID [0 +: 1] is a special case and tied to zero.
};
// smc core interrupt assignments
assign smc_intr_vector = {
intr_i2s0_rx_overflow, // IDs [42 +: 1]
intr_i2s0_tx_empty, // IDs [41 +: 1]
intr_i2s0_rx_watermark, // IDs [40 +: 1]
intr_i2s0_tx_watermark, // IDs [39 +: 1]
intr_rv_timer_smc2_timer_expired_hart0_timer0, // IDs [38 +: 1]
intr_spi_host2_spi_event, // IDs [37 +: 1]
intr_spi_host2_error, // IDs [36 +: 1]
intr_ml_top_fault, // IDs [35 +: 1]
intr_ml_top_finish, // IDs [34 +: 1]
intr_ml_top_host_req, // IDs [33 +: 1]
intr_tlul_mailbox_smc_eirq, // IDs [32 +: 1]
intr_tlul_mailbox_smc_rtirq, // IDs [31 +: 1]
intr_tlul_mailbox_smc_wtirq, // IDs [30 +: 1]
intr_dma_smc_reader_done, // IDs [29 +: 1]
intr_dma_smc_writer_done, // IDs [28 +: 1]
intr_isp_wrapper_mi, // IDs [27 +: 1]
intr_isp_wrapper_isp, // IDs [26 +: 1]
intr_cam_ctrl_cam_motion_detect, // IDs [25 +: 1]
intr_cam_i2c_host_timeout, // IDs [24 +: 1]
intr_cam_i2c_unexp_stop, // IDs [23 +: 1]
intr_cam_i2c_acq_full, // IDs [22 +: 1]
intr_cam_i2c_tx_overflow, // IDs [21 +: 1]
intr_cam_i2c_tx_stretch, // IDs [20 +: 1]
intr_cam_i2c_cmd_complete, // IDs [19 +: 1]
intr_cam_i2c_sda_unstable, // IDs [18 +: 1]
intr_cam_i2c_stretch_timeout, // IDs [17 +: 1]
intr_cam_i2c_sda_interference, // IDs [16 +: 1]
intr_cam_i2c_scl_interference, // IDs [15 +: 1]
intr_cam_i2c_nak, // IDs [14 +: 1]
intr_cam_i2c_rx_overflow, // IDs [13 +: 1]
intr_cam_i2c_fmt_overflow, // IDs [12 +: 1]
intr_cam_i2c_rx_threshold, // IDs [11 +: 1]
intr_cam_i2c_fmt_threshold, // IDs [10 +: 1]
intr_rv_timer_smc_timer_expired_hart0_timer0, // IDs [9 +: 1]
intr_smc_uart_rx_parity_err, // IDs [8 +: 1]
intr_smc_uart_rx_timeout, // IDs [7 +: 1]
intr_smc_uart_rx_break_err, // IDs [6 +: 1]
intr_smc_uart_rx_frame_err, // IDs [5 +: 1]
intr_smc_uart_rx_overflow, // IDs [4 +: 1]
intr_smc_uart_tx_empty, // IDs [3 +: 1]
intr_smc_uart_rx_watermark, // IDs [2 +: 1]
intr_smc_uart_tx_watermark, // IDs [1 +: 1]
1'b 0 // ID [0 +: 1] is a special case and tied to zero.
};
// TL-UL Crossbar
xbar_main u_xbar_main (
.clk_main_i (clkmgr_aon_clocks.clk_main_infra),
.clk_fixed_i (clkmgr_aon_clocks.clk_io_div4_infra),
.clk_usb_i (clkmgr_aon_clocks.clk_usb_infra),
.clk_spi_host0_i (clkmgr_aon_clocks.clk_io_infra),
.clk_spi_host1_i (clkmgr_aon_clocks.clk_io_infra),
.clk_smc_i (clkmgr_aon_clocks.clk_smc_infra),
.rst_main_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
.rst_fixed_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel]),
.rst_usb_ni (rstmgr_aon_resets.rst_lc_usb_n[rstmgr_pkg::Domain0Sel]),
.rst_spi_host0_ni (rstmgr_aon_resets.rst_lc_io_n[rstmgr_pkg::Domain0Sel]),
.rst_spi_host1_ni (rstmgr_aon_resets.rst_lc_io_n[rstmgr_pkg::Domain0Sel]),
.rst_smc_ni (rstmgr_aon_resets.rst_smc_n[rstmgr_pkg::Domain0Sel]),
// port: tl_rv_core_ibex_sec__corei
.tl_rv_core_ibex_sec__corei_i(main_tl_rv_core_ibex_sec__corei_req),
.tl_rv_core_ibex_sec__corei_o(main_tl_rv_core_ibex_sec__corei_rsp),
// port: tl_rv_core_ibex_sec__cored
.tl_rv_core_ibex_sec__cored_i(main_tl_rv_core_ibex_sec__cored_req),
.tl_rv_core_ibex_sec__cored_o(main_tl_rv_core_ibex_sec__cored_rsp),
// port: tl_rv_dm__sba
.tl_rv_dm__sba_i(main_tl_rv_dm__sba_req),
.tl_rv_dm__sba_o(main_tl_rv_dm__sba_rsp),
// port: tl_dma0__reader
.tl_dma0__reader_i(main_tl_dma0__reader_req),
.tl_dma0__reader_o(main_tl_dma0__reader_rsp),
// port: tl_dma0__writer
.tl_dma0__writer_i(main_tl_dma0__writer_req),
.tl_dma0__writer_o(main_tl_dma0__writer_rsp),
// port: tl_dma0
.tl_dma0_o(dma0_tl_d_req),
.tl_dma0_i(dma0_tl_d_rsp),
// port: tl_rom_ctrl__rom
.tl_rom_ctrl__rom_o(rom_ctrl_rom_tl_req),
.tl_rom_ctrl__rom_i(rom_ctrl_rom_tl_rsp),
// port: tl_rom_ctrl__regs
.tl_rom_ctrl__regs_o(rom_ctrl_regs_tl_req),
.tl_rom_ctrl__regs_i(rom_ctrl_regs_tl_rsp),
// port: tl_peri
.tl_peri_o(main_tl_peri_req),
.tl_peri_i(main_tl_peri_rsp),
// port: tl_spi_host0
.tl_spi_host0_o(spi_host0_tl_req),
.tl_spi_host0_i(spi_host0_tl_rsp),
// port: tl_spi_host1
.tl_spi_host1_o(spi_host1_tl_req),
.tl_spi_host1_i(spi_host1_tl_rsp),
// port: tl_usbdev
.tl_usbdev_o(usbdev_tl_req),
.tl_usbdev_i(usbdev_tl_rsp),
// port: tl_flash_ctrl__core
.tl_flash_ctrl__core_o(flash_ctrl_core_tl_req),
.tl_flash_ctrl__core_i(flash_ctrl_core_tl_rsp),
// port: tl_flash_ctrl__prim
.tl_flash_ctrl__prim_o(flash_ctrl_prim_tl_req),
.tl_flash_ctrl__prim_i(flash_ctrl_prim_tl_rsp),
// port: tl_flash_ctrl__mem
.tl_flash_ctrl__mem_o(flash_ctrl_mem_tl_req),
.tl_flash_ctrl__mem_i(flash_ctrl_mem_tl_rsp),
// port: tl_hmac
.tl_hmac_o(hmac_tl_req),
.tl_hmac_i(hmac_tl_rsp),
// port: tl_kmac
.tl_kmac_o(kmac_tl_req),
.tl_kmac_i(kmac_tl_rsp),
// port: tl_aes
.tl_aes_o(aes_tl_req),
.tl_aes_i(aes_tl_rsp),
// port: tl_entropy_src
.tl_entropy_src_o(entropy_src_tl_req),
.tl_entropy_src_i(entropy_src_tl_rsp),
// port: tl_csrng
.tl_csrng_o(csrng_tl_req),
.tl_csrng_i(csrng_tl_rsp),
// port: tl_edn0
.tl_edn0_o(edn0_tl_req),
.tl_edn0_i(edn0_tl_rsp),
// port: tl_edn1
.tl_edn1_o(edn1_tl_req),
.tl_edn1_i(edn1_tl_rsp),
// port: tl_rv_plic
.tl_rv_plic_o(rv_plic_tl_req),
.tl_rv_plic_i(rv_plic_tl_rsp),
// port: tl_otbn
.tl_otbn_o(otbn_tl_req),
.tl_otbn_i(otbn_tl_rsp),
// port: tl_keymgr
.tl_keymgr_o(keymgr_tl_req),
.tl_keymgr_i(keymgr_tl_rsp),
// port: tl_rv_core_ibex_sec__cfg
.tl_rv_core_ibex_sec__cfg_o(rv_core_ibex_sec_cfg_tl_d_req),
.tl_rv_core_ibex_sec__cfg_i(rv_core_ibex_sec_cfg_tl_d_rsp),
// port: tl_sram_ctrl_main__regs
.tl_sram_ctrl_main__regs_o(sram_ctrl_main_regs_tl_req),
.tl_sram_ctrl_main__regs_i(sram_ctrl_main_regs_tl_rsp),
// port: tl_sram_ctrl_main__ram
.tl_sram_ctrl_main__ram_o(sram_ctrl_main_ram_tl_req),
.tl_sram_ctrl_main__ram_i(sram_ctrl_main_ram_tl_rsp),
// port: tl_tlul_mailbox_sec
.tl_tlul_mailbox_sec_o(tlul_mailbox_sec_tl_req),
.tl_tlul_mailbox_sec_i(tlul_mailbox_sec_tl_rsp),
// port: tl_smc
.tl_smc_o(main_tl_smc_req),
.tl_smc_i(main_tl_smc_rsp),
// port: tl_dbg
.tl_dbg_o(main_tl_dbg_req),
.tl_dbg_i(main_tl_dbg_rsp),
.scanmode_i
);
xbar_peri u_xbar_peri (
.clk_peri_i (clkmgr_aon_clocks.clk_io_div4_infra),
.rst_peri_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel]),
// port: tl_main
.tl_main_i(main_tl_peri_req),
.tl_main_o(main_tl_peri_rsp),
// port: tl_uart0
.tl_uart0_o(uart0_tl_req),
.tl_uart0_i(uart0_tl_rsp),
// port: tl_uart1
.tl_uart1_o(uart1_tl_req),
.tl_uart1_i(uart1_tl_rsp),
// port: tl_uart2
.tl_uart2_o(uart2_tl_req),
.tl_uart2_i(uart2_tl_rsp),
// port: tl_uart3
.tl_uart3_o(uart3_tl_req),
.tl_uart3_i(uart3_tl_rsp),
// port: tl_i2c0
.tl_i2c0_o(i2c0_tl_req),
.tl_i2c0_i(i2c0_tl_rsp),
// port: tl_i2c1
.tl_i2c1_o(i2c1_tl_req),
.tl_i2c1_i(i2c1_tl_rsp),
// port: tl_i2c2
.tl_i2c2_o(i2c2_tl_req),
.tl_i2c2_i(i2c2_tl_rsp),
// port: tl_pattgen
.tl_pattgen_o(pattgen_tl_req),
.tl_pattgen_i(pattgen_tl_rsp),
// port: tl_pwm_aon
.tl_pwm_aon_o(pwm_aon_tl_req),
.tl_pwm_aon_i(pwm_aon_tl_rsp),
// port: tl_gpio
.tl_gpio_o(gpio_tl_req),
.tl_gpio_i(gpio_tl_rsp),
// port: tl_spi_device
.tl_spi_device_o(spi_device_tl_req),
.tl_spi_device_i(spi_device_tl_rsp),
// port: tl_rv_timer
.tl_rv_timer_o(rv_timer_tl_req),
.tl_rv_timer_i(rv_timer_tl_rsp),
// port: tl_pwrmgr_aon
.tl_pwrmgr_aon_o(pwrmgr_aon_tl_req),
.tl_pwrmgr_aon_i(pwrmgr_aon_tl_rsp),
// port: tl_rstmgr_aon
.tl_rstmgr_aon_o(rstmgr_aon_tl_req),
.tl_rstmgr_aon_i(rstmgr_aon_tl_rsp),
// port: tl_clkmgr_aon
.tl_clkmgr_aon_o(clkmgr_aon_tl_req),
.tl_clkmgr_aon_i(clkmgr_aon_tl_rsp),
// port: tl_pinmux_aon
.tl_pinmux_aon_o(pinmux_aon_tl_req),
.tl_pinmux_aon_i(pinmux_aon_tl_rsp),
// port: tl_otp_ctrl__core
.tl_otp_ctrl__core_o(otp_ctrl_core_tl_req),
.tl_otp_ctrl__core_i(otp_ctrl_core_tl_rsp),
// port: tl_otp_ctrl__prim
.tl_otp_ctrl__prim_o(otp_ctrl_prim_tl_req),
.tl_otp_ctrl__prim_i(otp_ctrl_prim_tl_rsp),
// port: tl_lc_ctrl
.tl_lc_ctrl_o(lc_ctrl_tl_req),
.tl_lc_ctrl_i(lc_ctrl_tl_rsp),
// port: tl_sensor_ctrl
.tl_sensor_ctrl_o(sensor_ctrl_tl_req),
.tl_sensor_ctrl_i(sensor_ctrl_tl_rsp),
// port: tl_alert_handler
.tl_alert_handler_o(alert_handler_tl_req),
.tl_alert_handler_i(alert_handler_tl_rsp),
// port: tl_sram_ctrl_ret_aon__regs
.tl_sram_ctrl_ret_aon__regs_o(sram_ctrl_ret_aon_regs_tl_req),
.tl_sram_ctrl_ret_aon__regs_i(sram_ctrl_ret_aon_regs_tl_rsp),
// port: tl_sram_ctrl_ret_aon__ram
.tl_sram_ctrl_ret_aon__ram_o(sram_ctrl_ret_aon_ram_tl_req),
.tl_sram_ctrl_ret_aon__ram_i(sram_ctrl_ret_aon_ram_tl_rsp),
// port: tl_aon_timer_aon
.tl_aon_timer_aon_o(aon_timer_aon_tl_req),
.tl_aon_timer_aon_i(aon_timer_aon_tl_rsp),
// port: tl_sysrst_ctrl_aon
.tl_sysrst_ctrl_aon_o(sysrst_ctrl_aon_tl_req),
.tl_sysrst_ctrl_aon_i(sysrst_ctrl_aon_tl_rsp),
// port: tl_adc_ctrl_aon
.tl_adc_ctrl_aon_o(adc_ctrl_aon_tl_req),
.tl_adc_ctrl_aon_i(adc_ctrl_aon_tl_rsp),
// port: tl_ast
.tl_ast_o(ast_tl_req_o),
.tl_ast_i(ast_tl_rsp_i),
.scanmode_i
);
xbar_smc u_xbar_smc (
.clk_smc_i (clkmgr_aon_clocks.clk_smc_infra),
.clk_peri_i (clkmgr_aon_clocks.clk_io_div4_infra),
.clk_spi_host2_i (clkmgr_aon_clocks.clk_io_infra),
.clk_ml_i (clkmgr_aon_clocks.clk_ml_infra),
.clk_video_i (clkmgr_aon_clocks.clk_video_infra),
.clk_audio_i (clkmgr_aon_clocks.clk_audio_infra),
.clk_main_i (clkmgr_aon_clocks.clk_main_infra),
.rst_smc_ni (rstmgr_aon_resets.rst_smc_n[rstmgr_pkg::Domain0Sel]),
.rst_peri_ni (rstmgr_aon_resets.rst_lc_io_div4_n[rstmgr_pkg::Domain0Sel]),
.rst_spi_host2_ni (rstmgr_aon_resets.rst_lc_io_n[rstmgr_pkg::Domain0Sel]),
.rst_ml_ni (rstmgr_aon_resets.rst_ml_n[rstmgr_pkg::Domain0Sel]),
.rst_video_ni (rstmgr_aon_resets.rst_video_n[rstmgr_pkg::Domain0Sel]),
.rst_audio_ni (rstmgr_aon_resets.rst_audio_n[rstmgr_pkg::Domain0Sel]),
.rst_main_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
// port: tl_main
.tl_main_i(main_tl_smc_req),
.tl_main_o(main_tl_smc_rsp),
// port: tl_rv_core_ibex_smc__corei
.tl_rv_core_ibex_smc__corei_i(smc_tl_rv_core_ibex_smc__corei_req),
.tl_rv_core_ibex_smc__corei_o(smc_tl_rv_core_ibex_smc__corei_rsp),
// port: tl_rv_core_ibex_smc__cored
.tl_rv_core_ibex_smc__cored_i(smc_tl_rv_core_ibex_smc__cored_req),
.tl_rv_core_ibex_smc__cored_o(smc_tl_rv_core_ibex_smc__cored_rsp),
// port: tl_dma_smc__reader
.tl_dma_smc__reader_i(smc_tl_dma_smc__reader_req),
.tl_dma_smc__reader_o(smc_tl_dma_smc__reader_rsp),
// port: tl_dma_smc__writer
.tl_dma_smc__writer_i(smc_tl_dma_smc__writer_req),
.tl_dma_smc__writer_o(smc_tl_dma_smc__writer_rsp),
// port: tl_rv_plic_smc
.tl_rv_plic_smc_o(rv_plic_smc_tl_req),
.tl_rv_plic_smc_i(rv_plic_smc_tl_rsp),
// port: tl_rv_core_ibex_smc__cfg
.tl_rv_core_ibex_smc__cfg_o(rv_core_ibex_smc_cfg_tl_d_req),
.tl_rv_core_ibex_smc__cfg_i(rv_core_ibex_smc_cfg_tl_d_rsp),
// port: tl_ram_smc
.tl_ram_smc_o(ram_smc_tl_req),
.tl_ram_smc_i(ram_smc_tl_rsp),
// port: tl_smc_uart
.tl_smc_uart_o(smc_uart_tl_req),
.tl_smc_uart_i(smc_uart_tl_rsp),
// port: tl_rv_timer_smc
.tl_rv_timer_smc_o(rv_timer_smc_tl_req),
.tl_rv_timer_smc_i(rv_timer_smc_tl_rsp),
// port: tl_tlul_mailbox_smc
.tl_tlul_mailbox_smc_o(tlul_mailbox_smc_tl_req),
.tl_tlul_mailbox_smc_i(tlul_mailbox_smc_tl_rsp),
// port: tl_smc_ctrl
.tl_smc_ctrl_o(smc_ctrl_tl_req),
.tl_smc_ctrl_i(smc_ctrl_tl_rsp),
// port: tl_cam_i2c
.tl_cam_i2c_o(cam_i2c_tl_req),
.tl_cam_i2c_i(cam_i2c_tl_rsp),
// port: tl_cam_ctrl
.tl_cam_ctrl_o(cam_ctrl_tl_req),
.tl_cam_ctrl_i(cam_ctrl_tl_rsp),
// port: tl_ml_top__dmem
.tl_ml_top__dmem_o(ml_top_dmem_tl_req),
.tl_ml_top__dmem_i(ml_top_dmem_tl_rsp),
// port: tl_ml_top__core
.tl_ml_top__core_o(ml_top_core_tl_req),
.tl_ml_top__core_i(ml_top_core_tl_rsp),
// port: tl_isp_wrapper
.tl_isp_wrapper_o(isp_wrapper_tl_req),
.tl_isp_wrapper_i(isp_wrapper_tl_rsp),
// port: tl_dma_smc
.tl_dma_smc_o(dma_smc_tl_d_req),
.tl_dma_smc_i(dma_smc_tl_d_rsp),
// port: tl_spi_host2
.tl_spi_host2_o(spi_host2_tl_req),
.tl_spi_host2_i(spi_host2_tl_rsp),
// port: tl_dbg
.tl_dbg_o(smc_tl_dbg_req),
.tl_dbg_i(smc_tl_dbg_rsp),
// port: tl_rv_timer_smc2
.tl_rv_timer_smc2_o(rv_timer_smc2_tl_req),
.tl_rv_timer_smc2_i(rv_timer_smc2_tl_rsp),
// port: tl_i2s0
.tl_i2s0_o(i2s0_tl_req),
.tl_i2s0_i(i2s0_tl_rsp),
.scanmode_i
);
xbar_dbg u_xbar_dbg (
.clk_main_i (clkmgr_aon_clocks.clk_main_infra),
.rst_main_ni (rstmgr_aon_resets.rst_lc_n[rstmgr_pkg::Domain0Sel]),
// port: tl_main
.tl_main_i(main_tl_dbg_req),
.tl_main_o(main_tl_dbg_rsp),
// port: tl_smc
.tl_smc_i(smc_tl_dbg_req),
.tl_smc_o(smc_tl_dbg_rsp),
// port: tl_rv_dm__regs
.tl_rv_dm__regs_o(rv_dm_regs_tl_d_req),
.tl_rv_dm__regs_i(rv_dm_regs_tl_d_rsp),
// port: tl_rv_dm__mem
.tl_rv_dm__mem_o(rv_dm_mem_tl_d_req),
.tl_rv_dm__mem_i(rv_dm_mem_tl_d_rsp),
.scanmode_i
);
// Pinmux connections
// All muxed inputs
assign cio_gpio_gpio_p2d[0] = mio_p2d[MioInGpioGpio0];
assign cio_gpio_gpio_p2d[1] = mio_p2d[MioInGpioGpio1];
assign cio_gpio_gpio_p2d[2] = mio_p2d[MioInGpioGpio2];
assign cio_gpio_gpio_p2d[3] = mio_p2d[MioInGpioGpio3];
assign cio_gpio_gpio_p2d[4] = mio_p2d[MioInGpioGpio4];
assign cio_gpio_gpio_p2d[5] = mio_p2d[MioInGpioGpio5];
assign cio_gpio_gpio_p2d[6] = mio_p2d[MioInGpioGpio6];
assign cio_gpio_gpio_p2d[7] = mio_p2d[MioInGpioGpio7];
assign cio_gpio_gpio_p2d[8] = mio_p2d[MioInGpioGpio8];
assign cio_gpio_gpio_p2d[9] = mio_p2d[MioInGpioGpio9];
assign cio_gpio_gpio_p2d[10] = mio_p2d[MioInGpioGpio10];
assign cio_gpio_gpio_p2d[11] = mio_p2d[MioInGpioGpio11];
assign cio_gpio_gpio_p2d[12] = mio_p2d[MioInGpioGpio12];
assign cio_gpio_gpio_p2d[13] = mio_p2d[MioInGpioGpio13];
assign cio_gpio_gpio_p2d[14] = mio_p2d[MioInGpioGpio14];
assign cio_gpio_gpio_p2d[15] = mio_p2d[MioInGpioGpio15];
assign cio_gpio_gpio_p2d[16] = mio_p2d[MioInGpioGpio16];
assign cio_gpio_gpio_p2d[17] = mio_p2d[MioInGpioGpio17];
assign cio_gpio_gpio_p2d[18] = mio_p2d[MioInGpioGpio18];
assign cio_gpio_gpio_p2d[19] = mio_p2d[MioInGpioGpio19];
assign cio_gpio_gpio_p2d[20] = mio_p2d[MioInGpioGpio20];
assign cio_gpio_gpio_p2d[21] = mio_p2d[MioInGpioGpio21];
assign cio_gpio_gpio_p2d[22] = mio_p2d[MioInGpioGpio22];
assign cio_gpio_gpio_p2d[23] = mio_p2d[MioInGpioGpio23];
assign cio_gpio_gpio_p2d[24] = mio_p2d[MioInGpioGpio24];
assign cio_gpio_gpio_p2d[25] = mio_p2d[MioInGpioGpio25];
assign cio_gpio_gpio_p2d[26] = mio_p2d[MioInGpioGpio26];
assign cio_gpio_gpio_p2d[27] = mio_p2d[MioInGpioGpio27];
assign cio_gpio_gpio_p2d[28] = mio_p2d[MioInGpioGpio28];
assign cio_gpio_gpio_p2d[29] = mio_p2d[MioInGpioGpio29];
assign cio_gpio_gpio_p2d[30] = mio_p2d[MioInGpioGpio30];
assign cio_gpio_gpio_p2d[31] = mio_p2d[MioInGpioGpio31];
assign cio_i2c0_sda_p2d = mio_p2d[MioInI2c0Sda];
assign cio_i2c0_scl_p2d = mio_p2d[MioInI2c0Scl];
assign cio_i2c1_sda_p2d = mio_p2d[MioInI2c1Sda];
assign cio_i2c1_scl_p2d = mio_p2d[MioInI2c1Scl];
assign cio_i2c2_sda_p2d = mio_p2d[MioInI2c2Sda];
assign cio_i2c2_scl_p2d = mio_p2d[MioInI2c2Scl];
assign cio_cam_i2c_sda_p2d = mio_p2d[MioInCamI2cSda];
assign cio_cam_i2c_scl_p2d = mio_p2d[MioInCamI2cScl];
assign cio_spi_host1_sd_p2d[0] = mio_p2d[MioInSpiHost1Sd0];
assign cio_spi_host1_sd_p2d[1] = mio_p2d[MioInSpiHost1Sd1];
assign cio_spi_host1_sd_p2d[2] = mio_p2d[MioInSpiHost1Sd2];
assign cio_spi_host1_sd_p2d[3] = mio_p2d[MioInSpiHost1Sd3];
assign cio_spi_host2_sd_p2d[0] = mio_p2d[MioInSpiHost2Sd0];
assign cio_spi_host2_sd_p2d[1] = mio_p2d[MioInSpiHost2Sd1];
assign cio_spi_host2_sd_p2d[2] = mio_p2d[MioInSpiHost2Sd2];
assign cio_spi_host2_sd_p2d[3] = mio_p2d[MioInSpiHost2Sd3];
assign cio_uart0_rx_p2d = mio_p2d[MioInUart0Rx];
assign cio_uart1_rx_p2d = mio_p2d[MioInUart1Rx];
assign cio_uart2_rx_p2d = mio_p2d[MioInUart2Rx];
assign cio_smc_uart_rx_p2d = mio_p2d[MioInSmcUartRx];
assign cio_cam_ctrl_cam_int_p2d = mio_p2d[MioInCamCtrlCamInt];
assign cio_isp_wrapper_s_pclk_p2d = mio_p2d[MioInIspWrapperSPclk];
assign cio_isp_wrapper_s_data_p2d[0] = mio_p2d[MioInIspWrapperSData0];
assign cio_isp_wrapper_s_data_p2d[1] = mio_p2d[MioInIspWrapperSData1];
assign cio_isp_wrapper_s_data_p2d[2] = mio_p2d[MioInIspWrapperSData2];
assign cio_isp_wrapper_s_data_p2d[3] = mio_p2d[MioInIspWrapperSData3];
assign cio_isp_wrapper_s_data_p2d[4] = mio_p2d[MioInIspWrapperSData4];
assign cio_isp_wrapper_s_data_p2d[5] = mio_p2d[MioInIspWrapperSData5];
assign cio_isp_wrapper_s_data_p2d[6] = mio_p2d[MioInIspWrapperSData6];
assign cio_isp_wrapper_s_data_p2d[7] = mio_p2d[MioInIspWrapperSData7];
assign cio_isp_wrapper_s_hsync_p2d = mio_p2d[MioInIspWrapperSHsync];
assign cio_isp_wrapper_s_vsync_p2d = mio_p2d[MioInIspWrapperSVsync];
assign cio_i2s0_rx_sd_p2d = mio_p2d[MioInI2s0RxSd];
assign cio_spi_device_tpm_csb_p2d = mio_p2d[MioInSpiDeviceTpmCsb];
assign cio_flash_ctrl_tck_p2d = mio_p2d[MioInFlashCtrlTck];
assign cio_flash_ctrl_tms_p2d = mio_p2d[MioInFlashCtrlTms];
assign cio_flash_ctrl_tdi_p2d = mio_p2d[MioInFlashCtrlTdi];
assign cio_sysrst_ctrl_aon_ac_present_p2d = mio_p2d[MioInSysrstCtrlAonAcPresent];
assign cio_sysrst_ctrl_aon_key0_in_p2d = mio_p2d[MioInSysrstCtrlAonKey0In];
assign cio_sysrst_ctrl_aon_key1_in_p2d = mio_p2d[MioInSysrstCtrlAonKey1In];
assign cio_sysrst_ctrl_aon_key2_in_p2d = mio_p2d[MioInSysrstCtrlAonKey2In];
assign cio_sysrst_ctrl_aon_pwrb_in_p2d = mio_p2d[MioInSysrstCtrlAonPwrbIn];
assign cio_sysrst_ctrl_aon_lid_open_p2d = mio_p2d[MioInSysrstCtrlAonLidOpen];
assign cio_usbdev_sense_p2d = mio_p2d[MioInUsbdevSense];
// All muxed outputs
assign mio_d2p[MioOutGpioGpio0] = cio_gpio_gpio_d2p[0];
assign mio_d2p[MioOutGpioGpio1] = cio_gpio_gpio_d2p[1];
assign mio_d2p[MioOutGpioGpio2] = cio_gpio_gpio_d2p[2];
assign mio_d2p[MioOutGpioGpio3] = cio_gpio_gpio_d2p[3];
assign mio_d2p[MioOutGpioGpio4] = cio_gpio_gpio_d2p[4];
assign mio_d2p[MioOutGpioGpio5] = cio_gpio_gpio_d2p[5];
assign mio_d2p[MioOutGpioGpio6] = cio_gpio_gpio_d2p[6];
assign mio_d2p[MioOutGpioGpio7] = cio_gpio_gpio_d2p[7];
assign mio_d2p[MioOutGpioGpio8] = cio_gpio_gpio_d2p[8];
assign mio_d2p[MioOutGpioGpio9] = cio_gpio_gpio_d2p[9];
assign mio_d2p[MioOutGpioGpio10] = cio_gpio_gpio_d2p[10];
assign mio_d2p[MioOutGpioGpio11] = cio_gpio_gpio_d2p[11];
assign mio_d2p[MioOutGpioGpio12] = cio_gpio_gpio_d2p[12];
assign mio_d2p[MioOutGpioGpio13] = cio_gpio_gpio_d2p[13];
assign mio_d2p[MioOutGpioGpio14] = cio_gpio_gpio_d2p[14];
assign mio_d2p[MioOutGpioGpio15] = cio_gpio_gpio_d2p[15];
assign mio_d2p[MioOutGpioGpio16] = cio_gpio_gpio_d2p[16];
assign mio_d2p[MioOutGpioGpio17] = cio_gpio_gpio_d2p[17];
assign mio_d2p[MioOutGpioGpio18] = cio_gpio_gpio_d2p[18];
assign mio_d2p[MioOutGpioGpio19] = cio_gpio_gpio_d2p[19];
assign mio_d2p[MioOutGpioGpio20] = cio_gpio_gpio_d2p[20];
assign mio_d2p[MioOutGpioGpio21] = cio_gpio_gpio_d2p[21];
assign mio_d2p[MioOutGpioGpio22] = cio_gpio_gpio_d2p[22];
assign mio_d2p[MioOutGpioGpio23] = cio_gpio_gpio_d2p[23];
assign mio_d2p[MioOutGpioGpio24] = cio_gpio_gpio_d2p[24];
assign mio_d2p[MioOutGpioGpio25] = cio_gpio_gpio_d2p[25];
assign mio_d2p[MioOutGpioGpio26] = cio_gpio_gpio_d2p[26];
assign mio_d2p[MioOutGpioGpio27] = cio_gpio_gpio_d2p[27];
assign mio_d2p[MioOutGpioGpio28] = cio_gpio_gpio_d2p[28];
assign mio_d2p[MioOutGpioGpio29] = cio_gpio_gpio_d2p[29];
assign mio_d2p[MioOutGpioGpio30] = cio_gpio_gpio_d2p[30];
assign mio_d2p[MioOutGpioGpio31] = cio_gpio_gpio_d2p[31];
assign mio_d2p[MioOutI2c0Sda] = cio_i2c0_sda_d2p;
assign mio_d2p[MioOutI2c0Scl] = cio_i2c0_scl_d2p;
assign mio_d2p[MioOutI2c1Sda] = cio_i2c1_sda_d2p;
assign mio_d2p[MioOutI2c1Scl] = cio_i2c1_scl_d2p;
assign mio_d2p[MioOutI2c2Sda] = cio_i2c2_sda_d2p;
assign mio_d2p[MioOutI2c2Scl] = cio_i2c2_scl_d2p;
assign mio_d2p[MioOutCamI2cSda] = cio_cam_i2c_sda_d2p;
assign mio_d2p[MioOutCamI2cScl] = cio_cam_i2c_scl_d2p;
assign mio_d2p[MioOutSpiHost1Sd0] = cio_spi_host1_sd_d2p[0];
assign mio_d2p[MioOutSpiHost1Sd1] = cio_spi_host1_sd_d2p[1];
assign mio_d2p[MioOutSpiHost1Sd2] = cio_spi_host1_sd_d2p[2];
assign mio_d2p[MioOutSpiHost1Sd3] = cio_spi_host1_sd_d2p[3];
assign mio_d2p[MioOutSpiHost2Sd0] = cio_spi_host2_sd_d2p[0];
assign mio_d2p[MioOutSpiHost2Sd1] = cio_spi_host2_sd_d2p[1];
assign mio_d2p[MioOutSpiHost2Sd2] = cio_spi_host2_sd_d2p[2];
assign mio_d2p[MioOutSpiHost2Sd3] = cio_spi_host2_sd_d2p[3];
assign mio_d2p[MioOutUart0Tx] = cio_uart0_tx_d2p;
assign mio_d2p[MioOutUart1Tx] = cio_uart1_tx_d2p;
assign mio_d2p[MioOutUart2Tx] = cio_uart2_tx_d2p;
assign mio_d2p[MioOutSmcUartTx] = cio_smc_uart_tx_d2p;
assign mio_d2p[MioOutCamCtrlCamTrig] = cio_cam_ctrl_cam_trig_d2p;
assign mio_d2p[MioOutI2s0RxSclk] = cio_i2s0_rx_sclk_d2p;
assign mio_d2p[MioOutI2s0RxWs] = cio_i2s0_rx_ws_d2p;
assign mio_d2p[MioOutI2s0TxSclk] = cio_i2s0_tx_sclk_d2p;
assign mio_d2p[MioOutI2s0TxWs] = cio_i2s0_tx_ws_d2p;
assign mio_d2p[MioOutI2s0TxSd] = cio_i2s0_tx_sd_d2p;
assign mio_d2p[MioOutPattgenPda0Tx] = cio_pattgen_pda0_tx_d2p;
assign mio_d2p[MioOutPattgenPcl0Tx] = cio_pattgen_pcl0_tx_d2p;
assign mio_d2p[MioOutPattgenPda1Tx] = cio_pattgen_pda1_tx_d2p;
assign mio_d2p[MioOutPattgenPcl1Tx] = cio_pattgen_pcl1_tx_d2p;
assign mio_d2p[MioOutSpiHost1Sck] = cio_spi_host1_sck_d2p;
assign mio_d2p[MioOutSpiHost1Csb] = cio_spi_host1_csb_d2p;
assign mio_d2p[MioOutSpiHost2Sck] = cio_spi_host2_sck_d2p;
assign mio_d2p[MioOutSpiHost2Csb] = cio_spi_host2_csb_d2p;
assign mio_d2p[MioOutFlashCtrlTdo] = cio_flash_ctrl_tdo_d2p;
assign mio_d2p[MioOutSensorCtrlAstDebugOut0] = cio_sensor_ctrl_ast_debug_out_d2p[0];
assign mio_d2p[MioOutSensorCtrlAstDebugOut1] = cio_sensor_ctrl_ast_debug_out_d2p[1];
assign mio_d2p[MioOutSensorCtrlAstDebugOut2] = cio_sensor_ctrl_ast_debug_out_d2p[2];
assign mio_d2p[MioOutSensorCtrlAstDebugOut3] = cio_sensor_ctrl_ast_debug_out_d2p[3];
assign mio_d2p[MioOutSensorCtrlAstDebugOut4] = cio_sensor_ctrl_ast_debug_out_d2p[4];
assign mio_d2p[MioOutSensorCtrlAstDebugOut5] = cio_sensor_ctrl_ast_debug_out_d2p[5];
assign mio_d2p[MioOutSensorCtrlAstDebugOut6] = cio_sensor_ctrl_ast_debug_out_d2p[6];