| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373 |
- #! /usr/local/Cellar/icarus-verilog/10.1.1/bin/vvp
- :ivl_version "10.1 (stable)" "(v10_1_1)";
- :ivl_delay_selection "TYPICAL";
- :vpi_time_precision + 0;
- :vpi_module "system";
- :vpi_module "vhdl_sys";
- :vpi_module "v2005_math";
- :vpi_module "va_math";
- S_0x7fa2f94081a0 .scope module, "fifo_tb" "fifo_tb" 2 1;
- .timescale 0 0;
- v0x7fa2f942c150_0 .var "clk", 0 0;
- v0x7fa2f942c210_0 .var "data_in", 15 0;
- v0x7fa2f942c2a0_0 .net "data_out", 15 0, v0x7fa2f942bb50_0; 1 drivers
- v0x7fa2f942c350_0 .net "empty", 0 0, v0x7fa2f942bbe0_0; 1 drivers
- v0x7fa2f942c400_0 .var "fifo_pop", 0 0;
- v0x7fa2f942c4d0_0 .var "fifo_push", 0 0;
- v0x7fa2f942c560_0 .net "full", 0 0, v0x7fa2f942bcb0_0; 1 drivers
- v0x7fa2f942c610_0 .var "reset_n", 0 0;
- v0x7fa2f942c6c0_0 .var "tmp", 15 0;
- E_0x7fa2f9415f70 .event negedge, v0x7fa2f9417170_0;
- E_0x7fa2f9415e20 .event negedge, v0x7fa2f942bf80_0;
- S_0x7fa2f941c480 .scope module, "dut" "simple_fifo" 2 9, 3 4 0, S_0x7fa2f94081a0;
- .timescale 0 0;
- .port_info 0 /INPUT 1 "clk"
- .port_info 1 /INPUT 1 "reset_n"
- .port_info 2 /INPUT 1 "push"
- .port_info 3 /INPUT 1 "pop"
- .port_info 4 /INPUT 16 "data_in"
- .port_info 5 /OUTPUT 16 "data_out"
- .port_info 6 /OUTPUT 1 "full"
- .port_info 7 /OUTPUT 1 "empty"
- P_0x7fa2f9403670 .param/l "DEPTH" 0 3 5, +C4<00000000000000000000000000001000>;
- P_0x7fa2f94036b0 .param/l "WIDTH" 0 3 6, +C4<00000000000000000000000000010000>;
- v0x7fa2f9417170_0 .net "clk", 0 0, v0x7fa2f942c150_0; 1 drivers
- v0x7fa2f942ba20 .array "data", 0 7, 15 0;
- v0x7fa2f942bac0_0 .net "data_in", 15 0, v0x7fa2f942c210_0; 1 drivers
- v0x7fa2f942bb50_0 .var "data_out", 15 0;
- v0x7fa2f942bbe0_0 .var "empty", 0 0;
- v0x7fa2f942bcb0_0 .var "full", 0 0;
- v0x7fa2f942bd40_0 .net "pop", 0 0, v0x7fa2f942c400_0; 1 drivers
- v0x7fa2f942bdd0_0 .net "push", 0 0, v0x7fa2f942c4d0_0; 1 drivers
- v0x7fa2f942be70_0 .var "rd_ptr", 2 0;
- v0x7fa2f942bf80_0 .net "reset_n", 0 0, v0x7fa2f942c610_0; 1 drivers
- v0x7fa2f942c020_0 .var "wr_ptr", 2 0;
- E_0x7fa2f9416e90 .event posedge, v0x7fa2f9417170_0;
- .scope S_0x7fa2f941c480;
- T_0 ;
- %wait E_0x7fa2f9416e90;
- %load/vec4 v0x7fa2f942bf80_0;
- %flag_set/vec4 8;
- %jmp/0xz T_0.0, 8;
- %pushi/vec4 0, 0, 3;
- %assign/vec4 v0x7fa2f942be70_0, 0;
- %pushi/vec4 0, 0, 3;
- %assign/vec4 v0x7fa2f942c020_0, 0;
- %pushi/vec4 0, 0, 1;
- %assign/vec4 v0x7fa2f942bcb0_0, 0;
- %pushi/vec4 1, 0, 1;
- %assign/vec4 v0x7fa2f942bbe0_0, 0;
- %jmp T_0.1;
- T_0.0 ;
- %load/vec4 v0x7fa2f942bdd0_0;
- %load/vec4 v0x7fa2f942bcb0_0;
- %inv;
- %and;
- %flag_set/vec4 8;
- %jmp/0xz T_0.2, 8;
- %load/vec4 v0x7fa2f942bac0_0;
- %load/vec4 v0x7fa2f942c020_0;
- %pad/u 5;
- %ix/vec4 3;
- %ix/load 4, 0, 0; Constant delay
- %assign/vec4/a/d v0x7fa2f942ba20, 0, 4;
- %load/vec4 v0x7fa2f942c020_0;
- %addi 1, 0, 3;
- %store/vec4 v0x7fa2f942c020_0, 0, 3;
- %load/vec4 v0x7fa2f942c020_0;
- %load/vec4 v0x7fa2f942be70_0;
- %cmp/e;
- %jmp/0xz T_0.4, 4;
- %pushi/vec4 1, 0, 1;
- %assign/vec4 v0x7fa2f942bcb0_0, 0;
- %pushi/vec4 0, 0, 1;
- %assign/vec4 v0x7fa2f942bbe0_0, 0;
- %jmp T_0.5;
- T_0.4 ;
- %pushi/vec4 0, 0, 1;
- %assign/vec4 v0x7fa2f942bcb0_0, 0;
- %pushi/vec4 0, 0, 1;
- %assign/vec4 v0x7fa2f942bbe0_0, 0;
- T_0.5 ;
- T_0.2 ;
- %load/vec4 v0x7fa2f942bd40_0;
- %load/vec4 v0x7fa2f942bbe0_0;
- %inv;
- %and;
- %flag_set/vec4 8;
- %jmp/0xz T_0.6, 8;
- %load/vec4 v0x7fa2f942be70_0;
- %pad/u 5;
- %ix/vec4 4;
- %load/vec4a v0x7fa2f942ba20, 4;
- %assign/vec4 v0x7fa2f942bb50_0, 0;
- %load/vec4 v0x7fa2f942be70_0;
- %addi 1, 0, 3;
- %store/vec4 v0x7fa2f942be70_0, 0, 3;
- %load/vec4 v0x7fa2f942c020_0;
- %load/vec4 v0x7fa2f942be70_0;
- %cmp/e;
- %jmp/0xz T_0.8, 4;
- %pushi/vec4 0, 0, 1;
- %assign/vec4 v0x7fa2f942bcb0_0, 0;
- %pushi/vec4 1, 0, 1;
- %assign/vec4 v0x7fa2f942bbe0_0, 0;
- %jmp T_0.9;
- T_0.8 ;
- %pushi/vec4 0, 0, 1;
- %assign/vec4 v0x7fa2f942bcb0_0, 0;
- %pushi/vec4 0, 0, 1;
- %assign/vec4 v0x7fa2f942bbe0_0, 0;
- T_0.9 ;
- T_0.6 ;
- T_0.1 ;
- %jmp T_0;
- .thread T_0;
- .scope S_0x7fa2f94081a0;
- T_1 ;
- %pushi/vec4 0, 0, 1;
- %store/vec4 v0x7fa2f942c150_0, 0, 1;
- %pushi/vec4 1, 0, 1;
- %store/vec4 v0x7fa2f942c610_0, 0, 1;
- %pushi/vec4 4, 0, 32;
- T_1.0 %dup/vec4;
- %pushi/vec4 0, 0, 32;
- %cmp/s;
- %jmp/1xz T_1.1, 5;
- %jmp/1 T_1.1, 4;
- %pushi/vec4 1, 0, 32;
- %sub;
- %delay 10, 0;
- %load/vec4 v0x7fa2f942c150_0;
- %inv;
- %store/vec4 v0x7fa2f942c150_0, 0, 1;
- %jmp T_1.0;
- T_1.1 ;
- %pop/vec4 1;
- %pushi/vec4 0, 0, 1;
- %store/vec4 v0x7fa2f942c610_0, 0, 1;
- T_1.2 ;
- %delay 10, 0;
- %load/vec4 v0x7fa2f942c150_0;
- %inv;
- %store/vec4 v0x7fa2f942c150_0, 0, 1;
- %jmp T_1.2;
- %end;
- .thread T_1;
- .scope S_0x7fa2f94081a0;
- T_2 ;
- %pushi/vec4 0, 0, 16;
- %store/vec4 v0x7fa2f942c210_0, 0, 16;
- %wait E_0x7fa2f9415e20;
- %pushi/vec4 65535, 0, 16;
- %store/vec4 v0x7fa2f942c210_0, 0, 16;
- %pushi/vec4 8, 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;
- %wait E_0x7fa2f9416e90;
- %pushi/vec4 1, 0, 1;
- %store/vec4 v0x7fa2f942c4d0_0, 0, 1;
- %wait E_0x7fa2f9415f70;
- %pushi/vec4 0, 0, 1;
- %store/vec4 v0x7fa2f942c4d0_0, 0, 1;
- %load/vec4 v0x7fa2f942c210_0;
- %inv;
- %store/vec4 v0x7fa2f942c210_0, 0, 16;
- %jmp T_2.0;
- T_2.1 ;
- %pop/vec4 1;
- %load/vec4 v0x7fa2f942c560_0;
- %pad/u 32;
- %pushi/vec4 1, 0, 32;
- %cmp/e;
- %flag_get/vec4 4;
- %inv;
- %load/vec4 v0x7fa2f942c350_0;
- %pad/u 32;
- %pushi/vec4 0, 0, 32;
- %cmp/e;
- %flag_get/vec4 4;
- %inv;
- %and;
- %flag_set/vec4 8;
- %jmp/0xz T_2.2, 8;
- %vpi_call 2 43 "$display", "Test failed!" {0 0 0};
- T_2.2 ;
- %pushi/vec4 65535, 0, 16;
- %store/vec4 v0x7fa2f942c6c0_0, 0, 16;
- %pushi/vec4 8, 0, 32;
- T_2.4 %dup/vec4;
- %pushi/vec4 0, 0, 32;
- %cmp/s;
- %jmp/1xz T_2.5, 5;
- %jmp/1 T_2.5, 4;
- %pushi/vec4 1, 0, 32;
- %sub;
- %wait E_0x7fa2f9416e90;
- %pushi/vec4 1, 0, 1;
- %store/vec4 v0x7fa2f942c400_0, 0, 1;
- %wait E_0x7fa2f9415f70;
- %pushi/vec4 0, 0, 1;
- %store/vec4 v0x7fa2f942c400_0, 0, 1;
- %load/vec4 v0x7fa2f942c2a0_0;
- %load/vec4 v0x7fa2f942c6c0_0;
- %cmp/ne;
- %jmp/0xz T_2.6, 6;
- %vpi_call 2 52 "$display", "Test failed!" {0 0 0};
- T_2.6 ;
- %load/vec4 v0x7fa2f942c6c0_0;
- %inv;
- %store/vec4 v0x7fa2f942c6c0_0, 0, 16;
- %jmp T_2.4;
- T_2.5 ;
- %pop/vec4 1;
- %load/vec4 v0x7fa2f942c560_0;
- %pad/u 32;
- %pushi/vec4 0, 0, 32;
- %cmp/e;
- %flag_get/vec4 4;
- %inv;
- %load/vec4 v0x7fa2f942c350_0;
- %pad/u 32;
- %pushi/vec4 1, 0, 32;
- %cmp/e;
- %flag_get/vec4 4;
- %inv;
- %and;
- %flag_set/vec4 8;
- %jmp/0xz T_2.8, 8;
- %vpi_call 2 57 "$display", "Test failed!" {0 0 0};
- T_2.8 ;
- %pushi/vec4 5, 0, 32;
- T_2.10 %dup/vec4;
- %pushi/vec4 0, 0, 32;
- %cmp/s;
- %jmp/1xz T_2.11, 5;
- %jmp/1 T_2.11, 4;
- %pushi/vec4 1, 0, 32;
- %sub;
- %wait E_0x7fa2f9416e90;
- %jmp T_2.10;
- T_2.11 ;
- %pop/vec4 1;
- %pushi/vec4 4660, 0, 16;
- %store/vec4 v0x7fa2f942c210_0, 0, 16;
- %pushi/vec4 8, 0, 32;
- T_2.12 %dup/vec4;
- %pushi/vec4 0, 0, 32;
- %cmp/s;
- %jmp/1xz T_2.13, 5;
- %jmp/1 T_2.13, 4;
- %pushi/vec4 1, 0, 32;
- %sub;
- %wait E_0x7fa2f9416e90;
- %pushi/vec4 1, 0, 1;
- %store/vec4 v0x7fa2f942c4d0_0, 0, 1;
- %wait E_0x7fa2f9415f70;
- %pushi/vec4 0, 0, 1;
- %store/vec4 v0x7fa2f942c4d0_0, 0, 1;
- %load/vec4 v0x7fa2f942c210_0;
- %inv;
- %store/vec4 v0x7fa2f942c210_0, 0, 16;
- %jmp T_2.12;
- T_2.13 ;
- %pop/vec4 1;
- %load/vec4 v0x7fa2f942c560_0;
- %pad/u 32;
- %pushi/vec4 1, 0, 32;
- %cmp/e;
- %flag_get/vec4 4;
- %inv;
- %load/vec4 v0x7fa2f942c350_0;
- %pad/u 32;
- %pushi/vec4 0, 0, 32;
- %cmp/e;
- %flag_get/vec4 4;
- %inv;
- %and;
- %flag_set/vec4 8;
- %jmp/0xz T_2.14, 8;
- %vpi_call 2 69 "$display", "Test failed!" {0 0 0};
- T_2.14 ;
- %pushi/vec4 4660, 0, 16;
- %store/vec4 v0x7fa2f942c6c0_0, 0, 16;
- %pushi/vec4 8, 0, 32;
- T_2.16 %dup/vec4;
- %pushi/vec4 0, 0, 32;
- %cmp/s;
- %jmp/1xz T_2.17, 5;
- %jmp/1 T_2.17, 4;
- %pushi/vec4 1, 0, 32;
- %sub;
- %wait E_0x7fa2f9416e90;
- %pushi/vec4 1, 0, 1;
- %store/vec4 v0x7fa2f942c400_0, 0, 1;
- %wait E_0x7fa2f9415f70;
- %pushi/vec4 0, 0, 1;
- %store/vec4 v0x7fa2f942c400_0, 0, 1;
- %load/vec4 v0x7fa2f942c2a0_0;
- %load/vec4 v0x7fa2f942c6c0_0;
- %cmp/ne;
- %jmp/0xz T_2.18, 6;
- %vpi_call 2 78 "$display", "Test failed!" {0 0 0};
- T_2.18 ;
- %load/vec4 v0x7fa2f942c6c0_0;
- %inv;
- %store/vec4 v0x7fa2f942c6c0_0, 0, 16;
- %jmp T_2.16;
- T_2.17 ;
- %pop/vec4 1;
- %load/vec4 v0x7fa2f942c560_0;
- %pad/u 32;
- %pushi/vec4 0, 0, 32;
- %cmp/e;
- %flag_get/vec4 4;
- %inv;
- %load/vec4 v0x7fa2f942c350_0;
- %pad/u 32;
- %pushi/vec4 1, 0, 32;
- %cmp/e;
- %flag_get/vec4 4;
- %inv;
- %and;
- %flag_set/vec4 8;
- %jmp/0xz T_2.20, 8;
- %vpi_call 2 83 "$display", "Test failed!" {0 0 0};
- T_2.20 ;
- %vpi_call 2 85 "$finish" {0 0 0};
- %end;
- .thread T_2;
- .scope S_0x7fa2f94081a0;
- T_3 ;
- %vpi_func 2 89 "$test$plusargs" 32, "waves=1" {0 0 0};
- %cmpi/ne 0, 0, 32;
- %jmp/0xz T_3.0, 4;
- %vpi_call 2 90 "$dumpfile", "out/waves.vcd" {0 0 0};
- %vpi_call 2 91 "$dumpvars", 32'sb00000000000000000000000000000000, S_0x7fa2f94081a0 {0 0 0};
- %vpi_func 2 92 "$test$plusargs" 32, "dump_fifo=1" {0 0 0};
- %cmpi/ne 0, 0, 32;
- %jmp/0xz T_3.2, 4;
- %vpi_call 2 93 "$dumpvars", 32'sb00000000000000000000000000000000, &A<v0x7fa2f942ba20, 0> {0 0 0};
- %vpi_call 2 94 "$dumpvars", 32'sb00000000000000000000000000000000, &A<v0x7fa2f942ba20, 1> {0 0 0};
- %vpi_call 2 95 "$dumpvars", 32'sb00000000000000000000000000000000, &A<v0x7fa2f942ba20, 2> {0 0 0};
- %vpi_call 2 96 "$dumpvars", 32'sb00000000000000000000000000000000, &A<v0x7fa2f942ba20, 3> {0 0 0};
- %vpi_call 2 97 "$dumpvars", 32'sb00000000000000000000000000000000, &A<v0x7fa2f942ba20, 4> {0 0 0};
- %vpi_call 2 98 "$dumpvars", 32'sb00000000000000000000000000000000, &A<v0x7fa2f942ba20, 5> {0 0 0};
- %vpi_call 2 99 "$dumpvars", 32'sb00000000000000000000000000000000, &A<v0x7fa2f942ba20, 6> {0 0 0};
- %vpi_call 2 100 "$dumpvars", 32'sb00000000000000000000000000000000, &A<v0x7fa2f942ba20, 7> {0 0 0};
- T_3.2 ;
- T_3.0 ;
- %end;
- .thread T_3;
- # The file index is used to find the file name in the following table.
- :file_names 4;
- "N/A";
- "<interactive>";
- "fifo_tb.v";
- "simple_fifo.v";
|