From 5b04327dfa7a3005819045c9cc19e558e86d59d5 Mon Sep 17 00:00:00 2001 From: functionpointersuss Date: Sat, 23 Dec 2023 10:23:39 +0800 Subject: renamed to sv --- multiplier/tb_multiplier.cpp | 93 -------------------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 multiplier/tb_multiplier.cpp (limited to 'multiplier/tb_multiplier.cpp') diff --git a/multiplier/tb_multiplier.cpp b/multiplier/tb_multiplier.cpp deleted file mode 100644 index 040df80..0000000 --- a/multiplier/tb_multiplier.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include -#include -#include - -#include "Vmultiplier.h" -#include "verilated.h" - -#define BITWIDTH 32 - -int main(int argc, char** argv, char** env) { - - if (false && argc && argv && env) {} - - Verilated::mkdir("logs"); - VerilatedContext* contextp = new VerilatedContext; - - contextp->debug(0); - contextp->randReset(2); - contextp->traceEverOn(true); - contextp->commandArgs(argc, argv); - - Vmultiplier* dut = new Vmultiplier{contextp}; - - uint32_t testsize = 0x1000; - - for (int i = 0; i < testsize; i++) { - for (int j = 0; j < testsize; j++) { - dut->a = (uint32_t) i; - dut->b = (uint32_t) j; - unsigned int answer = (unsigned int) (i * j); - - dut->eval(); - if (answer != dut->c) { - std::bitset in1(dut->a); - std::bitset in2(dut->b); - std::bitset expected(answer); - std::bitset actual(dut->c); - std::cout << "Inputs: 1: " << in1 << " 2: " << in2 << '\n'; - std::cout << "Expected: " << expected << '\n'; - std::cout << "Actual: " << actual << '\n'; - return -1; - } - } - } - - - std::cout << "LOWER HALF PASSED\n"; - - uint64_t top = 1; - for (int i = 1; i < BITWIDTH; i++) { - top <<= 1; - top |= 1; - } - uint64_t bottom = top - testsize; - - for (uint64_t i = bottom; i < top; i++) { - for (uint64_t j = bottom; j < top; j++) { - - dut->a = (uint32_t) i; - dut->b = (uint32_t) j; - - uint64_t answer = i * j; - - dut->eval(); - if (answer != dut->c) { - std::bitset in1(dut->a); - std::bitset in2(dut->b); - std::bitset expected(answer); - std::bitset actual(dut->c); - std::cout << "In 1: " << in1 << '\n'; - std::cout << "In 2: " << in2 << '\n'; - std::cout << "Expected: " << expected << '\n'; - std::cout << "Actual: " << actual << '\n'; - - std::cout << "In 1: " << std::hex << (uint32_t) dut->a << '\n'; - std::cout << "In 2: " << std::hex << (uint32_t) dut->b << '\n'; - std::cout << "Expected: " << std::hex << (uint64_t) answer << '\n'; - std::cout << "Actual: " << std::hex << (uint64_t) dut->c << '\n'; - return -1; - } - } - } - - std::cout << "UPPER HALF PASSED\n"; - - - std::cout << "Test Passed for " << BITWIDTH << " bit multiplier\n"; - - delete dut; - delete contextp; - return 0; -} -- cgit v1.2.3