Made decoder and test got both to compile. Seems to not work as expected need to look into more
diff --git a/verilog/dv/decoder_test/a.out b/verilog/dv/decoder_test/a.out
new file mode 100755
index 0000000..2568bce
--- /dev/null
+++ b/verilog/dv/decoder_test/a.out
@@ -0,0 +1,124 @@
+#! /usr/bin/vvp
+:ivl_version "10.3 (stable)";
+:ivl_delay_selection "TYPICAL";
+:vpi_time_precision - 11;
+:vpi_module "system";
+:vpi_module "vhdl_sys";
+:vpi_module "v2005_math";
+:vpi_module "va_math";
+S_0x560d6dfeb9b0 .scope module, "decoder_tb" "decoder_tb" 2 1;
+ .timescale -9 -11;
+v0x560d6dffdd90_0 .net "fullTarget", 255 0, v0x560d6dffd6e0_0;  1 drivers
+v0x560d6dffde50_0 .var "target", 31 0;
+S_0x560d6dfebb30 .scope module, "dec1" "decoder" 2 6, 3 13 0, S_0x560d6dfeb9b0;
+ .timescale -9 -11;
+    .port_info 0 /INPUT 32 "target"
+    .port_info 1 /OUTPUT 256 "fullTarget"
+v0x560d6dfc7330_0 .var "decoded", 255 0;
+v0x560d6dffd6e0_0 .var "fullTarget", 255 0;
+v0x560d6dffd7c0_0 .var/i "i", 31 0;
+v0x560d6dffd880_0 .var/i "leftBuffer", 31 0;
+v0x560d6dffd960_0 .var "sizeOnes", 3 0;
+v0x560d6dffda90_0 .var "sizeTens", 3 0;
+v0x560d6dffdb70_0 .var/i "spacing", 31 0;
+v0x560d6dffdc50_0 .net "target", 31 0, v0x560d6dffde50_0;  1 drivers
+    .scope S_0x560d6dfebb30;
+T_0 ;
+    %load/vec4 v0x560d6dffdc50_0;
+    %parti/s 4, 28, 6;
+    %store/vec4 v0x560d6dffda90_0, 0, 4;
+    %load/vec4 v0x560d6dffdc50_0;
+    %parti/s 4, 24, 6;
+    %store/vec4 v0x560d6dffd960_0, 0, 4;
+    %load/vec4 v0x560d6dffda90_0;
+    %pad/u 32;
+    %muli 16, 0, 32;
+    %load/vec4 v0x560d6dffd960_0;
+    %pad/u 32;
+    %add;
+    %store/vec4 v0x560d6dffdb70_0, 0, 32;
+    %pushi/vec4 32, 0, 32;
+    %load/vec4 v0x560d6dffdb70_0;
+    %sub;
+    %store/vec4 v0x560d6dffd880_0, 0, 32;
+    %pushi/vec4 255, 0, 32;
+    %store/vec4 v0x560d6dffd7c0_0, 0, 32;
+T_0.0 ;
+    %pushi/vec4 254, 0, 32;
+    %load/vec4 v0x560d6dffd880_0;
+    %sub;
+    %load/vec4 v0x560d6dffd7c0_0;
+    %cmp/s;
+    %jmp/0xz T_0.1, 5;
+    %pushi/vec4 0, 0, 1;
+    %ix/getv/s 4, v0x560d6dffd7c0_0;
+    %store/vec4 v0x560d6dfc7330_0, 4, 1;
+    %load/vec4 v0x560d6dffd7c0_0;
+    %pushi/vec4 1, 0, 32;
+    %sub;
+    %store/vec4 v0x560d6dffd7c0_0, 0, 32;
+    %jmp T_0.0;
+T_0.1 ;
+    %pushi/vec4 0, 0, 32;
+    %store/vec4 v0x560d6dffd7c0_0, 0, 32;
+T_0.2 ;
+    %load/vec4 v0x560d6dffd7c0_0;
+    %cmpi/s 24, 0, 32;
+    %jmp/0xz T_0.3, 5;
+    %load/vec4 v0x560d6dffdc50_0;
+    %load/vec4 v0x560d6dffd7c0_0;
+    %part/s 1;
+    %pushi/vec4 255, 0, 32;
+    %load/vec4 v0x560d6dffd880_0;
+    %sub;
+    %subi 25, 0, 32;
+    %load/vec4 v0x560d6dffd7c0_0;
+    %add;
+    %ix/vec4/s 4;
+    %store/vec4 v0x560d6dfc7330_0, 4, 1;
+    %load/vec4 v0x560d6dffd7c0_0;
+    %pushi/vec4 1, 0, 32;
+    %add;
+    %store/vec4 v0x560d6dffd7c0_0, 0, 32;
+    %jmp T_0.2;
+T_0.3 ;
+    %pushi/vec4 255, 0, 32;
+    %load/vec4 v0x560d6dffd880_0;
+    %sub;
+    %subi 26, 0, 32;
+    %store/vec4 v0x560d6dffd7c0_0, 0, 32;
+T_0.4 ;
+    %pushi/vec4 4294967295, 0, 32;
+    %load/vec4 v0x560d6dffd7c0_0;
+    %cmp/s;
+    %jmp/0xz T_0.5, 5;
+    %pushi/vec4 0, 0, 1;
+    %ix/getv/s 4, v0x560d6dffd7c0_0;
+    %store/vec4 v0x560d6dfc7330_0, 4, 1;
+    %load/vec4 v0x560d6dffd7c0_0;
+    %pushi/vec4 1, 0, 32;
+    %sub;
+    %store/vec4 v0x560d6dffd7c0_0, 0, 32;
+    %jmp T_0.4;
+T_0.5 ;
+    %load/vec4 v0x560d6dfc7330_0;
+    %store/vec4 v0x560d6dffd6e0_0, 0, 256;
+    %end;
+    .thread T_0;
+    .scope S_0x560d6dfeb9b0;
+T_1 ;
+    %vpi_call 2 10 "$dumpfile", "decoder_tb.vcd" {0 0 0};
+    %vpi_call 2 11 "$dumpvars" {0 0 0};
+    %pushi/vec4 419668748, 0, 32;
+    %cassign/vec4 v0x560d6dffde50_0;
+    %vpi_call 2 13 "$display", "FINISHED decoder_tb" {0 0 0};
+    %vpi_call 2 14 "$display", "Output: %h", v0x560d6dffdd90_0 {0 0 0};
+    %vpi_call 2 15 "$finish" {0 0 0};
+    %end;
+    .thread T_1;
+# The file index is used to find the file name in the following table.
+:file_names 4;
+    "N/A";
+    "<interactive>";
+    "decoder_tb.sv";
+    "decoder.sv";
diff --git a/verilog/dv/decoder_test/decoder.sv b/verilog/dv/decoder_test/decoder.sv
new file mode 100644
index 0000000..94d8e2a
--- /dev/null
+++ b/verilog/dv/decoder_test/decoder.sv
@@ -0,0 +1,49 @@
+`default_nettype none

+`timescale 1 ns / 10 ps

