📄 80386_tb
字号:
:vpi_time_precision - 11;
:vpi_module "system";
S_003DFBD0 .scope module, "testbench" "testbench";
.timescale -9;
V_$00699C68 .var "clk", 0, 0;
V_$0069F5E0 .var "ins_len", 3, 0;
V_$0069F7C0 .var "ip_next", 7, 0;
V_$0069F910 .var "opcode", 31, 0;
V_$006E7D30 .var "opcode2", 31, 0;
V_$006E86F8 .var "rst", 0, 0;
E_006D6F88 .event negedge, V_$00699C68[0];
E_006D6FC8 .event posedge, V_$00699C68[0];
M_$006E7E08 .mem "mem", 7,0, 0,8191;
.scope S_003DFBD0;
T_0 ;
%delay 2000;
%load/v 8, V_$00699C68[0], 1;
%inv 8, 1;
%set V_$00699C68[0], 8;
%jmp T_0;
.thread T_0;
.scope S_003DFBD0;
T_1 ;
%wait E_006D6FC8;
%load/v 8, V_$0069F7C0[0], 8;
%load/v 16, V_$0069F5E0[0], 4;
%mov 20, 16, 4;
%mov 24, 0, 4;
%add 8, 20, 8;
%set/v V_$0069F7C0[0], 8, 8;
%load/v 8, V_$0069F7C0[0], 8;
%addi 8, 3, 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$0069F910[0], 0, 8;
%load/v 8, V_$0069F7C0[0], 8;
%addi 8, 2, 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$0069F910[8], 0, 8;
%load/v 8, V_$0069F7C0[0], 8;
%addi 8, 1, 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$0069F910[16], 0, 8;
%load/v 8, V_$0069F7C0[0], 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$0069F910[24], 0, 8;
%load/v 8, V_$0069F7C0[0], 8;
%addi 8, 7, 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$006E7D30[0], 0, 8;
%load/v 8, V_$0069F7C0[0], 8;
%addi 8, 6, 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$006E7D30[8], 0, 8;
%load/v 8, V_$0069F7C0[0], 8;
%addi 8, 5, 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$006E7D30[16], 0, 8;
%load/v 8, V_$0069F7C0[0], 8;
%addi 8, 4, 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$006E7D30[24], 0, 8;
%jmp T_1;
.thread T_1;
.scope S_003DFBD0;
T_2 ;
%vpi_call "$display", "80386 start->";
%vpi_call "$readmemh", "prom.mem.v", M_$006E7E08, 1'sb0, 8'sb01100100;
%set/v V_$0069F7C0[0], 0, 8;
%set/v V_$0069F5E0[0], 0, 4;
%set V_$006E86F8[0], 0;
%set V_$00699C68[0], 0;
%load/v 8, V_$0069F7C0[0], 8;
%addi 8, 3, 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$0069F910[0], 0, 8;
%load/v 8, V_$0069F7C0[0], 8;
%addi 8, 2, 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$0069F910[8], 0, 8;
%load/v 8, V_$0069F7C0[0], 8;
%addi 8, 1, 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$0069F910[16], 0, 8;
%load/v 8, V_$0069F7C0[0], 8;
%ix/get 3, 8, 8;
%ix/mul 3, 8;
%load/m 8, M_$006E7E08;
%ix/add 3, 1;
%load/m 9, M_$006E7E08;
%ix/add 3, 1;
%load/m 10, M_$006E7E08;
%ix/add 3, 1;
%load/m 11, M_$006E7E08;
%ix/add 3, 1;
%load/m 12, M_$006E7E08;
%ix/add 3, 1;
%load/m 13, M_$006E7E08;
%ix/add 3, 1;
%load/m 14, M_$006E7E08;
%ix/add 3, 1;
%load/m 15, M_$006E7E08;
%ix/load 0, 8;
%assign/v0 V_$0069F910[24], 0, 8;
%mov 8, 0, 1;
%mov 9, 1, 1;
%mov 10, 0, 1;
T_2.0 %cmp/u 0, 8, 3;
%jmp/0xz T_2.1, 5;
%add 8, 1, 3;
%wait E_006D6FC8;
%jmp T_2.0;
T_2.1 ;
%set V_$006E86F8[0], 1;
%mov 8, 0, 1;
%mov 9, 1, 1;
%mov 10, 0, 1;
T_2.2 %cmp/u 0, 8, 3;
%jmp/0xz T_2.3, 5;
%add 8, 1, 3;
%wait E_006D6FC8;
%jmp T_2.2;
T_2.3 ;
%wait E_006D6F88;
%set V_$006E86F8[0], 0;
%mov 20, 0, 2;
%mov 22, 1, 1;
%mov 23, 0, 1;
%mov 24, 1, 2;
%mov 26, 0, 1;
%mov 27, 1, 1;
%mov 28, 0, 1;
T_2.4 %cmp/u 0, 20, 9;
%jmp/0xz T_2.5, 5;
%add 20, 1, 9;
%wait E_006D6FC8;
%jmp T_2.4;
T_2.5 ;
%vpi_call "$display", "done!";
%vpi_call "$dumpvars";
%vpi_call "$finish";
%end;
.thread T_2;
.scope S_003DFBD0;
T_3 ;
%wait E_006D6F88;
%load/v 20, V_$0069F910[0], 32;
%mov 52, 3, 24;
%mov 76, 1, 3;
%mov 79, 0, 2;
%mov 81, 1, 2;
%mov 83, 0, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.0, 4;
%mov 52, 3, 24;
%mov 76, 0, 4;
%mov 80, 1, 4;
%cmp/x 20, 52, 32;
%jmp/1 T_3.1, 4;
%mov 52, 3, 24;
%mov 76, 0, 1;
%mov 77, 1, 2;
%mov 79, 0, 2;
%mov 81, 1, 2;
%mov 83, 0, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.2, 4;
%mov 52, 3, 24;
%mov 76, 0, 1;
%mov 77, 1, 3;
%mov 80, 0, 1;
%mov 81, 1, 1;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.3, 4;
%mov 52, 3, 24;
%mov 76, 0, 1;
%mov 77, 1, 5;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.4, 4;
%mov 52, 3, 24;
%mov 76, 0, 1;
%mov 77, 1, 2;
%mov 79, 0, 2;
%mov 81, 1, 1;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.5, 4;
%mov 52, 3, 24;
%mov 76, 0, 2;
%mov 78, 1, 1;
%mov 79, 0, 2;
%mov 81, 1, 2;
%mov 83, 0, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.6, 4;
%mov 52, 3, 24;
%mov 76, 1, 1;
%mov 77, 0, 1;
%mov 78, 1, 1;
%mov 79, 0, 2;
%mov 81, 1, 2;
%mov 83, 0, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.7, 4;
%mov 52, 3, 24;
%mov 76, 0, 1;
%mov 77, 1, 2;
%mov 79, 0, 1;
%mov 80, 1, 2;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.8, 4;
%mov 52, 3, 24;
%mov 76, 1, 3;
%mov 79, 0, 1;
%mov 80, 1, 2;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.9, 4;
%mov 52, 3, 16;
%mov 68, 0, 1;
%mov 69, 1, 1;
%mov 70, 0, 1;
%mov 71, 1, 1;
%mov 72, 0, 4;
%mov 76, 1, 1;
%mov 77, 0, 1;
%mov 78, 1, 1;
%mov 79, 0, 1;
%mov 80, 1, 1;
%mov 81, 0, 1;
%mov 82, 1, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.10, 4;
%mov 52, 3, 16;
%mov 68, 0, 1;
%mov 69, 1, 1;
%mov 70, 0, 1;
%mov 71, 1, 1;
%mov 72, 0, 6;
%mov 78, 1, 1;
%mov 79, 0, 1;
%mov 80, 1, 1;
%mov 81, 0, 1;
%mov 82, 1, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.11, 4;
%mov 52, 3, 24;
%mov 76, 1, 6;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.12, 4;
%mov 52, 3, 22;
%mov 74, 1, 2;
%mov 76, 3, 1;
%mov 77, 0, 3;
%mov 80, 1, 1;
%mov 81, 0, 3;
%cmp/x 20, 52, 32;
%jmp/1 T_3.13, 4;
%mov 52, 3, 22;
%mov 74, 1, 2;
%mov 76, 3, 1;
%mov 77, 1, 1;
%mov 78, 0, 2;
%mov 80, 1, 1;
%mov 81, 0, 3;
%cmp/x 20, 52, 32;
%jmp/1 T_3.14, 4;
%mov 52, 3, 25;
%mov 77, 1, 1;
%mov 78, 0, 2;
%mov 80, 1, 1;
%mov 81, 0, 3;
%cmp/x 20, 52, 32;
%jmp/1 T_3.15, 4;
%mov 52, 3, 25;
%mov 77, 0, 3;
%mov 80, 1, 1;
%mov 81, 0, 3;
%cmp/x 20, 52, 32;
%jmp/1 T_3.16, 4;
%mov 52, 3, 19;
%mov 71, 0, 1;
%mov 72, 1, 1;
%mov 73, 0, 1;
%mov 74, 1, 2;
%mov 76, 3, 2;
%mov 78, 0, 5;
%mov 83, 1, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.17, 4;
%mov 52, 3, 25;
%mov 77, 0, 1;
%mov 78, 1, 1;
%mov 79, 0, 1;
%mov 80, 1, 1;
%mov 81, 0, 3;
%cmp/x 20, 52, 32;
%jmp/1 T_3.18, 4;
%mov 52, 3, 19;
%mov 71, 0, 1;
%mov 72, 1, 1;
%mov 73, 0, 1;
%mov 74, 3, 4;
%mov 78, 0, 5;
%mov 83, 1, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.19, 4;
%mov 52, 3, 22;
%mov 74, 1, 2;
%mov 76, 3, 1;
%mov 77, 0, 7;
%cmp/x 20, 52, 32;
%jmp/1 T_3.20, 4;
%mov 52, 3, 22;
%mov 74, 1, 2;
%mov 76, 3, 1;
%mov 77, 1, 1;
%mov 78, 0, 6;
%cmp/x 20, 52, 32;
%jmp/1 T_3.21, 4;
%mov 52, 3, 25;
%mov 77, 1, 1;
%mov 78, 0, 6;
%cmp/x 20, 52, 32;
%jmp/1 T_3.22, 4;
%mov 52, 3, 25;
%mov 77, 0, 7;
%cmp/x 20, 52, 32;
%jmp/1 T_3.23, 4;
%mov 52, 3, 19;
%mov 71, 0, 3;
%mov 74, 1, 2;
%mov 76, 3, 2;
%mov 78, 0, 5;
%mov 83, 1, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.24, 4;
%mov 52, 3, 25;
%mov 77, 0, 1;
%mov 78, 1, 1;
%mov 79, 0, 5;
%cmp/x 20, 52, 32;
%jmp/1 T_3.25, 4;
%mov 52, 3, 19;
%mov 71, 0, 3;
%mov 74, 3, 4;
%mov 78, 0, 5;
%mov 83, 1, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.26, 4;
%mov 52, 3, 22;
%mov 74, 1, 2;
%mov 76, 3, 1;
%mov 77, 0, 4;
%mov 81, 1, 1;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.27, 4;
%mov 52, 3, 22;
%mov 74, 1, 2;
%mov 76, 3, 1;
%mov 77, 1, 1;
%mov 78, 0, 3;
%mov 81, 1, 1;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.28, 4;
%mov 52, 3, 25;
%mov 77, 1, 1;
%mov 78, 0, 3;
%mov 81, 1, 1;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.29, 4;
%mov 52, 3, 25;
%mov 77, 0, 4;
%mov 81, 1, 1;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.30, 4;
%mov 52, 3, 19;
%mov 71, 0, 2;
%mov 73, 1, 3;
%mov 76, 3, 2;
%mov 78, 0, 5;
%mov 83, 1, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.31, 4;
%mov 52, 3, 25;
%mov 77, 0, 1;
%mov 78, 1, 1;
%mov 79, 0, 2;
%mov 81, 1, 1;
%mov 82, 0, 2;
%cmp/x 20, 52, 32;
%jmp/1 T_3.32, 4;
%mov 52, 3, 19;
%mov 71, 0, 2;
%mov 73, 1, 1;
%mov 74, 3, 4;
%mov 78, 0, 5;
%mov 83, 1, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.33, 4;
%mov 52, 3, 22;
%mov 74, 1, 4;
%mov 78, 0, 3;
%mov 81, 1, 2;
%mov 83, 0, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.34, 4;
%mov 52, 3, 24;
%mov 76, 1, 2;
%mov 78, 0, 3;
%mov 81, 1, 2;
%mov 83, 0, 1;
%cmp/x 20, 52, 32;
%jmp/1 T_3.35, 4;
%mov 52, 3, 24;
%mov 76, 0, 1;
%mov 77, 1, 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -