Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
// Copyright 2024 OpenHW Group and Dolphin Design
//
// Licensed under the Solderpad Hardware Licence, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://solderpad.org/licenses/
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
// Contributor(s): Pascal Gouedo, Dolphin Design <pascal.gouedo@dolphin.fr>
//
// Design Name: CV32E40P RTL Lint wrapper
//
// Description: Wrapper file instantiating CV32E40P top and importing
// a configuration package to be used for RTL LINT checks.
module cv32e40p_wrapper (
// Clock and Reset
input logic clk_i,
input logic rst_ni,
input logic pulp_clock_en_i,
input logic scan_cg_en_i,
input logic [31:0] boot_addr_i,
input logic [31:0] mtvec_addr_i,
input logic [31:0] dm_halt_addr_i,
input logic [31:0] hart_id_i,
input logic [31:0] dm_exception_addr_i,
// Instruction memory interface
output logic instr_req_o,
input logic instr_gnt_i,
input logic instr_rvalid_i,
output logic [31:0] instr_addr_o,
input logic [31:0] instr_rdata_i,
// Data memory interface
output logic data_req_o,
input logic data_gnt_i,
input logic data_rvalid_i,
output logic data_we_o,
output logic [ 3:0] data_be_o,
output logic [31:0] data_addr_o,
output logic [31:0] data_wdata_o,
input logic [31:0] data_rdata_i,
// Interrupt inputs
input logic [31:0] irq_i,
output logic irq_ack_o,
output logic [ 4:0] irq_id_o,
// Debug Interface
input logic debug_req_i,
output logic debug_havereset_o,
output logic debug_running_o,
output logic debug_halted_o,
// CPU Control Signals
input logic fetch_enable_i,
output logic core_sleep_o
);
import cv32e40p_config_pkg::*;
// Instantiate the Core
cv32e40p_top #(
.COREV_PULP (COREV_PULP),
.COREV_CLUSTER (COREV_CLUSTER),
.FPU (FPU),
.FPU_ADDMUL_LAT (FPU_ADDMUL_LAT),
.FPU_OTHERS_LAT (FPU_OTHERS_LAT),
.ZFINX (ZFINX),
.NUM_MHPMCOUNTERS(1)
) top_i (
.clk_i (clk_i),
.rst_ni(rst_ni),
.pulp_clock_en_i(pulp_clock_en_i),
.scan_cg_en_i (scan_cg_en_i),
.boot_addr_i (boot_addr_i),
.mtvec_addr_i (mtvec_addr_i),
.dm_halt_addr_i (dm_halt_addr_i),
.hart_id_i (hart_id_i),
.dm_exception_addr_i(dm_exception_addr_i),
.instr_req_o (instr_req_o),
.instr_gnt_i (instr_gnt_i),
.instr_rvalid_i(instr_rvalid_i),
.instr_addr_o (instr_addr_o),
.instr_rdata_i (instr_rdata_i),
.data_req_o (data_req_o),
.data_gnt_i (data_gnt_i),
.data_rvalid_i(data_rvalid_i),
.data_we_o (data_we_o),
.data_be_o (data_be_o),
.data_addr_o (data_addr_o),
.data_wdata_o (data_wdata_o),
.data_rdata_i (data_rdata_i),
.irq_i (irq_i),
.irq_ack_o(irq_ack_o),
.irq_id_o (irq_id_o),
.debug_req_i (debug_req_i),
.debug_havereset_o(debug_havereset_o),
.debug_running_o (debug_running_o),
.debug_halted_o (debug_halted_o),
.fetch_enable_i(fetch_enable_i),
.core_sleep_o (core_sleep_o)
);
endmodule
dd1f8e446This file is pinned to the selected release. Download the original to open it in your design tool.