This commit is contained in:
David Harris 2021-02-02 13:42:35 -05:00
commit e661b32821
3 changed files with 31 additions and 18 deletions

3
.gitignore vendored
View File

@ -1,4 +1,5 @@
**/work
**/work*
**/wally_*.log
#vsim work files to ignore
transcript

View File

@ -18,8 +18,8 @@
onbreak {resume}
# create library
if [file exists work] {
vdel -all
if [file exists work$2] {
vdel -lib work$2 -all
}
vlib work$2

View File

@ -162,22 +162,34 @@ module testbench_busybear();
end
end
string CSRname;
logic [63:0] expectedCSR;
//CSR checking
always @(dut.priv.MTVEC_REGW) begin
if ($time != 1) begin
scan_file_csr = $fscanf(data_file_csr, "%s\n", CSRname);
scan_file_csr = $fscanf(data_file_csr, "%x\n", expectedCSR);
if(CSRname != "mtvec") begin
$display("%t ps, instr %0d: MTVEC changed, expected %s", $time, instrs, CSRname);
end
if(dut.priv.MTVEC_REGW != expectedCSR) begin
$display("%t ps, instr %0d: %s does not equal %s expected: %x, %x", $time, instrs, CSRname, CSRname, dut.priv.MTVEC_REGW, expectedCSR);
end
end
`define CHECK_CSR(CSR) \
string CSR; \
logic [63:0] expected``CSR``; \
//CSR checking \
always @(dut.priv.csr.``CSR``_REGW) begin \
if ($time > 1) begin \
scan_file_csr = $fscanf(data_file_csr, "%s\n", CSR); \
scan_file_csr = $fscanf(data_file_csr, "%x\n", expected``CSR``); \
if(CSR.icompare(`"CSR`")) begin \
$display("%t ps, instr %0d: %s changed, expected %s", $time, instrs, `"CSR`", CSR); \
end \
if(dut.priv.csr.``CSR``_REGW != ``expected``CSR) begin \
$display("%t ps, instr %0d: %s does not equal %s expected: %x, %x", $time, instrs, CSR, CSR, dut.priv.csr.``CSR``_REGW, ``expected``CSR); \
end \
end \
end
//`CHECK_CSR(FCSR)
`CHECK_CSR(MCOUNTEREN)
`CHECK_CSR(MEDELEG)
`CHECK_CSR(MIDELEG)
`CHECK_CSR(MIE)
//`CHECK_CSR(MSCRATCH)
`CHECK_CSR(MSTATUS)
`CHECK_CSR(MTVEC)
//`CHECK_CSR(SATP)
`CHECK_CSR(SCOUNTEREN)
logic speculative;
initial begin
speculative = 0;