Files
verilator/test_regress/t/t_math_imm2.cpp
T

62 lines
1.7 KiB
C++
Raw Normal View History

// -*- mode: C++; c-file-style: "cc-mode" -*-
// This file ONLY is placed under the Creative Commons Public Domain.
// SPDX-FileCopyrightText: 2020 Wilson Snyder
// SPDX-License-Identifier: CC0-1.0
2006-08-26 11:35:28 +00:00
#include <verilated.h>
2022-08-05 10:56:57 +01:00
#include VM_PREFIX_INCLUDE
2006-08-26 11:35:28 +00:00
2021-02-16 20:34:44 -05:00
double sc_time_stamp() { return 0; }
QData MaskVal(int lbit, int hbit) {
2006-08-26 11:35:28 +00:00
QData val;
2020-10-27 20:03:17 -04:00
for (val = 0; lbit <= hbit; lbit++) val |= (1ULL << lbit);
2006-08-26 11:35:28 +00:00
return val;
}
int main(int argc, char* argv[]) {
2006-08-26 11:35:28 +00:00
Verilated::debug(0);
Verilated::commandArgs(argc, argv);
2006-08-26 11:35:28 +00:00
VM_PREFIX* sim = new VM_PREFIX;
int lbit, hbit;
2006-08-26 11:35:28 +00:00
int errs = 0;
2006-08-26 11:35:28 +00:00
for (lbit = 0; lbit < 32; lbit++) {
for (hbit = lbit; hbit < 32; hbit++) {
QData expected;
2006-08-26 11:35:28 +00:00
sim->LowMaskSel_Bot = lbit;
sim->LowMaskSel_Top = lbit;
sim->HighMaskSel_Bot = hbit;
sim->HighMaskSel_Top = hbit;
2006-08-26 11:35:28 +00:00
sim->eval();
2006-08-26 11:35:28 +00:00
expected = ((MaskVal(sim->LowMaskSel_Top, sim->HighMaskSel_Top) << 32ULL)
| MaskVal(sim->LowMaskSel_Bot, sim->HighMaskSel_Bot));
2006-08-26 11:35:28 +00:00
if (sim->LogicImm != expected) {
printf("%%Error: %d.%d,%d.%d -> %016" PRIx64 "/%016" PRIx64 " -> %016" PRIx64
" (expected %016" PRIx64 ")\n",
2020-10-27 20:03:17 -04:00
sim->LowMaskSel_Top, sim->HighMaskSel_Top, sim->LowMaskSel_Bot,
sim->HighMaskSel_Bot, sim->LowLogicImm, sim->HighLogicImm, sim->LogicImm,
expected);
errs = 1;
}
}
2006-08-26 11:35:28 +00:00
}
2020-11-17 12:37:55 +01:00
sim->final();
VL_DO_DANGLING(delete sim, sim);
2006-08-26 11:35:28 +00:00
if (errs) {
vl_stop(__FILE__, __LINE__, "TOP-cpp");
exit(10);
2006-08-26 11:35:28 +00:00
} else {
printf("*-* All Finished *-*\n");
2021-02-25 19:26:36 -05:00
return 0;
2006-08-26 11:35:28 +00:00
}
}