+/*

+ *-------------------------------------------------------------

+ *

+ * decoder

+ *

+ * Used to transform a 32 bit target into a 256 bit target using math magic.

+ *

+ *-------------------------------------------------------------

+ */

+

+module decoder (input logic [31:0] target,

+                    output logic [255:0] fullTarget);

+

+	logic [3:0] sizeTens;

+    logic [3:0] sizeOnes;

+    logic [255:0] decoded;

+    integer spacing;

+    integer leftBuffer;

+    integer i;

+    initial begin

+        sizeTens=target[31:28];

+        sizeOnes=target[27:24];

+

+        //IDK if this is legal

+        spacing  = sizeTens*16+sizeOnes;

+

+        leftBuffer = 32-spacing;

+

+        //Pad left side based on first 2 bytes

+        for(i=255;i>254-leftBuffer;i--)

+            decoded[i] = 0;

+        

+        //Set value within middle of target

+        i=0;

+        while(i<24) begin

+            decoded[255-leftBuffer-25+i] = target[i];

+            i++;

+        end

+        //Pad the rest

+        for(i=255-leftBuffer-26;i>-1;i--)

+            decoded[i]=0;

+

+        fullTarget = decoded;

+    end

+

+

+endmodule

diff --git a/verilog/dv/decoder_test/decoder_tb.sv b/verilog/dv/decoder_test/decoder_tb.sv
new file mode 100644
index 0000000..9e2abe8
--- /dev/null
+++ b/verilog/dv/decoder_test/decoder_tb.sv
@@ -0,0 +1,19 @@
+module decoder_tb;

+ 

+    logic [31:0] target;

+    wire [255:0] fullTarget;

+

+    decoder dec1(.target(target), .fullTarget(fullTarget));

+

+    initial begin

+        //Dump waves

+        $dumpfile("decoder_tb.vcd");

+        $dumpvars;

+        assign target='h1903A30C;

+        $display("FINISHED decoder_tb");

+    	$display("Output: %h", fullTarget);

+    	$finish;

+

+    end

+

