Files

224 lines
14 KiB
Plaintext
Raw Permalink Normal View History

2026-05-22 10:02:42 +08:00
#! /home/ge45vuq/bin/bin/vvp
:ivl_version "13.0 (devel)" "(s20221226-498-g52d049b51)";
:ivl_delay_selection "TYPICAL";
:vpi_time_precision - 12;
:vpi_module "/home/ge45vuq/bin/lib/ivl/system.vpi";
:vpi_module "/home/ge45vuq/bin/lib/ivl/vhdl_sys.vpi";
:vpi_module "/home/ge45vuq/bin/lib/ivl/vhdl_textio.vpi";
:vpi_module "/home/ge45vuq/bin/lib/ivl/v2005_math.vpi";
:vpi_module "/home/ge45vuq/bin/lib/ivl/va_math.vpi";
:vpi_module "/home/ge45vuq/bin/lib/ivl/v2009.vpi";
S_0x55a8c6df2e40 .scope package, "$unit" "$unit" 2 1;
.timescale 0 0;
S_0x55a8c6df2fd0 .scope module, "testbench" "testbench" 3 2;
.timescale -9 -12;
v0x55a8c6e1f0c0_0 .var "amount", 1 0;
v0x55a8c6e1f1a0_0 .var "clk", 0 0;
v0x55a8c6e1f270_0 .var "data", 63 0;
v0x55a8c6e1f370_0 .var "ena", 0 0;
v0x55a8c6e1f440_0 .var/i "file", 31 0;
v0x55a8c6e1f530_0 .var "load", 0 0;
v0x55a8c6e1f5d0_0 .net "q", 63 0, v0x55a8c6e1ef20_0; 1 drivers
v0x55a8c6e1f6a0_0 .var/i "scenario", 31 0;
S_0x55a8c6dfd350 .scope module, "DUT" "top_module" 3 12, 4 1 0, S_0x55a8c6df2fd0;
.timescale -9 -12;
.port_info 0 /INPUT 1 "clk";
.port_info 1 /INPUT 1 "load";
.port_info 2 /INPUT 1 "ena";
.port_info 3 /INPUT 2 "amount";
.port_info 4 /INPUT 64 "data";
.port_info 5 /OUTPUT 64 "q";
v0x55a8c6dcb1b0_0 .net "amount", 1 0, v0x55a8c6e1f0c0_0; 1 drivers
v0x55a8c6dcb250_0 .net "clk", 0 0, v0x55a8c6e1f1a0_0; 1 drivers
v0x55a8c6e1ec90_0 .net "data", 63 0, v0x55a8c6e1f270_0; 1 drivers
v0x55a8c6e1ed50_0 .net "ena", 0 0, v0x55a8c6e1f370_0; 1 drivers
v0x55a8c6e1ee10_0 .net "load", 0 0, v0x55a8c6e1f530_0; 1 drivers
v0x55a8c6e1ef20_0 .var "q", 63 0;
.scope S_0x55a8c6df2fd0;
T_0 ;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a8c6e1f1a0_0, 0, 1;
T_0.0 ;
%delay 5000, 0;
%load/vec4 v0x55a8c6e1f1a0_0;
%inv;
%store/vec4 v0x55a8c6e1f1a0_0, 0, 1;
%jmp T_0.0;
T_0.1 ;
%end;
.thread T_0;
.scope S_0x55a8c6df2fd0;
T_1 ;
%vpi_func 3 27 "$fopen" 32, "TBout.txt", "w" {0 0 0};
%store/vec4 v0x55a8c6e1f440_0, 0, 32;
%end;
.thread T_1;
.scope S_0x55a8c6df2fd0;
T_2 ;
%pushi/vec4 1, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a8c6e1f530_0, 0, 1;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a8c6e1f370_0, 0, 1;
%pushi/vec4 0, 0, 2;
%store/vec4 v0x55a8c6e1f0c0_0, 0, 2;
%pushi/vec4 2863311530, 0, 32;
%concati/vec4 2863311530, 0, 32;
%store/vec4 v0x55a8c6e1f270_0, 0, 64;
%vpi_call/w 3 37 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 39 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 2, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a8c6e1f530_0, 0, 1;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a8c6e1f370_0, 0, 1;
%vpi_call/w 3 45 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 0, 0, 2;
%store/vec4 v0x55a8c6e1f0c0_0, 0, 2;
%vpi_call/w 3 47 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 49 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 3, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 1, 0, 2;
%store/vec4 v0x55a8c6e1f0c0_0, 0, 2;
%vpi_call/w 3 54 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 56 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 4, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 2, 0, 2;
%store/vec4 v0x55a8c6e1f0c0_0, 0, 2;
%vpi_call/w 3 61 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 63 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 5, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 3, 0, 2;
%store/vec4 v0x55a8c6e1f0c0_0, 0, 2;
%vpi_call/w 3 68 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 70 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 6, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a8c6e1f370_0, 0, 1;
%vpi_call/w 3 75 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 0, 0, 2;
%store/vec4 v0x55a8c6e1f0c0_0, 0, 2;
%vpi_call/w 3 77 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 79 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 7, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a8c6e1f530_0, 0, 1;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a8c6e1f370_0, 0, 1;
%pushi/vec4 2863311530, 0, 33;
%concati/vec4 1431655765, 0, 31;
%store/vec4 v0x55a8c6e1f270_0, 0, 64;
%vpi_call/w 3 86 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 88 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 8, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a8c6e1f530_0, 0, 1;
%pushi/vec4 4294967295, 0, 32;
%concati/vec4 4294967295, 0, 32;
%store/vec4 v0x55a8c6e1f270_0, 0, 64;
%vpi_call/w 3 94 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a8c6e1f370_0, 0, 1;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a8c6e1f530_0, 0, 1;
%pushi/vec4 0, 0, 2;
%store/vec4 v0x55a8c6e1f0c0_0, 0, 2;
%vpi_call/w 3 99 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 101 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 9, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a8c6e1f530_0, 0, 1;
%pushi/vec4 2147483648, 0, 32;
%concati/vec4 0, 0, 32;
%store/vec4 v0x55a8c6e1f270_0, 0, 64;
%vpi_call/w 3 107 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a8c6e1f530_0, 0, 1;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a8c6e1f370_0, 0, 1;
%pushi/vec4 2, 0, 2;
%store/vec4 v0x55a8c6e1f0c0_0, 0, 2;
%vpi_call/w 3 112 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 114 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 3, 0, 2;
%store/vec4 v0x55a8c6e1f0c0_0, 0, 2;
%vpi_call/w 3 116 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 118 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 10, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a8c6e1f530_0, 0, 1;
%pushi/vec4 0, 0, 2;
%store/vec4 v0x55a8c6e1f0c0_0, 0, 2;
%vpi_call/w 3 124 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%pushi/vec4 3, 0, 32;
T_2.0 %dup/vec4;
%pushi/vec4 0, 0, 32;
%cmp/s;
%jmp/1xz T_2.1, 5;
%jmp/1 T_2.1, 4;
%pushi/vec4 1, 0, 32;
%sub;
%vpi_call/w 3 126 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%jmp T_2.0;
T_2.1 ;
%pop/vec4 1;
%pushi/vec4 11, 0, 32;
%store/vec4 v0x55a8c6e1f6a0_0, 0, 32;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a8c6e1f530_0, 0, 1;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a8c6e1f370_0, 0, 1;
%pushi/vec4 2443359172, 0, 35;
%concati/vec4 448585456, 0, 29;
%store/vec4 v0x55a8c6e1f270_0, 0, 64;
%vpi_call/w 3 134 "$fdisplay", v0x55a8c6e1f440_0, "scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%delay 10000, 0;
%vpi_call/w 3 136 "$fdisplay", v0x55a8c6e1f440_0, "[check]scenario: %d, clk = %d, load = %d, ena = %d, amount = %d, data = %d, q = %d", v0x55a8c6e1f6a0_0, v0x55a8c6e1f1a0_0, v0x55a8c6e1f530_0, v0x55a8c6e1f370_0, v0x55a8c6e1f0c0_0, v0x55a8c6e1f270_0, v0x55a8c6e1f5d0_0 {0 0 0};
%vpi_call/w 3 138 "$fclose", v0x55a8c6e1f440_0 {0 0 0};
%vpi_call/w 3 139 "$finish" {0 0 0};
%end;
.thread T_2;
# The file index is used to find the file name in the following table.
:file_names 5;
"N/A";
"<interactive>";
"-";
"shift18_tb.v";
"shift18.v";