// system_intel_niosv_g_0_intel_niosv_g_220_gh3gc4q.v

// This file was auto-generated from intel_niosv_g_hw.tcl.  If you edit it your changes
// will probably be lost.
// 
// Generated using ACDS version 24.1 115

`timescale 1 ps / 1 ps
module system_intel_niosv_g_0_intel_niosv_g_220_gh3gc4q (
		input  wire        clk,                          //                 clk.clk,           Clock Input
		input  wire        reset_reset,                  //               reset.reset,         Reset Input
		input  wire [15:0] platform_irq_rx_irq,          //     platform_irq_rx.irq,           Level-sensitive interrupt request lines.
		output wire [31:0] instruction_manager_awaddr,   // instruction_manager.awaddr,        Write Address Channel -- Write Address. This is unused.
		output wire [7:0]  instruction_manager_awlen,    //                    .awlen,         Write Address Channel -- Burst Length. This is unused.
		output wire [2:0]  instruction_manager_awsize,   //                    .awsize,        Write Address Channel -- Burst Size. This is unused.
		output wire [1:0]  instruction_manager_awburst,  //                    .awburst,       Write Address Channel -- Burst Type. This is unused.
		output wire [2:0]  instruction_manager_awprot,   //                    .awprot,        Write Address Channel -- Protection Type. This is unused.
		output wire        instruction_manager_awvalid,  //                    .awvalid,       Write Address Channel -- Write Address Valid. This is unused.
		input  wire        instruction_manager_awready,  //                    .awready,       Write Address Channel -- Write Address Ready. This is unused.
		output wire [31:0] instruction_manager_wdata,    //                    .wdata,         Write Data Channel -- Write Data. This is unused.
		output wire [3:0]  instruction_manager_wstrb,    //                    .wstrb,         Write Data Channel -- Write Strobes. This is unused.
		output wire        instruction_manager_wlast,    //                    .wlast,         Write Data Channel -- Write Last. This is unused.
		output wire        instruction_manager_wvalid,   //                    .wvalid,        Write Data Channel -- Write Valid. This is unused.
		input  wire        instruction_manager_wready,   //                    .wready,        Write Data Channel -- Write Ready. This is unused.
		input  wire [1:0]  instruction_manager_bresp,    //                    .bresp,         Write Response Channel -- Write Response. This is unused.
		input  wire        instruction_manager_bvalid,   //                    .bvalid,        Write Response Channel -- Write Response Valid. This is unused.
		output wire        instruction_manager_bready,   //                    .bready,        Write Response Channel -- Write Response Ready. This is unused.
		output wire [31:0] instruction_manager_araddr,   //                    .araddr,        Read Address Channel -- Read Address. Instruction address (program counter).
		output wire [7:0]  instruction_manager_arlen,    //                    .arlen,         Read Address Channel -- Burst Length. 0 for peripheral region access, 7 for cacheable region access.
		output wire [2:0]  instruction_manager_arsize,   //                    .arsize,        Read Address Channel -- Burst Size. This is tied to 2 (4 byte burst size).
		output wire [1:0]  instruction_manager_arburst,  //                    .arburst,       Read Address Channel -- Burst Type. This is tied to 2 (WRAP burst type).
		output wire [2:0]  instruction_manager_arprot,   //                    .arprot,        Read Address Channel -- Protection Type. This is unused.
		output wire        instruction_manager_arvalid,  //                    .arvalid,       Read Address Channel -- Read Address Valid. Instruction address valid.
		input  wire        instruction_manager_arready,  //                    .arready,       Read Address Channel -- Read Address Ready. Instruction address ready (from memory).
		input  wire [31:0] instruction_manager_rdata,    //                    .rdata,         Read Data Channel -- Read Data. Instruction word.
		input  wire [1:0]  instruction_manager_rresp,    //                    .rresp,         Read Data Channel -- Read Response. Instruction response. A non-zero value indicates an instruction access fault exception.
		input  wire        instruction_manager_rlast,    //                    .rlast,         Read Data Channel -- Read Last. Last transfer in the read burst.
		input  wire        instruction_manager_rvalid,   //                    .rvalid,        Read Data Channel -- Read Valid. Instruction valid.
		output wire        instruction_manager_rready,   //                    .rready,        Read Data Channel -- Read Ready. This is tied high since the core is always ready to receive an instruction.
		output wire [31:0] data_manager_awaddr,          //        data_manager.awaddr,        Write Address Channel -- Write Address. Store address.
		output wire [7:0]  data_manager_awlen,           //                    .awlen,         Write Address Channel -- Burst Length. 0 for peripheral region access, 7 for cacheable region access.
		output wire [2:0]  data_manager_awsize,          //                    .awsize,        Write Address Channel -- Burst Size. Store size (SB, SH, or SW).
		output wire [2:0]  data_manager_awprot,          //                    .awprot,        Write Address Channel -- Protection Type. This is unused.
		output wire        data_manager_awvalid,         //                    .awvalid,       Write Address Channel -- Write Address Valid. Store address valid.
		input  wire        data_manager_awready,         //                    .awready,       Write Address Channel -- Write Address Ready. Store address ready (from memory).
		output wire [31:0] data_manager_wdata,           //                    .wdata,         Write Data Channel -- Write Data. Store data.
		output wire [3:0]  data_manager_wstrb,           //                    .wstrb,         Write Data Channel -- Write Strobes. Byte position in word.
		output wire        data_manager_wlast,           //                    .wlast,         Write Data Channel -- Write Last. Last transfer in the write burst.
		output wire        data_manager_wvalid,          //                    .wvalid,        Write Data Channel -- Write Valid. Store data valid.
		input  wire        data_manager_wready,          //                    .wready,        Write Data Channel -- Write Ready. Store data ready (from memory).
		input  wire [1:0]  data_manager_bresp,           //                    .bresp,         Write Response Channel -- Write Response. Store response. A non-zero value indicates a store access fault exception.
		input  wire        data_manager_bvalid,          //                    .bvalid,        Write Response Channel -- Write Response Valid. Store response valid.
		output wire        data_manager_bready,          //                    .bready,        Write Response Channel -- Write Response Ready. This is tied high since the core is always ready to receive a store response.
		output wire [31:0] data_manager_araddr,          //                    .araddr,        Read Address Channel -- Read Address. Load address.
		output wire [7:0]  data_manager_arlen,           //                    .arlen,         Read Address Channel -- Burst Length. 0 for peripheral region access, 7 for cacheable region access.
		output wire [2:0]  data_manager_arsize,          //                    .arsize,        Read Address Channel -- Burst Size. Load size (LB, LH, or LW).
		output wire [2:0]  data_manager_arprot,          //                    .arprot,        Read Address Channel -- Protection Type. This is unused.
		output wire        data_manager_arvalid,         //                    .arvalid,       Read Address Channel -- Read Address Valid. Load address valid.
		input  wire        data_manager_arready,         //                    .arready,       Read Address Channel -- Read Address Ready. Load address ready (from agents).
		input  wire [31:0] data_manager_rdata,           //                    .rdata,         Read Data Channel -- Read Data. Load data.
		input  wire [1:0]  data_manager_rresp,           //                    .rresp,         Read Data Channel -- Read Response. Load response. A non-zero value indicates a load access fault exception.
		input  wire        data_manager_rlast,           //                    .rlast,         Read Data Channel -- Read Last. Last transfer in the read burst.
		input  wire        data_manager_rvalid,          //                    .rvalid,        Read Data Channel -- Read Valid. Load data valid.
		output wire        data_manager_rready,          //                    .rready,        Read Data Channel -- Read Ready. This is tied high since the core is always ready to receive the load data.
		input  wire [5:0]  timer_sw_agent_address,       //      timer_sw_agent.address,       The address in the Timer and Software Interrupt Module that the core wants to write to or read from. This is relative to the Timer and Software Interrupt Module base address.
		input  wire [3:0]  timer_sw_agent_byteenable,    //                    .byteenable,    Store byte enable.
		input  wire        timer_sw_agent_read,          //                    .read,          Indicates if the core wants to load from "timer_sw_agent_address" in the Timer and Software Interrupt Module.
		output wire [31:0] timer_sw_agent_readdata,      //                    .readdata,      Load data from the Timer and Software Interrupt Module sent to the core.
		input  wire        timer_sw_agent_write,         //                    .write,         Indicates if the core wants to store to "timer_sw_agent_address" in the Timer and Software Interrupt Module.
		input  wire [31:0] timer_sw_agent_writedata,     //                    .writedata,     Store data to the Timer and Software Interrupt Module sent from the core.
		output wire        timer_sw_agent_waitrequest,   //                    .waitrequest,   Timer and Software Interrupt Module not ready to receive write or read request from the core.
		output wire        timer_sw_agent_readdatavalid, //                    .readdatavalid, Load data valid.
		input  wire [15:0] dm_agent_address,             //            dm_agent.address,       The address in the Debug Module that the core wants to write to or read from. This is relative to the Debug Module base address.
		input  wire        dm_agent_read,                //                    .read,          Indicates if the core wants to load from "dm_agent_address" in the Debug Module.
		output wire [31:0] dm_agent_readdata,            //                    .readdata,      Load data from the Debug Module sent to the core.
		input  wire        dm_agent_write,               //                    .write,         Indicates if the core wants to store to "dm_agent_address" in the Debug Module.
		input  wire [31:0] dm_agent_writedata,           //                    .writedata,     Store data to the Debug Module sent from the core.
		output wire        dm_agent_waitrequest,         //                    .waitrequest,   Debug Module not ready to receive write or read request from the core.
		output wire        dm_agent_readdatavalid        //                    .readdatavalid, Load data valid.
	);

	wire    irq_mapper_receiver0_irq;     // dbg_mod:dbg_irq -> irq_mapper:receiver0_irq
	wire    hart_debug_irq_rx_irq;        // irq_mapper:sender_irq -> hart:irq_debug
	wire    irq_mapper_001_receiver0_irq; // timer_module:timer_irq -> irq_mapper_001:receiver0_irq
	wire    hart_timer_irq_rx_irq;        // irq_mapper_001:sender_irq -> hart:irq_timer
	wire    irq_mapper_002_receiver0_irq; // timer_module:sw_irq -> irq_mapper_002:receiver0_irq
	wire    hart_sw_irq_rx_irq;           // irq_mapper_002:sender_irq -> hart:irq_sw

	system_intel_niosv_g_0_intel_niosv_g_unit_220_vscsbvy #(
		.RESET_VECTOR             (32'b00000000000000000000000000000000),
		.DBG_EXPN_VECTOR          (32'b00000000000010000000000000000000),
		.HARTID                   (32'b00000000000000000000000000000000),
		.CORE_EXTN                (4352),
		.DEBUG_ENABLED            (1),
		.DEVICE_FAMILY            ("Agilex 5"),
		.USE_RESET_REQ            (0),
		.ECC_EN                   (0),
		.DATA_CACHE_SIZE          (4096),
		.INST_CACHE_SIZE          (4096),
		.ITCM1_SIZE               (0),
		.ITCM1_BASE               (32'b00000000000000000000000000000000),
		.ITCM1_INIT_FILE          (""),
		.ITCM2_SIZE               (0),
		.ITCM2_BASE               (32'b00000000000000000000000000000000),
		.ITCM2_INIT_FILE          (""),
		.PERIPHERAL_REGION_A_SIZE (65536),
		.PERIPHERAL_REGION_A_BASE (32'b00000000000000000000000000000000),
		.PERIPHERAL_REGION_B_SIZE (0),
		.PERIPHERAL_REGION_B_BASE (32'b00000000000000000000000000000000),
		.DBG_DATA_S_BASE          (32'b00000000000010000000000000000000),
		.TIMER_MSIP_DATA_S_BASE   (32'b00000000000010010000000000000000),
		.DTCM1_SIZE               (0),
		.DTCM1_BASE               (32'b00000000000000000000000000000000),
		.DTCM1_INIT_FILE          (""),
		.DTCM2_SIZE               (0),
		.DTCM2_BASE               (32'b00000000000000000000000000000000),
		.DTCM2_INIT_FILE          (""),
		.ITCS1_ADDR_WIDTH         (10),
		.ITCS2_ADDR_WIDTH         (10),
		.DTCS1_ADDR_WIDTH         (10),
		.DTCS2_ADDR_WIDTH         (10)
	) hart (
		.clk             (clk),                                  //   input,   width = 1,             cpu_clk.clk
		.reset           (reset_reset),                          //   input,   width = 1,           cpu_reset.reset
		.core_ecc_status (),                                     //  output,   width = 2,      cpu_ecc_status.ecc_status
		.core_ecc_src    (),                                     //  output,   width = 4,                    .ecc_source
		.irq_plat_vec    (platform_irq_rx_irq),                  //   input,  width = 16,     platform_irq_rx.irq
		.irq_debug       (hart_debug_irq_rx_irq),                //   input,   width = 1,        debug_irq_rx.irq
		.irq_timer       (hart_timer_irq_rx_irq),                //   input,   width = 1,        timer_irq_rx.irq
		.irq_sw          (hart_sw_irq_rx_irq),                   //   input,   width = 1,           sw_irq_rx.irq
		.instr_awaddr    (instruction_manager_awaddr),           //  output,  width = 32, instruction_manager.awaddr
		.instr_awlen     (instruction_manager_awlen),            //  output,   width = 8,                    .awlen
		.instr_awsize    (instruction_manager_awsize),           //  output,   width = 3,                    .awsize
		.instr_awburst   (instruction_manager_awburst),          //  output,   width = 2,                    .awburst
		.instr_awprot    (instruction_manager_awprot),           //  output,   width = 3,                    .awprot
		.instr_awvalid   (instruction_manager_awvalid),          //  output,   width = 1,                    .awvalid
		.instr_awready   (instruction_manager_awready),          //   input,   width = 1,                    .awready
		.instr_wdata     (instruction_manager_wdata),            //  output,  width = 32,                    .wdata
		.instr_wstrb     (instruction_manager_wstrb),            //  output,   width = 4,                    .wstrb
		.instr_wlast     (instruction_manager_wlast),            //  output,   width = 1,                    .wlast
		.instr_wvalid    (instruction_manager_wvalid),           //  output,   width = 1,                    .wvalid
		.instr_wready    (instruction_manager_wready),           //   input,   width = 1,                    .wready
		.instr_bresp     (instruction_manager_bresp),            //   input,   width = 2,                    .bresp
		.instr_bvalid    (instruction_manager_bvalid),           //   input,   width = 1,                    .bvalid
		.instr_bready    (instruction_manager_bready),           //  output,   width = 1,                    .bready
		.instr_araddr    (instruction_manager_araddr),           //  output,  width = 32,                    .araddr
		.instr_arlen     (instruction_manager_arlen),            //  output,   width = 8,                    .arlen
		.instr_arsize    (instruction_manager_arsize),           //  output,   width = 3,                    .arsize
		.instr_arburst   (instruction_manager_arburst),          //  output,   width = 2,                    .arburst
		.instr_arprot    (instruction_manager_arprot),           //  output,   width = 3,                    .arprot
		.instr_arvalid   (instruction_manager_arvalid),          //  output,   width = 1,                    .arvalid
		.instr_arready   (instruction_manager_arready),          //   input,   width = 1,                    .arready
		.instr_rdata     (instruction_manager_rdata),            //   input,  width = 32,                    .rdata
		.instr_rresp     (instruction_manager_rresp),            //   input,   width = 2,                    .rresp
		.instr_rlast     (instruction_manager_rlast),            //   input,   width = 1,                    .rlast
		.instr_rvalid    (instruction_manager_rvalid),           //   input,   width = 1,                    .rvalid
		.instr_rready    (instruction_manager_rready),           //  output,   width = 1,                    .rready
		.data_awaddr     (data_manager_awaddr),                  //  output,  width = 32,        data_manager.awaddr
		.data_awlen      (data_manager_awlen),                   //  output,   width = 8,                    .awlen
		.data_awsize     (data_manager_awsize),                  //  output,   width = 3,                    .awsize
		.data_awprot     (data_manager_awprot),                  //  output,   width = 3,                    .awprot
		.data_awvalid    (data_manager_awvalid),                 //  output,   width = 1,                    .awvalid
		.data_awready    (data_manager_awready),                 //   input,   width = 1,                    .awready
		.data_wdata      (data_manager_wdata),                   //  output,  width = 32,                    .wdata
		.data_wstrb      (data_manager_wstrb),                   //  output,   width = 4,                    .wstrb
		.data_wlast      (data_manager_wlast),                   //  output,   width = 1,                    .wlast
		.data_wvalid     (data_manager_wvalid),                  //  output,   width = 1,                    .wvalid
		.data_wready     (data_manager_wready),                  //   input,   width = 1,                    .wready
		.data_bresp      (data_manager_bresp),                   //   input,   width = 2,                    .bresp
		.data_bvalid     (data_manager_bvalid),                  //   input,   width = 1,                    .bvalid
		.data_bready     (data_manager_bready),                  //  output,   width = 1,                    .bready
		.data_araddr     (data_manager_araddr),                  //  output,  width = 32,                    .araddr
		.data_arlen      (data_manager_arlen),                   //  output,   width = 8,                    .arlen
		.data_arsize     (data_manager_arsize),                  //  output,   width = 3,                    .arsize
		.data_arprot     (data_manager_arprot),                  //  output,   width = 3,                    .arprot
		.data_arvalid    (data_manager_arvalid),                 //  output,   width = 1,                    .arvalid
		.data_arready    (data_manager_arready),                 //   input,   width = 1,                    .arready
		.data_rdata      (data_manager_rdata),                   //   input,  width = 32,                    .rdata
		.data_rresp      (data_manager_rresp),                   //   input,   width = 2,                    .rresp
		.data_rlast      (data_manager_rlast),                   //   input,   width = 1,                    .rlast
		.data_rvalid     (data_manager_rvalid),                  //   input,   width = 1,                    .rvalid
		.data_rready     (data_manager_rready),                  //  output,   width = 1,                    .rready
		.reset_req       (1'b0),                                 // (terminated),                                  
		.reset_req_ack   (),                                     // (terminated),                                  
		.itcs1_awaddr    (10'b0000000000),                       // (terminated),                                  
		.itcs1_awprot    (3'b000),                               // (terminated),                                  
		.itcs1_awvalid   (1'b0),                                 // (terminated),                                  
		.itcs1_awready   (),                                     // (terminated),                                  
		.itcs1_wdata     (32'b00000000000000000000000000000000), // (terminated),                                  
		.itcs1_wstrb     (4'b0000),                              // (terminated),                                  
		.itcs1_wvalid    (1'b0),                                 // (terminated),                                  
		.itcs1_wready    (),                                     // (terminated),                                  
		.itcs1_bresp     (),                                     // (terminated),                                  
		.itcs1_bvalid    (),                                     // (terminated),                                  
		.itcs1_bready    (1'b0),                                 // (terminated),                                  
		.itcs1_araddr    (10'b0000000000),                       // (terminated),                                  
		.itcs1_arprot    (3'b000),                               // (terminated),                                  
		.itcs1_arvalid   (1'b0),                                 // (terminated),                                  
		.itcs1_arready   (),                                     // (terminated),                                  
		.itcs1_rdata     (),                                     // (terminated),                                  
		.itcs1_rresp     (),                                     // (terminated),                                  
		.itcs1_rvalid    (),                                     // (terminated),                                  
		.itcs1_rready    (1'b0),                                 // (terminated),                                  
		.itcs2_awaddr    (10'b0000000000),                       // (terminated),                                  
		.itcs2_awprot    (3'b000),                               // (terminated),                                  
		.itcs2_awvalid   (1'b0),                                 // (terminated),                                  
		.itcs2_awready   (),                                     // (terminated),                                  
		.itcs2_wdata     (32'b00000000000000000000000000000000), // (terminated),                                  
		.itcs2_wstrb     (4'b0000),                              // (terminated),                                  
		.itcs2_wvalid    (1'b0),                                 // (terminated),                                  
		.itcs2_wready    (),                                     // (terminated),                                  
		.itcs2_bresp     (),                                     // (terminated),                                  
		.itcs2_bvalid    (),                                     // (terminated),                                  
		.itcs2_bready    (1'b0),                                 // (terminated),                                  
		.itcs2_araddr    (10'b0000000000),                       // (terminated),                                  
		.itcs2_arprot    (3'b000),                               // (terminated),                                  
		.itcs2_arvalid   (1'b0),                                 // (terminated),                                  
		.itcs2_arready   (),                                     // (terminated),                                  
		.itcs2_rdata     (),                                     // (terminated),                                  
		.itcs2_rresp     (),                                     // (terminated),                                  
		.itcs2_rvalid    (),                                     // (terminated),                                  
		.itcs2_rready    (1'b0),                                 // (terminated),                                  
		.dtcs1_awaddr    (10'b0000000000),                       // (terminated),                                  
		.dtcs1_awprot    (3'b000),                               // (terminated),                                  
		.dtcs1_awvalid   (1'b0),                                 // (terminated),                                  
		.dtcs1_awready   (),                                     // (terminated),                                  
		.dtcs1_wdata     (32'b00000000000000000000000000000000), // (terminated),                                  
		.dtcs1_wstrb     (4'b0000),                              // (terminated),                                  
		.dtcs1_wvalid    (1'b0),                                 // (terminated),                                  
		.dtcs1_wready    (),                                     // (terminated),                                  
		.dtcs1_bresp     (),                                     // (terminated),                                  
		.dtcs1_bvalid    (),                                     // (terminated),                                  
		.dtcs1_bready    (1'b0),                                 // (terminated),                                  
		.dtcs1_araddr    (10'b0000000000),                       // (terminated),                                  
		.dtcs1_arprot    (3'b000),                               // (terminated),                                  
		.dtcs1_arvalid   (1'b0),                                 // (terminated),                                  
		.dtcs1_arready   (),                                     // (terminated),                                  
		.dtcs1_rdata     (),                                     // (terminated),                                  
		.dtcs1_rresp     (),                                     // (terminated),                                  
		.dtcs1_rvalid    (),                                     // (terminated),                                  
		.dtcs1_rready    (1'b0),                                 // (terminated),                                  
		.dtcs2_awaddr    (10'b0000000000),                       // (terminated),                                  
		.dtcs2_awprot    (3'b000),                               // (terminated),                                  
		.dtcs2_awvalid   (1'b0),                                 // (terminated),                                  
		.dtcs2_awready   (),                                     // (terminated),                                  
		.dtcs2_wdata     (32'b00000000000000000000000000000000), // (terminated),                                  
		.dtcs2_wstrb     (4'b0000),                              // (terminated),                                  
		.dtcs2_wvalid    (1'b0),                                 // (terminated),                                  
		.dtcs2_wready    (),                                     // (terminated),                                  
		.dtcs2_bresp     (),                                     // (terminated),                                  
		.dtcs2_bvalid    (),                                     // (terminated),                                  
		.dtcs2_bready    (1'b0),                                 // (terminated),                                  
		.dtcs2_araddr    (10'b0000000000),                       // (terminated),                                  
		.dtcs2_arprot    (3'b000),                               // (terminated),                                  
		.dtcs2_arvalid   (1'b0),                                 // (terminated),                                  
		.dtcs2_arready   (),                                     // (terminated),                                  
		.dtcs2_rdata     (),                                     // (terminated),                                  
		.dtcs2_rresp     (),                                     // (terminated),                                  
		.dtcs2_rvalid    (),                                     // (terminated),                                  
		.dtcs2_rready    (1'b0),                                 // (terminated),                                  
		.irq_ext         (1'b0)                                  // (terminated),                                  
	);

	niosv_timer_msip #(
		.IRQ_EN     (1),
		.HARTID     (0),
		.ADDR_WIDTH (6)
	) timer_module (
		.clk                (clk),                          //   input,   width = 1,            clk.clk
		.reset              (reset_reset),                  //   input,   width = 1,          reset.reset
		.hart_address       (timer_sw_agent_address),       //   input,   width = 6, timer_sw_agent.address
		.hart_byteen        (timer_sw_agent_byteenable),    //   input,   width = 4,               .byteenable
		.hart_read          (timer_sw_agent_read),          //   input,   width = 1,               .read
		.hart_readdata      (timer_sw_agent_readdata),      //  output,  width = 32,               .readdata
		.hart_write         (timer_sw_agent_write),         //   input,   width = 1,               .write
		.hart_writedata     (timer_sw_agent_writedata),     //   input,  width = 32,               .writedata
		.hart_waitrequest   (timer_sw_agent_waitrequest),   //  output,   width = 1,               .waitrequest
		.hart_readdatavalid (timer_sw_agent_readdatavalid), //  output,   width = 1,               .readdatavalid
		.timer_irq          (irq_mapper_001_receiver0_irq), //  output,   width = 1,      timer_irq.irq
		.sw_irq             (irq_mapper_002_receiver0_irq)  //  output,   width = 1,         sw_irq.irq
	);

	niosv_dm_top #(
		.DEBUG_RESET_EN (0),
		.FPU_EN         (0),
		.DEVICE_FAMILY  ("Agilex 5")
	) dbg_mod (
		.clk                (clk),                      //   input,   width = 1,           clk.clk
		.reset              (reset_reset),              //   input,   width = 1,         reset.reset
		.hart_address       (dm_agent_address),         //   input,  width = 16,      dm_agent.address
		.hart_read          (dm_agent_read),            //   input,   width = 1,              .read
		.hart_readdata      (dm_agent_readdata),        //  output,  width = 32,              .readdata
		.hart_write         (dm_agent_write),           //   input,   width = 1,              .write
		.hart_writedata     (dm_agent_writedata),       //   input,  width = 32,              .writedata
		.hart_waitrequest   (dm_agent_waitrequest),     //  output,   width = 1,              .waitrequest
		.hart_readdatavalid (dm_agent_readdatavalid),   //  output,   width = 1,              .readdatavalid
		.dbg_irq            (irq_mapper_receiver0_irq), //  output,   width = 1,       dbg_irq.irq
		.dbg_reset          ()                          //  output,   width = 1, dbg_reset_out.reset
	);

	system_intel_niosv_g_0_altera_irq_mapper_2001_3jqx4ly irq_mapper (
		.clk           (clk),                      //   input,  width = 1,       clk.clk
		.reset         (reset_reset),              //   input,  width = 1, clk_reset.reset
		.receiver0_irq (irq_mapper_receiver0_irq), //   input,  width = 1, receiver0.irq
		.sender_irq    (hart_debug_irq_rx_irq)     //  output,  width = 1,    sender.irq
	);

	system_intel_niosv_g_0_altera_irq_mapper_2001_3jqx4ly irq_mapper_001 (
		.clk           (clk),                          //   input,  width = 1,       clk.clk
		.reset         (reset_reset),                  //   input,  width = 1, clk_reset.reset
		.receiver0_irq (irq_mapper_001_receiver0_irq), //   input,  width = 1, receiver0.irq
		.sender_irq    (hart_timer_irq_rx_irq)         //  output,  width = 1,    sender.irq
	);

	system_intel_niosv_g_0_altera_irq_mapper_2001_3jqx4ly irq_mapper_002 (
		.clk           (clk),                          //   input,  width = 1,       clk.clk
		.reset         (reset_reset),                  //   input,  width = 1, clk_reset.reset
		.receiver0_irq (irq_mapper_002_receiver0_irq), //   input,  width = 1, receiver0.irq
		.sender_irq    (hart_sw_irq_rx_irq)            //  output,  width = 1,    sender.irq
	);

endmodule
