Line 2... |
Line 2... |
//
|
//
|
// This file is part of the M32632 project
|
// This file is part of the M32632 project
|
// http://opencores.org/project,m32632
|
// http://opencores.org/project,m32632
|
//
|
//
|
// Filename: ICACHE.v
|
// Filename: ICACHE.v
|
// Project: M32632
|
// Version: 3.2 bug fix
|
// Version: 3.1 bug fix of 25 February 2019
|
// History: 3.1 bug fix of 25 February 2019
|
// History: 3.0 Cache Interface reworked
|
// 3.0 Cache Interface reworked
|
// 2.0 50 MHz release of 14 August 2016
|
// 2.0 50 MHz release of 14 August 2016
|
// 1.0 first release of 30 Mai 2015
|
// 1.0 first release of 30 Mai 2015
|
// Author: Udo Moeller
|
// Date: 17 January 2021
|
// Date: 8 July 2017
|
|
//
|
//
|
// Copyright (C) 2019 Udo Moeller
|
// Copyright (C) 2021 Udo Moeller
|
//
|
//
|
// This source file may be used and distributed without
|
// This source file may be used and distributed without
|
// restriction provided that this copyright statement is not
|
// restriction provided that this copyright statement is not
|
// removed from the file and that any derivative work contains
|
// removed from the file and that any derivative work contains
|
// the original copyright notice and the associated disclaimer.
|
// the original copyright notice and the associated disclaimer.
|
Line 147... |
Line 146... |
wire [23:0] NEWCVAL;
|
wire [23:0] NEWCVAL;
|
wire KILL_C,KILL_K;
|
wire KILL_C,KILL_K;
|
wire RMW;
|
wire RMW;
|
wire [31:0] CAP_Q;
|
wire [31:0] CAP_Q;
|
wire [28:12] TAGDAT;
|
wire [28:12] TAGDAT;
|
|
wire clr_up;
|
|
|
// +++++++++++++++++++ Memories ++++++++++++++++++++
|
// +++++++++++++++++++ Memories ++++++++++++++++++++
|
|
|
reg [127:0] DATA0 [0:255]; // Data Set 0 : 4 kBytes
|
reg [127:0] DATA0 [0:255]; // Data Set 0 : 4 kBytes
|
reg [127:0] RDDATA0;
|
reg [127:0] RDDATA0;
|
Line 219... |
Line 219... |
assign ICTODC[3] = USER;
|
assign ICTODC[3] = USER;
|
|
|
assign VADR[31:12] = IVAR_MUX ? VADR_D : VADR_I[31:12];
|
assign VADR[31:12] = IVAR_MUX ? VADR_D : VADR_I[31:12];
|
assign VADR[11:0] = VADR_I[11:0];
|
assign VADR[11:0] = VADR_I[11:0];
|
|
|
always @(posedge BCLK) VADR_R <= VADR;
|
always @(posedge BCLK) VADR_R[23:0] <= VADR[23:0];
|
|
|
|
assign clr_up = ~(DRAMSZ == 3'd0);
|
|
always @(posedge BCLK or negedge clr_up)
|
|
if (!clr_up) VADR_R[31:24] <= 8'd0;
|
|
else VADR_R[31:24] <= VADR[31:24];
|
|
|
always @(posedge BCLK) DFF_IRD_REG <= IO_RD;
|
always @(posedge BCLK) DFF_IRD_REG <= IO_RD;
|
|
|
always @(posedge BCLK) DFF_HDFF1 <= IO_READY;
|
always @(posedge BCLK) DFF_HDFF1 <= IO_READY;
|
|
|