Loading files
// Copyright 2019- RSD contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
`timescale 1ns/1ps
import BasicTypes::*;
import CacheSystemTypes::*;
import OpFormatTypes::*;
module TestMemoryTop #(
parameter INIT_HEX_FILE = "../../Src/Verification/TestCode/C/Dhrystone/code-100k.hex"
)(
input
logic clk_p, clk_n, rstTrigger,
output
logic rstOut,
input
MemReadAccessReq icMemAccessReq,
MemAccessReq dcMemAccessReq,
output
MemAccessResult icMemAccessResult,
MemAccessResult dcMemAccessResult
);
// Clock and Reset
logic clk, memCLK, rst, mmcmLocked;
`ifdef RSD_SYNTHESIS
MultiClock clkgen(
.CLK_IN1_P(clk_p),
.CLK_IN1_N(clk_n),
.CLK_OUT1(clk),
.CLK_OUT2(memCLK),
.RESET(rstTrigger),
.LOCKED(mmcmLocked)
);
`else
assign clk = clk_p;
initial memCLK <= FALSE;
always_ff @ (posedge clk) memCLK <= ~memCLK;
`endif
ResetController rstController(.*);
assign rstOut = rst;
// interfaces
CacheSystemIF cacheSystemIF( clk, rst, memCLK );
// processor modules
Memory #( .INIT_HEX_FILE(INIT_HEX_FILE) ) memory ( cacheSystemIF );
always_comb begin
// Input of this module.
cacheSystemIF.icMemAccessReq = icMemAccessReq;
cacheSystemIF.dcMemAccessReq = dcMemAccessReq;
// Output of this module.
icMemAccessResult = cacheSystemIF.icMemAccessResult;
dcMemAccessResult = cacheSystemIF.dcMemAccessResult;
end
endmodule
7b65f6ba0This file is pinned to the selected release. Download the original to open it in your design tool.