#! /c/iverilog/bin/vvp :ivl_version "0.9.7 " "(v0_9_7)"; :vpi_time_precision + 0; :vpi_module "system"; :vpi_module "v2005_math"; :vpi_module "va_math"; S_01049710 .scope module, "basic_alu_tb" "basic_alu_tb" 2 3; .timescale 0 0; v0104CEA0_0 .var "a", 15 0; v0104CEF8_0 .var "b", 15 0; v01080FC0_0 .net "carry", 0 0, v01041578_0; 1 drivers v010811D0_0 .net "negative", 0 0, L_010810C8; 1 drivers v01081070_0 .var "opcode", 3 0; v01080D58_0 .net "result", 15 0, v0104CDF0_0; 1 drivers v01081438_0 .net "zero", 0 0, L_01081018; 1 drivers S_01049BD8 .scope module, "alu" "basic_alu" 2 10, 3 23, S_01049710; .timescale 0 0; v01045228_0 .net *"_s0", 16 0, L_010813E0; 1 drivers v01045280_0 .net *"_s3", 0 0, C4<0>; 1 drivers v010452D8_0 .net *"_s4", 16 0, C4<00000000000000000>; 1 drivers v010414C8_0 .net "a", 15 0, v0104CEA0_0; 1 drivers v01041520_0 .net "b", 15 0, v0104CEF8_0; 1 drivers v01041578_0 .var "carry", 0 0; v0104CD40_0 .alias "negative", 0 0, v010811D0_0; v0104CD98_0 .net "opcode", 3 0, v01081070_0; 1 drivers v0104CDF0_0 .var "result", 15 0; v0104CE48_0 .alias "zero", 0 0, v01081438_0; E_01072788 .event edge, v0104CD98_0, v010414C8_0, v01041520_0; L_010813E0 .concat [ 16 1 0 0], v0104CDF0_0, C4<0>; L_01081018 .cmp/eq 17, L_010813E0, C4<00000000000000000>; L_010810C8 .part v0104CDF0_0, 15, 1; .scope S_01049BD8; T_0 ; %wait E_01072788; %set/v v01041578_0, 0, 1; %load/v 8, v0104CD98_0, 4; %cmpi/u 8, 0, 4; %jmp/1 T_0.0, 6; %cmpi/u 8, 1, 4; %jmp/1 T_0.1, 6; %cmpi/u 8, 2, 4; %jmp/1 T_0.2, 6; %cmpi/u 8, 3, 4; %jmp/1 T_0.3, 6; %cmpi/u 8, 4, 4; %jmp/1 T_0.4, 6; %cmpi/u 8, 5, 4; %jmp/1 T_0.5, 6; %cmpi/u 8, 6, 4; %jmp/1 T_0.6, 6; %cmpi/u 8, 7, 4; %jmp/1 T_0.7, 6; %cmpi/u 8, 8, 4; %jmp/1 T_0.8, 6; %cmpi/u 8, 9, 4; %jmp/1 T_0.9, 6; %cmpi/u 8, 10, 4; %jmp/1 T_0.10, 6; %cmpi/u 8, 11, 4; %jmp/1 T_0.11, 6; %set/v v0104CDF0_0, 0, 16; %jmp T_0.13; T_0.0 ; %load/v 8, v010414C8_0, 16; %mov 24, 0, 1; %load/v 25, v01041520_0, 16; %mov 41, 0, 1; %add 8, 25, 17; %set/v v0104CDF0_0, 8, 16; %set/v v01041578_0, 24, 1; %jmp T_0.13; T_0.1 ; %load/v 8, v010414C8_0, 16; %mov 24, 0, 1; %load/v 25, v01041520_0, 16; %mov 41, 0, 1; %sub 8, 25, 17; %set/v v0104CDF0_0, 8, 16; %set/v v01041578_0, 24, 1; %jmp T_0.13; T_0.2 ; %load/v 8, v010414C8_0, 16; %load/v 24, v01041520_0, 16; %mul 8, 24, 16; %set/v v0104CDF0_0, 8, 16; %jmp T_0.13; T_0.3 ; %load/v 8, v010414C8_0, 16; %load/v 24, v01041520_0, 16; %div 8, 24, 16; %set/v v0104CDF0_0, 8, 16; %jmp T_0.13; T_0.4 ; %load/v 8, v010414C8_0, 16; %load/v 24, v01041520_0, 16; %and 8, 24, 16; %set/v v0104CDF0_0, 8, 16; %jmp T_0.13; T_0.5 ; %load/v 8, v010414C8_0, 16; %load/v 24, v01041520_0, 16; %or 8, 24, 16; %set/v v0104CDF0_0, 8, 16; %jmp T_0.13; T_0.6 ; %load/v 8, v010414C8_0, 16; %inv 8, 16; %set/v v0104CDF0_0, 8, 16; %jmp T_0.13; T_0.7 ; %load/v 8, v010414C8_0, 16; %load/v 24, v01041520_0, 16; %and 8, 24, 16; %inv 8, 16; %set/v v0104CDF0_0, 8, 16; %jmp T_0.13; T_0.8 ; %load/v 8, v010414C8_0, 16; %load/v 24, v01041520_0, 16; %or 8, 24, 16; %inv 8, 16; %set/v v0104CDF0_0, 8, 16; %jmp T_0.13; T_0.9 ; %load/v 8, v010414C8_0, 16; %load/v 24, v01041520_0, 16; %xor 8, 24, 16; %set/v v0104CDF0_0, 8, 16; %jmp T_0.13; T_0.10 ; %load/v 8, v010414C8_0, 16; %load/v 24, v01041520_0, 16; %xor 8, 24, 16; %inv 8, 16; %set/v v0104CDF0_0, 8, 16; %jmp T_0.13; T_0.11 ; %load/v 8, v010414C8_0, 16; %mov 24, 0, 16; %inv 8, 32; %addi 8, 1, 32; %set/v v0104CDF0_0, 8, 16; %jmp T_0.13; T_0.13 ; %jmp T_0; .thread T_0, $push; .scope S_01049710; T_1 ; %vpi_call 2 21 "$dumpfile", "./alu_basic/alu_basic.vcd"; %vpi_call 2 22 "$dumpvars", 1'sb0, S_01049710; %set/v v01081070_0, 0, 4; %movi 8, 20, 16; %set/v v0104CEA0_0, 8, 16; %movi 8, 5, 16; %set/v v0104CEF8_0, 8, 16; %delay 1, 0; %vpi_call 2 26 "$display", "opcode=%d, a=%d, b=%d, result=%d, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %movi 8, 1, 4; %set/v v01081070_0, 8, 4; %movi 8, 20, 16; %set/v v0104CEA0_0, 8, 16; %movi 8, 5, 16; %set/v v0104CEF8_0, 8, 16; %delay 1, 0; %vpi_call 2 29 "$display", "opcode=%d, a=%d, b=%d, result=%d, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %set/v v01081070_0, 0, 4; %set/v v0104CEA0_0, 1, 16; %movi 8, 1, 16; %set/v v0104CEF8_0, 8, 16; %delay 1, 0; %vpi_call 2 34 "$display", "opcode=%d, a=%d, b=%d, result=%d, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %movi 8, 1, 4; %set/v v01081070_0, 8, 4; %movi 8, 5, 16; %set/v v0104CEA0_0, 8, 16; %movi 8, 20, 16; %set/v v0104CEF8_0, 8, 16; %delay 1, 0; %vpi_call 2 39 "$display", "opcode=%d, a=%d, b=%d, result=%d, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %movi 8, 2, 4; %set/v v01081070_0, 8, 4; %movi 8, 100, 16; %set/v v0104CEA0_0, 8, 16; %movi 8, 5, 16; %set/v v0104CEF8_0, 8, 16; %delay 1, 0; %vpi_call 2 44 "$display", "opcode=%d, a=%d, b=%d, result=%d, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %movi 8, 3, 4; %set/v v01081070_0, 8, 4; %movi 8, 100, 16; %set/v v0104CEA0_0, 8, 16; %movi 8, 5, 16; %set/v v0104CEF8_0, 8, 16; %delay 1, 0; %vpi_call 2 49 "$display", "opcode=%d, a=%d, b=%d, result=%d, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %movi 8, 4, 4; %set/v v01081070_0, 8, 4; %movi 8, 65280, 16; %set/v v0104CEA0_0, 8, 16; %movi 8, 4080, 16; %set/v v0104CEF8_0, 8, 16; %delay 1, 0; %vpi_call 2 54 "$display", "opcode=%h, a=%h, b=%h, result=%h, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %movi 8, 5, 4; %set/v v01081070_0, 8, 4; %movi 8, 65280, 16; %set/v v0104CEA0_0, 8, 16; %movi 8, 4080, 16; %set/v v0104CEF8_0, 8, 16; %delay 1, 0; %vpi_call 2 59 "$display", "opcode=%h, a=%h, b=%h, result=%h, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %movi 8, 6, 4; %set/v v01081070_0, 8, 4; %set/v v0104CEA0_0, 0, 16; %set/v v0104CEF8_0, 0, 16; %delay 1, 0; %vpi_call 2 64 "$display", "opcode=%d, a=%d, b=%d, result=%d, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %movi 8, 9, 4; %set/v v01081070_0, 8, 4; %movi 8, 65280, 16; %set/v v0104CEA0_0, 8, 16; %movi 8, 4080, 16; %set/v v0104CEF8_0, 8, 16; %delay 1, 0; %vpi_call 2 69 "$display", "opcode=%h, a=%h, b=%h, result=%h, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %movi 8, 11, 4; %set/v v01081070_0, 8, 4; %movi 8, 1, 16; %set/v v0104CEA0_0, 8, 16; %set/v v0104CEF8_0, 0, 16; %delay 1, 0; %vpi_call 2 74 "$display", "opcode=%d, a=%d, b=%d, result=%d, zero=%b, carry=%b, negative=%b", v01081070_0, v0104CEA0_0, v0104CEF8_0, v01080D58_0, v01081438_0, v01080FC0_0, v010811D0_0; %end; .thread T_1; # The file index is used to find the file name in the following table. :file_names 4; "N/A"; ""; ".\alu_basic\alu_basic_tb.v"; "././alu_basic/alu_basic.v";