+endmodule
\ No newline at end of file
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder.cpp b/verilog/dv/decoder_test/obj_dir/Vdecoder.cpp
new file mode 100644
index 0000000..11ef2cb
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder.cpp
@@ -0,0 +1,82 @@
+// Verilated -*- C++ -*-
+// DESCRIPTION: Verilator output: Model implementation (design independent parts)
+
+#include "Vdecoder.h"
+#include "Vdecoder__Syms.h"
+
+//============================================================
+// Constructors
+
+Vdecoder::Vdecoder(VerilatedContext* _vcontextp__, const char* _vcname__)
+    : vlSymsp{new Vdecoder__Syms(_vcontextp__, _vcname__, this)}
+    , rootp{&(vlSymsp->TOP)}
+{
+}
+
+Vdecoder::Vdecoder(const char* _vcname__)
+    : Vdecoder(nullptr, _vcname__)
+{
+}
+
+//============================================================
+// Destructor
+
+Vdecoder::~Vdecoder() {
+    delete vlSymsp;
+}
+
+//============================================================
+// Evaluation loop
+
+void Vdecoder___024root___eval_initial(Vdecoder___024root* vlSelf);
+void Vdecoder___024root___eval_settle(Vdecoder___024root* vlSelf);
+void Vdecoder___024root___eval(Vdecoder___024root* vlSelf);
+#ifdef VL_DEBUG
+void Vdecoder___024root___eval_debug_assertions(Vdecoder___024root* vlSelf);
+#endif  // VL_DEBUG
+void Vdecoder___024root___final(Vdecoder___024root* vlSelf);
+
+static void _eval_initial_loop(Vdecoder__Syms* __restrict vlSymsp) {
+    vlSymsp->__Vm_didInit = true;
+    Vdecoder___024root___eval_initial(&(vlSymsp->TOP));
+    // Evaluate till stable
+    do {
+        VL_DEBUG_IF(VL_DBG_MSGF("+ Initial loop\n"););
+        Vdecoder___024root___eval_settle(&(vlSymsp->TOP));
+        Vdecoder___024root___eval(&(vlSymsp->TOP));
+    } while (0);
+}
+
+void Vdecoder::eval_step() {
+    VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vdecoder::eval_step\n"); );
+#ifdef VL_DEBUG
+    // Debug assertions
+    Vdecoder___024root___eval_debug_assertions(&(vlSymsp->TOP));
+#endif  // VL_DEBUG
+    // Initialize
+    if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) _eval_initial_loop(vlSymsp);
+    // Evaluate till stable
+    do {
+        VL_DEBUG_IF(VL_DBG_MSGF("+ Clock loop\n"););
+        Vdecoder___024root___eval(&(vlSymsp->TOP));
+    } while (0);
+    // Evaluate cleanup
+}
+
+//============================================================
+// Utilities
+
+VerilatedContext* Vdecoder::contextp() const {
+    return vlSymsp->_vm_contextp__;
+}
+
+const char* Vdecoder::name() const {
+    return vlSymsp->name();
+}
+
+//============================================================
+// Invoke final blocks
+
+VL_ATTR_COLD void Vdecoder::final() {
+    Vdecoder___024root___final(&(vlSymsp->TOP));
+}
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder.h b/verilog/dv/decoder_test/obj_dir/Vdecoder.h
new file mode 100644
index 0000000..293e04b
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder.h
@@ -0,0 +1,66 @@
+// Verilated -*- C++ -*-
+// DESCRIPTION: Verilator output: Primary model header
+//
+// This header should be included by all source files instantiating the design.
+// The class here is then constructed to instantiate the design.
+// See the Verilator manual for examples.
+
+#ifndef VERILATED_VDECODER_H_
+#define VERILATED_VDECODER_H_  // guard
+
+#include "verilated.h"
+
+class Vdecoder__Syms;
+class Vdecoder___024root;
+
+// This class is the main interface to the Verilated model
+class Vdecoder VL_NOT_FINAL {
+  private:
+    // Symbol table holding complete model state (owned by this class)
+    Vdecoder__Syms* const vlSymsp;
+
+  public:
+
+    // PORTS
+    // The application code writes and reads these signals to
+    // propagate new values into/out from the Verilated model.
+
+    // CELLS
+    // Public to allow access to /* verilator public */ items.
+    // Otherwise the application code can consider these internals.
+
+    // Root instance pointer to allow access to model internals,
+    // including inlined /* verilator public_flat_* */ items.
+    Vdecoder___024root* const rootp;
+
+    // CONSTRUCTORS
+    /// Construct the model; called by application code
+    /// If contextp is null, then the model will use the default global context
+    /// If name is "", then makes a wrapper with a
+    /// single model invisible with respect to DPI scope names.
+    explicit Vdecoder(VerilatedContext* contextp, const char* name = "TOP");
+    explicit Vdecoder(const char* name = "TOP");
+    /// Destroy the model; called (often implicitly) by application code
+    virtual ~Vdecoder();
+  private:
+    VL_UNCOPYABLE(Vdecoder);  ///< Copying not allowed
+
+  public:
+    // API METHODS
+    /// Evaluate the model.  Application must call when inputs change.
+    void eval() { eval_step(); }
+    /// Evaluate when calling multiple units/models per time step.
+    void eval_step();
+    /// Evaluate at end of a timestep for tracing, when using eval_step().
+    /// Application must call after all eval() and before time changes.
+    void eval_end_step() {}
+    /// Simulation complete, run final blocks.  Application must call on completion.
+    void final();
+    /// Return current simulation context for this model.
+    /// Used to get to e.g. simulation time via contextp()->time()
+    VerilatedContext* contextp() const;
+    /// Retrieve name of this model instance (as passed to constructor).
+    const char* name() const;
+} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES);
+
+#endif  // guard
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder.mk b/verilog/dv/decoder_test/obj_dir/Vdecoder.mk
new file mode 100644
index 0000000..7ad0fff
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder.mk
@@ -0,0 +1,55 @@
+# Verilated -*- Makefile -*-
+# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable
+#
+# Execute this makefile from the object directory:
+#    make -f Vdecoder.mk
+
+default: Vdecoder__ALL.a
+
+### Constants...
+# Perl executable (from $PERL)
+PERL = perl
+# Path to Verilator kit (from $VERILATOR_ROOT)
+VERILATOR_ROOT = /home/cmantas/verilator
+# SystemC include directory with systemc.h (from $SYSTEMC_INCLUDE)
+SYSTEMC_INCLUDE ?= 
+# SystemC library directory with libsystemc.a (from $SYSTEMC_LIBDIR)
+SYSTEMC_LIBDIR ?= 
+
+### Switches...
+# C++ code coverage  0/1 (from --prof-c)
+VM_PROFC = 0
+# SystemC output mode?  0/1 (from --sc)
+VM_SC = 0
+# Legacy or SystemC output mode?  0/1 (from --sc)
+VM_SP_OR_SC = $(VM_SC)
+# Deprecated
+VM_PCLI = 1
+# Deprecated: SystemC architecture to find link library path (from $SYSTEMC_ARCH)
+VM_SC_TARGET_ARCH = linux
+
+### Vars...
+# Design prefix (from --prefix)
+VM_PREFIX = Vdecoder
+# Module prefix (from --prefix)
+VM_MODPREFIX = Vdecoder
+# User CFLAGS (from -CFLAGS on Verilator command line)
+VM_USER_CFLAGS = \
+
+# User LDLIBS (from -LDFLAGS on Verilator command line)
+VM_USER_LDLIBS = \
+
+# User .cpp files (from .cpp's on Verilator command line)
+VM_USER_CLASSES = \
+
+# User .cpp directories (from .cpp's on Verilator command line)
+VM_USER_DIR = \
+
+
+### Default rules...
+# Include list of all generated classes
+include Vdecoder_classes.mk
+# Include global rules
+include $(VERILATOR_ROOT)/include/verilated.mk
+
+# Verilated -*- Makefile -*-
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder__Syms.cpp b/verilog/dv/decoder_test/obj_dir/Vdecoder__Syms.cpp
new file mode 100644
index 0000000..437656d
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder__Syms.cpp
@@ -0,0 +1,26 @@
+// Verilated -*- C++ -*-
+// DESCRIPTION: Verilator output: Symbol table implementation internals
+
+#include "Vdecoder__Syms.h"
+#include "Vdecoder.h"
+#include "Vdecoder___024root.h"
+
+// FUNCTIONS
+Vdecoder__Syms::~Vdecoder__Syms()
+{
+}
+
+Vdecoder__Syms::Vdecoder__Syms(VerilatedContext* contextp, const char* namep,Vdecoder* modelp)
+    : VerilatedSyms{contextp}
+    // Setup internal state of the Syms class
+    , __Vm_modelp{modelp}
+    // Setup module instances
+    , TOP(namep)
+{
+    // Configure time unit / time precision
+    _vm_contextp__->timeunit(-9);
+    _vm_contextp__->timeprecision(-11);
+    // Setup each module's pointers to their submodules
+    // Setup each module's pointer back to symbol table (for public functions)
+    TOP.__Vconfigure(this, true);
+}
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder__Syms.h b/verilog/dv/decoder_test/obj_dir/Vdecoder__Syms.h
new file mode 100644
index 0000000..8e03fa0
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder__Syms.h
@@ -0,0 +1,37 @@
+// Verilated -*- C++ -*-
+// DESCRIPTION: Verilator output: Symbol table internal header
+//
+// Internal details; most calling programs do not need this header,
+// unless using verilator public meta comments.
+
+#ifndef VERILATED_VDECODER__SYMS_H_
+#define VERILATED_VDECODER__SYMS_H_  // guard
+
+#include "verilated.h"
+
+// INCLUDE MODEL CLASS
+
+#include "Vdecoder.h"
+
+// INCLUDE MODULE CLASSES
+#include "Vdecoder___024root.h"
+
+// SYMS CLASS (contains all model state)
+class Vdecoder__Syms final : public VerilatedSyms {
+  public:
+    // INTERNAL STATE
+    Vdecoder* const __Vm_modelp;
+    bool __Vm_didInit = false;
+
+    // MODULE INSTANCE STATE
+    Vdecoder___024root             TOP;
+
+    // CONSTRUCTORS
+    Vdecoder__Syms(VerilatedContext* contextp, const char* namep, Vdecoder* modelp);
+    ~Vdecoder__Syms();
+
+    // METHODS
+    const char* name() { return TOP.name(); }
+} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES);
+
+#endif  // guard
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder___024root.h b/verilog/dv/decoder_test/obj_dir/Vdecoder___024root.h
new file mode 100644
index 0000000..148bf89
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder___024root.h
@@ -0,0 +1,31 @@
+// Verilated -*- C++ -*-
+// DESCRIPTION: Verilator output: Design internal header
+// See Vdecoder.h for the primary calling header
+
+#ifndef VERILATED_VDECODER___024ROOT_H_
+#define VERILATED_VDECODER___024ROOT_H_  // guard
+
+#include "verilated.h"
+
+class Vdecoder__Syms;
+VL_MODULE(Vdecoder___024root) {
+  public:
+
+    // DESIGN SPECIFIC STATE
+    IData/*31:0*/ decoder_tb__DOT__target;
+    VlWide<8>/*255:0*/ decoder_tb__DOT__dec1__DOT__decoded;
+
+    // INTERNAL VARIABLES
+    Vdecoder__Syms* vlSymsp;  // Symbol table
+
+    // CONSTRUCTORS
+    Vdecoder___024root(const char* name);
+    ~Vdecoder___024root();
+    VL_UNCOPYABLE(Vdecoder___024root);
+
+    // INTERNAL METHODS
+    void __Vconfigure(Vdecoder__Syms* symsp, bool first);
+} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES);
+
+
+#endif  // guard
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__DepSet_h918ffe01__0.cpp b/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__DepSet_h918ffe01__0.cpp
new file mode 100644
index 0000000..8140a2d
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__DepSet_h918ffe01__0.cpp
@@ -0,0 +1,21 @@
+// Verilated -*- C++ -*-
+// DESCRIPTION: Verilator output: Design implementation internals
+// See Vdecoder.h for the primary calling header
+
+#include "verilated.h"
+
+#include "Vdecoder___024root.h"
+
+void Vdecoder___024root___eval(Vdecoder___024root* vlSelf) {
+    if (false && vlSelf) {}  // Prevent unused
+    Vdecoder__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
+    VL_DEBUG_IF(VL_DBG_MSGF("+    Vdecoder___024root___eval\n"); );
+}
+
+#ifdef VL_DEBUG
+void Vdecoder___024root___eval_debug_assertions(Vdecoder___024root* vlSelf) {
+    if (false && vlSelf) {}  // Prevent unused
+    Vdecoder__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
+    VL_DEBUG_IF(VL_DBG_MSGF("+    Vdecoder___024root___eval_debug_assertions\n"); );
+}
+#endif  // VL_DEBUG
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__DepSet_h918ffe01__0__Slow.cpp b/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__DepSet_h918ffe01__0__Slow.cpp
new file mode 100644
index 0000000..0426987
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__DepSet_h918ffe01__0__Slow.cpp
@@ -0,0 +1,38 @@
+// Verilated -*- C++ -*-
+// DESCRIPTION: Verilator output: Design implementation internals
+// See Vdecoder.h for the primary calling header
+
+#include "verilated.h"
+
+#include "Vdecoder___024root.h"
+
+VL_ATTR_COLD void Vdecoder___024root___initial__TOP__0(Vdecoder___024root* vlSelf);
+
+VL_ATTR_COLD void Vdecoder___024root___eval_initial(Vdecoder___024root* vlSelf) {
+    if (false && vlSelf) {}  // Prevent unused
+    Vdecoder__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
+    VL_DEBUG_IF(VL_DBG_MSGF("+    Vdecoder___024root___eval_initial\n"); );
+    // Body
+    Vdecoder___024root___initial__TOP__0(vlSelf);
+}
+
+VL_ATTR_COLD void Vdecoder___024root___eval_settle(Vdecoder___024root* vlSelf) {
+    if (false && vlSelf) {}  // Prevent unused
+    Vdecoder__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
+    VL_DEBUG_IF(VL_DBG_MSGF("+    Vdecoder___024root___eval_settle\n"); );
+}
+
+VL_ATTR_COLD void Vdecoder___024root___final(Vdecoder___024root* vlSelf) {
+    if (false && vlSelf) {}  // Prevent unused
+    Vdecoder__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
+    VL_DEBUG_IF(VL_DBG_MSGF("+    Vdecoder___024root___final\n"); );
+}
+
+VL_ATTR_COLD void Vdecoder___024root___ctor_var_reset(Vdecoder___024root* vlSelf) {
+    if (false && vlSelf) {}  // Prevent unused
+    Vdecoder__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
+    VL_DEBUG_IF(VL_DBG_MSGF("+    Vdecoder___024root___ctor_var_reset\n"); );
+    // Body
+    vlSelf->decoder_tb__DOT__target = VL_RAND_RESET_I(32);
+    VL_RAND_RESET_W(256, vlSelf->decoder_tb__DOT__dec1__DOT__decoded);
+}
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__DepSet_he51a2589__0__Slow.cpp b/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__DepSet_he51a2589__0__Slow.cpp
new file mode 100644
index 0000000..12f00e4
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__DepSet_he51a2589__0__Slow.cpp
@@ -0,0 +1,588 @@
+// Verilated -*- C++ -*-
+// DESCRIPTION: Verilator output: Design implementation internals
+// See Vdecoder.h for the primary calling header
+
+#include "verilated.h"
+
+#include "Vdecoder__Syms.h"
+#include "Vdecoder___024root.h"
+
+VL_ATTR_COLD void Vdecoder___024root___initial__TOP__0(Vdecoder___024root* vlSelf) {
+    if (false && vlSelf) {}  // Prevent unused
+    Vdecoder__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
+    VL_DEBUG_IF(VL_DBG_MSGF("+    Vdecoder___024root___initial__TOP__0\n"); );
+    // Init
+    VlWide<8>/*255:0*/ decoder_tb__DOT__fullTarget;
+    CData/*3:0*/ decoder_tb__DOT__dec1__DOT__sizeTens;
+    CData/*3:0*/ decoder_tb__DOT__dec1__DOT__sizeOnes;
+    IData/*31:0*/ decoder_tb__DOT__dec1__DOT__spacing;
+    IData/*31:0*/ decoder_tb__DOT__dec1__DOT__leftBuffer;
+    IData/*31:0*/ decoder_tb__DOT__dec1__DOT__i;
+    VlWide<4>/*127:0*/ __Vtemp_hff926249__0;
+    // Body
+    decoder_tb__DOT__dec1__DOT__sizeTens = (vlSelf->decoder_tb__DOT__target 
+                                            >> 0x1cU);
+    decoder_tb__DOT__dec1__DOT__sizeOnes = (0xfU & 
+                                            (vlSelf->decoder_tb__DOT__target 
+                                             >> 0x18U));
+    decoder_tb__DOT__dec1__DOT__spacing = (((IData)(decoder_tb__DOT__dec1__DOT__sizeTens) 
+                                            << 4U) 
+                                           + (IData)(decoder_tb__DOT__dec1__DOT__sizeOnes));
+    decoder_tb__DOT__dec1__DOT__leftBuffer = ((IData)(0x20U) 
+                                              - decoder_tb__DOT__dec1__DOT__spacing);
+    decoder_tb__DOT__dec1__DOT__i = 0xffU;
+    while (VL_GTS_III(32, decoder_tb__DOT__dec1__DOT__i, 
+                      ((IData)(0xfeU) - decoder_tb__DOT__dec1__DOT__leftBuffer))) {
+        vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                     & (decoder_tb__DOT__dec1__DOT__i 
+                                                        >> 5U))] 
+            = ((~ ((IData)(1U) << (0x1fU & decoder_tb__DOT__dec1__DOT__i))) 
+               & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+               (7U & (decoder_tb__DOT__dec1__DOT__i 
+                      >> 5U))]);
+        decoder_tb__DOT__dec1__DOT__i = (decoder_tb__DOT__dec1__DOT__i 
+                                         - (IData)(1U));
+    }
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & ((((IData)(0xffU) 
+                                                      - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                     - (IData)(0x19U)) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & (((IData)(0xffU) 
+                                          - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                         - (IData)(0x19U))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & ((((IData)(0xffU) - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                    - (IData)(0x19U)) >> 5U))]) | (
+                                                   (1U 
+                                                    & vlSelf->decoder_tb__DOT__target) 
+                                                   << 
+                                                   (0x1fU 
+                                                    & (((IData)(0xffU) 
+                                                        - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                       - (IData)(0x19U)))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(1U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(1U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(1U) + (((IData)(0xffU) 
+                                    - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                   - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 1U)) << (0x1fU 
+                                                   & ((IData)(1U) 
+                                                      + 
+                                                      (((IData)(0xffU) 
+                                                        - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                       - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(2U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(2U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(2U) + (((IData)(0xffU) 
+                                    - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                   - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 2U)) << (0x1fU 
+                                                   & ((IData)(2U) 
+                                                      + 
+                                                      (((IData)(0xffU) 
+                                                        - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                       - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(3U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(3U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(3U) + (((IData)(0xffU) 
+                                    - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                   - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 3U)) << (0x1fU 
+                                                   & ((IData)(3U) 
+                                                      + 
+                                                      (((IData)(0xffU) 
+                                                        - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                       - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(4U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(4U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(4U) + (((IData)(0xffU) 
+                                    - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                   - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 4U)) << (0x1fU 
+                                                   & ((IData)(4U) 
+                                                      + 
+                                                      (((IData)(0xffU) 
+                                                        - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                       - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(5U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(5U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(5U) + (((IData)(0xffU) 
+                                    - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                   - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 5U)) << (0x1fU 
+                                                   & ((IData)(5U) 
+                                                      + 
+                                                      (((IData)(0xffU) 
+                                                        - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                       - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(6U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(6U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(6U) + (((IData)(0xffU) 
+                                    - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                   - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 6U)) << (0x1fU 
+                                                   & ((IData)(6U) 
+                                                      + 
+                                                      (((IData)(0xffU) 
+                                                        - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                       - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(7U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(7U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(7U) + (((IData)(0xffU) 
+                                    - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                   - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 7U)) << (0x1fU 
+                                                   & ((IData)(7U) 
+                                                      + 
+                                                      (((IData)(0xffU) 
+                                                        - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                       - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(8U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(8U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(8U) + (((IData)(0xffU) 
+                                    - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                   - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 8U)) << (0x1fU 
+                                                   & ((IData)(8U) 
+                                                      + 
+                                                      (((IData)(0xffU) 
+                                                        - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                       - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(9U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(9U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(9U) + (((IData)(0xffU) 
+                                    - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                   - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 9U)) << (0x1fU 
+                                                   & ((IData)(9U) 
+                                                      + 
+                                                      (((IData)(0xffU) 
+                                                        - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                       - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0xaU) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0xaU) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0xaU) + (((IData)(0xffU) 
+                                      - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                     - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0xaU)) << 
+                                (0x1fU & ((IData)(0xaU) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0xbU) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0xbU) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0xbU) + (((IData)(0xffU) 
+                                      - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                     - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0xbU)) << 
+                                (0x1fU & ((IData)(0xbU) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0xcU) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0xcU) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0xcU) + (((IData)(0xffU) 
+                                      - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                     - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0xcU)) << 
+                                (0x1fU & ((IData)(0xcU) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0xdU) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0xdU) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0xdU) + (((IData)(0xffU) 
+                                      - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                     - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0xdU)) << 
+                                (0x1fU & ((IData)(0xdU) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0xeU) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0xeU) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0xeU) + (((IData)(0xffU) 
+                                      - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                     - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0xeU)) << 
+                                (0x1fU & ((IData)(0xeU) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0xfU) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0xfU) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0xfU) + (((IData)(0xffU) 
+                                      - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                     - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0xfU)) << 
+                                (0x1fU & ((IData)(0xfU) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0x10U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0x10U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0x10U) + (((IData)(0xffU) 
+                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                      - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0x10U)) << 
+                                (0x1fU & ((IData)(0x10U) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0x11U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0x11U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0x11U) + (((IData)(0xffU) 
+                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                      - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0x11U)) << 
+                                (0x1fU & ((IData)(0x11U) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0x12U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0x12U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0x12U) + (((IData)(0xffU) 
+                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                      - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0x12U)) << 
+                                (0x1fU & ((IData)(0x12U) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0x13U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0x13U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0x13U) + (((IData)(0xffU) 
+                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                      - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0x13U)) << 
+                                (0x1fU & ((IData)(0x13U) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0x14U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0x14U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0x14U) + (((IData)(0xffU) 
+                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                      - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0x14U)) << 
+                                (0x1fU & ((IData)(0x14U) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0x15U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0x15U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0x15U) + (((IData)(0xffU) 
+                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                      - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0x15U)) << 
+                                (0x1fU & ((IData)(0x15U) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0x16U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0x16U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0x16U) + (((IData)(0xffU) 
+                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                      - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0x16U)) << 
+                                (0x1fU & ((IData)(0x16U) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                 & (((IData)(0x17U) 
+                                                     + 
+                                                     (((IData)(0xffU) 
+                                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                                      - (IData)(0x19U))) 
+                                                    >> 5U))] 
+        = (((~ ((IData)(1U) << (0x1fU & ((IData)(0x17U) 
+                                         + (((IData)(0xffU) 
+                                             - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                            - (IData)(0x19U)))))) 
+            & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+            (7U & (((IData)(0x17U) + (((IData)(0xffU) 
+                                       - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                      - (IData)(0x19U))) 
+                   >> 5U))]) | ((1U & (vlSelf->decoder_tb__DOT__target 
+                                       >> 0x17U)) << 
+                                (0x1fU & ((IData)(0x17U) 
+                                          + (((IData)(0xffU) 
+                                              - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                             - (IData)(0x19U))))));
+    decoder_tb__DOT__dec1__DOT__i = (((IData)(0xffU) 
+                                      - decoder_tb__DOT__dec1__DOT__leftBuffer) 
+                                     - (IData)(0x1aU));
+    while (VL_LTS_III(32, 0xffffffffU, decoder_tb__DOT__dec1__DOT__i)) {
+        vlSelf->decoder_tb__DOT__dec1__DOT__decoded[(7U 
+                                                     & (decoder_tb__DOT__dec1__DOT__i 
+                                                        >> 5U))] 
+            = ((~ ((IData)(1U) << (0x1fU & decoder_tb__DOT__dec1__DOT__i))) 
+               & vlSelf->decoder_tb__DOT__dec1__DOT__decoded[
+               (7U & (decoder_tb__DOT__dec1__DOT__i 
+                      >> 5U))]);
+        decoder_tb__DOT__dec1__DOT__i = (decoder_tb__DOT__dec1__DOT__i 
+                                         - (IData)(1U));
+    }
+    decoder_tb__DOT__fullTarget[0U] = vlSelf->decoder_tb__DOT__dec1__DOT__decoded[0U];
+    decoder_tb__DOT__fullTarget[1U] = vlSelf->decoder_tb__DOT__dec1__DOT__decoded[1U];
+    decoder_tb__DOT__fullTarget[2U] = vlSelf->decoder_tb__DOT__dec1__DOT__decoded[2U];
+    decoder_tb__DOT__fullTarget[3U] = vlSelf->decoder_tb__DOT__dec1__DOT__decoded[3U];
+    decoder_tb__DOT__fullTarget[4U] = vlSelf->decoder_tb__DOT__dec1__DOT__decoded[4U];
+    decoder_tb__DOT__fullTarget[5U] = vlSelf->decoder_tb__DOT__dec1__DOT__decoded[5U];
+    decoder_tb__DOT__fullTarget[6U] = vlSelf->decoder_tb__DOT__dec1__DOT__decoded[6U];
+    decoder_tb__DOT__fullTarget[7U] = vlSelf->decoder_tb__DOT__dec1__DOT__decoded[7U];
+    __Vtemp_hff926249__0[0U] = 0x2e766364U;
+    __Vtemp_hff926249__0[1U] = 0x725f7462U;
+    __Vtemp_hff926249__0[2U] = 0x636f6465U;
+    __Vtemp_hff926249__0[3U] = 0x6465U;
+    vlSymsp->_vm_contextp__->dumpfile(VL_CVT_PACK_STR_NW(4, __Vtemp_hff926249__0));
+    VL_PRINTF_MT("-Info: decoder_tb.sv:11: $dumpvar ignored, as Verilated without --trace\n");
+    vlSelf->decoder_tb__DOT__target = 0x1903a30cU;
+    VL_WRITEF("FINISHED decoder_tb\nOutput: %x\n",256,
+              decoder_tb__DOT__fullTarget.data());
+    VL_FINISH_MT("decoder_tb.sv", 15, "");
+}
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__Slow.cpp b/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__Slow.cpp
new file mode 100644
index 0000000..4c30b77
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder___024root__Slow.cpp
@@ -0,0 +1,25 @@
+// Verilated -*- C++ -*-
+// DESCRIPTION: Verilator output: Design implementation internals
+// See Vdecoder.h for the primary calling header
+
+#include "verilated.h"
+
+#include "Vdecoder__Syms.h"
+#include "Vdecoder___024root.h"
+
+void Vdecoder___024root___ctor_var_reset(Vdecoder___024root* vlSelf);
+
+Vdecoder___024root::Vdecoder___024root(const char* _vcname__)
+    : VerilatedModule(_vcname__)
+ {
+    // Reset structure values
+    Vdecoder___024root___ctor_var_reset(this);
+}
+
+void Vdecoder___024root::__Vconfigure(Vdecoder__Syms* _vlSymsp, bool first) {
+    if (false && first) {}  // Prevent unused
+    this->vlSymsp = _vlSymsp;
+}
+
+Vdecoder___024root::~Vdecoder___024root() {
+}
diff --git a/verilog/dv/decoder_test/obj_dir/Vdecoder_classes.mk b/verilog/dv/decoder_test/obj_dir/Vdecoder_classes.mk
new file mode 100644
index 0000000..e75bb54
--- /dev/null
+++ b/verilog/dv/decoder_test/obj_dir/Vdecoder_classes.mk
@@ -0,0 +1,52 @@
+# Verilated -*- Makefile -*-
+# DESCRIPTION: Verilator output: Make include file with class lists
+#
+# This file lists generated Verilated files, for including in higher level makefiles.
+# See Vdecoder.mk for the caller.
+
+### Switches...
+# C11 constructs required?  0/1 (always on now)
+VM_C11 = 1
+# Coverage output mode?  0/1 (from --coverage)
+VM_COVERAGE = 0
+# Parallel builds?  0/1 (from --output-split)
+VM_PARALLEL_BUILDS = 0
+# Threaded output mode?  0/1/N threads (from --threads)
+VM_THREADS = 0
+# Tracing output mode?  0/1 (from --trace/--trace-fst)
+VM_TRACE = 0
+# Tracing output mode in FST format?  0/1 (from --trace-fst)
+VM_TRACE_FST = 0
+# Tracing threaded output mode?  0/1/N threads (from --trace-thread)
+VM_TRACE_THREADS = 0
+# Separate FST writer thread? 0/1 (from --trace-fst with --trace-thread > 0)
+VM_TRACE_FST_WRITER_THREAD = 0
+
+### Object file lists...
+# Generated module classes, fast-path, compile with highest optimization
+VM_CLASSES_FAST += \
+	Vdecoder \
+	Vdecoder___024root__DepSet_h918ffe01__0 \
+
+# Generated module classes, non-fast-path, compile with low/medium optimization
+VM_CLASSES_SLOW += \
+	Vdecoder___024root__Slow \
+	Vdecoder___024root__DepSet_he51a2589__0__Slow \
+	Vdecoder___024root__DepSet_h918ffe01__0__Slow \
+
+# Generated support classes, fast-path, compile with highest optimization
+VM_SUPPORT_FAST += \
+
+# Generated support classes, non-fast-path, compile with low/medium optimization
+VM_SUPPORT_SLOW += \
+	Vdecoder__Syms \
+
+# Global classes, need linked once per executable, fast-path, compile with highest optimization
+VM_GLOBAL_FAST += \
+	verilated \
+
+# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization
+VM_GLOBAL_SLOW += \
+
+
+# Verilated -*- Makefile -*-