From 8afcd67a1f242d4f40a19416f5e212465e2d3f00 Mon Sep 17 00:00:00 2001 From: Geza Lore Date: Sun, 3 May 2020 21:55:22 +0100 Subject: [PATCH] Fix FST tracing of little endian vectors --- Changes | 2 + include/verilated_fst_c.cpp | 26 ++-- include/verilated_fst_c.h | 4 +- test_regress/t/t_trace_litendian.out | 144 ++++++++++++++++++++++ test_regress/t/t_trace_litendian.pl | 24 ++++ test_regress/t/t_trace_litendian.v | 97 +++++++++++++++ test_regress/t/t_trace_litendian_fst.out | 149 +++++++++++++++++++++++ test_regress/t/t_trace_litendian_fst.pl | 26 ++++ 8 files changed, 456 insertions(+), 16 deletions(-) create mode 100644 test_regress/t/t_trace_litendian.out create mode 100755 test_regress/t/t_trace_litendian.pl create mode 100644 test_regress/t/t_trace_litendian.v create mode 100644 test_regress/t/t_trace_litendian_fst.out create mode 100755 test_regress/t/t_trace_litendian_fst.pl diff --git a/Changes b/Changes index cca6e94dd..9b87414aa 100644 --- a/Changes +++ b/Changes @@ -5,6 +5,8 @@ The contributors that suggested a given feature are shown in []. Thanks! * Verilator 4.035 devel +**** Fix FST tracing of little bit endian signals. [Geza Lore] + * Verilator 4.034 2020-05-03 diff --git a/include/verilated_fst_c.cpp b/include/verilated_fst_c.cpp index c54d818d8..874e58bc3 100644 --- a/include/verilated_fst_c.cpp +++ b/include/verilated_fst_c.cpp @@ -132,9 +132,10 @@ void VerilatedFst::declDTypeEnum(int dtypenum, const char* name, vluint32_t elem m_local2fstdtype[dtypenum] = enumNum; } -void VerilatedFst::declSymbol(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, - fstVarType vartype, bool array, int arraynum, vluint32_t len, - vluint32_t bits) { +void VerilatedFst::declare(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, + fstVarType vartype, bool array, int arraynum, int msb, int lsb) { + const int bits = ((msb > lsb) ? (msb - lsb) : (lsb - msb)) + 1; + VerilatedTrace::declCode(code, bits, false); std::pair p @@ -178,39 +179,36 @@ void VerilatedFst::declSymbol(vluint32_t code, const char* name, int dtypenum, f fstWriterEmitEnumTableRef(m_fst, enumNum); } if (p.second) { // New - p.first->second = fstWriterCreateVar(m_fst, vartype, vardir, len, name_str.c_str(), 0); + p.first->second = fstWriterCreateVar(m_fst, vartype, vardir, bits, name_str.c_str(), 0); assert(p.first->second); } else { // Alias - fstWriterCreateVar(m_fst, vartype, vardir, len, name_str.c_str(), p.first->second); + fstWriterCreateVar(m_fst, vartype, vardir, bits, name_str.c_str(), p.first->second); } } void VerilatedFst::declBit(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, bool array, int arraynum) { - declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, 1, 1); + declare(code, name, dtypenum, vardir, vartype, array, arraynum, 0, 0); } void VerilatedFst::declBus(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, bool array, int arraynum, int msb, int lsb) { - declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, msb - lsb + 1, - msb - lsb + 1); + declare(code, name, dtypenum, vardir, vartype, array, arraynum, msb, lsb); } void VerilatedFst::declQuad(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, bool array, int arraynum, int msb, int lsb) { - declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, msb - lsb + 1, - msb - lsb + 1); + declare(code, name, dtypenum, vardir, vartype, array, arraynum, msb, lsb); } void VerilatedFst::declArray(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, bool array, int arraynum, int msb, int lsb) { - declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, msb - lsb + 1, - msb - lsb + 1); + declare(code, name, dtypenum, vardir, vartype, array, arraynum, msb, lsb); } void VerilatedFst::declFloat(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, bool array, int arraynum) { - declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, 1, 32); + declare(code, name, dtypenum, vardir, vartype, array, arraynum, 31, 0); } void VerilatedFst::declDouble(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, bool array, int arraynum) { - declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, 2, 64); + declare(code, name, dtypenum, vardir, vartype, array, arraynum, 63, 0); } // Note: emit* are only ever called from one place (full* in diff --git a/include/verilated_fst_c.h b/include/verilated_fst_c.h index c2b0605c7..0eb0d3aef 100644 --- a/include/verilated_fst_c.h +++ b/include/verilated_fst_c.h @@ -55,8 +55,8 @@ private: // CONSTRUCTORS VL_UNCOPYABLE(VerilatedFst); - void declSymbol(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, - fstVarType vartype, bool array, int arraynum, vluint32_t len, vluint32_t bits); + void declare(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, + fstVarType vartype, bool array, int arraynum, int msb, int lsb); protected: //========================================================================= diff --git a/test_regress/t/t_trace_litendian.out b/test_regress/t/t_trace_litendian.out new file mode 100644 index 000000000..c51c5e99e --- /dev/null +++ b/test_regress/t/t_trace_litendian.out @@ -0,0 +1,144 @@ +$version Generated by VerilatedVcd $end +$date Sun May 3 21:38:46 2020 + $end +$timescale 1ps $end + + $scope module top $end + $var wire 1 } clk $end + $scope module t $end + $var wire 8 ~ P [0:7] $end + $var wire 8 !! Q [0:7] $end + $var wire 1 } clk $end + $var wire 32 # cyc [31:0] $end + $var wire 1 $ v_a [0:0] $end + $var wire 2 % v_b [0:1] $end + $var wire 8 & v_c [0:7] $end + $var wire 9 ' v_d [0:8] $end + $var wire 16 ( v_e [0:15] $end + $var wire 17 ) v_f [0:16] $end + $var wire 32 * v_g [0:31] $end + $var wire 33 + v_h [0:32] $end + $var wire 64 - v_i [0:63] $end + $var wire 65 / v_j [0:64] $end + $var wire 128 2 v_k [0:127] $end + $var wire 129 6 v_l [0:128] $end + $var wire 256 ; v_m [0:255] $end + $var wire 257 C v_n [0:256] $end + $var wire 512 L v_o [0:511] $end + $var wire 3 \ v_p [-1:1] $end + $var wire 15 ] v_q [-7:7] $end + $var wire 31 ^ v_r [-15:15] $end + $var wire 63 _ v_s [-31:31] $end + $var wire 127 a v_t [-63:63] $end + $var wire 255 e v_u [-127:127] $end + $var wire 511 m v_v [-255:255] $end + $upscope $end + $upscope $end +$enddefinitions $end + + +#0 +b00000000000000000000000000000000 # +0$ +b00 % +b00000000 & +b000000000 ' +b0000000000000000 ( +b00000000000000000 ) +b00000000000000000000000000000000 * +b000000000000000000000000000000000 + +b0000000000000000000000000000000000000000000000000000000000000000 - +b00000000000000000000000000000000000000000000000000000000000000000 / +b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 2 +b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 6 +b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ; +b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 C +b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 L +b000 \ +b000000000000000 ] +b0000000000000000000000000000000 ^ +b000000000000000000000000000000000000000000000000000000000000000 _ +b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 a +b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 e +b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 m +0} +b00001010 ~ +b00010100 !! +#10 +b00000000000000000000000000000001 # +1$ +b11 % +b11111111 & +b111111111 ' +b1111111111111111 ( +b11111111111111111 ) +b11111111111111111111111111111111 * +b111111111111111111111111111111111 + +b1111111111111111111111111111111111111111111111111111111111111111 - +b11111111111111111111111111111111111111111111111111111111111111111 / +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 2 +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 6 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 ; +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 C +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 L +b111 \ +b111111111111111 ] +b1111111111111111111111111111111 ^ +b111111111111111111111111111111111111111111111111111111111111111 _ +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 a +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 e +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 m +1} +#15 +0} +#20 +b00000000000000000000000000000010 # +0$ +b10 % +b11111110 & +b111111110 ' +b1111111111111110 ( +b11111111111111110 ) +b11111111111111111111111111111110 * +b111111111111111111111111111111110 + +b1111111111111111111111111111111111111111111111111111111111111110 - +b11111111111111111111111111111111111111111111111111111111111111110 / +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 2 +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 6 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 ; +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 C +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 L +b110 \ +b111111111111110 ] +b1111111111111111111111111111110 ^ +b111111111111111111111111111111111111111111111111111111111111110 _ +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 a +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 e +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 m +1} +#25 +0} +#30 +b00000000000000000000000000000011 # +b00 % +b11111100 & +b111111100 ' +b1111111111111100 ( +b11111111111111100 ) +b11111111111111111111111111111100 * +b111111111111111111111111111111100 + +b1111111111111111111111111111111111111111111111111111111111111100 - +b11111111111111111111111111111111111111111111111111111111111111100 / +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 2 +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 6 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 ; +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 C +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 L +b100 \ +b111111111111100 ] +b1111111111111111111111111111100 ^ +b111111111111111111111111111111111111111111111111111111111111100 _ +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 a +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 e +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 m +1} diff --git a/test_regress/t/t_trace_litendian.pl b/test_regress/t/t_trace_litendian.pl new file mode 100755 index 000000000..a706f79f3 --- /dev/null +++ b/test_regress/t/t_trace_litendian.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl +if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; } +# DESCRIPTION: Verilator: Verilog Test driver/expect definition +# +# Copyright 2020 by Geza Lore. This program is free software; you can +# redistribute it and/or modify it under the terms of either the GNU +# Lesser General Public License Version 3 or the Perl Artistic License +# Version 2.0. +# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 + +scenarios(simulator => 1); + +compile( + verilator_flags2 => ['--cc --trace --trace-params -Wno-LITENDIAN'], + ); + +execute( + check_finished => 1, + ); + +vcd_identical("$Self->{obj_dir}/simx.vcd", $Self->{golden_filename}); + +ok(1); +1; diff --git a/test_regress/t/t_trace_litendian.v b/test_regress/t/t_trace_litendian.v new file mode 100644 index 000000000..348b80ea6 --- /dev/null +++ b/test_regress/t/t_trace_litendian.v @@ -0,0 +1,97 @@ +// DESCRIPTION: Verilator: Verilog Test module +// +// This file ONLY is placed under the Creative Commons Public Domain, for +// any use, without warranty, 2020 by Geza Lore. +// SPDX-License-Identifier: CC0-1.0 + +module t #( + parameter [0:7] P = 8'd10 + )(/*AUTOARG*/ + // Inputs + clk + ); + input clk; + int cyc = 0; + + localparam [0:7] Q = 8'd20; + + logic [ 0: 0] v_a = '0; + logic [ 0: 1] v_b = '0; + logic [ 0: 7] v_c = '0; + logic [ 0: 8] v_d = '0; + logic [ 0: 15] v_e = '0; + logic [ 0: 16] v_f = '0; + logic [ 0: 31] v_g = '0; + logic [ 0: 32] v_h = '0; + logic [ 0: 63] v_i = '0; + logic [ 0: 64] v_j = '0; + logic [ 0:127] v_k = '0; + logic [ 0:128] v_l = '0; + logic [ 0:255] v_m = '0; + logic [ 0:256] v_n = '0; + logic [ 0:511] v_o = '0; + logic [ -1: 1] v_p = '0; + logic [ -7: 7] v_q = '0; + logic [ -15: 15] v_r = '0; + logic [ -31: 31] v_s = '0; + logic [ -63: 63] v_t = '0; + logic [-127:127] v_u = '0; + logic [-255:255] v_v = '0; + + always @(posedge clk) begin + if (cyc == 0) begin + v_a <= '1; + v_b <= '1; + v_c <= '1; + v_d <= '1; + v_e <= '1; + v_f <= '1; + v_g <= '1; + v_h <= '1; + v_i <= '1; + v_j <= '1; + v_k <= '1; + v_l <= '1; + v_m <= '1; + v_n <= '1; + v_o <= '1; + v_p <= '1; + v_q <= '1; + v_r <= '1; + v_s <= '1; + v_t <= '1; + v_u <= '1; + v_v <= '1; + end else begin + v_a <= v_a << 1; + v_b <= v_b << 1; + v_c <= v_c << 1; + v_d <= v_d << 1; + v_e <= v_e << 1; + v_f <= v_f << 1; + v_g <= v_g << 1; + v_h <= v_h << 1; + v_i <= v_i << 1; + v_j <= v_j << 1; + v_k <= v_k << 1; + v_l <= v_l << 1; + v_m <= v_m << 1; + v_n <= v_n << 1; + v_o <= v_o << 1; + v_p <= v_p << 1; + v_q <= v_q << 1; + v_r <= v_r << 1; + v_s <= v_s << 1; + v_t <= v_t << 1; + v_u <= v_u << 1; + v_v <= v_v << 1; + end + + cyc <= cyc + 1; + if (cyc == 2) begin + $write("*-* All Finished *-*\n"); + $finish; + end + end + +endmodule diff --git a/test_regress/t/t_trace_litendian_fst.out b/test_regress/t/t_trace_litendian_fst.out new file mode 100644 index 000000000..fca4ff32e --- /dev/null +++ b/test_regress/t/t_trace_litendian_fst.out @@ -0,0 +1,149 @@ +$date + Sun May 3 21:53:46 2020 + +$end +$version + fstWriter +$end +$timescale + 1ps +$end +$scope module top $end +$var wire 1 ! clk $end +$scope module t $end +$var parameter 8 " P $end +$var wire 1 ! clk $end +$var int 32 # cyc $end +$var parameter 8 $ Q $end +$var logic 1 % v_a $end +$var logic 2 & v_b $end +$var logic 8 ' v_c $end +$var logic 9 ( v_d $end +$var logic 16 ) v_e $end +$var logic 17 * v_f $end +$var logic 32 + v_g $end +$var logic 33 , v_h $end +$var logic 64 - v_i $end +$var logic 65 . v_j $end +$var logic 128 / v_k $end +$var logic 129 0 v_l $end +$var logic 256 1 v_m $end +$var logic 257 2 v_n $end +$var logic 512 3 v_o $end +$var logic 3 4 v_p $end +$var logic 15 5 v_q $end +$var logic 31 6 v_r $end +$var logic 63 7 v_s $end +$var logic 127 8 v_t $end +$var logic 255 9 v_u $end +$var logic 511 : v_v $end +$upscope $end +$upscope $end +$enddefinitions $end +#0 +$dumpvars +b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 : +b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 9 +b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 8 +b000000000000000000000000000000000000000000000000000000000000000 7 +b0000000000000000000000000000000 6 +b000000000000000 5 +b000 4 +b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 3 +b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 2 +b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1 +b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 +b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 / +b00000000000000000000000000000000000000000000000000000000000000000 . +b0000000000000000000000000000000000000000000000000000000000000000 - +b000000000000000000000000000000000 , +b00000000000000000000000000000000 + +b00000000000000000 * +b0000000000000000 ) +b000000000 ( +b00000000 ' +b00 & +0% +b00010100 $ +b00000000000000000000000000000000 # +b00001010 " +0! +$end +#10 +1! +b00000000000000000000000000000001 # +1% +b11 & +b11111111 ' +b111111111 ( +b1111111111111111 ) +b11111111111111111 * +b11111111111111111111111111111111 + +b111111111111111111111111111111111 , +b1111111111111111111111111111111111111111111111111111111111111111 - +b11111111111111111111111111111111111111111111111111111111111111111 . +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 / +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 0 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 1 +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 2 +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 3 +b111 4 +b111111111111111 5 +b1111111111111111111111111111111 6 +b111111111111111111111111111111111111111111111111111111111111111 7 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 8 +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 9 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 : +#15 +0! +#20 +1! +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 : +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 9 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 8 +b111111111111111111111111111111111111111111111111111111111111110 7 +b1111111111111111111111111111110 6 +b111111111111110 5 +b110 4 +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 3 +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 2 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 1 +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 0 +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110 / +b11111111111111111111111111111111111111111111111111111111111111110 . +b1111111111111111111111111111111111111111111111111111111111111110 - +b111111111111111111111111111111110 , +b11111111111111111111111111111110 + +b11111111111111110 * +b1111111111111110 ) +b111111110 ( +b11111110 ' +b10 & +0% +b00000000000000000000000000000010 # +#25 +0! +#30 +1! +b00000000000000000000000000000011 # +b00 & +b11111100 ' +b111111100 ( +b1111111111111100 ) +b11111111111111100 * +b11111111111111111111111111111100 + +b111111111111111111111111111111100 , +b1111111111111111111111111111111111111111111111111111111111111100 - +b11111111111111111111111111111111111111111111111111111111111111100 . +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 / +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 0 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 1 +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 2 +b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 3 +b100 4 +b111111111111100 5 +b1111111111111111111111111111100 6 +b111111111111111111111111111111111111111111111111111111111111100 7 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 8 +b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 9 +b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100 : diff --git a/test_regress/t/t_trace_litendian_fst.pl b/test_regress/t/t_trace_litendian_fst.pl new file mode 100755 index 000000000..d9a4056cb --- /dev/null +++ b/test_regress/t/t_trace_litendian_fst.pl @@ -0,0 +1,26 @@ +#!/usr/bin/perl +if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; } +# DESCRIPTION: Verilator: Verilog Test driver/expect definition +# +# Copyright 2020 by Geza Lore. This program is free software; you can +# redistribute it and/or modify it under the terms of either the GNU +# Lesser General Public License Version 3 or the Perl Artistic License +# Version 2.0. +# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 + +scenarios(simulator => 1); + +top_filename("t/t_trace_litendian.v"); + +compile( + verilator_flags2 => ['--cc --trace-fst --trace-params -Wno-LITENDIAN'], + ); + +execute( + check_finished => 1, + ); + +fst_identical("$Self->{obj_dir}/simx.fst", $Self->{golden_filename}); + +ok(1); +1;