mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Testbench fixes to add SPI and make string pp static in testbench.fp to solve compiler issue
This commit is contained in:
parent
3f4bf4a010
commit
2c38692a03
@ -644,11 +644,11 @@ module testbenchfp;
|
|||||||
// Read the first test
|
// Read the first test
|
||||||
initial begin
|
initial begin
|
||||||
//string testname = {`PATH, Tests[TestNum]};
|
//string testname = {`PATH, Tests[TestNum]};
|
||||||
string p = `PATH;
|
static string pp = `PATH;
|
||||||
string testname;
|
string testname;
|
||||||
string tt0;
|
string tt0;
|
||||||
tt0 = $psprintf("%s", Tests[TestNum]);
|
tt0 = $psprintf("%s", Tests[TestNum]);
|
||||||
testname = {p, tt0};
|
testname = {pp, tt0};
|
||||||
$display("Here you are %s", testname);
|
$display("Here you are %s", testname);
|
||||||
$display("\n\nRunning %s vectors ", Tests[TestNum]);
|
$display("\n\nRunning %s vectors ", Tests[TestNum]);
|
||||||
$readmemh(testname, TestVectors);
|
$readmemh(testname, TestVectors);
|
||||||
|
@ -72,6 +72,7 @@ module testbench;
|
|||||||
logic HMASTLOCK;
|
logic HMASTLOCK;
|
||||||
logic HCLK, HRESETn;
|
logic HCLK, HRESETn;
|
||||||
logic [P.XLEN-1:0] PCW;
|
logic [P.XLEN-1:0] PCW;
|
||||||
|
logic [31:0] NextInstrE, InstrM;
|
||||||
|
|
||||||
string ProgramAddrMapFile, ProgramLabelMapFile;
|
string ProgramAddrMapFile, ProgramLabelMapFile;
|
||||||
integer ProgramAddrLabelArray [string] = '{ "begin_signature" : 0, "tohost" : 0 };
|
integer ProgramAddrLabelArray [string] = '{ "begin_signature" : 0, "tohost" : 0 };
|
||||||
@ -81,7 +82,8 @@ module testbench;
|
|||||||
|
|
||||||
logic [31:0] GPIOIN, GPIOOUT, GPIOEN;
|
logic [31:0] GPIOIN, GPIOOUT, GPIOEN;
|
||||||
logic UARTSin, UARTSout;
|
logic UARTSin, UARTSout;
|
||||||
|
logic SPIIn, SPIOut;
|
||||||
|
logic [3:0] SPICS;
|
||||||
logic SDCIntr;
|
logic SDCIntr;
|
||||||
|
|
||||||
logic HREADY;
|
logic HREADY;
|
||||||
@ -255,7 +257,7 @@ module testbench;
|
|||||||
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);
|
.UARTSin, .UARTSout, .SDCIntr, .SPICS, .SPIOut, .SPIIn);
|
||||||
|
|
||||||
// Track names of instructions
|
// Track names of instructions
|
||||||
instrTrackerTB it(clk, reset, dut.core.ieu.dp.FlushE,
|
instrTrackerTB it(clk, reset, dut.core.ieu.dp.FlushE,
|
||||||
@ -299,7 +301,6 @@ module testbench;
|
|||||||
end
|
end
|
||||||
|
|
||||||
// Duplicate copy of pipeline registers that are optimized out of some configurations
|
// 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);
|
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);
|
flopenr #(32) InstrMReg(clk, reset, ~dut.core.ifu.StallM, NextInstrE, InstrM);
|
||||||
|
|
||||||
|
@ -282,6 +282,8 @@ module testbench;
|
|||||||
logic SDCCmdOE;
|
logic SDCCmdOE;
|
||||||
logic [3:0] SDCDatIn;
|
logic [3:0] SDCDatIn;
|
||||||
logic SDCIntr;
|
logic SDCIntr;
|
||||||
|
logic SPIIn, SPIOut;
|
||||||
|
logic [3:0] SPICS;
|
||||||
|
|
||||||
|
|
||||||
// Hardwire UART, GPIO pins
|
// Hardwire UART, GPIO pins
|
||||||
@ -440,13 +442,10 @@ module testbench;
|
|||||||
|
|
||||||
|
|
||||||
// Wally
|
// Wally
|
||||||
wallypipelinedsoc #(P) dut(.clk, .reset, .reset_ext,
|
wallypipelinedsoc #(P) dut(.clk, .reset_ext, .reset, .HRDATAEXT, .HREADYEXT, .HRESPEXT, .HSELEXT, .HSELEXTSDC,
|
||||||
.HRDATAEXT, .HREADYEXT, .HREADY, .HSELEXT, .HRESPEXT, .HCLK,
|
.HCLK, .HRESETn, .HADDR, .HWDATA, .HWSTRB, .HWRITE, .HSIZE, .HBURST, .HPROT,
|
||||||
.HRESETn, .HADDR, .HWDATA, .HWRITE, .HWSTRB, .HSIZE, .HBURST, .HPROT,
|
.HTRANS, .HMASTLOCK, .HREADY, .TIMECLK(1'b0), .GPIOIN, .GPIOOUT, .GPIOEN,
|
||||||
.HTRANS, .HMASTLOCK,
|
.UARTSin, .UARTSout, .SDCIntr, .SPICS, .SPIOut, .SPIIn);
|
||||||
.TIMECLK('0), .GPIOIN, .GPIOOUT, .GPIOEN,
|
|
||||||
.UARTSin, .UARTSout,
|
|
||||||
.SDCIntr);
|
|
||||||
|
|
||||||
// W-stage hardware not needed by Wally itself
|
// W-stage hardware not needed by Wally itself
|
||||||
parameter nop = 'h13;
|
parameter nop = 'h13;
|
||||||
|
@ -258,6 +258,8 @@ module testbench;
|
|||||||
logic [31:0] GPIOIN;
|
logic [31:0] GPIOIN;
|
||||||
logic [31:0] GPIOOUT, GPIOEN;
|
logic [31:0] GPIOOUT, GPIOEN;
|
||||||
logic UARTSin, UARTSout;
|
logic UARTSin, UARTSout;
|
||||||
|
logic SPIIn, SPIOut;
|
||||||
|
logic [3:0] SPICS;
|
||||||
|
|
||||||
// FPGA-specific Stuff
|
// FPGA-specific Stuff
|
||||||
logic SDCIntr;
|
logic SDCIntr;
|
||||||
@ -268,13 +270,10 @@ module testbench;
|
|||||||
assign SDCIntr = 0;
|
assign SDCIntr = 0;
|
||||||
|
|
||||||
// Wally
|
// Wally
|
||||||
wallypipelinedsoc #(P) dut(.clk, .reset, .reset_ext,
|
wallypipelinedsoc #(P) dut(.clk, .reset_ext, .reset, .HRDATAEXT, .HREADYEXT, .HRESPEXT, .HSELEXT, .HSELEXTSDC,
|
||||||
.HRDATAEXT, .HREADYEXT, .HREADY, .HSELEXT, .HSELEXTSDC, .HRESPEXT, .HCLK,
|
.HCLK, .HRESETn, .HADDR, .HWDATA, .HWSTRB, .HWRITE, .HSIZE, .HBURST, .HPROT,
|
||||||
.HRESETn, .HADDR, .HWDATA, .HWRITE, .HWSTRB, .HSIZE, .HBURST, .HPROT,
|
.HTRANS, .HMASTLOCK, .HREADY, .TIMECLK(1'b0), .GPIOIN, .GPIOOUT, .GPIOEN,
|
||||||
.HTRANS, .HMASTLOCK,
|
.UARTSin, .UARTSout, .SDCIntr, .SPICS, .SPIOut, .SPIIn);
|
||||||
.TIMECLK('0), .GPIOIN, .GPIOOUT, .GPIOEN,
|
|
||||||
.UARTSin, .UARTSout,
|
|
||||||
.SDCIntr);
|
|
||||||
|
|
||||||
// W-stage hardware not needed by Wally itself
|
// W-stage hardware not needed by Wally itself
|
||||||
parameter nop = 'h13;
|
parameter nop = 'h13;
|
||||||
|
@ -70,6 +70,8 @@ module testbench;
|
|||||||
logic [3:0] SDCDatIn;
|
logic [3:0] SDCDatIn;
|
||||||
tri1 [3:0] SDCDat;
|
tri1 [3:0] SDCDat;
|
||||||
tri1 SDCCmd;
|
tri1 SDCCmd;
|
||||||
|
logic SPIIn, SPIOut;
|
||||||
|
logic [3:0] SPICS;
|
||||||
|
|
||||||
logic HREADY;
|
logic HREADY;
|
||||||
logic HSELEXT;
|
logic HSELEXT;
|
||||||
@ -426,10 +428,10 @@ module testbench;
|
|||||||
assign SDCDat = '0;
|
assign SDCDat = '0;
|
||||||
end
|
end
|
||||||
|
|
||||||
wallypipelinedsoc #(P) dut(.clk, .reset_ext, .reset, .HRDATAEXT,.HREADYEXT, .HRESPEXT,.HSELEXT,
|
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, .SDCCmdIn, .SDCCmdOut, .SDCCmdOE, .SDCDatIn, .SDCCLK);
|
.UARTSin, .UARTSout, .SDCIntr, .SPICS, .SPIOut, .SPIIn);
|
||||||
|
|
||||||
// generate clock to sequence tests
|
// generate clock to sequence tests
|
||||||
always begin
|
always begin
|
||||||
|
Loading…
Reference in New Issue
Block a user