mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-03 02:05:21 +00:00
Patched up linux imperas testbench.
This commit is contained in:
parent
65356e362a
commit
feb45b9b59
@ -55,11 +55,13 @@ if {$2 eq "buildroot" || $2 eq "buildroot-checkpoint"} {
|
|||||||
+incdir+$env(IMPERAS_HOME)/ImpProprietary/include/host \
|
+incdir+$env(IMPERAS_HOME)/ImpProprietary/include/host \
|
||||||
$env(IMPERAS_HOME)/ImpPublic/source/host/rvvi/rvviApiPkg.sv \
|
$env(IMPERAS_HOME)/ImpPublic/source/host/rvvi/rvviApiPkg.sv \
|
||||||
$env(IMPERAS_HOME)/ImpPublic/source/host/rvvi/rvviTrace.sv \
|
$env(IMPERAS_HOME)/ImpPublic/source/host/rvvi/rvviTrace.sv \
|
||||||
|
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/idvApiPkg.sv \
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/idvPkg.sv \
|
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/idvPkg.sv \
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/idvApiPkg.sv \
|
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/idvApiPkg.sv \
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2api.sv \
|
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2api.sv \
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2log.sv \
|
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2log.sv \
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2cov.sv \
|
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2cov.sv \
|
||||||
|
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2bin.sv \
|
||||||
../src/cvw.sv \
|
../src/cvw.sv \
|
||||||
../testbench/testbench-linux-imperas.sv \
|
../testbench/testbench-linux-imperas.sv \
|
||||||
../testbench/common/*.sv ../src/*/*.sv \
|
../testbench/common/*.sv ../src/*/*.sv \
|
||||||
|
@ -226,21 +226,6 @@ module testbench;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
/////////////////////////////// Cache Issue ///////////////////////////////////
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
// Duplicate copy of pipeline registers that are optimized out of some configurations
|
|
||||||
logic [31:0] NextInstrE, InstrM;
|
|
||||||
mux2 #(32) FlushInstrMMux(dut.core.ifu.InstrE, dut.core.ifu.nop, dut.core.ifu.FlushM, NextInstrE);
|
|
||||||
flopenr #(32) InstrMReg(clk, reset, ~dut.core.ifu.StallM, NextInstrE, InstrM);
|
|
||||||
|
|
||||||
logic probe;
|
|
||||||
if (NO_SPOOFING)
|
|
||||||
assign probe = testbench.dut.core.PCM == 64'hffffffff80200c8c
|
|
||||||
& InstrM != 32'h14021273
|
|
||||||
& testbench.dut.core.InstrValidM;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -261,19 +246,20 @@ module testbench;
|
|||||||
logic HREADYEXT, HRESPEXT;
|
logic HREADYEXT, HRESPEXT;
|
||||||
logic HCLK, HRESETn;
|
logic HCLK, HRESETn;
|
||||||
logic HREADY;
|
logic HREADY;
|
||||||
logic HSELEXT;
|
logic HSELEXT;
|
||||||
|
logic HSELEXTSDC;
|
||||||
logic [P.PA_BITS-1:0] HADDR;
|
logic [P.PA_BITS-1:0] HADDR;
|
||||||
logic [P.AHBW-1:0] HWDATA;
|
logic [P.AHBW-1:0] HWDATA;
|
||||||
logic [P.XLEN/8-1:0] HWSTRB;
|
logic [P.XLEN/8-1:0] HWSTRB;
|
||||||
logic HWRITE;
|
logic HWRITE;
|
||||||
logic [2:0] HSIZE;
|
logic [2:0] HSIZE;
|
||||||
logic [2:0] HBURST;
|
logic [2:0] HBURST;
|
||||||
logic [3:0] HPROT;
|
logic [3:0] HPROT;
|
||||||
logic [1:0] HTRANS;
|
logic [1:0] HTRANS;
|
||||||
logic HMASTLOCK;
|
logic HMASTLOCK;
|
||||||
logic [31:0] GPIOIN;
|
logic [31:0] GPIOIN;
|
||||||
logic [31:0] GPIOOUT, GPIOEN;
|
logic [31:0] GPIOOUT, GPIOEN;
|
||||||
logic UARTSin, UARTSout;
|
logic UARTSin, UARTSout;
|
||||||
|
|
||||||
// FPGA-specific Stuff
|
// FPGA-specific Stuff
|
||||||
logic SDCCLK;
|
logic SDCCLK;
|
||||||
@ -292,6 +278,21 @@ module testbench;
|
|||||||
assign SDCIntr = 0;
|
assign SDCIntr = 0;
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
/////////////////////////////// Cache Issue ///////////////////////////////////
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Duplicate copy of pipeline registers that are optimized out of some configurations
|
||||||
|
logic [31:0] NextInstrE, InstrM;
|
||||||
|
mux2 #(32) FlushInstrMMux(dut.core.ifu.InstrE, dut.core.ifu.nop, dut.core.ifu.FlushM, NextInstrE);
|
||||||
|
flopenr #(32) InstrMReg(clk, reset, ~dut.core.ifu.StallM, NextInstrE, InstrM);
|
||||||
|
|
||||||
|
logic probe;
|
||||||
|
if (NO_SPOOFING)
|
||||||
|
assign probe = testbench.dut.core.PCM == 64'hffffffff80200c8c
|
||||||
|
& InstrM != 32'h14021273
|
||||||
|
& testbench.dut.core.InstrValidM;
|
||||||
|
|
||||||
|
|
||||||
`ifdef USE_IMPERAS_DV
|
`ifdef USE_IMPERAS_DV
|
||||||
|
|
||||||
@ -442,10 +443,10 @@ module testbench;
|
|||||||
|
|
||||||
|
|
||||||
// Wally
|
// Wally
|
||||||
wallypipelinedsoc #(P) dut(.clk, .reset_ext, .reset, .HRDATAEXT, .HREADYEXT, .HRESPEXT, .HSELEXT, .HSELEXTSDC,
|
wallypipelinedsoc #(P) dut(.clk, .reset_ext, .reset, .HRDATAEXT, .HREADYEXT, .HRESPEXT, .HSELEXT, .HSELEXTSDC,
|
||||||
.HCLK, .HRESETn, .HADDR, .HWDATA, .HWSTRB, .HWRITE, .HSIZE, .HBURST, .HPROT,
|
.HCLK, .HRESETn, .HADDR, .HWDATA, .HWSTRB, .HWRITE, .HSIZE, .HBURST, .HPROT,
|
||||||
.HTRANS, .HMASTLOCK, .HREADY, .TIMECLK(1'b0), .GPIOIN, .GPIOOUT, .GPIOEN,
|
.HTRANS, .HMASTLOCK, .HREADY, .TIMECLK(1'b0), .GPIOIN, .GPIOOUT, .GPIOEN,
|
||||||
.UARTSin, .UARTSout, .SDCIntr, .SPICS, .SPIOut, .SPIIn);
|
.UARTSin, .UARTSout, .SDCIntr, .SPIIn, .SPIOut, .SPICS);
|
||||||
|
|
||||||
// W-stage hardware not needed by Wally itself
|
// W-stage hardware not needed by Wally itself
|
||||||
parameter nop = 'h13;
|
parameter nop = 'h13;
|
||||||
|
Loading…
Reference in New Issue
Block a user