From 927028192e5af6207563f23c2aeb2b04513f549f Mon Sep 17 00:00:00 2001 From: k0rrluna Date: Sun, 14 Jul 2024 04:03:23 +0300 Subject: [PATCH] verilog --- labs/lab6/bibp.v | 18 +- labs/lab6/bibpTB.v | 2 +- labs/lab6/obj_dir/Vbibp | Bin 0 -> 164136 bytes labs/lab6/obj_dir/Vbibp.cpp | 92 ++++++++ labs/lab6/obj_dir/Vbibp.h | 72 +++++++ labs/lab6/obj_dir/Vbibp.mk | 65 ++++++ labs/lab6/obj_dir/VbibpTB.cpp | 92 ++++++++ labs/lab6/obj_dir/VbibpTB.h | 72 +++++++ labs/lab6/obj_dir/VbibpTB.mk | 65 ++++++ labs/lab6/obj_dir/VbibpTB__Syms.cpp | 26 +++ labs/lab6/obj_dir/VbibpTB__Syms.h | 37 ++++ labs/lab6/obj_dir/VbibpTB___024root.h | 39 ++++ ...VbibpTB___024root__DepSet_h31122c8e__0.cpp | 180 ++++++++++++++++ ...B___024root__DepSet_h31122c8e__0__Slow.cpp | 117 ++++++++++ ...VbibpTB___024root__DepSet_h7f8acf28__0.cpp | 43 ++++ ...B___024root__DepSet_h7f8acf28__0__Slow.cpp | 25 +++ labs/lab6/obj_dir/VbibpTB___024root__Slow.cpp | 26 +++ labs/lab6/obj_dir/VbibpTB__main.cpp | 34 +++ labs/lab6/obj_dir/VbibpTB_classes.mk | 54 +++++ labs/lab6/obj_dir/Vbibp__ALL.a | Bin 0 -> 25518 bytes labs/lab6/obj_dir/Vbibp__ALL.cpp | 10 + labs/lab6/obj_dir/Vbibp__ALL.d | 12 ++ labs/lab6/obj_dir/Vbibp__ALL.o | Bin 0 -> 22848 bytes labs/lab6/obj_dir/Vbibp__Syms.cpp | 26 +++ labs/lab6/obj_dir/Vbibp__Syms.h | 37 ++++ labs/lab6/obj_dir/Vbibp___024root.h | 39 ++++ .../Vbibp___024root__DepSet_h1791c79f__0.cpp | 43 ++++ ...p___024root__DepSet_h1791c79f__0__Slow.cpp | 25 +++ .../Vbibp___024root__DepSet_h1fed60c4__0.cpp | 163 ++++++++++++++ ...p___024root__DepSet_h1fed60c4__0__Slow.cpp | 117 ++++++++++ labs/lab6/obj_dir/Vbibp___024root__Slow.cpp | 26 +++ labs/lab6/obj_dir/Vbibp__main.cpp | 34 +++ labs/lab6/obj_dir/Vbibp__ver.d | 1 + labs/lab6/obj_dir/Vbibp__verFiles.dat | 20 ++ labs/lab6/obj_dir/Vbibp_classes.mk | 54 +++++ labs/lab6/obj_dir/verilated.d | 12 ++ labs/lab6/obj_dir/verilated.o | Bin 0 -> 197480 bytes labs/lab6/obj_dir/verilated_threads.d | 7 + labs/lab6/obj_dir/verilated_threads.o | Bin 0 -> 30832 bytes labs/lab6/obj_dir/verilated_timing.d | 7 + labs/lab6/obj_dir/verilated_timing.o | Bin 0 -> 8664 bytes labs/lab6/vbibp.vcd | 10 +- labs/lab6/vvbibp | 103 ++++----- tetirs/a.out | 202 ++++++++++++++++++ tetirs/obj_dir/Vtb | Bin 0 -> 164304 bytes tetirs/obj_dir/Vtb.cpp | 92 ++++++++ tetirs/obj_dir/Vtb.h | 72 +++++++ tetirs/obj_dir/Vtb.mk | 65 ++++++ tetirs/obj_dir/Vtb__ALL.a | Bin 0 -> 25372 bytes tetirs/obj_dir/Vtb__ALL.cpp | 10 + tetirs/obj_dir/Vtb__ALL.d | 12 ++ tetirs/obj_dir/Vtb__ALL.o | Bin 0 -> 22592 bytes tetirs/obj_dir/Vtb__Syms.cpp | 26 +++ tetirs/obj_dir/Vtb__Syms.h | 37 ++++ tetirs/obj_dir/Vtb___024root.h | 52 +++++ .../Vtb___024root__DepSet_ha183790c__0.cpp | 201 +++++++++++++++++ ...b___024root__DepSet_ha183790c__0__Slow.cpp | 165 ++++++++++++++ .../Vtb___024root__DepSet_hfe20aad3__0.cpp | 31 +++ ...b___024root__DepSet_hfe20aad3__0__Slow.cpp | 25 +++ tetirs/obj_dir/Vtb___024root__Slow.cpp | 26 +++ tetirs/obj_dir/Vtb__main.cpp | 34 +++ tetirs/obj_dir/Vtb__ver.d | 1 + tetirs/obj_dir/Vtb__verFiles.dat | 20 ++ tetirs/obj_dir/Vtb_classes.mk | 54 +++++ tetirs/obj_dir/verilated.d | 12 ++ tetirs/obj_dir/verilated.o | Bin 0 -> 197480 bytes tetirs/obj_dir/verilated_threads.d | 7 + tetirs/obj_dir/verilated_threads.o | Bin 0 -> 30832 bytes tetirs/obj_dir/verilated_timing.d | 7 + tetirs/obj_dir/verilated_timing.o | Bin 0 -> 8664 bytes tetirs/run.sh | 5 + tetirs/tb.v | 45 ++++ tetirs/tetris.v | 41 ++++ 73 files changed, 2984 insertions(+), 63 deletions(-) create mode 100644 labs/lab6/obj_dir/Vbibp create mode 100644 labs/lab6/obj_dir/Vbibp.cpp create mode 100644 labs/lab6/obj_dir/Vbibp.h create mode 100644 labs/lab6/obj_dir/Vbibp.mk create mode 100644 labs/lab6/obj_dir/VbibpTB.cpp create mode 100644 labs/lab6/obj_dir/VbibpTB.h create mode 100644 labs/lab6/obj_dir/VbibpTB.mk create mode 100644 labs/lab6/obj_dir/VbibpTB__Syms.cpp create mode 100644 labs/lab6/obj_dir/VbibpTB__Syms.h create mode 100644 labs/lab6/obj_dir/VbibpTB___024root.h create mode 100644 labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0.cpp create mode 100644 labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0__Slow.cpp create mode 100644 labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0.cpp create mode 100644 labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0__Slow.cpp create mode 100644 labs/lab6/obj_dir/VbibpTB___024root__Slow.cpp create mode 100644 labs/lab6/obj_dir/VbibpTB__main.cpp create mode 100644 labs/lab6/obj_dir/VbibpTB_classes.mk create mode 100644 labs/lab6/obj_dir/Vbibp__ALL.a create mode 100644 labs/lab6/obj_dir/Vbibp__ALL.cpp create mode 100644 labs/lab6/obj_dir/Vbibp__ALL.d create mode 100644 labs/lab6/obj_dir/Vbibp__ALL.o create mode 100644 labs/lab6/obj_dir/Vbibp__Syms.cpp create mode 100644 labs/lab6/obj_dir/Vbibp__Syms.h create mode 100644 labs/lab6/obj_dir/Vbibp___024root.h create mode 100644 labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp create mode 100644 labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp create mode 100644 labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp create mode 100644 labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp create mode 100644 labs/lab6/obj_dir/Vbibp___024root__Slow.cpp create mode 100644 labs/lab6/obj_dir/Vbibp__main.cpp create mode 100644 labs/lab6/obj_dir/Vbibp__ver.d create mode 100644 labs/lab6/obj_dir/Vbibp__verFiles.dat create mode 100644 labs/lab6/obj_dir/Vbibp_classes.mk create mode 100644 labs/lab6/obj_dir/verilated.d create mode 100644 labs/lab6/obj_dir/verilated.o create mode 100644 labs/lab6/obj_dir/verilated_threads.d create mode 100644 labs/lab6/obj_dir/verilated_threads.o create mode 100644 labs/lab6/obj_dir/verilated_timing.d create mode 100644 labs/lab6/obj_dir/verilated_timing.o create mode 100644 tetirs/a.out create mode 100644 tetirs/obj_dir/Vtb create mode 100644 tetirs/obj_dir/Vtb.cpp create mode 100644 tetirs/obj_dir/Vtb.h create mode 100644 tetirs/obj_dir/Vtb.mk create mode 100644 tetirs/obj_dir/Vtb__ALL.a create mode 100644 tetirs/obj_dir/Vtb__ALL.cpp create mode 100644 tetirs/obj_dir/Vtb__ALL.d create mode 100644 tetirs/obj_dir/Vtb__ALL.o create mode 100644 tetirs/obj_dir/Vtb__Syms.cpp create mode 100644 tetirs/obj_dir/Vtb__Syms.h create mode 100644 tetirs/obj_dir/Vtb___024root.h create mode 100644 tetirs/obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp create mode 100644 tetirs/obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp create mode 100644 tetirs/obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp create mode 100644 tetirs/obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp create mode 100644 tetirs/obj_dir/Vtb___024root__Slow.cpp create mode 100644 tetirs/obj_dir/Vtb__main.cpp create mode 100644 tetirs/obj_dir/Vtb__ver.d create mode 100644 tetirs/obj_dir/Vtb__verFiles.dat create mode 100644 tetirs/obj_dir/Vtb_classes.mk create mode 100644 tetirs/obj_dir/verilated.d create mode 100644 tetirs/obj_dir/verilated.o create mode 100644 tetirs/obj_dir/verilated_threads.d create mode 100644 tetirs/obj_dir/verilated_threads.o create mode 100644 tetirs/obj_dir/verilated_timing.d create mode 100644 tetirs/obj_dir/verilated_timing.o create mode 100644 tetirs/run.sh create mode 100644 tetirs/tb.v create mode 100644 tetirs/tetris.v diff --git a/labs/lab6/bibp.v b/labs/lab6/bibp.v index c366289..25e6252 100644 --- a/labs/lab6/bibp.v +++ b/labs/lab6/bibp.v @@ -18,14 +18,18 @@ assign v2 = buyruk[UZUNLUK/2 : 0];*/ // !!! LOCALPARAM IVERILOG DA PROBLEMLI OLDUGU ICIN KULLANILMIYOR !!! always@(*) begin - case(buyruk[UZUNLUK+2:UZUNLUK-1]) - 3'b000: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] + buyruk[(UZUNLUK/2) - 1 : 0]; - 3'b001: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] - buyruk[(UZUNLUK/2) - 1 : 0]; // SUBTRACTION ?????? CHECK!!! - 3'b010: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] & buyruk[(UZUNLUK/2) - 1 : 0]; - 3'b011: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] | buyruk[(UZUNLUK/2) - 1 : 0]; - 3'b100: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] ^ buyruk[(UZUNLUK/2) - 1 : 0]; - default: sonuc = buyruk[UZUNLUK - 1 : UZUNLUK/2] + buyruk[(UZUNLUK/2) - 1 : 0]; + $display("%d", buyruk[UZUNLUK - 1 : UZUNLUK/2]); + $display("%d", buyruk[(UZUNLUK/2) - 1 : 0]); + $display("%d", buyruk[UZUNLUK - 1 : UZUNLUK/2] - buyruk[(UZUNLUK/2) - 1 : 0]); + case(buyruk[UZUNLUK+2:UZUNLUK]) + 3'b000: sonuc = buyruk[(UZUNLUK - 1) : UZUNLUK/2] + buyruk[(UZUNLUK/2) - 1 : 0]; + 3'b001: sonuc = buyruk[(UZUNLUK - 1) : UZUNLUK/2] - buyruk[(UZUNLUK/2) - 1 : 0]; // SUBTRACTION ?????? CHECK!!! + 3'b010: sonuc = {1'b0, buyruk[UZUNLUK - 1 : UZUNLUK/2] & buyruk[(UZUNLUK/2) - 1 : 0]}; + 3'b011: sonuc = {1'b0, buyruk[UZUNLUK - 1 : UZUNLUK/2] | buyruk[(UZUNLUK/2) - 1 : 0]}; + 3'b100: sonuc = {1'b0, buyruk[UZUNLUK - 1 : UZUNLUK/2] ^ buyruk[(UZUNLUK/2) - 1 : 0]}; + default: sonuc = -1; endcase + $display("%b", sonuc); end endmodule \ No newline at end of file diff --git a/labs/lab6/bibpTB.v b/labs/lab6/bibpTB.v index cfd8f55..4052eb3 100644 --- a/labs/lab6/bibpTB.v +++ b/labs/lab6/bibpTB.v @@ -10,7 +10,7 @@ initial begin $dumpfile("vbibp.vcd"); $dumpvars; - buyruk = 11'b001_0101_0100; #10; + buyruk = 11'b111_0101_0100; #10; $finish; end endmodule \ No newline at end of file diff --git a/labs/lab6/obj_dir/Vbibp b/labs/lab6/obj_dir/Vbibp new file mode 100644 index 0000000000000000000000000000000000000000..3e5cdce0cf3bd827e5e0af65b0729a3191baa652 GIT binary patch literal 164136 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%0A8ay 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%0Adf>x1_pz#Y0A{SvG^mzpKS1O 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 MT%GHP;P`3%e|^TOP)} +{ + // Register model with the context + contextp()->addModel(this); +} + +Vbibp::Vbibp(const char* _vcname__) + : Vbibp(Verilated::threadContextp(), _vcname__) +{ +} + +//============================================================ +// Destructor + +Vbibp::~Vbibp() { + delete vlSymsp; +} + +//============================================================ +// Evaluation function + +#ifdef VL_DEBUG +void Vbibp___024root___eval_debug_assertions(Vbibp___024root* vlSelf); +#endif // VL_DEBUG +void Vbibp___024root___eval_static(Vbibp___024root* vlSelf); +void Vbibp___024root___eval_initial(Vbibp___024root* vlSelf); +void Vbibp___024root___eval_settle(Vbibp___024root* vlSelf); +void Vbibp___024root___eval(Vbibp___024root* vlSelf); + +void Vbibp::eval_step() { + VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vbibp::eval_step\n"); ); +#ifdef VL_DEBUG + // Debug assertions + Vbibp___024root___eval_debug_assertions(&(vlSymsp->TOP)); +#endif // VL_DEBUG + if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) { + vlSymsp->__Vm_didInit = true; + VL_DEBUG_IF(VL_DBG_MSGF("+ Initial\n");); + Vbibp___024root___eval_static(&(vlSymsp->TOP)); + Vbibp___024root___eval_initial(&(vlSymsp->TOP)); + Vbibp___024root___eval_settle(&(vlSymsp->TOP)); + } + // MTask 0 start + VL_DEBUG_IF(VL_DBG_MSGF("MTask0 starting\n");); + Verilated::mtaskId(0); + VL_DEBUG_IF(VL_DBG_MSGF("+ Eval\n");); + Vbibp___024root___eval(&(vlSymsp->TOP)); + // Evaluate cleanup + Verilated::endOfThreadMTask(vlSymsp->__Vm_evalMsgQp); + Verilated::endOfEval(vlSymsp->__Vm_evalMsgQp); +} + +//============================================================ +// Events and timing +bool Vbibp::eventsPending() { return !vlSymsp->TOP.__VdlySched.empty(); } + +uint64_t Vbibp::nextTimeSlot() { return vlSymsp->TOP.__VdlySched.nextTimeSlot(); } + +//============================================================ +// Utilities + +const char* Vbibp::name() const { + return vlSymsp->name(); +} + +//============================================================ +// Invoke final blocks + +void Vbibp___024root___eval_final(Vbibp___024root* vlSelf); + +VL_ATTR_COLD void Vbibp::final() { + Vbibp___024root___eval_final(&(vlSymsp->TOP)); +} + +//============================================================ +// Implementations of abstract methods from VerilatedModel + +const char* Vbibp::hierName() const { return vlSymsp->name(); } +const char* Vbibp::modelName() const { return "Vbibp"; } +unsigned Vbibp::threads() const { return 1; } diff --git a/labs/lab6/obj_dir/Vbibp.h b/labs/lab6/obj_dir/Vbibp.h new file mode 100644 index 0000000..d032c88 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp.h @@ -0,0 +1,72 @@ +// 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_VBIBP_H_ +#define VERILATED_VBIBP_H_ // guard + +#include "verilated.h" + +class Vbibp__Syms; +class Vbibp___024root; + +// This class is the main interface to the Verilated model +class Vbibp VL_NOT_FINAL : public VerilatedModel { + private: + // Symbol table holding complete model state (owned by this class) + Vbibp__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. + Vbibp___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 Vbibp(VerilatedContext* contextp, const char* name = "TOP"); + explicit Vbibp(const char* name = "TOP"); + /// Destroy the model; called (often implicitly) by application code + virtual ~Vbibp(); + private: + VL_UNCOPYABLE(Vbibp); ///< 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(); + /// Are there scheduled events to handle? + bool eventsPending(); + /// Returns time at next time slot. Aborts if !eventsPending() + uint64_t nextTimeSlot(); + /// Retrieve name of this model instance (as passed to constructor). + const char* name() const; + + // Abstract methods from VerilatedModel + const char* hierName() const override final; + const char* modelName() const override final; + unsigned threads() const override final; +} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); + +#endif // guard diff --git a/labs/lab6/obj_dir/Vbibp.mk b/labs/lab6/obj_dir/Vbibp.mk new file mode 100644 index 0000000..3184905 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp.mk @@ -0,0 +1,65 @@ +# Verilated -*- Makefile -*- +# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable +# +# Execute this makefile from the object directory: +# make -f Vbibp.mk + +default: Vbibp + +### Constants... +# Perl executable (from $PERL) +PERL = perl +# Path to Verilator kit (from $VERILATOR_ROOT) +VERILATOR_ROOT = /usr/share/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 = Vbibp +# Module prefix (from --prefix) +VM_MODPREFIX = Vbibp +# User CFLAGS (from -CFLAGS on Verilator command line) +VM_USER_CFLAGS = \ + -DVL_TIME_CONTEXT \ + +# 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 Vbibp_classes.mk +# Include global rules +include $(VERILATOR_ROOT)/include/verilated.mk + +### Executable rules... (from --exe) +VPATH += $(VM_USER_DIR) + + +### Link rules... (from --exe) +Vbibp: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a $(VM_HIER_LIBS) + $(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@ + + +# Verilated -*- Makefile -*- diff --git a/labs/lab6/obj_dir/VbibpTB.cpp b/labs/lab6/obj_dir/VbibpTB.cpp new file mode 100644 index 0000000..ed688e7 --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB.cpp @@ -0,0 +1,92 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Model implementation (design independent parts) + +#include "VbibpTB.h" +#include "VbibpTB__Syms.h" + +//============================================================ +// Constructors + +VbibpTB::VbibpTB(VerilatedContext* _vcontextp__, const char* _vcname__) + : VerilatedModel{*_vcontextp__} + , vlSymsp{new VbibpTB__Syms(contextp(), _vcname__, this)} + , rootp{&(vlSymsp->TOP)} +{ + // Register model with the context + contextp()->addModel(this); +} + +VbibpTB::VbibpTB(const char* _vcname__) + : VbibpTB(Verilated::threadContextp(), _vcname__) +{ +} + +//============================================================ +// Destructor + +VbibpTB::~VbibpTB() { + delete vlSymsp; +} + +//============================================================ +// Evaluation function + +#ifdef VL_DEBUG +void VbibpTB___024root___eval_debug_assertions(VbibpTB___024root* vlSelf); +#endif // VL_DEBUG +void VbibpTB___024root___eval_static(VbibpTB___024root* vlSelf); +void VbibpTB___024root___eval_initial(VbibpTB___024root* vlSelf); +void VbibpTB___024root___eval_settle(VbibpTB___024root* vlSelf); +void VbibpTB___024root___eval(VbibpTB___024root* vlSelf); + +void VbibpTB::eval_step() { + VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate VbibpTB::eval_step\n"); ); +#ifdef VL_DEBUG + // Debug assertions + VbibpTB___024root___eval_debug_assertions(&(vlSymsp->TOP)); +#endif // VL_DEBUG + if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) { + vlSymsp->__Vm_didInit = true; + VL_DEBUG_IF(VL_DBG_MSGF("+ Initial\n");); + VbibpTB___024root___eval_static(&(vlSymsp->TOP)); + VbibpTB___024root___eval_initial(&(vlSymsp->TOP)); + VbibpTB___024root___eval_settle(&(vlSymsp->TOP)); + } + // MTask 0 start + VL_DEBUG_IF(VL_DBG_MSGF("MTask0 starting\n");); + Verilated::mtaskId(0); + VL_DEBUG_IF(VL_DBG_MSGF("+ Eval\n");); + VbibpTB___024root___eval(&(vlSymsp->TOP)); + // Evaluate cleanup + Verilated::endOfThreadMTask(vlSymsp->__Vm_evalMsgQp); + Verilated::endOfEval(vlSymsp->__Vm_evalMsgQp); +} + +//============================================================ +// Events and timing +bool VbibpTB::eventsPending() { return !vlSymsp->TOP.__VdlySched.empty(); } + +uint64_t VbibpTB::nextTimeSlot() { return vlSymsp->TOP.__VdlySched.nextTimeSlot(); } + +//============================================================ +// Utilities + +const char* VbibpTB::name() const { + return vlSymsp->name(); +} + +//============================================================ +// Invoke final blocks + +void VbibpTB___024root___eval_final(VbibpTB___024root* vlSelf); + +VL_ATTR_COLD void VbibpTB::final() { + VbibpTB___024root___eval_final(&(vlSymsp->TOP)); +} + +//============================================================ +// Implementations of abstract methods from VerilatedModel + +const char* VbibpTB::hierName() const { return vlSymsp->name(); } +const char* VbibpTB::modelName() const { return "VbibpTB"; } +unsigned VbibpTB::threads() const { return 1; } diff --git a/labs/lab6/obj_dir/VbibpTB.h b/labs/lab6/obj_dir/VbibpTB.h new file mode 100644 index 0000000..2e0bf29 --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB.h @@ -0,0 +1,72 @@ +// 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_VBIBPTB_H_ +#define VERILATED_VBIBPTB_H_ // guard + +#include "verilated.h" + +class VbibpTB__Syms; +class VbibpTB___024root; + +// This class is the main interface to the Verilated model +class VbibpTB VL_NOT_FINAL : public VerilatedModel { + private: + // Symbol table holding complete model state (owned by this class) + VbibpTB__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. + VbibpTB___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 VbibpTB(VerilatedContext* contextp, const char* name = "TOP"); + explicit VbibpTB(const char* name = "TOP"); + /// Destroy the model; called (often implicitly) by application code + virtual ~VbibpTB(); + private: + VL_UNCOPYABLE(VbibpTB); ///< 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(); + /// Are there scheduled events to handle? + bool eventsPending(); + /// Returns time at next time slot. Aborts if !eventsPending() + uint64_t nextTimeSlot(); + /// Retrieve name of this model instance (as passed to constructor). + const char* name() const; + + // Abstract methods from VerilatedModel + const char* hierName() const override final; + const char* modelName() const override final; + unsigned threads() const override final; +} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); + +#endif // guard diff --git a/labs/lab6/obj_dir/VbibpTB.mk b/labs/lab6/obj_dir/VbibpTB.mk new file mode 100644 index 0000000..f2d9f20 --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB.mk @@ -0,0 +1,65 @@ +# Verilated -*- Makefile -*- +# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable +# +# Execute this makefile from the object directory: +# make -f VbibpTB.mk + +default: VbibpTB + +### Constants... +# Perl executable (from $PERL) +PERL = perl +# Path to Verilator kit (from $VERILATOR_ROOT) +VERILATOR_ROOT = /usr/share/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 = VbibpTB +# Module prefix (from --prefix) +VM_MODPREFIX = VbibpTB +# User CFLAGS (from -CFLAGS on Verilator command line) +VM_USER_CFLAGS = \ + -DVL_TIME_CONTEXT \ + +# 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 VbibpTB_classes.mk +# Include global rules +include $(VERILATOR_ROOT)/include/verilated.mk + +### Executable rules... (from --exe) +VPATH += $(VM_USER_DIR) + + +### Link rules... (from --exe) +VbibpTB: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a $(VM_HIER_LIBS) + $(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@ + + +# Verilated -*- Makefile -*- diff --git a/labs/lab6/obj_dir/VbibpTB__Syms.cpp b/labs/lab6/obj_dir/VbibpTB__Syms.cpp new file mode 100644 index 0000000..a3dca8f --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB__Syms.cpp @@ -0,0 +1,26 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Symbol table implementation internals + +#include "VbibpTB__Syms.h" +#include "VbibpTB.h" +#include "VbibpTB___024root.h" + +// FUNCTIONS +VbibpTB__Syms::~VbibpTB__Syms() +{ +} + +VbibpTB__Syms::VbibpTB__Syms(VerilatedContext* contextp, const char* namep, VbibpTB* modelp) + : VerilatedSyms{contextp} + // Setup internal state of the Syms class + , __Vm_modelp{modelp} + // Setup module instances + , TOP{this, namep} +{ + // Configure time unit / time precision + _vm_contextp__->timeunit(-12); + _vm_contextp__->timeprecision(-12); + // Setup each module's pointers to their submodules + // Setup each module's pointer back to symbol table (for public functions) + TOP.__Vconfigure(true); +} diff --git a/labs/lab6/obj_dir/VbibpTB__Syms.h b/labs/lab6/obj_dir/VbibpTB__Syms.h new file mode 100644 index 0000000..366d202 --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB__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_VBIBPTB__SYMS_H_ +#define VERILATED_VBIBPTB__SYMS_H_ // guard + +#include "verilated.h" + +// INCLUDE MODEL CLASS + +#include "VbibpTB.h" + +// INCLUDE MODULE CLASSES +#include "VbibpTB___024root.h" + +// SYMS CLASS (contains all model state) +class VbibpTB__Syms final : public VerilatedSyms { + public: + // INTERNAL STATE + VbibpTB* const __Vm_modelp; + bool __Vm_didInit = false; + + // MODULE INSTANCE STATE + VbibpTB___024root TOP; + + // CONSTRUCTORS + VbibpTB__Syms(VerilatedContext* contextp, const char* namep, VbibpTB* modelp); + ~VbibpTB__Syms(); + + // METHODS + const char* name() { return TOP.name(); } +} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); + +#endif // guard diff --git a/labs/lab6/obj_dir/VbibpTB___024root.h b/labs/lab6/obj_dir/VbibpTB___024root.h new file mode 100644 index 0000000..2ab1429 --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB___024root.h @@ -0,0 +1,39 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design internal header +// See VbibpTB.h for the primary calling header + +#ifndef VERILATED_VBIBPTB___024ROOT_H_ +#define VERILATED_VBIBPTB___024ROOT_H_ // guard + +#include "verilated.h" +#include "verilated_timing.h" + +class VbibpTB__Syms; + +class VbibpTB___024root final : public VerilatedModule { + public: + + // DESIGN SPECIFIC STATE + CData/*0:0*/ __VactContinue; + SData/*10:0*/ bibpTB__DOT__buyruk; + IData/*31:0*/ __VstlIterCount; + IData/*31:0*/ __VactIterCount; + VlDelayScheduler __VdlySched; + VlTriggerVec<1> __VstlTriggered; + VlTriggerVec<1> __VactTriggered; + VlTriggerVec<1> __VnbaTriggered; + + // INTERNAL VARIABLES + VbibpTB__Syms* const vlSymsp; + + // CONSTRUCTORS + VbibpTB___024root(VbibpTB__Syms* symsp, const char* v__name); + ~VbibpTB___024root(); + VL_UNCOPYABLE(VbibpTB___024root); + + // INTERNAL METHODS + void __Vconfigure(bool first); +} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); + + +#endif // guard diff --git a/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0.cpp b/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0.cpp new file mode 100644 index 0000000..c7f43b5 --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0.cpp @@ -0,0 +1,180 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See VbibpTB.h for the primary calling header + +#include "verilated.h" + +#include "VbibpTB___024root.h" + +VlCoroutine VbibpTB___024root___eval_initial__TOP__0(VbibpTB___024root* vlSelf); + +void VbibpTB___024root___eval_initial(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_initial\n"); ); + // Body + VbibpTB___024root___eval_initial__TOP__0(vlSelf); +} + +VL_INLINE_OPT void VbibpTB___024root___act_sequent__TOP__0(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___act_sequent__TOP__0\n"); ); + // Init + CData/*4:0*/ bibpTB__DOT__sonuc; + bibpTB__DOT__sonuc = 0; + // Body + VL_WRITEF("%2#\n%2#\n%2#\n",4,(0xfU & ((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U)), + 4,(0xfU & (IData)(vlSelf->bibpTB__DOT__buyruk)), + 4,(0xfU & (((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U) - (IData)(vlSelf->bibpTB__DOT__buyruk)))); + bibpTB__DOT__sonuc = ((0x400U & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? 0x1fU : (0x1fU & ((0x200U + & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? ( + (0x100U + & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? 0x1fU + : + ((0x80U + & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? 0x1fU + : + ((0xfU + & ((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U)) + ^ + (0xfU + & (IData)(vlSelf->bibpTB__DOT__buyruk))))) + : ( + (0x100U + & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? + ((0x80U + & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? + (0xfU + & (((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U) + | (IData)(vlSelf->bibpTB__DOT__buyruk))) + : + (0xfU + & (((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U) + & (IData)(vlSelf->bibpTB__DOT__buyruk)))) + : + ((0x80U + & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? + ((0xfU + & ((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U)) + - + (0xfU + & (IData)(vlSelf->bibpTB__DOT__buyruk))) + : + ((0xfU + & ((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U)) + + + (0xfU + & (IData)(vlSelf->bibpTB__DOT__buyruk)))))))); + VL_WRITEF("%2#\n",5,bibpTB__DOT__sonuc); +} + +void VbibpTB___024root___eval_act(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_act\n"); ); + // Body + if (vlSelf->__VactTriggered.at(0U)) { + VbibpTB___024root___act_sequent__TOP__0(vlSelf); + } +} + +void VbibpTB___024root___eval_nba(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_nba\n"); ); + // Body + if (vlSelf->__VnbaTriggered.at(0U)) { + VbibpTB___024root___act_sequent__TOP__0(vlSelf); + } +} + +void VbibpTB___024root___eval_triggers__act(VbibpTB___024root* vlSelf); +#ifdef VL_DEBUG +VL_ATTR_COLD void VbibpTB___024root___dump_triggers__act(VbibpTB___024root* vlSelf); +#endif // VL_DEBUG +void VbibpTB___024root___timing_resume(VbibpTB___024root* vlSelf); +#ifdef VL_DEBUG +VL_ATTR_COLD void VbibpTB___024root___dump_triggers__nba(VbibpTB___024root* vlSelf); +#endif // VL_DEBUG + +void VbibpTB___024root___eval(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval\n"); ); + // Init + VlTriggerVec<1> __VpreTriggered; + IData/*31:0*/ __VnbaIterCount; + CData/*0:0*/ __VnbaContinue; + // Body + __VnbaIterCount = 0U; + __VnbaContinue = 1U; + while (__VnbaContinue) { + __VnbaContinue = 0U; + vlSelf->__VnbaTriggered.clear(); + vlSelf->__VactIterCount = 0U; + vlSelf->__VactContinue = 1U; + while (vlSelf->__VactContinue) { + vlSelf->__VactContinue = 0U; + VbibpTB___024root___eval_triggers__act(vlSelf); + if (vlSelf->__VactTriggered.any()) { + vlSelf->__VactContinue = 1U; + if (VL_UNLIKELY((0x64U < vlSelf->__VactIterCount))) { +#ifdef VL_DEBUG + VbibpTB___024root___dump_triggers__act(vlSelf); +#endif + VL_FATAL_MT("bibpTB.v", 1, "", "Active region did not converge."); + } + vlSelf->__VactIterCount = ((IData)(1U) + + vlSelf->__VactIterCount); + __VpreTriggered.andNot(vlSelf->__VactTriggered, vlSelf->__VnbaTriggered); + vlSelf->__VnbaTriggered.set(vlSelf->__VactTriggered); + VbibpTB___024root___timing_resume(vlSelf); + VbibpTB___024root___eval_act(vlSelf); + } + } + if (vlSelf->__VnbaTriggered.any()) { + __VnbaContinue = 1U; + if (VL_UNLIKELY((0x64U < __VnbaIterCount))) { +#ifdef VL_DEBUG + VbibpTB___024root___dump_triggers__nba(vlSelf); +#endif + VL_FATAL_MT("bibpTB.v", 1, "", "NBA region did not converge."); + } + __VnbaIterCount = ((IData)(1U) + __VnbaIterCount); + VbibpTB___024root___eval_nba(vlSelf); + } + } +} + +void VbibpTB___024root___timing_resume(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___timing_resume\n"); ); + // Body + if (vlSelf->__VactTriggered.at(0U)) { + vlSelf->__VdlySched.resume(); + } +} + +#ifdef VL_DEBUG +void VbibpTB___024root___eval_debug_assertions(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_debug_assertions\n"); ); +} +#endif // VL_DEBUG diff --git a/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0__Slow.cpp b/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0__Slow.cpp new file mode 100644 index 0000000..6ff6664 --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h31122c8e__0__Slow.cpp @@ -0,0 +1,117 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See VbibpTB.h for the primary calling header + +#include "verilated.h" + +#include "VbibpTB___024root.h" + +VL_ATTR_COLD void VbibpTB___024root___eval_static(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_static\n"); ); +} + +VL_ATTR_COLD void VbibpTB___024root___eval_final(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_final\n"); ); +} + +VL_ATTR_COLD void VbibpTB___024root___eval_triggers__stl(VbibpTB___024root* vlSelf); +#ifdef VL_DEBUG +VL_ATTR_COLD void VbibpTB___024root___dump_triggers__stl(VbibpTB___024root* vlSelf); +#endif // VL_DEBUG +VL_ATTR_COLD void VbibpTB___024root___eval_stl(VbibpTB___024root* vlSelf); + +VL_ATTR_COLD void VbibpTB___024root___eval_settle(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_settle\n"); ); + // Init + CData/*0:0*/ __VstlContinue; + // Body + vlSelf->__VstlIterCount = 0U; + __VstlContinue = 1U; + while (__VstlContinue) { + __VstlContinue = 0U; + VbibpTB___024root___eval_triggers__stl(vlSelf); + if (vlSelf->__VstlTriggered.any()) { + __VstlContinue = 1U; + if (VL_UNLIKELY((0x64U < vlSelf->__VstlIterCount))) { +#ifdef VL_DEBUG + VbibpTB___024root___dump_triggers__stl(vlSelf); +#endif + VL_FATAL_MT("bibpTB.v", 1, "", "Settle region did not converge."); + } + vlSelf->__VstlIterCount = ((IData)(1U) + + vlSelf->__VstlIterCount); + VbibpTB___024root___eval_stl(vlSelf); + } + } +} + +#ifdef VL_DEBUG +VL_ATTR_COLD void VbibpTB___024root___dump_triggers__stl(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___dump_triggers__stl\n"); ); + // Body + if ((1U & (~ (IData)(vlSelf->__VstlTriggered.any())))) { + VL_DBG_MSGF(" No triggers active\n"); + } + if (vlSelf->__VstlTriggered.at(0U)) { + VL_DBG_MSGF(" 'stl' region trigger index 0 is active: Internal 'stl' trigger - first iteration\n"); + } +} +#endif // VL_DEBUG + +void VbibpTB___024root___act_sequent__TOP__0(VbibpTB___024root* vlSelf); + +VL_ATTR_COLD void VbibpTB___024root___eval_stl(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_stl\n"); ); + // Body + if (vlSelf->__VstlTriggered.at(0U)) { + VbibpTB___024root___act_sequent__TOP__0(vlSelf); + } +} + +#ifdef VL_DEBUG +VL_ATTR_COLD void VbibpTB___024root___dump_triggers__act(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___dump_triggers__act\n"); ); + // Body + if ((1U & (~ (IData)(vlSelf->__VactTriggered.any())))) { + VL_DBG_MSGF(" No triggers active\n"); + } + if (vlSelf->__VactTriggered.at(0U)) { + VL_DBG_MSGF(" 'act' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); + } +} +#endif // VL_DEBUG + +#ifdef VL_DEBUG +VL_ATTR_COLD void VbibpTB___024root___dump_triggers__nba(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___dump_triggers__nba\n"); ); + // Body + if ((1U & (~ (IData)(vlSelf->__VnbaTriggered.any())))) { + VL_DBG_MSGF(" No triggers active\n"); + } + if (vlSelf->__VnbaTriggered.at(0U)) { + VL_DBG_MSGF(" 'nba' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); + } +} +#endif // VL_DEBUG + +VL_ATTR_COLD void VbibpTB___024root___ctor_var_reset(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___ctor_var_reset\n"); ); + // Body + vlSelf->bibpTB__DOT__buyruk = VL_RAND_RESET_I(11); + } diff --git a/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0.cpp b/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0.cpp new file mode 100644 index 0000000..0a8d31a --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0.cpp @@ -0,0 +1,43 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See VbibpTB.h for the primary calling header + +#include "verilated.h" + +#include "VbibpTB__Syms.h" +#include "VbibpTB___024root.h" + +VL_INLINE_OPT VlCoroutine VbibpTB___024root___eval_initial__TOP__0(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_initial__TOP__0\n"); ); + // Init + VlWide<3>/*95:0*/ __Vtemp_h84e83511__0; + // Body + __Vtemp_h84e83511__0[0U] = 0x2e766364U; + __Vtemp_h84e83511__0[1U] = 0x62696270U; + __Vtemp_h84e83511__0[2U] = 0x76U; + vlSymsp->_vm_contextp__->dumpfile(VL_CVT_PACK_STR_NW(3, __Vtemp_h84e83511__0)); + VL_PRINTF_MT("-Info: bibpTB.v:11: $dumpvar ignored, as Verilated without --trace\n"); + vlSelf->bibpTB__DOT__buyruk = 0x154U; + co_await vlSelf->__VdlySched.delay(0xaU, "bibpTB.v", + 13); + VL_FINISH_MT("bibpTB.v", 14, ""); +} + +#ifdef VL_DEBUG +VL_ATTR_COLD void VbibpTB___024root___dump_triggers__act(VbibpTB___024root* vlSelf); +#endif // VL_DEBUG + +void VbibpTB___024root___eval_triggers__act(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_triggers__act\n"); ); + // Body + vlSelf->__VactTriggered.at(0U) = vlSelf->__VdlySched.awaitingCurrentTime(); +#ifdef VL_DEBUG + if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { + VbibpTB___024root___dump_triggers__act(vlSelf); + } +#endif +} diff --git a/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0__Slow.cpp b/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0__Slow.cpp new file mode 100644 index 0000000..5a6eb8b --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB___024root__DepSet_h7f8acf28__0__Slow.cpp @@ -0,0 +1,25 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See VbibpTB.h for the primary calling header + +#include "verilated.h" + +#include "VbibpTB__Syms.h" +#include "VbibpTB___024root.h" + +#ifdef VL_DEBUG +VL_ATTR_COLD void VbibpTB___024root___dump_triggers__stl(VbibpTB___024root* vlSelf); +#endif // VL_DEBUG + +VL_ATTR_COLD void VbibpTB___024root___eval_triggers__stl(VbibpTB___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + VbibpTB__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ VbibpTB___024root___eval_triggers__stl\n"); ); + // Body + vlSelf->__VstlTriggered.at(0U) = (0U == vlSelf->__VstlIterCount); +#ifdef VL_DEBUG + if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { + VbibpTB___024root___dump_triggers__stl(vlSelf); + } +#endif +} diff --git a/labs/lab6/obj_dir/VbibpTB___024root__Slow.cpp b/labs/lab6/obj_dir/VbibpTB___024root__Slow.cpp new file mode 100644 index 0000000..1f968a1 --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB___024root__Slow.cpp @@ -0,0 +1,26 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See VbibpTB.h for the primary calling header + +#include "verilated.h" + +#include "VbibpTB__Syms.h" +#include "VbibpTB___024root.h" + +void VbibpTB___024root___ctor_var_reset(VbibpTB___024root* vlSelf); + +VbibpTB___024root::VbibpTB___024root(VbibpTB__Syms* symsp, const char* v__name) + : VerilatedModule{v__name} + , __VdlySched{*symsp->_vm_contextp__} + , vlSymsp{symsp} + { + // Reset structure values + VbibpTB___024root___ctor_var_reset(this); +} + +void VbibpTB___024root::__Vconfigure(bool first) { + if (false && first) {} // Prevent unused +} + +VbibpTB___024root::~VbibpTB___024root() { +} diff --git a/labs/lab6/obj_dir/VbibpTB__main.cpp b/labs/lab6/obj_dir/VbibpTB__main.cpp new file mode 100644 index 0000000..be832e7 --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB__main.cpp @@ -0,0 +1,34 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: main() calling loop, created with Verilator --main + +#include "verilated.h" +#include "VbibpTB.h" + +//====================== + +int main(int argc, char** argv, char**) { + // Setup context, defaults, and parse command line + Verilated::debug(0); + const std::unique_ptr contextp{new VerilatedContext}; + contextp->commandArgs(argc, argv); + + // Construct the Verilated model, from Vtop.h generated from Verilating + const std::unique_ptr topp{new VbibpTB{contextp.get()}}; + + // Simulate until $finish + while (!contextp->gotFinish()) { + // Evaluate model + topp->eval(); + // Advance time + if (!topp->eventsPending()) break; + contextp->time(topp->nextTimeSlot()); + } + + if (!contextp->gotFinish()) { + VL_DEBUG_IF(VL_PRINTF("+ Exiting without $finish; no events left\n");); + } + + // Final model cleanup + topp->final(); + return 0; +} diff --git a/labs/lab6/obj_dir/VbibpTB_classes.mk b/labs/lab6/obj_dir/VbibpTB_classes.mk new file mode 100644 index 0000000..a27c000 --- /dev/null +++ b/labs/lab6/obj_dir/VbibpTB_classes.mk @@ -0,0 +1,54 @@ +# Verilated -*- Makefile -*- +# DESCRIPTION: Verilator output: Make include file with class lists +# +# This file lists generated Verilated files, for including in higher level makefiles. +# See VbibpTB.mk for the caller. + +### Switches... +# C11 constructs required? 0/1 (always on now) +VM_C11 = 1 +# Timing enabled? 0/1 +VM_TIMING = 1 +# Coverage output mode? 0/1 (from --coverage) +VM_COVERAGE = 0 +# Parallel builds? 0/1 (from --output-split) +VM_PARALLEL_BUILDS = 0 +# Tracing output mode? 0/1 (from --trace/--trace-fst) +VM_TRACE = 0 +# Tracing output mode in VCD format? 0/1 (from --trace) +VM_TRACE_VCD = 0 +# Tracing output mode in FST format? 0/1 (from --trace-fst) +VM_TRACE_FST = 0 + +### Object file lists... +# Generated module classes, fast-path, compile with highest optimization +VM_CLASSES_FAST += \ + VbibpTB \ + VbibpTB___024root__DepSet_h7f8acf28__0 \ + VbibpTB___024root__DepSet_h31122c8e__0 \ + VbibpTB__main \ + +# Generated module classes, non-fast-path, compile with low/medium optimization +VM_CLASSES_SLOW += \ + VbibpTB___024root__Slow \ + VbibpTB___024root__DepSet_h7f8acf28__0__Slow \ + VbibpTB___024root__DepSet_h31122c8e__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 += \ + VbibpTB__Syms \ + +# Global classes, need linked once per executable, fast-path, compile with highest optimization +VM_GLOBAL_FAST += \ + verilated \ + verilated_timing \ + verilated_threads \ + +# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization +VM_GLOBAL_SLOW += \ + + +# Verilated -*- Makefile -*- diff --git a/labs/lab6/obj_dir/Vbibp__ALL.a b/labs/lab6/obj_dir/Vbibp__ALL.a new file mode 100644 index 0000000000000000000000000000000000000000..25cfc5feb18e5fb3305e3f58de3965a72f84c99d GIT binary patch literal 25518 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 Y@^EA=KW1m+-_>C9%Y6h=ftCM%02h!l3;+NC literal 0 HcmV?d00001 diff --git a/labs/lab6/obj_dir/Vbibp__ALL.cpp b/labs/lab6/obj_dir/Vbibp__ALL.cpp new file mode 100644 index 0000000..bf07c30 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp__ALL.cpp @@ -0,0 +1,10 @@ +// DESCRIPTION: Generated by verilator_includer via makefile +#define VL_INCLUDE_OPT include +#include "Vbibp.cpp" +#include "Vbibp___024root__DepSet_h1791c79f__0.cpp" +#include "Vbibp___024root__DepSet_h1fed60c4__0.cpp" +#include "Vbibp__main.cpp" +#include "Vbibp___024root__Slow.cpp" +#include "Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp" +#include "Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp" +#include "Vbibp__Syms.cpp" diff --git a/labs/lab6/obj_dir/Vbibp__ALL.d b/labs/lab6/obj_dir/Vbibp__ALL.d new file mode 100644 index 0000000..3e66b7b --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp__ALL.d @@ -0,0 +1,12 @@ +Vbibp__ALL.o: Vbibp__ALL.cpp Vbibp.cpp Vbibp.h \ + /usr/share/verilator/include/verilated.h \ + /usr/share/verilator/include/verilatedos.h \ + /usr/share/verilator/include/verilated_config.h \ + /usr/share/verilator/include/verilated_types.h \ + /usr/share/verilator/include/verilated_funcs.h Vbibp__Syms.h \ + Vbibp___024root.h /usr/share/verilator/include/verilated_timing.h \ + /usr/share/verilator/include/verilated.h \ + Vbibp___024root__DepSet_h1791c79f__0.cpp \ + Vbibp___024root__DepSet_h1fed60c4__0.cpp Vbibp__main.cpp \ + Vbibp___024root__Slow.cpp Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp \ + Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp Vbibp__Syms.cpp diff --git a/labs/lab6/obj_dir/Vbibp__ALL.o b/labs/lab6/obj_dir/Vbibp__ALL.o new file mode 100644 index 0000000000000000000000000000000000000000..d5c325498dcf5a9bcb58f7816f3e014772fe8dad GIT binary patch literal 22848 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 + _vm_contextp__->timeprecision(-12); + // Setup each module's pointers to their submodules + // Setup each module's pointer back to symbol table (for public functions) + TOP.__Vconfigure(true); +} diff --git a/labs/lab6/obj_dir/Vbibp__Syms.h b/labs/lab6/obj_dir/Vbibp__Syms.h new file mode 100644 index 0000000..3f86537 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp__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_VBIBP__SYMS_H_ +#define VERILATED_VBIBP__SYMS_H_ // guard + +#include "verilated.h" + +// INCLUDE MODEL CLASS + +#include "Vbibp.h" + +// INCLUDE MODULE CLASSES +#include "Vbibp___024root.h" + +// SYMS CLASS (contains all model state) +class Vbibp__Syms final : public VerilatedSyms { + public: + // INTERNAL STATE + Vbibp* const __Vm_modelp; + bool __Vm_didInit = false; + + // MODULE INSTANCE STATE + Vbibp___024root TOP; + + // CONSTRUCTORS + Vbibp__Syms(VerilatedContext* contextp, const char* namep, Vbibp* modelp); + ~Vbibp__Syms(); + + // METHODS + const char* name() { return TOP.name(); } +} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); + +#endif // guard diff --git a/labs/lab6/obj_dir/Vbibp___024root.h b/labs/lab6/obj_dir/Vbibp___024root.h new file mode 100644 index 0000000..10cfdb4 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp___024root.h @@ -0,0 +1,39 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design internal header +// See Vbibp.h for the primary calling header + +#ifndef VERILATED_VBIBP___024ROOT_H_ +#define VERILATED_VBIBP___024ROOT_H_ // guard + +#include "verilated.h" +#include "verilated_timing.h" + +class Vbibp__Syms; + +class Vbibp___024root final : public VerilatedModule { + public: + + // DESIGN SPECIFIC STATE + CData/*0:0*/ __VactContinue; + SData/*10:0*/ bibpTB__DOT__buyruk; + IData/*31:0*/ __VstlIterCount; + IData/*31:0*/ __VactIterCount; + VlDelayScheduler __VdlySched; + VlTriggerVec<1> __VstlTriggered; + VlTriggerVec<1> __VactTriggered; + VlTriggerVec<1> __VnbaTriggered; + + // INTERNAL VARIABLES + Vbibp__Syms* const vlSymsp; + + // CONSTRUCTORS + Vbibp___024root(Vbibp__Syms* symsp, const char* v__name); + ~Vbibp___024root(); + VL_UNCOPYABLE(Vbibp___024root); + + // INTERNAL METHODS + void __Vconfigure(bool first); +} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); + + +#endif // guard diff --git a/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp b/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp new file mode 100644 index 0000000..bf5427b --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp @@ -0,0 +1,43 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See Vbibp.h for the primary calling header + +#include "verilated.h" + +#include "Vbibp__Syms.h" +#include "Vbibp___024root.h" + +VL_INLINE_OPT VlCoroutine Vbibp___024root___eval_initial__TOP__0(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_initial__TOP__0\n"); ); + // Init + VlWide<3>/*95:0*/ __Vtemp_h84e83511__0; + // Body + __Vtemp_h84e83511__0[0U] = 0x2e766364U; + __Vtemp_h84e83511__0[1U] = 0x62696270U; + __Vtemp_h84e83511__0[2U] = 0x76U; + vlSymsp->_vm_contextp__->dumpfile(VL_CVT_PACK_STR_NW(3, __Vtemp_h84e83511__0)); + VL_PRINTF_MT("-Info: bibpTB.v:11: $dumpvar ignored, as Verilated without --trace\n"); + vlSelf->bibpTB__DOT__buyruk = 0x754U; + co_await vlSelf->__VdlySched.delay(0xaU, "bibpTB.v", + 13); + VL_FINISH_MT("bibpTB.v", 14, ""); +} + +#ifdef VL_DEBUG +VL_ATTR_COLD void Vbibp___024root___dump_triggers__act(Vbibp___024root* vlSelf); +#endif // VL_DEBUG + +void Vbibp___024root___eval_triggers__act(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_triggers__act\n"); ); + // Body + vlSelf->__VactTriggered.at(0U) = vlSelf->__VdlySched.awaitingCurrentTime(); +#ifdef VL_DEBUG + if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { + Vbibp___024root___dump_triggers__act(vlSelf); + } +#endif +} diff --git a/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp b/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp new file mode 100644 index 0000000..3acf800 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp @@ -0,0 +1,25 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See Vbibp.h for the primary calling header + +#include "verilated.h" + +#include "Vbibp__Syms.h" +#include "Vbibp___024root.h" + +#ifdef VL_DEBUG +VL_ATTR_COLD void Vbibp___024root___dump_triggers__stl(Vbibp___024root* vlSelf); +#endif // VL_DEBUG + +VL_ATTR_COLD void Vbibp___024root___eval_triggers__stl(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_triggers__stl\n"); ); + // Body + vlSelf->__VstlTriggered.at(0U) = (0U == vlSelf->__VstlIterCount); +#ifdef VL_DEBUG + if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { + Vbibp___024root___dump_triggers__stl(vlSelf); + } +#endif +} diff --git a/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp b/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp new file mode 100644 index 0000000..ff5832d --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp @@ -0,0 +1,163 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See Vbibp.h for the primary calling header + +#include "verilated.h" + +#include "Vbibp___024root.h" + +VlCoroutine Vbibp___024root___eval_initial__TOP__0(Vbibp___024root* vlSelf); + +void Vbibp___024root___eval_initial(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_initial\n"); ); + // Body + Vbibp___024root___eval_initial__TOP__0(vlSelf); +} + +VL_INLINE_OPT void Vbibp___024root___act_sequent__TOP__0(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___act_sequent__TOP__0\n"); ); + // Init + CData/*4:0*/ bibpTB__DOT__sonuc; + bibpTB__DOT__sonuc = 0; + // Body + VL_WRITEF("%2#\n%2#\n%2#\n",4,(0xfU & ((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U)), + 4,(0xfU & (IData)(vlSelf->bibpTB__DOT__buyruk)), + 4,(0xfU & (((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U) - (IData)(vlSelf->bibpTB__DOT__buyruk)))); + bibpTB__DOT__sonuc = (0x1fU & ((0x400U & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? ((0x200U & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? 0x1fU : ( + (0x100U + & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? 0x1fU + : + (0xfU + & (((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U) + ^ (IData)(vlSelf->bibpTB__DOT__buyruk))))) + : ((0x200U & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? ((0x100U + & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? (0xfU + & (((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U) + | (IData)(vlSelf->bibpTB__DOT__buyruk))) + : (0xfU + & (((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U) + & (IData)(vlSelf->bibpTB__DOT__buyruk)))) + : ((0x100U + & (IData)(vlSelf->bibpTB__DOT__buyruk)) + ? ((0xfU + & ((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U)) + - (0xfU + & (IData)(vlSelf->bibpTB__DOT__buyruk))) + : ((0xfU + & ((IData)(vlSelf->bibpTB__DOT__buyruk) + >> 4U)) + + (0xfU + & (IData)(vlSelf->bibpTB__DOT__buyruk))))))); + VL_WRITEF("%b\n",5,bibpTB__DOT__sonuc); +} + +void Vbibp___024root___eval_act(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_act\n"); ); + // Body + if (vlSelf->__VactTriggered.at(0U)) { + Vbibp___024root___act_sequent__TOP__0(vlSelf); + } +} + +void Vbibp___024root___eval_nba(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_nba\n"); ); + // Body + if (vlSelf->__VnbaTriggered.at(0U)) { + Vbibp___024root___act_sequent__TOP__0(vlSelf); + } +} + +void Vbibp___024root___eval_triggers__act(Vbibp___024root* vlSelf); +#ifdef VL_DEBUG +VL_ATTR_COLD void Vbibp___024root___dump_triggers__act(Vbibp___024root* vlSelf); +#endif // VL_DEBUG +void Vbibp___024root___timing_resume(Vbibp___024root* vlSelf); +#ifdef VL_DEBUG +VL_ATTR_COLD void Vbibp___024root___dump_triggers__nba(Vbibp___024root* vlSelf); +#endif // VL_DEBUG + +void Vbibp___024root___eval(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval\n"); ); + // Init + VlTriggerVec<1> __VpreTriggered; + IData/*31:0*/ __VnbaIterCount; + CData/*0:0*/ __VnbaContinue; + // Body + __VnbaIterCount = 0U; + __VnbaContinue = 1U; + while (__VnbaContinue) { + __VnbaContinue = 0U; + vlSelf->__VnbaTriggered.clear(); + vlSelf->__VactIterCount = 0U; + vlSelf->__VactContinue = 1U; + while (vlSelf->__VactContinue) { + vlSelf->__VactContinue = 0U; + Vbibp___024root___eval_triggers__act(vlSelf); + if (vlSelf->__VactTriggered.any()) { + vlSelf->__VactContinue = 1U; + if (VL_UNLIKELY((0x64U < vlSelf->__VactIterCount))) { +#ifdef VL_DEBUG + Vbibp___024root___dump_triggers__act(vlSelf); +#endif + VL_FATAL_MT("bibpTB.v", 1, "", "Active region did not converge."); + } + vlSelf->__VactIterCount = ((IData)(1U) + + vlSelf->__VactIterCount); + __VpreTriggered.andNot(vlSelf->__VactTriggered, vlSelf->__VnbaTriggered); + vlSelf->__VnbaTriggered.set(vlSelf->__VactTriggered); + Vbibp___024root___timing_resume(vlSelf); + Vbibp___024root___eval_act(vlSelf); + } + } + if (vlSelf->__VnbaTriggered.any()) { + __VnbaContinue = 1U; + if (VL_UNLIKELY((0x64U < __VnbaIterCount))) { +#ifdef VL_DEBUG + Vbibp___024root___dump_triggers__nba(vlSelf); +#endif + VL_FATAL_MT("bibpTB.v", 1, "", "NBA region did not converge."); + } + __VnbaIterCount = ((IData)(1U) + __VnbaIterCount); + Vbibp___024root___eval_nba(vlSelf); + } + } +} + +void Vbibp___024root___timing_resume(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___timing_resume\n"); ); + // Body + if (vlSelf->__VactTriggered.at(0U)) { + vlSelf->__VdlySched.resume(); + } +} + +#ifdef VL_DEBUG +void Vbibp___024root___eval_debug_assertions(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_debug_assertions\n"); ); +} +#endif // VL_DEBUG diff --git a/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp b/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp new file mode 100644 index 0000000..6da44f6 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp @@ -0,0 +1,117 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See Vbibp.h for the primary calling header + +#include "verilated.h" + +#include "Vbibp___024root.h" + +VL_ATTR_COLD void Vbibp___024root___eval_static(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_static\n"); ); +} + +VL_ATTR_COLD void Vbibp___024root___eval_final(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_final\n"); ); +} + +VL_ATTR_COLD void Vbibp___024root___eval_triggers__stl(Vbibp___024root* vlSelf); +#ifdef VL_DEBUG +VL_ATTR_COLD void Vbibp___024root___dump_triggers__stl(Vbibp___024root* vlSelf); +#endif // VL_DEBUG +VL_ATTR_COLD void Vbibp___024root___eval_stl(Vbibp___024root* vlSelf); + +VL_ATTR_COLD void Vbibp___024root___eval_settle(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_settle\n"); ); + // Init + CData/*0:0*/ __VstlContinue; + // Body + vlSelf->__VstlIterCount = 0U; + __VstlContinue = 1U; + while (__VstlContinue) { + __VstlContinue = 0U; + Vbibp___024root___eval_triggers__stl(vlSelf); + if (vlSelf->__VstlTriggered.any()) { + __VstlContinue = 1U; + if (VL_UNLIKELY((0x64U < vlSelf->__VstlIterCount))) { +#ifdef VL_DEBUG + Vbibp___024root___dump_triggers__stl(vlSelf); +#endif + VL_FATAL_MT("bibpTB.v", 1, "", "Settle region did not converge."); + } + vlSelf->__VstlIterCount = ((IData)(1U) + + vlSelf->__VstlIterCount); + Vbibp___024root___eval_stl(vlSelf); + } + } +} + +#ifdef VL_DEBUG +VL_ATTR_COLD void Vbibp___024root___dump_triggers__stl(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___dump_triggers__stl\n"); ); + // Body + if ((1U & (~ (IData)(vlSelf->__VstlTriggered.any())))) { + VL_DBG_MSGF(" No triggers active\n"); + } + if (vlSelf->__VstlTriggered.at(0U)) { + VL_DBG_MSGF(" 'stl' region trigger index 0 is active: Internal 'stl' trigger - first iteration\n"); + } +} +#endif // VL_DEBUG + +void Vbibp___024root___act_sequent__TOP__0(Vbibp___024root* vlSelf); + +VL_ATTR_COLD void Vbibp___024root___eval_stl(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___eval_stl\n"); ); + // Body + if (vlSelf->__VstlTriggered.at(0U)) { + Vbibp___024root___act_sequent__TOP__0(vlSelf); + } +} + +#ifdef VL_DEBUG +VL_ATTR_COLD void Vbibp___024root___dump_triggers__act(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___dump_triggers__act\n"); ); + // Body + if ((1U & (~ (IData)(vlSelf->__VactTriggered.any())))) { + VL_DBG_MSGF(" No triggers active\n"); + } + if (vlSelf->__VactTriggered.at(0U)) { + VL_DBG_MSGF(" 'act' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); + } +} +#endif // VL_DEBUG + +#ifdef VL_DEBUG +VL_ATTR_COLD void Vbibp___024root___dump_triggers__nba(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___dump_triggers__nba\n"); ); + // Body + if ((1U & (~ (IData)(vlSelf->__VnbaTriggered.any())))) { + VL_DBG_MSGF(" No triggers active\n"); + } + if (vlSelf->__VnbaTriggered.at(0U)) { + VL_DBG_MSGF(" 'nba' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); + } +} +#endif // VL_DEBUG + +VL_ATTR_COLD void Vbibp___024root___ctor_var_reset(Vbibp___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vbibp__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vbibp___024root___ctor_var_reset\n"); ); + // Body + vlSelf->bibpTB__DOT__buyruk = VL_RAND_RESET_I(11); + } diff --git a/labs/lab6/obj_dir/Vbibp___024root__Slow.cpp b/labs/lab6/obj_dir/Vbibp___024root__Slow.cpp new file mode 100644 index 0000000..835e257 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp___024root__Slow.cpp @@ -0,0 +1,26 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See Vbibp.h for the primary calling header + +#include "verilated.h" + +#include "Vbibp__Syms.h" +#include "Vbibp___024root.h" + +void Vbibp___024root___ctor_var_reset(Vbibp___024root* vlSelf); + +Vbibp___024root::Vbibp___024root(Vbibp__Syms* symsp, const char* v__name) + : VerilatedModule{v__name} + , __VdlySched{*symsp->_vm_contextp__} + , vlSymsp{symsp} + { + // Reset structure values + Vbibp___024root___ctor_var_reset(this); +} + +void Vbibp___024root::__Vconfigure(bool first) { + if (false && first) {} // Prevent unused +} + +Vbibp___024root::~Vbibp___024root() { +} diff --git a/labs/lab6/obj_dir/Vbibp__main.cpp b/labs/lab6/obj_dir/Vbibp__main.cpp new file mode 100644 index 0000000..bb39653 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp__main.cpp @@ -0,0 +1,34 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: main() calling loop, created with Verilator --main + +#include "verilated.h" +#include "Vbibp.h" + +//====================== + +int main(int argc, char** argv, char**) { + // Setup context, defaults, and parse command line + Verilated::debug(0); + const std::unique_ptr contextp{new VerilatedContext}; + contextp->commandArgs(argc, argv); + + // Construct the Verilated model, from Vtop.h generated from Verilating + const std::unique_ptr topp{new Vbibp{contextp.get()}}; + + // Simulate until $finish + while (!contextp->gotFinish()) { + // Evaluate model + topp->eval(); + // Advance time + if (!topp->eventsPending()) break; + contextp->time(topp->nextTimeSlot()); + } + + if (!contextp->gotFinish()) { + VL_DEBUG_IF(VL_PRINTF("+ Exiting without $finish; no events left\n");); + } + + // Final model cleanup + topp->final(); + return 0; +} diff --git a/labs/lab6/obj_dir/Vbibp__ver.d b/labs/lab6/obj_dir/Vbibp__ver.d new file mode 100644 index 0000000..d513013 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp__ver.d @@ -0,0 +1 @@ +obj_dir/Vbibp.cpp obj_dir/Vbibp.h obj_dir/Vbibp.mk obj_dir/Vbibp__Syms.cpp obj_dir/Vbibp__Syms.h obj_dir/Vbibp___024root.h obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp obj_dir/Vbibp___024root__Slow.cpp obj_dir/Vbibp__main.cpp obj_dir/Vbibp__ver.d obj_dir/Vbibp_classes.mk : /usr/bin/verilator_bin /usr/bin/verilator_bin bibp.v bibpTB.v diff --git a/labs/lab6/obj_dir/Vbibp__verFiles.dat b/labs/lab6/obj_dir/Vbibp__verFiles.dat new file mode 100644 index 0000000..1157cf2 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp__verFiles.dat @@ -0,0 +1,20 @@ +# DESCRIPTION: Verilator output: Timestamp data for --skip-identical. Delete at will. +C "--binary bibp.v bibpTB.v" +S 12244816 28045 1719496600 881980186 1680199511 0 "/usr/bin/verilator_bin" +S 1391 45758 1720892163 82220690 1720892163 82220690 "bibp.v" +S 280 45770 1720891982 812222176 1720891982 812222176 "bibpTB.v" +T 2913 45968 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp.cpp" +T 2653 45967 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp.h" +T 1734 45977 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp.mk" +T 746 45965 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp__Syms.cpp" +T 902 45966 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp__Syms.h" +T 991 45969 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root.h" +T 1689 45973 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root__DepSet_h1791c79f__0.cpp" +T 843 45971 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root__DepSet_h1791c79f__0__Slow.cpp" +T 7548 45974 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root__DepSet_h1fed60c4__0.cpp" +T 4683 45972 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root__DepSet_h1fed60c4__0__Slow.cpp" +T 668 45970 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp___024root__Slow.cpp" +T 961 45975 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp__main.cpp" +T 501 45978 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp__ver.d" +T 0 0 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp__verFiles.dat" +T 1664 45976 1720892165 682220680 1720892165 682220680 "obj_dir/Vbibp_classes.mk" diff --git a/labs/lab6/obj_dir/Vbibp_classes.mk b/labs/lab6/obj_dir/Vbibp_classes.mk new file mode 100644 index 0000000..09e1cc2 --- /dev/null +++ b/labs/lab6/obj_dir/Vbibp_classes.mk @@ -0,0 +1,54 @@ +# Verilated -*- Makefile -*- +# DESCRIPTION: Verilator output: Make include file with class lists +# +# This file lists generated Verilated files, for including in higher level makefiles. +# See Vbibp.mk for the caller. + +### Switches... +# C11 constructs required? 0/1 (always on now) +VM_C11 = 1 +# Timing enabled? 0/1 +VM_TIMING = 1 +# Coverage output mode? 0/1 (from --coverage) +VM_COVERAGE = 0 +# Parallel builds? 0/1 (from --output-split) +VM_PARALLEL_BUILDS = 0 +# Tracing output mode? 0/1 (from --trace/--trace-fst) +VM_TRACE = 0 +# Tracing output mode in VCD format? 0/1 (from --trace) +VM_TRACE_VCD = 0 +# Tracing output mode in FST format? 0/1 (from --trace-fst) +VM_TRACE_FST = 0 + +### Object file lists... +# Generated module classes, fast-path, compile with highest optimization +VM_CLASSES_FAST += \ + Vbibp \ + Vbibp___024root__DepSet_h1791c79f__0 \ + Vbibp___024root__DepSet_h1fed60c4__0 \ + Vbibp__main \ + +# Generated module classes, non-fast-path, compile with low/medium optimization +VM_CLASSES_SLOW += \ + Vbibp___024root__Slow \ + Vbibp___024root__DepSet_h1791c79f__0__Slow \ + Vbibp___024root__DepSet_h1fed60c4__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 += \ + Vbibp__Syms \ + +# Global classes, need linked once per executable, fast-path, compile with highest optimization +VM_GLOBAL_FAST += \ + verilated \ + verilated_timing \ + verilated_threads \ + +# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization +VM_GLOBAL_SLOW += \ + + +# Verilated -*- Makefile -*- diff --git a/labs/lab6/obj_dir/verilated.d b/labs/lab6/obj_dir/verilated.d new file mode 100644 index 0000000..6ed3629 --- /dev/null +++ b/labs/lab6/obj_dir/verilated.d @@ -0,0 +1,12 @@ +verilated.o: /usr/share/verilator/include/verilated.cpp \ + /usr/share/verilator/include/verilated_config.h \ + /usr/share/verilator/include/verilatedos.h \ + /usr/share/verilator/include/verilated_imp.h \ + /usr/share/verilator/include/verilated.h \ + /usr/share/verilator/include/verilated_types.h \ + /usr/share/verilator/include/verilated_funcs.h \ + /usr/share/verilator/include/verilated_syms.h \ + /usr/share/verilator/include/verilated_sym_props.h \ + /usr/share/verilator/include/verilated_threads.h \ + /usr/share/verilator/include/verilated_trace.h \ + /usr/share/verilator/include/verilated_trace_defs.h diff --git a/labs/lab6/obj_dir/verilated.o b/labs/lab6/obj_dir/verilated.o new file mode 100644 index 0000000000000000000000000000000000000000..d7daedd1104a533e54952bccf88e3dca6daaa84d GIT binary patch literal 197480 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 We|`$jo$~I=n|xL;yY_Jl?f(zjcDJ$s literal 0 HcmV?d00001 diff --git a/labs/lab6/obj_dir/verilated_threads.d b/labs/lab6/obj_dir/verilated_threads.d new file mode 100644 index 0000000..a1b1a49 --- /dev/null +++ b/labs/lab6/obj_dir/verilated_threads.d @@ -0,0 +1,7 @@ +verilated_threads.o: /usr/share/verilator/include/verilated_threads.cpp \ + /usr/share/verilator/include/verilatedos.h \ + /usr/share/verilator/include/verilated_threads.h \ + /usr/share/verilator/include/verilated.h \ + /usr/share/verilator/include/verilated_config.h \ + /usr/share/verilator/include/verilated_types.h \ + /usr/share/verilator/include/verilated_funcs.h diff --git a/labs/lab6/obj_dir/verilated_threads.o b/labs/lab6/obj_dir/verilated_threads.o new file mode 100644 index 0000000000000000000000000000000000000000..bce79c746ca0082f6e8f843d2d00f1c0951d81d8 GIT binary patch literal 30832 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 literal 0 HcmV?d00001 diff --git a/labs/lab6/obj_dir/verilated_timing.d b/labs/lab6/obj_dir/verilated_timing.d new file mode 100644 index 0000000..91d0e85 --- /dev/null +++ b/labs/lab6/obj_dir/verilated_timing.d @@ -0,0 +1,7 @@ +verilated_timing.o: /usr/share/verilator/include/verilated_timing.cpp \ + /usr/share/verilator/include/verilated_timing.h \ + /usr/share/verilator/include/verilated.h \ + /usr/share/verilator/include/verilatedos.h \ + /usr/share/verilator/include/verilated_config.h \ + /usr/share/verilator/include/verilated_types.h \ + /usr/share/verilator/include/verilated_funcs.h diff --git a/labs/lab6/obj_dir/verilated_timing.o b/labs/lab6/obj_dir/verilated_timing.o new file mode 100644 index 0000000000000000000000000000000000000000..61f79d6a2ad6c82f4c072552888f930f41708821 GIT binary patch literal 8664 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 oB5*I;k literal 0 HcmV?d00001 diff --git a/labs/lab6/vbibp.vcd b/labs/lab6/vbibp.vcd index c638d6a..524c6b8 100644 --- a/labs/lab6/vbibp.vcd +++ b/labs/lab6/vbibp.vcd @@ -1,5 +1,5 @@ $date - Sat Jul 13 00:01:24 2024 + Sat Jul 13 20:33:06 2024 $end $version Icarus Verilog @@ -18,9 +18,9 @@ $upscope $end $enddefinitions $end #0 $dumpvars -b100 $ -b101010100 # -b101010100 " -b100 ! +b11111 $ +b11101010100 # +b11101010100 " +b11111 ! $end #10 diff --git a/labs/lab6/vvbibp b/labs/lab6/vvbibp index 910f8e3..a2eec58 100644 --- a/labs/lab6/vvbibp +++ b/labs/lab6/vvbibp @@ -7,113 +7,116 @@ :vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; :vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; :vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; -S_0x557dbd3f8cf0 .scope module, "bibpTB" "bibpTB" 2 1; +S_0x55b097fd0df0 .scope module, "bibpTB" "bibpTB" 2 1; .timescale 0 0; -P_0x557dbd3f8e80 .param/l "UZUNLUK" 0 2 3, +C4<00000000000000000000000000001000>; -v0x557dbd40a7d0_0 .var "buyruk", 10 0; -v0x557dbd40a890_0 .net "sonuc", 4 0, v0x557dbd40a690_0; 1 drivers -S_0x557dbd3f8f20 .scope module, "uut" "bibp" 2 7, 3 1 0, S_0x557dbd3f8cf0; +P_0x55b097fd1ec0 .param/l "UZUNLUK" 0 2 3, +C4<00000000000000000000000000001000>; +v0x55b098020f40_0 .var "buyruk", 10 0; +v0x55b098021030_0 .net "sonuc", 4 0, v0x55b098020e00_0; 1 drivers +S_0x55b097fd0fd0 .scope module, "uut" "bibp" 2 7, 3 1 0, S_0x55b097fd0df0; .timescale 0 0; .port_info 0 /INPUT 11 "buyruk"; .port_info 1 /OUTPUT 5 "sonuc"; -P_0x557dbd3f95c0 .param/l "UZUNLUK" 0 3 1, +C4<00000000000000000000000000001000>; -v0x557dbd3bbcf0_0 .net "buyruk", 10 0, v0x557dbd40a7d0_0; 1 drivers -v0x557dbd40a690_0 .var "sonuc", 4 0; -E_0x557dbd3bce20 .event edge, v0x557dbd3bbcf0_0; - .scope S_0x557dbd3f8f20; +P_0x55b097fd1de0 .param/l "UZUNLUK" 0 3 1, +C4<00000000000000000000000000001000>; +v0x55b09800a8e0_0 .net "buyruk", 10 0, v0x55b098020f40_0; 1 drivers +v0x55b098020e00_0 .var "sonuc", 4 0; +E_0x55b09800af00 .event edge, v0x55b09800a8e0_0, v0x55b098020e00_0; + .scope S_0x55b097fd0fd0; T_0 ; - %wait E_0x557dbd3bce20; - %load/vec4 v0x557dbd3bbcf0_0; - %parti/s 4, 7, 4; + %wait E_0x55b09800af00; + %vpi_call 3 21 "$display", "%d", &PV {0 0 0}; + %vpi_call 3 22 "$display", "%d", &PV {0 0 0}; + %load/vec4 v0x55b09800a8e0_0; + %parti/s 4, 4, 4; + %load/vec4 v0x55b09800a8e0_0; + %parti/s 4, 0, 2; + %sub; + %vpi_call 3 23 "$display", "%d", S<0,vec4,u4> {1 0 0}; + %load/vec4 v0x55b09800a8e0_0; + %parti/s 3, 8, 5; %dup/vec4; - %pushi/vec4 0, 0, 4; + %pushi/vec4 0, 0, 3; %cmp/u; %jmp/1 T_0.0, 6; %dup/vec4; - %pushi/vec4 1, 0, 4; + %pushi/vec4 1, 0, 3; %cmp/u; %jmp/1 T_0.1, 6; %dup/vec4; - %pushi/vec4 2, 0, 4; + %pushi/vec4 2, 0, 3; %cmp/u; %jmp/1 T_0.2, 6; %dup/vec4; - %pushi/vec4 3, 0, 4; + %pushi/vec4 3, 0, 3; %cmp/u; %jmp/1 T_0.3, 6; %dup/vec4; - %pushi/vec4 4, 0, 4; + %pushi/vec4 4, 0, 3; %cmp/u; %jmp/1 T_0.4, 6; - %load/vec4 v0x557dbd3bbcf0_0; - %parti/s 4, 4, 4; - %pad/u 5; - %load/vec4 v0x557dbd3bbcf0_0; - %parti/s 4, 0, 2; - %pad/u 5; - %add; - %store/vec4 v0x557dbd40a690_0, 0, 5; + %pushi/vec4 31, 0, 5; + %store/vec4 v0x55b098020e00_0, 0, 5; %jmp T_0.6; T_0.0 ; - %load/vec4 v0x557dbd3bbcf0_0; + %load/vec4 v0x55b09800a8e0_0; %parti/s 4, 4, 4; %pad/u 5; - %load/vec4 v0x557dbd3bbcf0_0; + %load/vec4 v0x55b09800a8e0_0; %parti/s 4, 0, 2; %pad/u 5; %add; - %store/vec4 v0x557dbd40a690_0, 0, 5; + %store/vec4 v0x55b098020e00_0, 0, 5; %jmp T_0.6; T_0.1 ; - %load/vec4 v0x557dbd3bbcf0_0; + %load/vec4 v0x55b09800a8e0_0; %parti/s 4, 4, 4; %pad/u 5; - %load/vec4 v0x557dbd3bbcf0_0; + %load/vec4 v0x55b09800a8e0_0; %parti/s 4, 0, 2; %pad/u 5; %sub; - %store/vec4 v0x557dbd40a690_0, 0, 5; + %store/vec4 v0x55b098020e00_0, 0, 5; %jmp T_0.6; T_0.2 ; - %load/vec4 v0x557dbd3bbcf0_0; + %pushi/vec4 0, 0, 1; + %load/vec4 v0x55b09800a8e0_0; %parti/s 4, 4, 4; - %pad/u 5; - %load/vec4 v0x557dbd3bbcf0_0; + %load/vec4 v0x55b09800a8e0_0; %parti/s 4, 0, 2; - %pad/u 5; %and; - %store/vec4 v0x557dbd40a690_0, 0, 5; + %concat/vec4; draw_concat_vec4 + %store/vec4 v0x55b098020e00_0, 0, 5; %jmp T_0.6; T_0.3 ; - %load/vec4 v0x557dbd3bbcf0_0; + %pushi/vec4 0, 0, 1; + %load/vec4 v0x55b09800a8e0_0; %parti/s 4, 4, 4; - %pad/u 5; - %load/vec4 v0x557dbd3bbcf0_0; + %load/vec4 v0x55b09800a8e0_0; %parti/s 4, 0, 2; - %pad/u 5; %or; - %store/vec4 v0x557dbd40a690_0, 0, 5; + %concat/vec4; draw_concat_vec4 + %store/vec4 v0x55b098020e00_0, 0, 5; %jmp T_0.6; T_0.4 ; - %load/vec4 v0x557dbd3bbcf0_0; + %pushi/vec4 0, 0, 1; + %load/vec4 v0x55b09800a8e0_0; %parti/s 4, 4, 4; - %pad/u 5; - %load/vec4 v0x557dbd3bbcf0_0; + %load/vec4 v0x55b09800a8e0_0; %parti/s 4, 0, 2; - %pad/u 5; %xor; - %store/vec4 v0x557dbd40a690_0, 0, 5; + %concat/vec4; draw_concat_vec4 + %store/vec4 v0x55b098020e00_0, 0, 5; %jmp T_0.6; T_0.6 ; %pop/vec4 1; + %vpi_call 3 32 "$display", "%b", v0x55b098020e00_0 {0 0 0}; %jmp T_0; .thread T_0, $push; - .scope S_0x557dbd3f8cf0; + .scope S_0x55b097fd0df0; T_1 ; %vpi_call 2 10 "$dumpfile", "vbibp.vcd" {0 0 0}; %vpi_call 2 11 "$dumpvars" {0 0 0}; - %pushi/vec4 340, 0, 11; - %store/vec4 v0x557dbd40a7d0_0, 0, 11; + %pushi/vec4 1876, 0, 11; + %store/vec4 v0x55b098020f40_0, 0, 11; %delay 10, 0; %vpi_call 2 14 "$finish" {0 0 0}; %end; diff --git a/tetirs/a.out b/tetirs/a.out new file mode 100644 index 0000000..4bedd8f --- /dev/null +++ b/tetirs/a.out @@ -0,0 +1,202 @@ +#! /usr/bin/vvp +:ivl_version "11.0 (stable)"; +:ivl_delay_selection "TYPICAL"; +:vpi_time_precision + 0; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi"; +:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi"; +S_0x5555993ec6a0 .scope module, "tb" "tb" 2 1; + .timescale 0 0; +v0x5555994063f0_0 .net "bitti_mi", 0 0, L_0x5555994068b0; 1 drivers +v0x5555994064b0_0 .net "cevrim", 4 0, L_0x5555994067c0; 1 drivers +v0x555599406550_0 .var "clk", 0 0; +v0x555599406650_0 .var "parca", 2 0; +v0x555599406720_0 .net "yukseklik", 4 0, v0x555599406270_0; 1 drivers +S_0x5555993ec830 .scope module, "uut" "tetris" 2 10, 3 1 0, S_0x5555993ec6a0; + .timescale 0 0; + .port_info 0 /INPUT 1 "clk"; + .port_info 1 /INPUT 3 "parca"; + .port_info 2 /OUTPUT 5 "yukseklik"; + .port_info 3 /OUTPUT 5 "cevrim"; + .port_info 4 /OUTPUT 1 "bitti_mi"; +L_0x5555994067c0 .functor BUFZ 5, v0x555599405d00_0, C4<00000>, C4<00000>, C4<00000>; +L_0x7f7b9f218018 .functor BUFT 1, C4<10000>, C4<0>, C4<0>, C4<0>; +v0x5555993ec9e0_0 .net/2u *"_ivl_2", 4 0, L_0x7f7b9f218018; 1 drivers +v0x555599405b80_0 .net "bitti_mi", 0 0, L_0x5555994068b0; alias, 1 drivers +v0x555599405c40_0 .net "cevrim", 4 0, L_0x5555994067c0; alias, 1 drivers +v0x555599405d00_0 .var "cevrim_r", 4 0; +v0x555599405de0_0 .net "clk", 0 0, v0x555599406550_0; 1 drivers +v0x555599405ef0_0 .net "parca", 2 0, v0x555599406650_0; 1 drivers +v0x555599405fd0_0 .var "y_0", 4 0; +v0x5555994060b0_0 .var "y_1", 4 0; +v0x555599406190_0 .var "y_2", 4 0; +v0x555599406270_0 .var "yukseklik", 4 0; +E_0x5555993e7d70 .event posedge, v0x555599405b80_0; +E_0x5555993af500 .event posedge, v0x555599405de0_0; +L_0x5555994068b0 .cmp/eq 5, v0x555599405d00_0, L_0x7f7b9f218018; + .scope S_0x5555993ec830; +T_0 ; + %pushi/vec4 0, 0, 5; + %store/vec4 v0x555599405d00_0, 0, 5; + %pushi/vec4 0, 0, 5; + %store/vec4 v0x555599405fd0_0, 0, 5; + %pushi/vec4 0, 0, 5; + %store/vec4 v0x5555994060b0_0, 0, 5; + %pushi/vec4 0, 0, 5; + %store/vec4 v0x555599406190_0, 0, 5; + %end; + .thread T_0; + .scope S_0x5555993ec830; +T_1 ; + %wait E_0x5555993af500; + %load/vec4 v0x555599405c40_0; + %cmpi/ne 16, 0, 5; + %jmp/0xz T_1.0, 4; + %load/vec4 v0x555599405d00_0; + %addi 1, 0, 5; + %assign/vec4 v0x555599405d00_0, 0; + %load/vec4 v0x555599405fd0_0; + %pushi/vec4 0, 0, 4; + %load/vec4 v0x555599405ef0_0; + %parti/s 1, 0, 2; + %concat/vec4; draw_concat_vec4 + %add; + %assign/vec4 v0x555599405fd0_0, 0; + %load/vec4 v0x5555994060b0_0; + %pushi/vec4 0, 0, 4; + %load/vec4 v0x555599405ef0_0; + %parti/s 1, 1, 2; + %concat/vec4; draw_concat_vec4 + %add; + %assign/vec4 v0x5555994060b0_0, 0; + %load/vec4 v0x555599406190_0; + %pushi/vec4 0, 0, 4; + %load/vec4 v0x555599405ef0_0; + %parti/s 1, 2, 3; + %concat/vec4; draw_concat_vec4 + %add; + %assign/vec4 v0x555599406190_0, 0; +T_1.0 ; + %jmp T_1; + .thread T_1; + .scope S_0x5555993ec830; +T_2 ; + %wait E_0x5555993e7d70; + %load/vec4 v0x5555994060b0_0; + %load/vec4 v0x555599405fd0_0; + %cmp/u; + %jmp/0xz T_2.0, 5; + %load/vec4 v0x555599406190_0; + %load/vec4 v0x555599405fd0_0; + %cmp/u; + %jmp/0xz T_2.2, 5; + %load/vec4 v0x555599405fd0_0; + %assign/vec4 v0x555599406270_0, 0; + %jmp T_2.3; +T_2.2 ; + %load/vec4 v0x555599406190_0; + %assign/vec4 v0x555599406270_0, 0; +T_2.3 ; + %jmp T_2.1; +T_2.0 ; + %load/vec4 v0x5555994060b0_0; + %load/vec4 v0x555599405fd0_0; + %cmp/u; + %jmp/0xz T_2.4, 5; + %load/vec4 v0x555599406190_0; + %load/vec4 v0x5555994060b0_0; + %cmp/u; + %jmp/0xz T_2.6, 5; + %load/vec4 v0x5555994060b0_0; + %assign/vec4 v0x555599406270_0, 0; + %jmp T_2.7; +T_2.6 ; + %load/vec4 v0x555599406190_0; + %assign/vec4 v0x555599406270_0, 0; +T_2.7 ; +T_2.4 ; +T_2.1 ; + %jmp T_2; + .thread T_2; + .scope S_0x5555993ec6a0; +T_3 ; + %pushi/vec4 0, 0, 1; + %store/vec4 v0x555599406550_0, 0, 1; + %end; + .thread T_3; + .scope S_0x5555993ec6a0; +T_4 ; + %load/vec4 v0x555599406550_0; + %inv; + %store/vec4 v0x555599406550_0, 0, 1; + %delay 5, 0; + %jmp T_4; + .thread T_4; + .scope S_0x5555993ec6a0; +T_5 ; + %vpi_call 2 23 "$dumpvars" {0 0 0}; + %pushi/vec4 5, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 5, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 5, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 5, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 5, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 5, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 5, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 5, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 5, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %pushi/vec4 0, 0, 3; + %store/vec4 v0x555599406650_0, 0, 3; + %delay 10, 0; + %vpi_call 2 42 "$finish" {0 0 0}; + %end; + .thread T_5; +# The file index is used to find the file name in the following table. +:file_names 4; + "N/A"; + ""; + "tb.v"; + "tetris.v"; diff --git a/tetirs/obj_dir/Vtb b/tetirs/obj_dir/Vtb new file mode 100644 index 0000000000000000000000000000000000000000..38d5191dfe0d8024046023dcd042fda9380a2e40 GIT binary patch literal 164304 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 +{ + // Register model with the context + contextp()->addModel(this); +} + +Vtb::Vtb(const char* _vcname__) + : Vtb(Verilated::threadContextp(), _vcname__) +{ +} + +//============================================================ +// Destructor + +Vtb::~Vtb() { + delete vlSymsp; +} + +//============================================================ +// Evaluation function + +#ifdef VL_DEBUG +void Vtb___024root___eval_debug_assertions(Vtb___024root* vlSelf); +#endif // VL_DEBUG +void Vtb___024root___eval_static(Vtb___024root* vlSelf); +void Vtb___024root___eval_initial(Vtb___024root* vlSelf); +void Vtb___024root___eval_settle(Vtb___024root* vlSelf); +void Vtb___024root___eval(Vtb___024root* vlSelf); + +void Vtb::eval_step() { + VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vtb::eval_step\n"); ); +#ifdef VL_DEBUG + // Debug assertions + Vtb___024root___eval_debug_assertions(&(vlSymsp->TOP)); +#endif // VL_DEBUG + if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) { + vlSymsp->__Vm_didInit = true; + VL_DEBUG_IF(VL_DBG_MSGF("+ Initial\n");); + Vtb___024root___eval_static(&(vlSymsp->TOP)); + Vtb___024root___eval_initial(&(vlSymsp->TOP)); + Vtb___024root___eval_settle(&(vlSymsp->TOP)); + } + // MTask 0 start + VL_DEBUG_IF(VL_DBG_MSGF("MTask0 starting\n");); + Verilated::mtaskId(0); + VL_DEBUG_IF(VL_DBG_MSGF("+ Eval\n");); + Vtb___024root___eval(&(vlSymsp->TOP)); + // Evaluate cleanup + Verilated::endOfThreadMTask(vlSymsp->__Vm_evalMsgQp); + Verilated::endOfEval(vlSymsp->__Vm_evalMsgQp); +} + +//============================================================ +// Events and timing +bool Vtb::eventsPending() { return !vlSymsp->TOP.__VdlySched.empty(); } + +uint64_t Vtb::nextTimeSlot() { return vlSymsp->TOP.__VdlySched.nextTimeSlot(); } + +//============================================================ +// Utilities + +const char* Vtb::name() const { + return vlSymsp->name(); +} + +//============================================================ +// Invoke final blocks + +void Vtb___024root___eval_final(Vtb___024root* vlSelf); + +VL_ATTR_COLD void Vtb::final() { + Vtb___024root___eval_final(&(vlSymsp->TOP)); +} + +//============================================================ +// Implementations of abstract methods from VerilatedModel + +const char* Vtb::hierName() const { return vlSymsp->name(); } +const char* Vtb::modelName() const { return "Vtb"; } +unsigned Vtb::threads() const { return 1; } diff --git a/tetirs/obj_dir/Vtb.h b/tetirs/obj_dir/Vtb.h new file mode 100644 index 0000000..6cf8972 --- /dev/null +++ b/tetirs/obj_dir/Vtb.h @@ -0,0 +1,72 @@ +// 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_VTB_H_ +#define VERILATED_VTB_H_ // guard + +#include "verilated.h" + +class Vtb__Syms; +class Vtb___024root; + +// This class is the main interface to the Verilated model +class Vtb VL_NOT_FINAL : public VerilatedModel { + private: + // Symbol table holding complete model state (owned by this class) + Vtb__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. + Vtb___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 Vtb(VerilatedContext* contextp, const char* name = "TOP"); + explicit Vtb(const char* name = "TOP"); + /// Destroy the model; called (often implicitly) by application code + virtual ~Vtb(); + private: + VL_UNCOPYABLE(Vtb); ///< 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(); + /// Are there scheduled events to handle? + bool eventsPending(); + /// Returns time at next time slot. Aborts if !eventsPending() + uint64_t nextTimeSlot(); + /// Retrieve name of this model instance (as passed to constructor). + const char* name() const; + + // Abstract methods from VerilatedModel + const char* hierName() const override final; + const char* modelName() const override final; + unsigned threads() const override final; +} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); + +#endif // guard diff --git a/tetirs/obj_dir/Vtb.mk b/tetirs/obj_dir/Vtb.mk new file mode 100644 index 0000000..6435363 --- /dev/null +++ b/tetirs/obj_dir/Vtb.mk @@ -0,0 +1,65 @@ +# Verilated -*- Makefile -*- +# DESCRIPTION: Verilator output: Makefile for building Verilated archive or executable +# +# Execute this makefile from the object directory: +# make -f Vtb.mk + +default: Vtb + +### Constants... +# Perl executable (from $PERL) +PERL = perl +# Path to Verilator kit (from $VERILATOR_ROOT) +VERILATOR_ROOT = /usr/share/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 = Vtb +# Module prefix (from --prefix) +VM_MODPREFIX = Vtb +# User CFLAGS (from -CFLAGS on Verilator command line) +VM_USER_CFLAGS = \ + -DVL_TIME_CONTEXT \ + +# 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 Vtb_classes.mk +# Include global rules +include $(VERILATOR_ROOT)/include/verilated.mk + +### Executable rules... (from --exe) +VPATH += $(VM_USER_DIR) + + +### Link rules... (from --exe) +Vtb: $(VK_USER_OBJS) $(VK_GLOBAL_OBJS) $(VM_PREFIX)__ALL.a $(VM_HIER_LIBS) + $(LINK) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) $(LIBS) $(SC_LIBS) -o $@ + + +# Verilated -*- Makefile -*- diff --git a/tetirs/obj_dir/Vtb__ALL.a b/tetirs/obj_dir/Vtb__ALL.a new file mode 100644 index 0000000000000000000000000000000000000000..ac55f344071f845b6af715691da8c0fc60b6d86c GIT binary patch literal 25372 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 Y7D>BF6z`qV@eg|qiappk7R>zr0|?3srT_o{ literal 0 HcmV?d00001 diff --git a/tetirs/obj_dir/Vtb__ALL.cpp b/tetirs/obj_dir/Vtb__ALL.cpp new file mode 100644 index 0000000..80e4a36 --- /dev/null +++ b/tetirs/obj_dir/Vtb__ALL.cpp @@ -0,0 +1,10 @@ +// DESCRIPTION: Generated by verilator_includer via makefile +#define VL_INCLUDE_OPT include +#include "Vtb.cpp" +#include "Vtb___024root__DepSet_hfe20aad3__0.cpp" +#include "Vtb___024root__DepSet_ha183790c__0.cpp" +#include "Vtb__main.cpp" +#include "Vtb___024root__Slow.cpp" +#include "Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp" +#include "Vtb___024root__DepSet_ha183790c__0__Slow.cpp" +#include "Vtb__Syms.cpp" diff --git a/tetirs/obj_dir/Vtb__ALL.d b/tetirs/obj_dir/Vtb__ALL.d new file mode 100644 index 0000000..0611e9f --- /dev/null +++ b/tetirs/obj_dir/Vtb__ALL.d @@ -0,0 +1,12 @@ +Vtb__ALL.o: Vtb__ALL.cpp Vtb.cpp Vtb.h \ + /usr/share/verilator/include/verilated.h \ + /usr/share/verilator/include/verilatedos.h \ + /usr/share/verilator/include/verilated_config.h \ + /usr/share/verilator/include/verilated_types.h \ + /usr/share/verilator/include/verilated_funcs.h Vtb__Syms.h \ + Vtb___024root.h /usr/share/verilator/include/verilated_timing.h \ + /usr/share/verilator/include/verilated.h \ + Vtb___024root__DepSet_hfe20aad3__0.cpp \ + Vtb___024root__DepSet_ha183790c__0.cpp Vtb__main.cpp \ + Vtb___024root__Slow.cpp Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp \ + Vtb___024root__DepSet_ha183790c__0__Slow.cpp Vtb__Syms.cpp diff --git a/tetirs/obj_dir/Vtb__ALL.o b/tetirs/obj_dir/Vtb__ALL.o new file mode 100644 index 0000000000000000000000000000000000000000..3824ff3afb107dc8d7f5a7c2521f3b3afa597604 GIT binary patch literal 22592 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 + _vm_contextp__->timeprecision(-12); + // Setup each module's pointers to their submodules + // Setup each module's pointer back to symbol table (for public functions) + TOP.__Vconfigure(true); +} diff --git a/tetirs/obj_dir/Vtb__Syms.h b/tetirs/obj_dir/Vtb__Syms.h new file mode 100644 index 0000000..b74d325 --- /dev/null +++ b/tetirs/obj_dir/Vtb__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_VTB__SYMS_H_ +#define VERILATED_VTB__SYMS_H_ // guard + +#include "verilated.h" + +// INCLUDE MODEL CLASS + +#include "Vtb.h" + +// INCLUDE MODULE CLASSES +#include "Vtb___024root.h" + +// SYMS CLASS (contains all model state) +class Vtb__Syms final : public VerilatedSyms { + public: + // INTERNAL STATE + Vtb* const __Vm_modelp; + bool __Vm_didInit = false; + + // MODULE INSTANCE STATE + Vtb___024root TOP; + + // CONSTRUCTORS + Vtb__Syms(VerilatedContext* contextp, const char* namep, Vtb* modelp); + ~Vtb__Syms(); + + // METHODS + const char* name() { return TOP.name(); } +} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); + +#endif // guard diff --git a/tetirs/obj_dir/Vtb___024root.h b/tetirs/obj_dir/Vtb___024root.h new file mode 100644 index 0000000..b8a7e7f --- /dev/null +++ b/tetirs/obj_dir/Vtb___024root.h @@ -0,0 +1,52 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design internal header +// See Vtb.h for the primary calling header + +#ifndef VERILATED_VTB___024ROOT_H_ +#define VERILATED_VTB___024ROOT_H_ // guard + +#include "verilated.h" +#include "verilated_timing.h" + +class Vtb__Syms; + +class Vtb___024root final : public VerilatedModule { + public: + + // DESIGN SPECIFIC STATE + CData/*0:0*/ tb__DOT__clk; + CData/*0:0*/ tb__DOT__bitti_mi; + CData/*2:0*/ tb__DOT__parca; + CData/*4:0*/ tb__DOT__yukseklik; + CData/*4:0*/ tb__DOT__cevrim; + CData/*4:0*/ tb__DOT__uut__DOT__cevrim_r; + CData/*4:0*/ tb__DOT__uut__DOT__y_0; + CData/*4:0*/ tb__DOT__uut__DOT__y_1; + CData/*4:0*/ tb__DOT__uut__DOT__y_2; + CData/*4:0*/ __Vdly__tb__DOT__uut__DOT__y_0; + CData/*4:0*/ __Vdly__tb__DOT__uut__DOT__y_1; + CData/*4:0*/ __Vdly__tb__DOT__uut__DOT__y_2; + CData/*0:0*/ __Vtrigrprev__TOP__tb__DOT__clk; + CData/*0:0*/ __Vtrigrprev__TOP__tb__DOT__bitti_mi; + CData/*0:0*/ __VactContinue; + IData/*31:0*/ __VstlIterCount; + IData/*31:0*/ __VactIterCount; + VlDelayScheduler __VdlySched; + VlTriggerVec<1> __VstlTriggered; + VlTriggerVec<3> __VactTriggered; + VlTriggerVec<3> __VnbaTriggered; + + // INTERNAL VARIABLES + Vtb__Syms* const vlSymsp; + + // CONSTRUCTORS + Vtb___024root(Vtb__Syms* symsp, const char* v__name); + ~Vtb___024root(); + VL_UNCOPYABLE(Vtb___024root); + + // INTERNAL METHODS + void __Vconfigure(bool first); +} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); + + +#endif // guard diff --git a/tetirs/obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp b/tetirs/obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp new file mode 100644 index 0000000..511d863 --- /dev/null +++ b/tetirs/obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp @@ -0,0 +1,201 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See Vtb.h for the primary calling header + +#include "verilated.h" + +#include "Vtb___024root.h" + +VlCoroutine Vtb___024root___eval_initial__TOP__0(Vtb___024root* vlSelf); + +void Vtb___024root___eval_initial(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_initial\n"); ); + // Body + Vtb___024root___eval_initial__TOP__0(vlSelf); + vlSelf->__Vtrigrprev__TOP__tb__DOT__clk = vlSelf->tb__DOT__clk; + vlSelf->__Vtrigrprev__TOP__tb__DOT__bitti_mi = vlSelf->tb__DOT__bitti_mi; +} + +VL_INLINE_OPT VlCoroutine Vtb___024root___eval_initial__TOP__0(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_initial__TOP__0\n"); ); + // Body + while (1U) { + co_await vlSelf->__VdlySched.delay(5U, "tb.v", + 20); + vlSelf->tb__DOT__clk = (1U & (~ (IData)(vlSelf->tb__DOT__clk))); + } + vlSelf->tb__DOT__parca = 5U; + co_await vlSelf->__VdlySched.delay(0xc8U, "tb.v", + 21); + VL_WRITEF("%2#\n%2#\n%1#\n",5,vlSelf->tb__DOT__yukseklik, + 5,(IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r), + 1,vlSelf->tb__DOT__bitti_mi); + VL_FINISH_MT("tb.v", 25, ""); +} + +void Vtb___024root___eval_act(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_act\n"); ); +} + +VL_INLINE_OPT void Vtb___024root___nba_sequent__TOP__0(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___nba_sequent__TOP__0\n"); ); + // Body + vlSelf->__Vdly__tb__DOT__uut__DOT__y_2 = vlSelf->tb__DOT__uut__DOT__y_2; + vlSelf->__Vdly__tb__DOT__uut__DOT__y_1 = vlSelf->tb__DOT__uut__DOT__y_1; + vlSelf->__Vdly__tb__DOT__uut__DOT__y_0 = vlSelf->tb__DOT__uut__DOT__y_0; + if ((0x10U != (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r))) { + vlSelf->__Vdly__tb__DOT__uut__DOT__y_2 = (0x1fU + & ((IData)(vlSelf->tb__DOT__uut__DOT__y_2) + + + (1U + & ((IData)(vlSelf->tb__DOT__parca) + >> 2U)))); + vlSelf->__Vdly__tb__DOT__uut__DOT__y_1 = (0x1fU + & ((IData)(vlSelf->tb__DOT__uut__DOT__y_1) + + + (1U + & ((IData)(vlSelf->tb__DOT__parca) + >> 1U)))); + vlSelf->__Vdly__tb__DOT__uut__DOT__y_0 = (0x1fU + & ((IData)(vlSelf->tb__DOT__uut__DOT__y_0) + + + (1U + & (IData)(vlSelf->tb__DOT__parca)))); + } + if ((0x10U != (IData)(vlSelf->tb__DOT__cevrim))) { + vlSelf->tb__DOT__uut__DOT__cevrim_r = (0x1fU + & ((IData)(1U) + + (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r))); + } + vlSelf->tb__DOT__cevrim = vlSelf->tb__DOT__uut__DOT__cevrim_r; + vlSelf->tb__DOT__bitti_mi = (0x10U == (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r)); +} + +VL_INLINE_OPT void Vtb___024root___nba_sequent__TOP__1(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___nba_sequent__TOP__1\n"); ); + // Body + if (((IData)(vlSelf->tb__DOT__uut__DOT__y_0) > (IData)(vlSelf->tb__DOT__uut__DOT__y_1))) { + vlSelf->tb__DOT__yukseklik = (((IData)(vlSelf->tb__DOT__uut__DOT__y_0) + > (IData)(vlSelf->tb__DOT__uut__DOT__y_2)) + ? (IData)(vlSelf->tb__DOT__uut__DOT__y_0) + : (IData)(vlSelf->tb__DOT__uut__DOT__y_2)); + } else if (((IData)(vlSelf->tb__DOT__uut__DOT__y_0) + > (IData)(vlSelf->tb__DOT__uut__DOT__y_1))) { + vlSelf->tb__DOT__yukseklik = (((IData)(vlSelf->tb__DOT__uut__DOT__y_1) + > (IData)(vlSelf->tb__DOT__uut__DOT__y_2)) + ? (IData)(vlSelf->tb__DOT__uut__DOT__y_1) + : (IData)(vlSelf->tb__DOT__uut__DOT__y_2)); + } +} + +VL_INLINE_OPT void Vtb___024root___nba_sequent__TOP__2(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___nba_sequent__TOP__2\n"); ); + // Body + vlSelf->tb__DOT__uut__DOT__y_0 = vlSelf->__Vdly__tb__DOT__uut__DOT__y_0; + vlSelf->tb__DOT__uut__DOT__y_1 = vlSelf->__Vdly__tb__DOT__uut__DOT__y_1; + vlSelf->tb__DOT__uut__DOT__y_2 = vlSelf->__Vdly__tb__DOT__uut__DOT__y_2; +} + +void Vtb___024root___eval_nba(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_nba\n"); ); + // Body + if (vlSelf->__VnbaTriggered.at(0U)) { + Vtb___024root___nba_sequent__TOP__0(vlSelf); + } + if (vlSelf->__VnbaTriggered.at(1U)) { + Vtb___024root___nba_sequent__TOP__1(vlSelf); + } + if (vlSelf->__VnbaTriggered.at(0U)) { + Vtb___024root___nba_sequent__TOP__2(vlSelf); + } +} + +void Vtb___024root___eval_triggers__act(Vtb___024root* vlSelf); +#ifdef VL_DEBUG +VL_ATTR_COLD void Vtb___024root___dump_triggers__act(Vtb___024root* vlSelf); +#endif // VL_DEBUG +void Vtb___024root___timing_resume(Vtb___024root* vlSelf); +#ifdef VL_DEBUG +VL_ATTR_COLD void Vtb___024root___dump_triggers__nba(Vtb___024root* vlSelf); +#endif // VL_DEBUG + +void Vtb___024root___eval(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval\n"); ); + // Init + VlTriggerVec<3> __VpreTriggered; + IData/*31:0*/ __VnbaIterCount; + CData/*0:0*/ __VnbaContinue; + // Body + __VnbaIterCount = 0U; + __VnbaContinue = 1U; + while (__VnbaContinue) { + __VnbaContinue = 0U; + vlSelf->__VnbaTriggered.clear(); + vlSelf->__VactIterCount = 0U; + vlSelf->__VactContinue = 1U; + while (vlSelf->__VactContinue) { + vlSelf->__VactContinue = 0U; + Vtb___024root___eval_triggers__act(vlSelf); + if (vlSelf->__VactTriggered.any()) { + vlSelf->__VactContinue = 1U; + if (VL_UNLIKELY((0x64U < vlSelf->__VactIterCount))) { +#ifdef VL_DEBUG + Vtb___024root___dump_triggers__act(vlSelf); +#endif + VL_FATAL_MT("tb.v", 1, "", "Active region did not converge."); + } + vlSelf->__VactIterCount = ((IData)(1U) + + vlSelf->__VactIterCount); + __VpreTriggered.andNot(vlSelf->__VactTriggered, vlSelf->__VnbaTriggered); + vlSelf->__VnbaTriggered.set(vlSelf->__VactTriggered); + Vtb___024root___timing_resume(vlSelf); + Vtb___024root___eval_act(vlSelf); + } + } + if (vlSelf->__VnbaTriggered.any()) { + __VnbaContinue = 1U; + if (VL_UNLIKELY((0x64U < __VnbaIterCount))) { +#ifdef VL_DEBUG + Vtb___024root___dump_triggers__nba(vlSelf); +#endif + VL_FATAL_MT("tb.v", 1, "", "NBA region did not converge."); + } + __VnbaIterCount = ((IData)(1U) + __VnbaIterCount); + Vtb___024root___eval_nba(vlSelf); + } + } +} + +void Vtb___024root___timing_resume(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___timing_resume\n"); ); + // Body + if (vlSelf->__VactTriggered.at(2U)) { + vlSelf->__VdlySched.resume(); + } +} + +#ifdef VL_DEBUG +void Vtb___024root___eval_debug_assertions(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_debug_assertions\n"); ); +} +#endif // VL_DEBUG diff --git a/tetirs/obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp b/tetirs/obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp new file mode 100644 index 0000000..383ba83 --- /dev/null +++ b/tetirs/obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp @@ -0,0 +1,165 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See Vtb.h for the primary calling header + +#include "verilated.h" + +#include "Vtb___024root.h" + +VL_ATTR_COLD void Vtb___024root___eval_static__TOP(Vtb___024root* vlSelf); + +VL_ATTR_COLD void Vtb___024root___eval_static(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_static\n"); ); + // Body + Vtb___024root___eval_static__TOP(vlSelf); +} + +VL_ATTR_COLD void Vtb___024root___eval_static__TOP(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_static__TOP\n"); ); + // Body + vlSelf->tb__DOT__clk = 0U; + vlSelf->tb__DOT__uut__DOT__cevrim_r = 0U; + vlSelf->tb__DOT__uut__DOT__y_0 = 0U; + vlSelf->tb__DOT__uut__DOT__y_1 = 0U; + vlSelf->tb__DOT__uut__DOT__y_2 = 0U; +} + +VL_ATTR_COLD void Vtb___024root___eval_final(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_final\n"); ); +} + +VL_ATTR_COLD void Vtb___024root___eval_triggers__stl(Vtb___024root* vlSelf); +#ifdef VL_DEBUG +VL_ATTR_COLD void Vtb___024root___dump_triggers__stl(Vtb___024root* vlSelf); +#endif // VL_DEBUG +VL_ATTR_COLD void Vtb___024root___eval_stl(Vtb___024root* vlSelf); + +VL_ATTR_COLD void Vtb___024root___eval_settle(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_settle\n"); ); + // Init + CData/*0:0*/ __VstlContinue; + // Body + vlSelf->__VstlIterCount = 0U; + __VstlContinue = 1U; + while (__VstlContinue) { + __VstlContinue = 0U; + Vtb___024root___eval_triggers__stl(vlSelf); + if (vlSelf->__VstlTriggered.any()) { + __VstlContinue = 1U; + if (VL_UNLIKELY((0x64U < vlSelf->__VstlIterCount))) { +#ifdef VL_DEBUG + Vtb___024root___dump_triggers__stl(vlSelf); +#endif + VL_FATAL_MT("tb.v", 1, "", "Settle region did not converge."); + } + vlSelf->__VstlIterCount = ((IData)(1U) + + vlSelf->__VstlIterCount); + Vtb___024root___eval_stl(vlSelf); + } + } +} + +#ifdef VL_DEBUG +VL_ATTR_COLD void Vtb___024root___dump_triggers__stl(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___dump_triggers__stl\n"); ); + // Body + if ((1U & (~ (IData)(vlSelf->__VstlTriggered.any())))) { + VL_DBG_MSGF(" No triggers active\n"); + } + if (vlSelf->__VstlTriggered.at(0U)) { + VL_DBG_MSGF(" 'stl' region trigger index 0 is active: Internal 'stl' trigger - first iteration\n"); + } +} +#endif // VL_DEBUG + +VL_ATTR_COLD void Vtb___024root___stl_sequent__TOP__0(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___stl_sequent__TOP__0\n"); ); + // Body + vlSelf->tb__DOT__cevrim = vlSelf->tb__DOT__uut__DOT__cevrim_r; + vlSelf->tb__DOT__bitti_mi = (0x10U == (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r)); +} + +VL_ATTR_COLD void Vtb___024root___eval_stl(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_stl\n"); ); + // Body + if (vlSelf->__VstlTriggered.at(0U)) { + Vtb___024root___stl_sequent__TOP__0(vlSelf); + } +} + +#ifdef VL_DEBUG +VL_ATTR_COLD void Vtb___024root___dump_triggers__act(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___dump_triggers__act\n"); ); + // Body + if ((1U & (~ (IData)(vlSelf->__VactTriggered.any())))) { + VL_DBG_MSGF(" No triggers active\n"); + } + if (vlSelf->__VactTriggered.at(0U)) { + VL_DBG_MSGF(" 'act' region trigger index 0 is active: @(posedge tb.clk)\n"); + } + if (vlSelf->__VactTriggered.at(1U)) { + VL_DBG_MSGF(" 'act' region trigger index 1 is active: @(posedge tb.bitti_mi)\n"); + } + if (vlSelf->__VactTriggered.at(2U)) { + VL_DBG_MSGF(" 'act' region trigger index 2 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); + } +} +#endif // VL_DEBUG + +#ifdef VL_DEBUG +VL_ATTR_COLD void Vtb___024root___dump_triggers__nba(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___dump_triggers__nba\n"); ); + // Body + if ((1U & (~ (IData)(vlSelf->__VnbaTriggered.any())))) { + VL_DBG_MSGF(" No triggers active\n"); + } + if (vlSelf->__VnbaTriggered.at(0U)) { + VL_DBG_MSGF(" 'nba' region trigger index 0 is active: @(posedge tb.clk)\n"); + } + if (vlSelf->__VnbaTriggered.at(1U)) { + VL_DBG_MSGF(" 'nba' region trigger index 1 is active: @(posedge tb.bitti_mi)\n"); + } + if (vlSelf->__VnbaTriggered.at(2U)) { + VL_DBG_MSGF(" 'nba' region trigger index 2 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); + } +} +#endif // VL_DEBUG + +VL_ATTR_COLD void Vtb___024root___ctor_var_reset(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___ctor_var_reset\n"); ); + // Body + vlSelf->tb__DOT__parca = VL_RAND_RESET_I(3); + vlSelf->tb__DOT__clk = VL_RAND_RESET_I(1); + vlSelf->tb__DOT__yukseklik = VL_RAND_RESET_I(5); + vlSelf->tb__DOT__cevrim = VL_RAND_RESET_I(5); + vlSelf->tb__DOT__bitti_mi = VL_RAND_RESET_I(1); + vlSelf->tb__DOT__uut__DOT__cevrim_r = VL_RAND_RESET_I(5); + vlSelf->tb__DOT__uut__DOT__y_0 = VL_RAND_RESET_I(5); + vlSelf->tb__DOT__uut__DOT__y_1 = VL_RAND_RESET_I(5); + vlSelf->tb__DOT__uut__DOT__y_2 = VL_RAND_RESET_I(5); + vlSelf->__Vdly__tb__DOT__uut__DOT__y_0 = VL_RAND_RESET_I(5); + vlSelf->__Vdly__tb__DOT__uut__DOT__y_1 = VL_RAND_RESET_I(5); + vlSelf->__Vdly__tb__DOT__uut__DOT__y_2 = VL_RAND_RESET_I(5); + vlSelf->__Vtrigrprev__TOP__tb__DOT__clk = VL_RAND_RESET_I(1); + vlSelf->__Vtrigrprev__TOP__tb__DOT__bitti_mi = VL_RAND_RESET_I(1); +} diff --git a/tetirs/obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp b/tetirs/obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp new file mode 100644 index 0000000..66b09af --- /dev/null +++ b/tetirs/obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp @@ -0,0 +1,31 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See Vtb.h for the primary calling header + +#include "verilated.h" + +#include "Vtb__Syms.h" +#include "Vtb___024root.h" + +#ifdef VL_DEBUG +VL_ATTR_COLD void Vtb___024root___dump_triggers__act(Vtb___024root* vlSelf); +#endif // VL_DEBUG + +void Vtb___024root___eval_triggers__act(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_triggers__act\n"); ); + // Body + vlSelf->__VactTriggered.at(0U) = ((IData)(vlSelf->tb__DOT__clk) + & (~ (IData)(vlSelf->__Vtrigrprev__TOP__tb__DOT__clk))); + vlSelf->__VactTriggered.at(1U) = ((IData)(vlSelf->tb__DOT__bitti_mi) + & (~ (IData)(vlSelf->__Vtrigrprev__TOP__tb__DOT__bitti_mi))); + vlSelf->__VactTriggered.at(2U) = vlSelf->__VdlySched.awaitingCurrentTime(); + vlSelf->__Vtrigrprev__TOP__tb__DOT__clk = vlSelf->tb__DOT__clk; + vlSelf->__Vtrigrprev__TOP__tb__DOT__bitti_mi = vlSelf->tb__DOT__bitti_mi; +#ifdef VL_DEBUG + if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { + Vtb___024root___dump_triggers__act(vlSelf); + } +#endif +} diff --git a/tetirs/obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp b/tetirs/obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp new file mode 100644 index 0000000..4f0f3bd --- /dev/null +++ b/tetirs/obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp @@ -0,0 +1,25 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See Vtb.h for the primary calling header + +#include "verilated.h" + +#include "Vtb__Syms.h" +#include "Vtb___024root.h" + +#ifdef VL_DEBUG +VL_ATTR_COLD void Vtb___024root___dump_triggers__stl(Vtb___024root* vlSelf); +#endif // VL_DEBUG + +VL_ATTR_COLD void Vtb___024root___eval_triggers__stl(Vtb___024root* vlSelf) { + if (false && vlSelf) {} // Prevent unused + Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; + VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_triggers__stl\n"); ); + // Body + vlSelf->__VstlTriggered.at(0U) = (0U == vlSelf->__VstlIterCount); +#ifdef VL_DEBUG + if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { + Vtb___024root___dump_triggers__stl(vlSelf); + } +#endif +} diff --git a/tetirs/obj_dir/Vtb___024root__Slow.cpp b/tetirs/obj_dir/Vtb___024root__Slow.cpp new file mode 100644 index 0000000..cd769c2 --- /dev/null +++ b/tetirs/obj_dir/Vtb___024root__Slow.cpp @@ -0,0 +1,26 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Design implementation internals +// See Vtb.h for the primary calling header + +#include "verilated.h" + +#include "Vtb__Syms.h" +#include "Vtb___024root.h" + +void Vtb___024root___ctor_var_reset(Vtb___024root* vlSelf); + +Vtb___024root::Vtb___024root(Vtb__Syms* symsp, const char* v__name) + : VerilatedModule{v__name} + , __VdlySched{*symsp->_vm_contextp__} + , vlSymsp{symsp} + { + // Reset structure values + Vtb___024root___ctor_var_reset(this); +} + +void Vtb___024root::__Vconfigure(bool first) { + if (false && first) {} // Prevent unused +} + +Vtb___024root::~Vtb___024root() { +} diff --git a/tetirs/obj_dir/Vtb__main.cpp b/tetirs/obj_dir/Vtb__main.cpp new file mode 100644 index 0000000..363d543 --- /dev/null +++ b/tetirs/obj_dir/Vtb__main.cpp @@ -0,0 +1,34 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: main() calling loop, created with Verilator --main + +#include "verilated.h" +#include "Vtb.h" + +//====================== + +int main(int argc, char** argv, char**) { + // Setup context, defaults, and parse command line + Verilated::debug(0); + const std::unique_ptr contextp{new VerilatedContext}; + contextp->commandArgs(argc, argv); + + // Construct the Verilated model, from Vtop.h generated from Verilating + const std::unique_ptr topp{new Vtb{contextp.get()}}; + + // Simulate until $finish + while (!contextp->gotFinish()) { + // Evaluate model + topp->eval(); + // Advance time + if (!topp->eventsPending()) break; + contextp->time(topp->nextTimeSlot()); + } + + if (!contextp->gotFinish()) { + VL_DEBUG_IF(VL_PRINTF("+ Exiting without $finish; no events left\n");); + } + + // Final model cleanup + topp->final(); + return 0; +} diff --git a/tetirs/obj_dir/Vtb__ver.d b/tetirs/obj_dir/Vtb__ver.d new file mode 100644 index 0000000..59ce868 --- /dev/null +++ b/tetirs/obj_dir/Vtb__ver.d @@ -0,0 +1 @@ +obj_dir/Vtb.cpp obj_dir/Vtb.h obj_dir/Vtb.mk obj_dir/Vtb__Syms.cpp obj_dir/Vtb__Syms.h obj_dir/Vtb___024root.h obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp obj_dir/Vtb___024root__Slow.cpp obj_dir/Vtb__main.cpp obj_dir/Vtb__ver.d obj_dir/Vtb_classes.mk : /usr/bin/verilator_bin /usr/bin/verilator_bin tb.v tetris.v diff --git a/tetirs/obj_dir/Vtb__verFiles.dat b/tetirs/obj_dir/Vtb__verFiles.dat new file mode 100644 index 0000000..d627a65 --- /dev/null +++ b/tetirs/obj_dir/Vtb__verFiles.dat @@ -0,0 +1,20 @@ +# DESCRIPTION: Verilator output: Timestamp data for --skip-identical. Delete at will. +C "--binary tb.v tetris.v --timing" +S 12244816 28045 1719496600 881980186 1680199511 0 "/usr/bin/verilator_bin" +T 2837 6675 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb.cpp" +T 2631 6439 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb.h" +T 1722 7381 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb.mk" +T 730 216 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb__Syms.cpp" +T 884 225 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb__Syms.h" +T 1524 6695 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root.h" +T 9237 7333 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp" +T 6922 7184 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root__DepSet_ha183790c__0__Slow.cpp" +T 1304 7283 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root__DepSet_hfe20aad3__0.cpp" +T 823 7044 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root__DepSet_hfe20aad3__0__Slow.cpp" +T 644 6712 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb___024root__Slow.cpp" +T 955 7337 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb__main.cpp" +T 471 7389 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb__ver.d" +T 0 0 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb__verFiles.dat" +T 1646 7340 1720894776 185681955 1720894776 185681955 "obj_dir/Vtb_classes.mk" +S 376 233 1720894754 765684145 1720894754 765684145 "tb.v" +S 820 230 1720894095 565675203 1720894095 565675203 "tetris.v" diff --git a/tetirs/obj_dir/Vtb_classes.mk b/tetirs/obj_dir/Vtb_classes.mk new file mode 100644 index 0000000..2f65e84 --- /dev/null +++ b/tetirs/obj_dir/Vtb_classes.mk @@ -0,0 +1,54 @@ +# Verilated -*- Makefile -*- +# DESCRIPTION: Verilator output: Make include file with class lists +# +# This file lists generated Verilated files, for including in higher level makefiles. +# See Vtb.mk for the caller. + +### Switches... +# C11 constructs required? 0/1 (always on now) +VM_C11 = 1 +# Timing enabled? 0/1 +VM_TIMING = 1 +# Coverage output mode? 0/1 (from --coverage) +VM_COVERAGE = 0 +# Parallel builds? 0/1 (from --output-split) +VM_PARALLEL_BUILDS = 0 +# Tracing output mode? 0/1 (from --trace/--trace-fst) +VM_TRACE = 0 +# Tracing output mode in VCD format? 0/1 (from --trace) +VM_TRACE_VCD = 0 +# Tracing output mode in FST format? 0/1 (from --trace-fst) +VM_TRACE_FST = 0 + +### Object file lists... +# Generated module classes, fast-path, compile with highest optimization +VM_CLASSES_FAST += \ + Vtb \ + Vtb___024root__DepSet_hfe20aad3__0 \ + Vtb___024root__DepSet_ha183790c__0 \ + Vtb__main \ + +# Generated module classes, non-fast-path, compile with low/medium optimization +VM_CLASSES_SLOW += \ + Vtb___024root__Slow \ + Vtb___024root__DepSet_hfe20aad3__0__Slow \ + Vtb___024root__DepSet_ha183790c__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 += \ + Vtb__Syms \ + +# Global classes, need linked once per executable, fast-path, compile with highest optimization +VM_GLOBAL_FAST += \ + verilated \ + verilated_timing \ + verilated_threads \ + +# Global classes, need linked once per executable, non-fast-path, compile with low/medium optimization +VM_GLOBAL_SLOW += \ + + +# Verilated -*- Makefile -*- diff --git a/tetirs/obj_dir/verilated.d b/tetirs/obj_dir/verilated.d new file mode 100644 index 0000000..6ed3629 --- /dev/null +++ b/tetirs/obj_dir/verilated.d @@ -0,0 +1,12 @@ +verilated.o: /usr/share/verilator/include/verilated.cpp \ + /usr/share/verilator/include/verilated_config.h \ + /usr/share/verilator/include/verilatedos.h \ + /usr/share/verilator/include/verilated_imp.h \ + /usr/share/verilator/include/verilated.h \ + /usr/share/verilator/include/verilated_types.h \ + /usr/share/verilator/include/verilated_funcs.h \ + /usr/share/verilator/include/verilated_syms.h \ + /usr/share/verilator/include/verilated_sym_props.h \ + /usr/share/verilator/include/verilated_threads.h \ + /usr/share/verilator/include/verilated_trace.h \ + /usr/share/verilator/include/verilated_trace_defs.h diff --git a/tetirs/obj_dir/verilated.o b/tetirs/obj_dir/verilated.o new file mode 100644 index 0000000000000000000000000000000000000000..d7daedd1104a533e54952bccf88e3dca6daaa84d GIT binary patch literal 197480 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 We|`$jo$~I=n|xL;yY_Jl?f(zjcDJ$s literal 0 HcmV?d00001 diff --git a/tetirs/obj_dir/verilated_threads.d b/tetirs/obj_dir/verilated_threads.d new file mode 100644 index 0000000..a1b1a49 --- /dev/null +++ b/tetirs/obj_dir/verilated_threads.d @@ -0,0 +1,7 @@ +verilated_threads.o: /usr/share/verilator/include/verilated_threads.cpp \ + /usr/share/verilator/include/verilatedos.h \ + /usr/share/verilator/include/verilated_threads.h \ + /usr/share/verilator/include/verilated.h \ + /usr/share/verilator/include/verilated_config.h \ + /usr/share/verilator/include/verilated_types.h \ + /usr/share/verilator/include/verilated_funcs.h diff --git a/tetirs/obj_dir/verilated_threads.o b/tetirs/obj_dir/verilated_threads.o new file mode 100644 index 0000000000000000000000000000000000000000..bce79c746ca0082f6e8f843d2d00f1c0951d81d8 GIT binary patch literal 30832 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 literal 0 HcmV?d00001 diff --git a/tetirs/obj_dir/verilated_timing.d b/tetirs/obj_dir/verilated_timing.d new file mode 100644 index 0000000..91d0e85 --- /dev/null +++ b/tetirs/obj_dir/verilated_timing.d @@ -0,0 +1,7 @@ +verilated_timing.o: /usr/share/verilator/include/verilated_timing.cpp \ + /usr/share/verilator/include/verilated_timing.h \ + /usr/share/verilator/include/verilated.h \ + /usr/share/verilator/include/verilatedos.h \ + /usr/share/verilator/include/verilated_config.h \ + /usr/share/verilator/include/verilated_types.h \ + /usr/share/verilator/include/verilated_funcs.h diff --git a/tetirs/obj_dir/verilated_timing.o b/tetirs/obj_dir/verilated_timing.o new file mode 100644 index 0000000000000000000000000000000000000000..61f79d6a2ad6c82f4c072552888f930f41708821 GIT binary patch literal 8664 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 oB5*I;k literal 0 HcmV?d00001 diff --git a/tetirs/run.sh b/tetirs/run.sh new file mode 100644 index 0000000..213704a --- /dev/null +++ b/tetirs/run.sh @@ -0,0 +1,5 @@ +iverilog *.v && vvp a.out +if [ -f "dump.vcd" ]; then + gtkwave dump.vcd + rm dump.vcd +fi diff --git a/tetirs/tb.v b/tetirs/tb.v new file mode 100644 index 0000000..47c8505 --- /dev/null +++ b/tetirs/tb.v @@ -0,0 +1,45 @@ +module tb(); + +reg [2:0] parca; +reg clk = 0; + +wire [4:0] yukseklik; +wire [4:0] cevrim; +wire bitti_mi; + +tetris uut( + .parca(parca), + .clk(clk), + .yukseklik(yukseklik), + .cevrim(cevrim), + .bitti_mi(bitti_mi) +); + +always begin + clk = ~clk; #5; +end + +initial begin + $dumpvars; + parca = 3'b101; #10; + parca = 3'b000; #10; + parca = 3'b101; #10; + parca = 3'b000; #10; + parca = 3'b101; #10; + parca = 3'b000; #10; + parca = 3'b101; #10; + parca = 3'b000; #10; + parca = 3'b101; #10; + parca = 3'b000; #10; + parca = 3'b101; #10; + parca = 3'b000; #10; + parca = 3'b101; #10; + parca = 3'b000; #10; + parca = 3'b101; #10; + parca = 3'b000; #10; + parca = 3'b101; #10; + parca = 3'b000; #10; + $finish; +end + +endmodule diff --git a/tetirs/tetris.v b/tetirs/tetris.v new file mode 100644 index 0000000..78c3ffc --- /dev/null +++ b/tetirs/tetris.v @@ -0,0 +1,41 @@ +module tetris( + input clk, + input [2:0] parca, + output reg [4:0] yukseklik, + output [4:0] cevrim, + output bitti_mi +); + +reg [4:0] cevrim_r = 0; +reg [4:0] y_0 = 0; +reg [4:0] y_1 = 0; +reg [4:0] y_2 = 0; +assign cevrim = cevrim_r; +assign bitti_mi = cevrim_r == 5'b10000; + +always @(posedge clk) begin + if (cevrim != 5'b10000) begin + cevrim_r <= cevrim_r + 5'd1; + y_0 <= y_0 + {4'b0000, parca[0]}; + y_1 <= y_1 + {4'b0000, parca[1]}; + y_2 <= y_2 + {4'b0000, parca[2]}; + end +end + +/* always @(posedge bitti_mi) + yukseklik <= y_0 > y_1 + ? y_0 > y_2 ? y_0 : y_2 + : y_1 > y_2 ? y_1 : y_2; + */ + +always @(posedge bitti_mi) begin + if (y_0 > y_1) begin + if (y_0 > y_2) yukseklik <= y_0; + else yukseklik <= y_2; + end else if (y_0 > y_1) begin + if (y_1 > y_2) yukseklik <= y_1; + else yukseklik <= y_2; + end +end + +endmodule