blob: 7034aab4868563f6f5cad8028d9f80cfb03e0ee5 [file] [log] [blame]
#! /usr/bin/vvp
:ivl_version "11.0 (stable)" "(v11_0)";
:ivl_delay_selection "TYPICAL";
:vpi_time_precision + 0;
:vpi_module "/usr/lib/ivl/system.vpi";
:vpi_module "/usr/lib/ivl/vhdl_sys.vpi";
:vpi_module "/usr/lib/ivl/vhdl_textio.vpi";
:vpi_module "/usr/lib/ivl/v2005_math.vpi";
:vpi_module "/usr/lib/ivl/va_math.vpi";
S_0x555ec06b44c0 .scope module, "SRAMWrapper" "SRAMWrapper" 2 1;
.timescale 0 0;
.port_info 0 /INPUT 1 "clk";
.port_info 1 /INPUT 1 "nce0";
.port_info 2 /INPUT 1 "nwe0";
.port_info 3 /INPUT 10 "addr0";
.port_info 4 /INPUT 32 "wdata0";
.port_info 5 /INPUT 4 "wmask0";
.port_info 6 /OUTPUT 32 "rdata0";
.port_info 7 /INPUT 1 "nce1";
.port_info 8 /INPUT 10 "addr1";
.port_info 9 /OUTPUT 32 "rdata1";
P_0x555ec0715380 .param/l "ADDR_LEN" 0 2 5, +C4<00000000000000000000000000001010>;
P_0x555ec07153c0 .param/l "LENGTH" 1 2 21, +C4<00000000000000000000000000000010>;
P_0x555ec0715400 .param/l "SIZE_IN_WORDS" 0 2 3, +C4<00000000000000000000010000000000>;
P_0x555ec0715440 .param/l "WIDTH" 1 2 22, +C4<00000000000000000000000000000001>;
P_0x555ec0715480 .param/l "WORD_SIZE" 0 2 4, +C4<00000000000000000000000000100000>;
o0x7f6577b00f18 .functor BUFZ 10, C4<zzzzzzzzzz>; HiZ drive
v0x555ec0739030_0 .net "addr0", 9 0, o0x7f6577b00f18; 0 drivers
o0x7f6577b00f48 .functor BUFZ 10, C4<zzzzzzzzzz>; HiZ drive
v0x555ec0739130_0 .net "addr1", 9 0, o0x7f6577b00f48; 0 drivers
o0x7f6577b000d8 .functor BUFZ 1, C4<z>; HiZ drive
v0x555ec0739210_0 .net "clk", 0 0, o0x7f6577b000d8; 0 drivers
v0x555ec0739340_0 .var "lastAddr0", 9 0;
v0x555ec0739400_0 .var "lastAddr1", 9 0;
v0x555ec07394e0_0 .var "lastRe0", 0 0;
v0x555ec07395a0_0 .var "lastRe1", 0 0;
o0x7f6577b01038 .functor BUFZ 1, C4<z>; HiZ drive
v0x555ec0739660_0 .net "nce0", 0 0, o0x7f6577b01038; 0 drivers
o0x7f6577b01068 .functor BUFZ 1, C4<z>; HiZ drive
v0x555ec0739720_0 .net "nce1", 0 0, o0x7f6577b01068; 0 drivers
o0x7f6577b00288 .functor BUFZ 1, C4<z>; HiZ drive
v0x555ec0739870_0 .net "nwe0", 0 0, o0x7f6577b00288; 0 drivers
v0x555ec0739910_0 .var "rdata0", 31 0;
v0x555ec07399f0_0 .var "rdata1", 31 0;
v0x555ec0739ad0_0 .net "readData0", 63 0, L_0x555ec073b5b0; 1 drivers
v0x555ec0739b90_0 .net "readData1", 63 0, L_0x555ec073bde0; 1 drivers
o0x7f6577b001c8 .functor BUFZ 32, C4<zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz>; HiZ drive
v0x555ec0739c50_0 .net "wdata0", 31 0, o0x7f6577b001c8; 0 drivers
o0x7f6577b002e8 .functor BUFZ 4, C4<zzzz>; HiZ drive
v0x555ec0739d10_0 .net "wmask0", 3 0, o0x7f6577b002e8; 0 drivers
L_0x555ec073a000 .part o0x7f6577b00f18, 9, 1;
L_0x555ec073a5a0 .part o0x7f6577b00f18, 0, 9;
L_0x555ec073a730 .part o0x7f6577b00f48, 9, 1;
L_0x555ec073ad00 .part o0x7f6577b00f48, 0, 9;
L_0x555ec073af10 .part o0x7f6577b00f18, 9, 1;
L_0x555ec073b440 .part o0x7f6577b00f18, 0, 9;
L_0x555ec073b5b0 .concat8 [ 32 32 0 0], v0x555ec0734980_0, v0x555ec0737c40_0;
L_0x555ec073b6f0 .part o0x7f6577b00f48, 9, 1;
L_0x555ec073bcb0 .part o0x7f6577b00f48, 0, 9;
L_0x555ec073bde0 .concat8 [ 32 32 0 0], v0x555ec0734a60_0, v0x555ec0737d20_0;
S_0x555ec06b4020 .scope generate, "genblk1" "genblk1" 2 36, 2 36 0, S_0x555ec06b44c0;
.timescale 0 0;
E_0x555ec06ed250 .event posedge, v0x555ec0706800_0;
S_0x555ec06b53a0 .scope generate, "genblk3[0]" "genblk3[0]" 2 70, 2 70 0, S_0x555ec06b44c0;
.timescale 0 0;
P_0x555ec0713680 .param/l "i" 0 2 70, +C4<00>;
S_0x555ec06f9830 .scope generate, "genblk4[0]" "genblk4[0]" 2 71, 2 71 0, S_0x555ec06b53a0;
.timescale 0 0;
P_0x555ec06f9a10 .param/l "j" 0 2 71, +C4<00>;
S_0x555ec06f9ab0 .scope generate, "genblk6" "genblk6" 2 73, 2 73 0, S_0x555ec06f9830;
.timescale 0 0;
L_0x555ec07105f0 .functor AND 1, L_0x555ec0739f60, L_0x555ec073a270, C4<1>, C4<1>;
L_0x555ec0710c00 .functor AND 1, L_0x555ec073a690, L_0x555ec073a9b0, C4<1>, C4<1>;
v0x555ec07351b0_0 .net *"_ivl_1", 0 0, L_0x555ec0739f60; 1 drivers
v0x555ec0735290_0 .net *"_ivl_12", 0 0, L_0x555ec07105f0; 1 drivers
v0x555ec0735350_0 .net *"_ivl_17", 0 0, L_0x555ec073a690; 1 drivers
v0x555ec07353f0_0 .net *"_ivl_18", 0 0, L_0x555ec073a730; 1 drivers
v0x555ec07354d0_0 .net *"_ivl_19", 2 0, L_0x555ec073a800; 1 drivers
v0x555ec07355b0_0 .net *"_ivl_2", 0 0, L_0x555ec073a000; 1 drivers
L_0x7f6577ab70a8 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x555ec0735690_0 .net *"_ivl_22", 1 0, L_0x7f6577ab70a8; 1 drivers
L_0x7f6577ab70f0 .functor BUFT 1, C4<000>, C4<0>, C4<0>, C4<0>;
v0x555ec0735770_0 .net/2u *"_ivl_23", 2 0, L_0x7f6577ab70f0; 1 drivers
v0x555ec0735850_0 .net *"_ivl_25", 0 0, L_0x555ec073a9b0; 1 drivers
v0x555ec0735910_0 .net *"_ivl_28", 0 0, L_0x555ec0710c00; 1 drivers
v0x555ec07359d0_0 .net *"_ivl_3", 2 0, L_0x555ec073a100; 1 drivers
L_0x7f6577ab7018 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x555ec0735ab0_0 .net *"_ivl_6", 1 0, L_0x7f6577ab7018; 1 drivers
L_0x7f6577ab7060 .functor BUFT 1, C4<000>, C4<0>, C4<0>, C4<0>;
v0x555ec0735b90_0 .net/2u *"_ivl_7", 2 0, L_0x7f6577ab7060; 1 drivers
v0x555ec0735c70_0 .net *"_ivl_9", 0 0, L_0x555ec073a270; 1 drivers
L_0x555ec0739f60 .reduce/nor o0x7f6577b01038;
L_0x555ec073a100 .concat [ 1 2 0 0], L_0x555ec073a000, L_0x7f6577ab7018;
L_0x555ec073a270 .cmp/eq 3, L_0x555ec073a100, L_0x7f6577ab7060;
L_0x555ec073a480 .reduce/nor L_0x555ec07105f0;
L_0x555ec073a690 .reduce/nor o0x7f6577b01068;
L_0x555ec073a800 .concat [ 1 2 0 0], L_0x555ec073a730, L_0x7f6577ab70a8;
L_0x555ec073a9b0 .cmp/eq 3, L_0x555ec073a800, L_0x7f6577ab70f0;
L_0x555ec073abc0 .reduce/nor L_0x555ec0710c00;
S_0x555ec06c6750 .scope module, "sram" "sky130_sram_2kbyte_1rw1r_32x512_8" 2 90, 3 6 0, S_0x555ec06f9ab0;
.timescale 0 0;
.port_info 0 /INPUT 1 "clk0";
.port_info 1 /INPUT 1 "csb0";
.port_info 2 /INPUT 1 "web0";
.port_info 3 /INPUT 4 "wmask0";
.port_info 4 /INPUT 9 "addr0";
.port_info 5 /INPUT 32 "din0";
.port_info 6 /OUTPUT 32 "dout0";
.port_info 7 /INPUT 1 "clk1";
.port_info 8 /INPUT 1 "csb1";
.port_info 9 /INPUT 9 "addr1";
.port_info 10 /OUTPUT 32 "dout1";
P_0x555ec06c6930 .param/l "ADDR_WIDTH" 0 3 19, +C4<00000000000000000000000000001001>;
P_0x555ec06c6970 .param/l "DATA_WIDTH" 0 3 18, +C4<00000000000000000000000000100000>;
P_0x555ec06c69b0 .param/l "DELAY" 0 3 22, +C4<00000000000000000000000000000011>;
P_0x555ec06c69f0 .param/l "NUM_WMASKS" 0 3 17, +C4<00000000000000000000000000000100>;
P_0x555ec06c6a30 .param/l "RAM_DEPTH" 0 3 20, +C4<00000000000000000000000000000001000000000>;
P_0x555ec06c6a70 .param/l "T_HOLD" 0 3 24, +C4<00000000000000000000000000000001>;
P_0x555ec06c6ab0 .param/l "VERBOSE" 0 3 23, +C4<00000000000000000000000000000001>;
v0x555ec0711350_0 .net "addr0", 8 0, L_0x555ec073a5a0; 1 drivers
v0x555ec06e7740_0 .var "addr0_reg", 8 0;
v0x555ec06e9920_0 .net "addr1", 8 0, L_0x555ec073ad00; 1 drivers
v0x555ec06eb010_0 .var "addr1_reg", 8 0;
v0x555ec0706800_0 .net "clk0", 0 0, o0x7f6577b000d8; alias, 0 drivers
v0x555ec07156e0_0 .net "clk1", 0 0, o0x7f6577b000d8; alias, 0 drivers
v0x555ec070b630_0 .net "csb0", 0 0, L_0x555ec073a480; 1 drivers
v0x555ec0734580_0 .var "csb0_reg", 0 0;
v0x555ec0734640_0 .net "csb1", 0 0, L_0x555ec073abc0; 1 drivers
v0x555ec0734700_0 .var "csb1_reg", 0 0;
v0x555ec07347c0_0 .net "din0", 31 0, o0x7f6577b001c8; alias, 0 drivers
v0x555ec07348a0_0 .var "din0_reg", 31 0;
v0x555ec0734980_0 .var "dout0", 31 0;
v0x555ec0734a60_0 .var "dout1", 31 0;
v0x555ec0734b40 .array "mem", 511 0, 31 0;
v0x555ec0734c00_0 .net "web0", 0 0, o0x7f6577b00288; alias, 0 drivers
v0x555ec0734cc0_0 .var "web0_reg", 0 0;
v0x555ec0734e90_0 .net "wmask0", 3 0, o0x7f6577b002e8; alias, 0 drivers
v0x555ec0734f70_0 .var "wmask0_reg", 3 0;
E_0x555ec06eeb20 .event negedge, v0x555ec0706800_0;
S_0x555ec0715e40 .scope begin, "MEM_READ0" "MEM_READ0" 3 101, 3 101 0, S_0x555ec06c6750;
.timescale 0 0;
S_0x555ec0715fd0 .scope begin, "MEM_READ1" "MEM_READ1" 3 109, 3 109 0, S_0x555ec06c6750;
.timescale 0 0;
S_0x555ec0716160 .scope begin, "MEM_WRITE0" "MEM_WRITE0" 3 85, 3 85 0, S_0x555ec06c6750;
.timescale 0 0;
S_0x555ec0735d30 .scope generate, "genblk3[1]" "genblk3[1]" 2 70, 2 70 0, S_0x555ec06b44c0;
.timescale 0 0;
P_0x555ec0735ee0 .param/l "i" 0 2 70, +C4<01>;
S_0x555ec0735fa0 .scope generate, "genblk4[0]" "genblk4[0]" 2 71, 2 71 0, S_0x555ec0735d30;
.timescale 0 0;
P_0x555ec07361a0 .param/l "j" 0 2 71, +C4<00>;
S_0x555ec0736280 .scope generate, "genblk6" "genblk6" 2 73, 2 73 0, S_0x555ec0735fa0;
.timescale 0 0;
L_0x555ec0711230 .functor AND 1, L_0x555ec073ae20, L_0x555ec073b140, C4<1>, C4<1>;
L_0x555ec06e7680 .functor AND 1, L_0x555ec073b650, L_0x555ec073b990, C4<1>, C4<1>;
v0x555ec0738480_0 .net *"_ivl_1", 0 0, L_0x555ec073ae20; 1 drivers
v0x555ec0738560_0 .net *"_ivl_12", 0 0, L_0x555ec0711230; 1 drivers
v0x555ec0738620_0 .net *"_ivl_17", 0 0, L_0x555ec073b650; 1 drivers
v0x555ec07386f0_0 .net *"_ivl_18", 0 0, L_0x555ec073b6f0; 1 drivers
v0x555ec07387d0_0 .net *"_ivl_19", 2 0, L_0x555ec073b7e0; 1 drivers
v0x555ec07388b0_0 .net *"_ivl_2", 0 0, L_0x555ec073af10; 1 drivers
L_0x7f6577ab71c8 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x555ec0738990_0 .net *"_ivl_22", 1 0, L_0x7f6577ab71c8; 1 drivers
L_0x7f6577ab7210 .functor BUFT 1, C4<001>, C4<0>, C4<0>, C4<0>;
v0x555ec0738a70_0 .net/2u *"_ivl_23", 2 0, L_0x7f6577ab7210; 1 drivers
v0x555ec0738b50_0 .net *"_ivl_25", 0 0, L_0x555ec073b990; 1 drivers
v0x555ec0738c10_0 .net *"_ivl_28", 0 0, L_0x555ec06e7680; 1 drivers
v0x555ec0738cd0_0 .net *"_ivl_3", 2 0, L_0x555ec073afb0; 1 drivers
L_0x7f6577ab7138 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>;
v0x555ec0738db0_0 .net *"_ivl_6", 1 0, L_0x7f6577ab7138; 1 drivers
L_0x7f6577ab7180 .functor BUFT 1, C4<001>, C4<0>, C4<0>, C4<0>;
v0x555ec0738e90_0 .net/2u *"_ivl_7", 2 0, L_0x7f6577ab7180; 1 drivers
v0x555ec0738f70_0 .net *"_ivl_9", 0 0, L_0x555ec073b140; 1 drivers
L_0x555ec073ae20 .reduce/nor o0x7f6577b01038;
L_0x555ec073afb0 .concat [ 1 2 0 0], L_0x555ec073af10, L_0x7f6577ab7138;
L_0x555ec073b140 .cmp/eq 3, L_0x555ec073afb0, L_0x7f6577ab7180;
L_0x555ec073b320 .reduce/nor L_0x555ec0711230;
L_0x555ec073b650 .reduce/nor o0x7f6577b01068;
L_0x555ec073b7e0 .concat [ 1 2 0 0], L_0x555ec073b6f0, L_0x7f6577ab71c8;
L_0x555ec073b990 .cmp/eq 3, L_0x555ec073b7e0, L_0x7f6577ab7210;
L_0x555ec073bb70 .reduce/nor L_0x555ec06e7680;
S_0x555ec0736460 .scope module, "sram" "sky130_sram_2kbyte_1rw1r_32x512_8" 2 90, 3 6 0, S_0x555ec0736280;
.timescale 0 0;
.port_info 0 /INPUT 1 "clk0";
.port_info 1 /INPUT 1 "csb0";
.port_info 2 /INPUT 1 "web0";
.port_info 3 /INPUT 4 "wmask0";
.port_info 4 /INPUT 9 "addr0";
.port_info 5 /INPUT 32 "din0";
.port_info 6 /OUTPUT 32 "dout0";
.port_info 7 /INPUT 1 "clk1";
.port_info 8 /INPUT 1 "csb1";
.port_info 9 /INPUT 9 "addr1";
.port_info 10 /OUTPUT 32 "dout1";
P_0x555ec0736660 .param/l "ADDR_WIDTH" 0 3 19, +C4<00000000000000000000000000001001>;
P_0x555ec07366a0 .param/l "DATA_WIDTH" 0 3 18, +C4<00000000000000000000000000100000>;
P_0x555ec07366e0 .param/l "DELAY" 0 3 22, +C4<00000000000000000000000000000011>;
P_0x555ec0736720 .param/l "NUM_WMASKS" 0 3 17, +C4<00000000000000000000000000000100>;
P_0x555ec0736760 .param/l "RAM_DEPTH" 0 3 20, +C4<00000000000000000000000000000001000000000>;
P_0x555ec07367a0 .param/l "T_HOLD" 0 3 24, +C4<00000000000000000000000000000001>;
P_0x555ec07367e0 .param/l "VERBOSE" 0 3 23, +C4<00000000000000000000000000000001>;
v0x555ec0737270_0 .net "addr0", 8 0, L_0x555ec073b440; 1 drivers
v0x555ec0737330_0 .var "addr0_reg", 8 0;
v0x555ec0737410_0 .net "addr1", 8 0, L_0x555ec073bcb0; 1 drivers
v0x555ec0737500_0 .var "addr1_reg", 8 0;
v0x555ec07375e0_0 .net "clk0", 0 0, o0x7f6577b000d8; alias, 0 drivers
v0x555ec0737720_0 .net "clk1", 0 0, o0x7f6577b000d8; alias, 0 drivers
v0x555ec07377c0_0 .net "csb0", 0 0, L_0x555ec073b320; 1 drivers
v0x555ec0737880_0 .var "csb0_reg", 0 0;
v0x555ec0737940_0 .net "csb1", 0 0, L_0x555ec073bb70; 1 drivers
v0x555ec0737a00_0 .var "csb1_reg", 0 0;
v0x555ec0737ac0_0 .net "din0", 31 0, o0x7f6577b001c8; alias, 0 drivers
v0x555ec0737b80_0 .var "din0_reg", 31 0;
v0x555ec0737c40_0 .var "dout0", 31 0;
v0x555ec0737d20_0 .var "dout1", 31 0;
v0x555ec0737e00 .array "mem", 511 0, 31 0;
v0x555ec0737ec0_0 .net "web0", 0 0, o0x7f6577b00288; alias, 0 drivers
v0x555ec0737f60_0 .var "web0_reg", 0 0;
v0x555ec0738110_0 .net "wmask0", 3 0, o0x7f6577b002e8; alias, 0 drivers
v0x555ec0738200_0 .var "wmask0_reg", 3 0;
S_0x555ec0736c60 .scope begin, "MEM_READ0" "MEM_READ0" 3 101, 3 101 0, S_0x555ec0736460;
.timescale 0 0;
S_0x555ec0736e60 .scope begin, "MEM_READ1" "MEM_READ1" 3 109, 3 109 0, S_0x555ec0736460;
.timescale 0 0;
S_0x555ec0737060 .scope begin, "MEM_WRITE0" "MEM_WRITE0" 3 85, 3 85 0, S_0x555ec0736460;
.timescale 0 0;
.scope S_0x555ec06b4020;
T_0 ;
%wait E_0x555ec06ed250;
%load/vec4 v0x555ec0739030_0;
%assign/vec4 v0x555ec0739340_0, 0;
%load/vec4 v0x555ec0739130_0;
%assign/vec4 v0x555ec0739400_0, 0;
%load/vec4 v0x555ec0739660_0;
%nor/r;
%load/vec4 v0x555ec0739870_0;
%and;
%assign/vec4 v0x555ec07394e0_0, 0;
%load/vec4 v0x555ec0739720_0;
%nor/r;
%assign/vec4 v0x555ec07395a0_0, 0;
%load/vec4 v0x555ec07394e0_0;
%nor/r;
%flag_set/vec4 8;
%jmp/0xz T_0.0, 8;
%load/vec4 v0x555ec0739ad0_0;
%load/vec4 v0x555ec0739340_0;
%parti/s 1, 9, 5;
%pad/u 6;
%muli 32, 0, 6;
%part/u 32;
%assign/vec4 v0x555ec0739910_0, 0;
T_0.0 ;
%load/vec4 v0x555ec07395a0_0;
%nor/r;
%flag_set/vec4 8;
%jmp/0xz T_0.2, 8;
%load/vec4 v0x555ec0739b90_0;
%load/vec4 v0x555ec0739400_0;
%parti/s 1, 9, 5;
%pad/u 6;
%muli 32, 0, 6;
%part/u 32;
%assign/vec4 v0x555ec07399f0_0, 0;
T_0.2 ;
%jmp T_0;
.thread T_0;
.scope S_0x555ec06c6750;
T_1 ;
%wait E_0x555ec06ed250;
%load/vec4 v0x555ec070b630_0;
%store/vec4 v0x555ec0734580_0, 0, 1;
%load/vec4 v0x555ec0734c00_0;
%store/vec4 v0x555ec0734cc0_0, 0, 1;
%load/vec4 v0x555ec0734e90_0;
%store/vec4 v0x555ec0734f70_0, 0, 4;
%load/vec4 v0x555ec0711350_0;
%store/vec4 v0x555ec06e7740_0, 0, 9;
%load/vec4 v0x555ec07347c0_0;
%store/vec4 v0x555ec07348a0_0, 0, 32;
%delay 1, 0;
%pushi/vec4 4294967295, 4294967295, 32;
%store/vec4 v0x555ec0734980_0, 0, 32;
%load/vec4 v0x555ec0734580_0;
%nor/r;
%load/vec4 v0x555ec0734cc0_0;
%and;
%pushi/vec4 1, 0, 1;
%and;
%flag_set/vec4 8;
%jmp/0xz T_1.0, 8;
%load/vec4 v0x555ec06e7740_0;
%pad/u 11;
%ix/vec4 4;
%load/vec4a v0x555ec0734b40, 4;
%vpi_call 3 59 "$display", $time, " Reading %m addr0=%b dout0=%b", v0x555ec06e7740_0, S<0,vec4,u32> {1 0 0};
T_1.0 ;
%load/vec4 v0x555ec0734580_0;
%nor/r;
%load/vec4 v0x555ec0734cc0_0;
%nor/r;
%and;
%pushi/vec4 1, 0, 1;
%and;
%flag_set/vec4 8;
%jmp/0xz T_1.2, 8;
%vpi_call 3 61 "$display", $time, " Writing %m addr0=%b din0=%b wmask0=%b", v0x555ec06e7740_0, v0x555ec07348a0_0, v0x555ec0734f70_0 {0 0 0};
T_1.2 ;
%jmp T_1;
.thread T_1;
.scope S_0x555ec06c6750;
T_2 ;
%wait E_0x555ec06ed250;
%load/vec4 v0x555ec0734640_0;
%store/vec4 v0x555ec0734700_0, 0, 1;
%load/vec4 v0x555ec06e9920_0;
%store/vec4 v0x555ec06eb010_0, 0, 9;
%load/vec4 v0x555ec070b630_0;
%nor/r;
%load/vec4 v0x555ec0734c00_0;
%nor/r;
%and;
%load/vec4 v0x555ec0734640_0;
%nor/r;
%and;
%load/vec4 v0x555ec0711350_0;
%load/vec4 v0x555ec06e9920_0;
%cmp/e;
%flag_get/vec4 4;
%and;
%flag_set/vec4 8;
%jmp/0xz T_2.0, 8;
%vpi_call 3 74 "$display", $time, " WARNING: Writing and reading addr0=%b and addr1=%b simultaneously!", v0x555ec0711350_0, v0x555ec06e9920_0 {0 0 0};
T_2.0 ;
%delay 1, 0;
%pushi/vec4 4294967295, 4294967295, 32;
%store/vec4 v0x555ec0734a60_0, 0, 32;
%load/vec4 v0x555ec0734700_0;
%nor/r;
%pushi/vec4 1, 0, 1;
%and;
%flag_set/vec4 8;
%jmp/0xz T_2.2, 8;
%load/vec4 v0x555ec06eb010_0;
%pad/u 11;
%ix/vec4 4;
%load/vec4a v0x555ec0734b40, 4;
%vpi_call 3 77 "$display", $time, " Reading %m addr1=%b dout1=%b", v0x555ec06eb010_0, S<0,vec4,u32> {1 0 0};
T_2.2 ;
%jmp T_2;
.thread T_2;
.scope S_0x555ec06c6750;
T_3 ;
%wait E_0x555ec06eeb20;
%fork t_1, S_0x555ec0716160;
%jmp t_0;
.scope S_0x555ec0716160;
t_1 ;
%load/vec4 v0x555ec0734580_0;
%nor/r;
%load/vec4 v0x555ec0734cc0_0;
%nor/r;
%and;
%flag_set/vec4 8;
%jmp/0xz T_3.0, 8;
%load/vec4 v0x555ec0734f70_0;
%parti/s 1, 0, 2;
%flag_set/vec4 8;
%jmp/0xz T_3.2, 8;
%load/vec4 v0x555ec07348a0_0;
%parti/s 8, 0, 2;
%load/vec4 v0x555ec06e7740_0;
%pad/u 11;
%ix/vec4 4;
%flag_mov 8, 4;
%ix/load 5, 0, 0;
%flag_set/imm 4, 0;
%flag_or 4, 8;
%store/vec4a v0x555ec0734b40, 4, 5;
T_3.2 ;
%load/vec4 v0x555ec0734f70_0;
%parti/s 1, 1, 2;
%flag_set/vec4 8;
%jmp/0xz T_3.4, 8;
%load/vec4 v0x555ec07348a0_0;
%parti/s 8, 8, 5;
%load/vec4 v0x555ec06e7740_0;
%pad/u 11;
%ix/vec4 4;
%flag_mov 8, 4;
%ix/load 5, 8, 0;
%flag_set/imm 4, 0;
%flag_or 4, 8;
%store/vec4a v0x555ec0734b40, 4, 5;
T_3.4 ;
%load/vec4 v0x555ec0734f70_0;
%parti/s 1, 2, 3;
%flag_set/vec4 8;
%jmp/0xz T_3.6, 8;
%load/vec4 v0x555ec07348a0_0;
%parti/s 8, 16, 6;
%load/vec4 v0x555ec06e7740_0;
%pad/u 11;
%ix/vec4 4;
%flag_mov 8, 4;
%ix/load 5, 16, 0;
%flag_set/imm 4, 0;
%flag_or 4, 8;
%store/vec4a v0x555ec0734b40, 4, 5;
T_3.6 ;
%load/vec4 v0x555ec0734f70_0;
%parti/s 1, 3, 3;
%flag_set/vec4 8;
%jmp/0xz T_3.8, 8;
%load/vec4 v0x555ec07348a0_0;
%parti/s 8, 24, 6;
%load/vec4 v0x555ec06e7740_0;
%pad/u 11;
%ix/vec4 4;
%flag_mov 8, 4;
%ix/load 5, 24, 0;
%flag_set/imm 4, 0;
%flag_or 4, 8;
%store/vec4a v0x555ec0734b40, 4, 5;
T_3.8 ;
T_3.0 ;
%end;
.scope S_0x555ec06c6750;
t_0 %join;
%jmp T_3;
.thread T_3;
.scope S_0x555ec06c6750;
T_4 ;
%wait E_0x555ec06eeb20;
%fork t_3, S_0x555ec0715e40;
%jmp t_2;
.scope S_0x555ec0715e40;
t_3 ;
%load/vec4 v0x555ec0734580_0;
%nor/r;
%load/vec4 v0x555ec0734cc0_0;
%and;
%flag_set/vec4 8;
%jmp/0xz T_4.0, 8;
%load/vec4 v0x555ec06e7740_0;
%pad/u 11;
%ix/vec4 4;
%load/vec4a v0x555ec0734b40, 4;
%assign/vec4 v0x555ec0734980_0, 3;
T_4.0 ;
%end;
.scope S_0x555ec06c6750;
t_2 %join;
%jmp T_4;
.thread T_4;
.scope S_0x555ec06c6750;
T_5 ;
%wait E_0x555ec06eeb20;
%fork t_5, S_0x555ec0715fd0;
%jmp t_4;
.scope S_0x555ec0715fd0;
t_5 ;
%load/vec4 v0x555ec0734700_0;
%nor/r;
%flag_set/vec4 8;
%jmp/0xz T_5.0, 8;
%load/vec4 v0x555ec06eb010_0;
%pad/u 11;
%ix/vec4 4;
%load/vec4a v0x555ec0734b40, 4;
%assign/vec4 v0x555ec0734a60_0, 3;
T_5.0 ;
%end;
.scope S_0x555ec06c6750;
t_4 %join;
%jmp T_5;
.thread T_5;
.scope S_0x555ec0736460;
T_6 ;
%wait E_0x555ec06ed250;
%load/vec4 v0x555ec07377c0_0;
%store/vec4 v0x555ec0737880_0, 0, 1;
%load/vec4 v0x555ec0737ec0_0;
%store/vec4 v0x555ec0737f60_0, 0, 1;
%load/vec4 v0x555ec0738110_0;
%store/vec4 v0x555ec0738200_0, 0, 4;
%load/vec4 v0x555ec0737270_0;
%store/vec4 v0x555ec0737330_0, 0, 9;
%load/vec4 v0x555ec0737ac0_0;
%store/vec4 v0x555ec0737b80_0, 0, 32;
%delay 1, 0;
%pushi/vec4 4294967295, 4294967295, 32;
%store/vec4 v0x555ec0737c40_0, 0, 32;
%load/vec4 v0x555ec0737880_0;
%nor/r;
%load/vec4 v0x555ec0737f60_0;
%and;
%pushi/vec4 1, 0, 1;
%and;
%flag_set/vec4 8;
%jmp/0xz T_6.0, 8;
%load/vec4 v0x555ec0737330_0;
%pad/u 11;
%ix/vec4 4;
%load/vec4a v0x555ec0737e00, 4;
%vpi_call 3 59 "$display", $time, " Reading %m addr0=%b dout0=%b", v0x555ec0737330_0, S<0,vec4,u32> {1 0 0};
T_6.0 ;
%load/vec4 v0x555ec0737880_0;
%nor/r;
%load/vec4 v0x555ec0737f60_0;
%nor/r;
%and;
%pushi/vec4 1, 0, 1;
%and;
%flag_set/vec4 8;
%jmp/0xz T_6.2, 8;
%vpi_call 3 61 "$display", $time, " Writing %m addr0=%b din0=%b wmask0=%b", v0x555ec0737330_0, v0x555ec0737b80_0, v0x555ec0738200_0 {0 0 0};
T_6.2 ;
%jmp T_6;
.thread T_6;
.scope S_0x555ec0736460;
T_7 ;
%wait E_0x555ec06ed250;
%load/vec4 v0x555ec0737940_0;
%store/vec4 v0x555ec0737a00_0, 0, 1;
%load/vec4 v0x555ec0737410_0;
%store/vec4 v0x555ec0737500_0, 0, 9;
%load/vec4 v0x555ec07377c0_0;
%nor/r;
%load/vec4 v0x555ec0737ec0_0;
%nor/r;
%and;
%load/vec4 v0x555ec0737940_0;
%nor/r;
%and;
%load/vec4 v0x555ec0737270_0;
%load/vec4 v0x555ec0737410_0;
%cmp/e;
%flag_get/vec4 4;
%and;
%flag_set/vec4 8;
%jmp/0xz T_7.0, 8;
%vpi_call 3 74 "$display", $time, " WARNING: Writing and reading addr0=%b and addr1=%b simultaneously!", v0x555ec0737270_0, v0x555ec0737410_0 {0 0 0};
T_7.0 ;
%delay 1, 0;
%pushi/vec4 4294967295, 4294967295, 32;
%store/vec4 v0x555ec0737d20_0, 0, 32;
%load/vec4 v0x555ec0737a00_0;
%nor/r;
%pushi/vec4 1, 0, 1;
%and;
%flag_set/vec4 8;
%jmp/0xz T_7.2, 8;
%load/vec4 v0x555ec0737500_0;
%pad/u 11;
%ix/vec4 4;
%load/vec4a v0x555ec0737e00, 4;
%vpi_call 3 77 "$display", $time, " Reading %m addr1=%b dout1=%b", v0x555ec0737500_0, S<0,vec4,u32> {1 0 0};
T_7.2 ;
%jmp T_7;
.thread T_7;
.scope S_0x555ec0736460;
T_8 ;
%wait E_0x555ec06eeb20;
%fork t_7, S_0x555ec0737060;
%jmp t_6;
.scope S_0x555ec0737060;
t_7 ;
%load/vec4 v0x555ec0737880_0;
%nor/r;
%load/vec4 v0x555ec0737f60_0;
%nor/r;
%and;
%flag_set/vec4 8;
%jmp/0xz T_8.0, 8;
%load/vec4 v0x555ec0738200_0;
%parti/s 1, 0, 2;
%flag_set/vec4 8;
%jmp/0xz T_8.2, 8;
%load/vec4 v0x555ec0737b80_0;
%parti/s 8, 0, 2;
%load/vec4 v0x555ec0737330_0;
%pad/u 11;
%ix/vec4 4;
%flag_mov 8, 4;
%ix/load 5, 0, 0;
%flag_set/imm 4, 0;
%flag_or 4, 8;
%store/vec4a v0x555ec0737e00, 4, 5;
T_8.2 ;
%load/vec4 v0x555ec0738200_0;
%parti/s 1, 1, 2;
%flag_set/vec4 8;
%jmp/0xz T_8.4, 8;
%load/vec4 v0x555ec0737b80_0;
%parti/s 8, 8, 5;
%load/vec4 v0x555ec0737330_0;
%pad/u 11;
%ix/vec4 4;
%flag_mov 8, 4;
%ix/load 5, 8, 0;
%flag_set/imm 4, 0;
%flag_or 4, 8;
%store/vec4a v0x555ec0737e00, 4, 5;
T_8.4 ;
%load/vec4 v0x555ec0738200_0;
%parti/s 1, 2, 3;
%flag_set/vec4 8;
%jmp/0xz T_8.6, 8;
%load/vec4 v0x555ec0737b80_0;
%parti/s 8, 16, 6;
%load/vec4 v0x555ec0737330_0;
%pad/u 11;
%ix/vec4 4;
%flag_mov 8, 4;
%ix/load 5, 16, 0;
%flag_set/imm 4, 0;
%flag_or 4, 8;
%store/vec4a v0x555ec0737e00, 4, 5;
T_8.6 ;
%load/vec4 v0x555ec0738200_0;
%parti/s 1, 3, 3;
%flag_set/vec4 8;
%jmp/0xz T_8.8, 8;
%load/vec4 v0x555ec0737b80_0;
%parti/s 8, 24, 6;
%load/vec4 v0x555ec0737330_0;
%pad/u 11;
%ix/vec4 4;
%flag_mov 8, 4;
%ix/load 5, 24, 0;
%flag_set/imm 4, 0;
%flag_or 4, 8;
%store/vec4a v0x555ec0737e00, 4, 5;
T_8.8 ;
T_8.0 ;
%end;
.scope S_0x555ec0736460;
t_6 %join;
%jmp T_8;
.thread T_8;
.scope S_0x555ec0736460;
T_9 ;
%wait E_0x555ec06eeb20;
%fork t_9, S_0x555ec0736c60;
%jmp t_8;
.scope S_0x555ec0736c60;
t_9 ;
%load/vec4 v0x555ec0737880_0;
%nor/r;
%load/vec4 v0x555ec0737f60_0;
%and;
%flag_set/vec4 8;
%jmp/0xz T_9.0, 8;
%load/vec4 v0x555ec0737330_0;
%pad/u 11;
%ix/vec4 4;
%load/vec4a v0x555ec0737e00, 4;
%assign/vec4 v0x555ec0737c40_0, 3;
T_9.0 ;
%end;
.scope S_0x555ec0736460;
t_8 %join;
%jmp T_9;
.thread T_9;
.scope S_0x555ec0736460;
T_10 ;
%wait E_0x555ec06eeb20;
%fork t_11, S_0x555ec0736e60;
%jmp t_10;
.scope S_0x555ec0736e60;
t_11 ;
%load/vec4 v0x555ec0737a00_0;
%nor/r;
%flag_set/vec4 8;
%jmp/0xz T_10.0, 8;
%load/vec4 v0x555ec0737500_0;
%pad/u 11;
%ix/vec4 4;
%load/vec4a v0x555ec0737e00, 4;
%assign/vec4 v0x555ec0737d20_0, 3;
T_10.0 ;
%end;
.scope S_0x555ec0736460;
t_10 %join;
%jmp T_10;
.thread T_10;
# The file index is used to find the file name in the following table.
:file_names 4;
"N/A";
"<interactive>";
"SRAMWrapper.v";
"sky130_sram_2kbyte_1rw1r_32x512_8_2.v";