//******************************************************************************** // SPDX-License-Identifier: Apache-2.0 // Copyright 2019 Western Digital Corporation or its affiliates. // // Licensed under the Apache License, 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 // // http://www.apache.org/licenses/LICENSE-2.0 // // 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. //******************************************************************************** //******************************************************************************** // Icache closely coupled memory --- ICCM //******************************************************************************** module ifu_iccm_mem import swerv_types::*; ( input logic clk, input logic rst_l, input logic clk_override, input logic iccm_wren, input logic iccm_rden, input logic [`RV_ICCM_BITS-1:2] iccm_rw_addr, input logic [2:0] iccm_wr_size, input logic [77:0] iccm_wr_data, output logic [155:0] iccm_rd_data, input logic scan_mode ); `include "global.h" logic [ICCM_NUM_BANKS/4-1:0] wren_bank; logic [ICCM_NUM_BANKS/4-1:0] rden_bank; logic [ICCM_NUM_BANKS/4-1:0] iccm_hi0_clken; logic [ICCM_NUM_BANKS/4-1:0] iccm_hi1_clken; logic [ICCM_NUM_BANKS/4-1:0] iccm_lo0_clken; logic [ICCM_NUM_BANKS/4-1:0] iccm_lo1_clken; logic [ICCM_NUM_BANKS/4-1:0] iccm_hi0_clk ; logic [ICCM_NUM_BANKS/4-1:0] iccm_hi1_clk ; logic [ICCM_NUM_BANKS/4-1:0] iccm_lo0_clk ; logic [ICCM_NUM_BANKS/4-1:0] iccm_lo1_clk ; logic [ICCM_NUM_BANKS/4-1:0] wren_bank_hi0; logic [ICCM_NUM_BANKS/4-1:0] wren_bank_lo0; logic [ICCM_NUM_BANKS/4-1:0] wren_bank_hi1; logic [ICCM_NUM_BANKS/4-1:0] wren_bank_lo1; logic [ICCM_NUM_BANKS/4-1:0] [ICCM_INDEX_BITS-1:0] addr_bank; logic [ICCM_NUM_BANKS/4-1:0] [77:0] iccm_bank_dout_hi; logic [ICCM_NUM_BANKS/4-1:0] [77:0] iccm_bank_dout_lo; logic [5:4] iccm_rw_addr_q; // assign CLK = clk ; for (genvar i=0; i