diff options
author | joshuayun <joshua@joshuayun.com> | 2022-01-10 09:40:59 -0500 |
---|---|---|
committer | joshuayun <joshua@joshuayun.com> | 2022-01-10 09:40:59 -0500 |
commit | 2f1be3c7aabb42ac3ad4347595d5d7be0e2ad6a0 (patch) | |
tree | 74dc2391aad79a8e0d0dd1d5ebbb0f1b664c0a9c | |
parent | 9dc6d7180438031d25daf6a68a3959c3cfa9312d (diff) | |
download | riscv-processor-inorder-2f1be3c7aabb42ac3ad4347595d5d7be0e2ad6a0.tar.gz |
fpu added
-rwxr-xr-x | verilog/fpu/a.out | 1237 | ||||
-rw-r--r-- | verilog/fpu/fpu_3.v | 36 | ||||
-rw-r--r-- | verilog/fpu/fpu_bench.v | 69 |
3 files changed, 895 insertions, 447 deletions
diff --git a/verilog/fpu/a.out b/verilog/fpu/a.out index 6b5c150..da37dbf 100755 --- a/verilog/fpu/a.out +++ b/verilog/fpu/a.out @@ -7,286 +7,289 @@ :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_0x5592cfc9f490 .scope module, "fpu_bench" "fpu_bench" 2 5; +S_0x562fb3df3a70 .scope module, "fpu_bench" "fpu_bench" 2 5; .timescale -6 -9; -v0x5592cfd06280_0 .var "add", 0 0; -v0x5592cfd06340_0 .net "fpu_output", 31 0, L_0x5592cfd1eeb0; 1 drivers -v0x5592cfd06410_0 .var "input1", 31 0; -v0x5592cfd06510_0 .var "input2", 31 0; -S_0x5592cfc9da90 .scope module, "fpu0" "fpu_2" 2 11, 3 2 0, S_0x5592cfc9f490; +v0x562fb3e81df0_0 .var "add", 0 0; +v0x562fb3e81eb0_0 .var "float1", 63 0; +v0x562fb3e81f70_0 .var "float2", 63 0; +v0x562fb3e82060_0 .var "float_out", 63 0; +v0x562fb3e82140_0 .net "fpu_output", 31 0, L_0x562fb3e9ac30; 1 drivers +v0x562fb3e82200_0 .var "input1", 31 0; +v0x562fb3e822d0_0 .var "input2", 31 0; +S_0x562fb3df2070 .scope module, "fpu0" "fpu_2" 2 12, 3 2 0, S_0x562fb3df3a70; .timescale -6 -9; .port_info 0 /INPUT 1 "add_not"; .port_info 1 /INPUT 32 "a_in"; .port_info 2 /INPUT 32 "b_in"; .port_info 3 /OUTPUT 32 "out"; -L_0x5592cfd06840 .functor XOR 1, L_0x5592cfd07040, L_0x5592cfd070e0, C4<0>, C4<0>; -L_0x5592cfd07290 .functor NOT 1, L_0x5592cfd06840, C4<0>, C4<0>, C4<0>; -L_0x5592cfd07180 .functor NOT 24, L_0x5592cfd088a0, C4<000000000000000000000000>, C4<000000000000000000000000>, C4<000000000000000000000000>; -L_0x5592cfd19060 .functor NOT 24, L_0x5592cfd08c20, C4<000000000000000000000000>, C4<000000000000000000000000>, C4<000000000000000000000000>; -L_0x5592cfd196e0 .functor NOT 25, L_0x5592cfd1a420, C4<0000000000000000000000000>, C4<0000000000000000000000000>, C4<0000000000000000000000000>; -L_0x5592cfd1a5b0 .functor OR 1, L_0x5592cfd1aca0, L_0x5592cfd07290, C4<0>, C4<0>; -L_0x5592cfd1aeb0 .functor NOT 25, L_0x5592cfd1a980, C4<0000000000000000000000000>, C4<0000000000000000000000000>, C4<0000000000000000000000000>; -L_0x5592cfd1afc0 .functor OR 1, L_0x5592cfd1b620, L_0x5592cfd1b870, C4<0>, C4<0>; -L_0x5592cfd1ba00 .functor AND 1, v0x5592cfd06280_0, L_0x5592cfd1afc0, C4<1>, C4<1>; -L_0x5592cfd1bdc0 .functor XOR 1, L_0x5592cfd1bac0, L_0x5592cfd1bd20, C4<0>, C4<0>; -L_0x5592cfd1bf30 .functor XOR 1, L_0x5592cfd1bdc0, v0x5592cfd06280_0, C4<0>, C4<0>; -L_0x5592cfd1e3a0 .functor AND 1, L_0x5592cfd1e0b0, L_0x5592cfd07290, C4<1>, C4<1>; -L_0x5592cfd1e570 .functor AND 1, L_0x5592cfd1fe90, L_0x5592cfd07290, C4<1>, C4<1>; -v0x5592cfcff120_0 .net *"_ivl_1", 7 0, L_0x5592cfd065e0; 1 drivers -v0x5592cfcff220_0 .net *"_ivl_100", 24 0, L_0x5592cfd19c60; 1 drivers -L_0x7ff85d2be1c8 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; -v0x5592cfcff300_0 .net *"_ivl_103", 0 0, L_0x7ff85d2be1c8; 1 drivers -v0x5592cfcff3c0_0 .net *"_ivl_104", 24 0, L_0x5592cfd19d50; 1 drivers -L_0x7ff85d2be210 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; -v0x5592cfcff4a0_0 .net *"_ivl_107", 0 0, L_0x7ff85d2be210; 1 drivers -v0x5592cfcff5d0_0 .net *"_ivl_110", 24 0, L_0x5592cfd1a130; 1 drivers -L_0x7ff85d2be258 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; -v0x5592cfcff6b0_0 .net *"_ivl_113", 0 0, L_0x7ff85d2be258; 1 drivers -v0x5592cfcff790_0 .net *"_ivl_114", 24 0, L_0x5592cfd1a420; 1 drivers -L_0x7ff85d2be2a0 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; -v0x5592cfcff870_0 .net *"_ivl_117", 0 0, L_0x7ff85d2be2a0; 1 drivers -v0x5592cfcff950_0 .net *"_ivl_118", 24 0, L_0x5592cfd196e0; 1 drivers -v0x5592cfcffa30_0 .net *"_ivl_120", 24 0, L_0x5592cfd1a510; 1 drivers -L_0x7ff85d2be2e8 .functor BUFT 1, C4<0000000000000000000000001>, C4<0>, C4<0>, C4<0>; -v0x5592cfcffb10_0 .net/2u *"_ivl_122", 24 0, L_0x7ff85d2be2e8; 1 drivers -v0x5592cfcffbf0_0 .net *"_ivl_129", 0 0, L_0x5592cfd1aca0; 1 drivers -v0x5592cfcffcd0_0 .net *"_ivl_13", 0 0, L_0x5592cfd06c70; 1 drivers -v0x5592cfcffdb0_0 .net *"_ivl_130", 0 0, L_0x5592cfd1a5b0; 1 drivers -v0x5592cfcffe90_0 .net *"_ivl_132", 24 0, L_0x5592cfd1aeb0; 1 drivers -L_0x7ff85d2be330 .functor BUFT 1, C4<0000000000000000000000001>, C4<0>, C4<0>, C4<0>; -v0x5592cfcfff70_0 .net/2u *"_ivl_134", 24 0, L_0x7ff85d2be330; 1 drivers -v0x5592cfd00050_0 .net *"_ivl_136", 24 0, L_0x5592cfd1af20; 1 drivers -v0x5592cfd00130_0 .net *"_ivl_143", 0 0, L_0x5592cfd1b620; 1 drivers -v0x5592cfd00210_0 .net *"_ivl_145", 0 0, L_0x5592cfd1b870; 1 drivers -v0x5592cfd002f0_0 .net *"_ivl_146", 0 0, L_0x5592cfd1afc0; 1 drivers -v0x5592cfd003d0_0 .net *"_ivl_148", 0 0, L_0x5592cfd1ba00; 1 drivers -v0x5592cfd004b0_0 .net *"_ivl_15", 7 0, L_0x5592cfd06d60; 1 drivers -v0x5592cfd00590_0 .net *"_ivl_151", 0 0, L_0x5592cfd1bac0; 1 drivers -v0x5592cfd00670_0 .net *"_ivl_153", 0 0, L_0x5592cfd1bd20; 1 drivers -v0x5592cfd00750_0 .net *"_ivl_154", 0 0, L_0x5592cfd1bdc0; 1 drivers -v0x5592cfd00830_0 .net *"_ivl_156", 0 0, L_0x5592cfd1bf30; 1 drivers -v0x5592cfd00910_0 .net *"_ivl_158", 0 0, L_0x5592cfd1c030; 1 drivers -L_0x7ff85d2be3c0 .functor BUFT 1, C4<01>, C4<0>, C4<0>, C4<0>; -v0x5592cfd009d0_0 .net/2u *"_ivl_160", 1 0, L_0x7ff85d2be3c0; 1 drivers -L_0x7ff85d2be408 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>; -v0x5592cfd00ab0_0 .net/2u *"_ivl_162", 1 0, L_0x7ff85d2be408; 1 drivers -v0x5592cfd00b90_0 .net *"_ivl_164", 1 0, L_0x5592cfd1c2a0; 1 drivers -v0x5592cfd00c70_0 .net *"_ivl_167", 0 0, L_0x5592cfd1c3e0; 1 drivers -v0x5592cfd00d50_0 .net *"_ivl_168", 1 0, L_0x5592cfd1c660; 1 drivers -v0x5592cfd00e30_0 .net *"_ivl_17", 7 0, L_0x5592cfd06e50; 1 drivers -L_0x7ff85d2be450 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; -v0x5592cfd00f10_0 .net *"_ivl_171", 0 0, L_0x7ff85d2be450; 1 drivers -v0x5592cfd00ff0_0 .net *"_ivl_172", 1 0, L_0x5592cfd1c7a0; 1 drivers -v0x5592cfd010d0_0 .net *"_ivl_174", 0 0, L_0x5592cfd1cb20; 1 drivers -v0x5592cfd01190_0 .net *"_ivl_177", 0 0, L_0x5592cfd1cbc0; 1 drivers -v0x5592cfd01270_0 .net *"_ivl_178", 1 0, L_0x5592cfd1ce60; 1 drivers -L_0x7ff85d2be498 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; -v0x5592cfd01350_0 .net *"_ivl_181", 0 0, L_0x7ff85d2be498; 1 drivers -v0x5592cfd01430_0 .net *"_ivl_183", 0 0, L_0x5592cfd1cfa0; 1 drivers -v0x5592cfd01510_0 .net *"_ivl_184", 1 0, L_0x5592cfd1d250; 1 drivers -L_0x7ff85d2be4e0 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; -v0x5592cfd015f0_0 .net *"_ivl_187", 0 0, L_0x7ff85d2be4e0; 1 drivers -v0x5592cfd016d0_0 .net *"_ivl_188", 1 0, L_0x5592cfd1d390; 1 drivers -v0x5592cfd017b0_0 .net *"_ivl_190", 1 0, L_0x5592cfd1d740; 1 drivers -v0x5592cfd01890_0 .net *"_ivl_193", 0 0, L_0x5592cfd1d8d0; 1 drivers -v0x5592cfd01970_0 .net *"_ivl_197", 0 0, L_0x5592cfd1dbf0; 1 drivers -v0x5592cfd01a50_0 .net *"_ivl_198", 7 0, L_0x5592cfd1dce0; 1 drivers -v0x5592cfd01b30_0 .net *"_ivl_200", 7 0, L_0x5592cfd1e010; 1 drivers -v0x5592cfd01c10_0 .net *"_ivl_203", 0 0, L_0x5592cfd1e0b0; 1 drivers -v0x5592cfd01cf0_0 .net *"_ivl_204", 0 0, L_0x5592cfd1e3a0; 1 drivers -L_0x7ff85d2be528 .functor BUFT 1, C4<00000001>, C4<0>, C4<0>, C4<0>; -v0x5592cfd01dd0_0 .net/2u *"_ivl_206", 7 0, L_0x7ff85d2be528; 1 drivers -v0x5592cfd01eb0_0 .net *"_ivl_208", 7 0, L_0x5592cfd1e4d0; 1 drivers -v0x5592cfd01f90_0 .net *"_ivl_21", 0 0, L_0x5592cfd07040; 1 drivers -v0x5592cfd02070_0 .net *"_ivl_210", 7 0, L_0x5592cfd1e630; 1 drivers -v0x5592cfd02150_0 .net *"_ivl_212", 7 0, L_0x5592cfd1e9c0; 1 drivers -v0x5592cfd02230_0 .net *"_ivl_214", 7 0, L_0x5592cfd1eb00; 1 drivers -v0x5592cfd02310_0 .net *"_ivl_220", 22 0, L_0x5592cfd1f040; 1 drivers -v0x5592cfd023f0_0 .net *"_ivl_222", 0 0, L_0x5592cfd1f360; 1 drivers -v0x5592cfd024d0_0 .net *"_ivl_224", 22 0, L_0x5592cfd1f490; 1 drivers -v0x5592cfd025b0_0 .net *"_ivl_226", 22 0, L_0x5592cfd1f7c0; 1 drivers -v0x5592cfd02690_0 .net *"_ivl_227", 22 0, L_0x5592cfd1f860; 1 drivers -v0x5592cfd02770_0 .net *"_ivl_229", 22 0, L_0x5592cfd1fc40; 1 drivers -v0x5592cfd02850_0 .net *"_ivl_23", 0 0, L_0x5592cfd070e0; 1 drivers -v0x5592cfd02930_0 .net *"_ivl_232", 0 0, L_0x5592cfd1fe90; 1 drivers -v0x5592cfd02e20_0 .net *"_ivl_233", 0 0, L_0x5592cfd1e570; 1 drivers -v0x5592cfd02f00_0 .net *"_ivl_236", 22 0, L_0x5592cfd201e0; 1 drivers -v0x5592cfd02fe0_0 .net *"_ivl_238", 22 0, L_0x5592cfd20280; 1 drivers -v0x5592cfd030c0_0 .net *"_ivl_24", 0 0, L_0x5592cfd06840; 1 drivers -v0x5592cfd031a0_0 .net *"_ivl_240", 22 0, L_0x5592cfd205e0; 1 drivers -v0x5592cfd03280_0 .net *"_ivl_241", 22 0, L_0x5592cfd20680; 1 drivers -v0x5592cfd03360_0 .net *"_ivl_243", 22 0, L_0x5592cfd20a90; 1 drivers -v0x5592cfd03440_0 .net *"_ivl_245", 22 0, L_0x5592cfd20c20; 1 drivers -v0x5592cfd03520_0 .net *"_ivl_29", 7 0, L_0x5592cfd07350; 1 drivers -v0x5592cfd03600_0 .net *"_ivl_3", 7 0, L_0x5592cfd066b0; 1 drivers -v0x5592cfd036e0_0 .net *"_ivl_31", 0 0, L_0x5592cfd073f0; 1 drivers -L_0x7ff85d2be018 .functor BUFT 1, C4<1>, C4<0>, C4<0>, C4<0>; -v0x5592cfd037a0_0 .net/2u *"_ivl_32", 0 0, L_0x7ff85d2be018; 1 drivers -v0x5592cfd03880_0 .net *"_ivl_35", 22 0, L_0x5592cfd07560; 1 drivers -v0x5592cfd03960_0 .net *"_ivl_36", 23 0, L_0x5592cfd07600; 1 drivers -L_0x7ff85d2be060 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; -v0x5592cfd03a40_0 .net/2u *"_ivl_38", 0 0, L_0x7ff85d2be060; 1 drivers -v0x5592cfd03b20_0 .net *"_ivl_41", 22 0, L_0x5592cfd077d0; 1 drivers -v0x5592cfd03c00_0 .net *"_ivl_42", 23 0, L_0x5592cfd07870; 1 drivers -v0x5592cfd03ce0_0 .net *"_ivl_47", 7 0, L_0x5592cfd07c10; 1 drivers -v0x5592cfd03dc0_0 .net *"_ivl_49", 0 0, L_0x5592cfd079e0; 1 drivers -L_0x7ff85d2be0a8 .functor BUFT 1, C4<1>, C4<0>, C4<0>, C4<0>; -v0x5592cfd03e80_0 .net/2u *"_ivl_50", 0 0, L_0x7ff85d2be0a8; 1 drivers -v0x5592cfd03f60_0 .net *"_ivl_53", 22 0, L_0x5592cfd07db0; 1 drivers -v0x5592cfd04040_0 .net *"_ivl_54", 23 0, L_0x5592cfd07f10; 1 drivers -L_0x7ff85d2be0f0 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; -v0x5592cfd04120_0 .net/2u *"_ivl_56", 0 0, L_0x7ff85d2be0f0; 1 drivers -v0x5592cfd04200_0 .net *"_ivl_59", 22 0, L_0x5592cfd08080; 1 drivers -v0x5592cfd042e0_0 .net *"_ivl_60", 23 0, L_0x5592cfd081f0; 1 drivers -v0x5592cfd043c0_0 .net *"_ivl_65", 0 0, L_0x5592cfd085d0; 1 drivers -v0x5592cfd044a0_0 .net *"_ivl_66", 23 0, L_0x5592cfd08670; 1 drivers -v0x5592cfd04580_0 .net *"_ivl_7", 7 0, L_0x5592cfd06950; 1 drivers -v0x5592cfd04660_0 .net *"_ivl_71", 0 0, L_0x5592cfd089e0; 1 drivers -v0x5592cfd04740_0 .net *"_ivl_72", 23 0, L_0x5592cfd08b80; 1 drivers -v0x5592cfd04820_0 .net *"_ivl_77", 0 0, L_0x5592cfd08e70; 1 drivers -v0x5592cfd04900_0 .net *"_ivl_78", 23 0, L_0x5592cfd07180; 1 drivers -L_0x7ff85d2be138 .functor BUFT 1, C4<000000000000000000000001>, C4<0>, C4<0>, C4<0>; -v0x5592cfd049e0_0 .net/2u *"_ivl_80", 23 0, L_0x7ff85d2be138; 1 drivers -v0x5592cfd04ac0_0 .net *"_ivl_82", 23 0, L_0x5592cfd18fc0; 1 drivers -v0x5592cfd04ba0_0 .net *"_ivl_84", 23 0, L_0x5592cfd19290; 1 drivers -v0x5592cfd04c80_0 .net *"_ivl_89", 0 0, L_0x5592cfd195a0; 1 drivers -v0x5592cfd04d60_0 .net *"_ivl_9", 7 0, L_0x5592cfd06a20; 1 drivers -v0x5592cfd04e40_0 .net *"_ivl_90", 23 0, L_0x5592cfd19060; 1 drivers -L_0x7ff85d2be180 .functor BUFT 1, C4<000000000000000000000001>, C4<0>, C4<0>, C4<0>; -v0x5592cfd04f20_0 .net/2u *"_ivl_92", 23 0, L_0x7ff85d2be180; 1 drivers -v0x5592cfd05000_0 .net *"_ivl_94", 23 0, L_0x5592cfd19640; 1 drivers -v0x5592cfd050e0_0 .net *"_ivl_96", 23 0, L_0x5592cfd198e0; 1 drivers -v0x5592cfd051c0_0 .net "a_in", 31 0, v0x5592cfd06410_0; 1 drivers -v0x5592cfd052a0_0 .net "a_shft_sig", 23 0, L_0x5592cfd088a0; 1 drivers -v0x5592cfd05380_0 .net "a_sig", 23 0, L_0x5592cfd07a80; 1 drivers -v0x5592cfd05460_0 .net "a_sign_sig", 23 0, L_0x5592cfd193d0; 1 drivers -v0x5592cfd05540_0 .net "add_not", 0 0, v0x5592cfd06280_0; 1 drivers -v0x5592cfd05600_0 .net "b_in", 31 0, v0x5592cfd06510_0; 1 drivers -v0x5592cfd056e0_0 .net "b_shft_sig", 23 0, L_0x5592cfd08c20; 1 drivers -v0x5592cfd057c0_0 .net "b_sig", 23 0, L_0x5592cfd08360; 1 drivers -v0x5592cfd058a0_0 .net "b_sign_sig", 23 0, L_0x5592cfd19a20; 1 drivers -v0x5592cfd05980_0 .net "diff", 7 0, L_0x5592cfd067a0; 1 drivers -v0x5592cfd05a60_0 .net "exp", 7 0, L_0x5592cfd06ef0; 1 drivers -v0x5592cfd05b20_0 .net "exp_diff", 7 0, L_0x5592cfd1b4e0; 1 drivers -v0x5592cfd05bc0_0 .net "neg_diff", 7 0, L_0x5592cfd06ac0; 1 drivers -v0x5592cfd05c80_0 .net "out", 31 0, L_0x5592cfd1eeb0; alias, 1 drivers -v0x5592cfd05d60_0 .net "same_sign", 0 0, L_0x5592cfd07290; 1 drivers -v0x5592cfd05e20_0 .net "sig_diff", 24 0, L_0x5592cfd1a840; 1 drivers -v0x5592cfd05f00_0 .net "sig_diff_final", 24 0, v0x5592cfcfec10_0; 1 drivers -v0x5592cfd05fc0_0 .net "sig_final", 24 0, L_0x5592cfd1b220; 1 drivers -v0x5592cfd06060_0 .net "sig_op", 24 0, L_0x5592cfd1a980; 1 drivers -v0x5592cfd06120_0 .net "sig_sum", 24 0, L_0x5592cfd19ff0; 1 drivers -L_0x5592cfd065e0 .part v0x5592cfd06410_0, 23, 8; -L_0x5592cfd066b0 .part v0x5592cfd06510_0, 23, 8; -L_0x5592cfd067a0 .arith/sub 8, L_0x5592cfd065e0, L_0x5592cfd066b0; -L_0x5592cfd06950 .part v0x5592cfd06510_0, 23, 8; -L_0x5592cfd06a20 .part v0x5592cfd06410_0, 23, 8; -L_0x5592cfd06ac0 .arith/sub 8, L_0x5592cfd06950, L_0x5592cfd06a20; -L_0x5592cfd06c70 .part L_0x5592cfd067a0, 7, 1; -L_0x5592cfd06d60 .part v0x5592cfd06510_0, 23, 8; -L_0x5592cfd06e50 .part v0x5592cfd06410_0, 23, 8; -L_0x5592cfd06ef0 .functor MUXZ 8, L_0x5592cfd06e50, L_0x5592cfd06d60, L_0x5592cfd06c70, C4<>; -L_0x5592cfd07040 .part v0x5592cfd06410_0, 31, 1; -L_0x5592cfd070e0 .part v0x5592cfd06510_0, 31, 1; -L_0x5592cfd07350 .part v0x5592cfd06410_0, 23, 8; -L_0x5592cfd073f0 .reduce/or L_0x5592cfd07350; -L_0x5592cfd07560 .part v0x5592cfd06410_0, 0, 23; -L_0x5592cfd07600 .concat [ 23 1 0 0], L_0x5592cfd07560, L_0x7ff85d2be018; -L_0x5592cfd077d0 .part v0x5592cfd06410_0, 0, 23; -L_0x5592cfd07870 .concat [ 23 1 0 0], L_0x5592cfd077d0, L_0x7ff85d2be060; -L_0x5592cfd07a80 .functor MUXZ 24, L_0x5592cfd07870, L_0x5592cfd07600, L_0x5592cfd073f0, C4<>; -L_0x5592cfd07c10 .part v0x5592cfd06510_0, 23, 8; -L_0x5592cfd079e0 .reduce/or L_0x5592cfd07c10; -L_0x5592cfd07db0 .part v0x5592cfd06510_0, 0, 23; -L_0x5592cfd07f10 .concat [ 23 1 0 0], L_0x5592cfd07db0, L_0x7ff85d2be0a8; -L_0x5592cfd08080 .part v0x5592cfd06510_0, 0, 23; -L_0x5592cfd081f0 .concat [ 23 1 0 0], L_0x5592cfd08080, L_0x7ff85d2be0f0; -L_0x5592cfd08360 .functor MUXZ 24, L_0x5592cfd081f0, L_0x5592cfd07f10, L_0x5592cfd079e0, C4<>; -L_0x5592cfd085d0 .part L_0x5592cfd067a0, 7, 1; -L_0x5592cfd08670 .shift/r 24, L_0x5592cfd07a80, L_0x5592cfd06ac0; -L_0x5592cfd088a0 .functor MUXZ 24, L_0x5592cfd07a80, L_0x5592cfd08670, L_0x5592cfd085d0, C4<>; -L_0x5592cfd089e0 .part L_0x5592cfd067a0, 7, 1; -L_0x5592cfd08b80 .shift/r 24, L_0x5592cfd08360, L_0x5592cfd067a0; -L_0x5592cfd08c20 .functor MUXZ 24, L_0x5592cfd08b80, L_0x5592cfd08360, L_0x5592cfd089e0, C4<>; -L_0x5592cfd08e70 .part v0x5592cfd06410_0, 31, 1; -L_0x5592cfd18fc0 .arith/sum 24, L_0x5592cfd07180, L_0x7ff85d2be138; -L_0x5592cfd19290 .functor MUXZ 24, L_0x5592cfd088a0, L_0x5592cfd18fc0, L_0x5592cfd08e70, C4<>; -L_0x5592cfd193d0 .functor MUXZ 24, L_0x5592cfd19290, L_0x5592cfd088a0, L_0x5592cfd07290, C4<>; -L_0x5592cfd195a0 .part v0x5592cfd06510_0, 31, 1; -L_0x5592cfd19640 .arith/sum 24, L_0x5592cfd19060, L_0x7ff85d2be180; -L_0x5592cfd198e0 .functor MUXZ 24, L_0x5592cfd08c20, L_0x5592cfd19640, L_0x5592cfd195a0, C4<>; -L_0x5592cfd19a20 .functor MUXZ 24, L_0x5592cfd198e0, L_0x5592cfd08c20, L_0x5592cfd07290, C4<>; -L_0x5592cfd19c60 .concat [ 24 1 0 0], L_0x5592cfd193d0, L_0x7ff85d2be1c8; -L_0x5592cfd19d50 .concat [ 24 1 0 0], L_0x5592cfd19a20, L_0x7ff85d2be210; -L_0x5592cfd19ff0 .arith/sum 25, L_0x5592cfd19c60, L_0x5592cfd19d50; -L_0x5592cfd1a130 .concat [ 24 1 0 0], L_0x5592cfd088a0, L_0x7ff85d2be258; -L_0x5592cfd1a420 .concat [ 24 1 0 0], L_0x5592cfd08c20, L_0x7ff85d2be2a0; -L_0x5592cfd1a510 .arith/sum 25, L_0x5592cfd1a130, L_0x5592cfd196e0; -L_0x5592cfd1a840 .arith/sum 25, L_0x5592cfd1a510, L_0x7ff85d2be2e8; -L_0x5592cfd1a980 .functor MUXZ 25, L_0x5592cfd19ff0, L_0x5592cfd1a840, v0x5592cfd06280_0, C4<>; -L_0x5592cfd1aca0 .part L_0x5592cfd1a980, 24, 1; -L_0x5592cfd1af20 .arith/sum 25, L_0x5592cfd1aeb0, L_0x7ff85d2be330; -L_0x5592cfd1b220 .functor MUXZ 25, L_0x5592cfd1af20, L_0x5592cfd1a980, L_0x5592cfd1a5b0, C4<>; -L_0x5592cfd1b620 .part v0x5592cfd06410_0, 31, 1; -L_0x5592cfd1b870 .part v0x5592cfd06510_0, 31, 1; -L_0x5592cfd1bac0 .part v0x5592cfd06410_0, 31, 1; -L_0x5592cfd1bd20 .part v0x5592cfd06510_0, 31, 1; -L_0x5592cfd1c030 .cmp/gt 24, L_0x5592cfd088a0, L_0x5592cfd08c20; -L_0x5592cfd1c2a0 .functor MUXZ 2, L_0x7ff85d2be408, L_0x7ff85d2be3c0, L_0x5592cfd1c030, C4<>; -L_0x5592cfd1c3e0 .part v0x5592cfd06410_0, 31, 1; -L_0x5592cfd1c660 .concat [ 1 1 0 0], L_0x5592cfd1c3e0, L_0x7ff85d2be450; -L_0x5592cfd1c7a0 .functor MUXZ 2, L_0x5592cfd1c660, L_0x5592cfd1c2a0, L_0x5592cfd1bf30, C4<>; -L_0x5592cfd1cb20 .cmp/gt 24, L_0x5592cfd088a0, L_0x5592cfd08c20; -L_0x5592cfd1cbc0 .part v0x5592cfd06410_0, 31, 1; -L_0x5592cfd1ce60 .concat [ 1 1 0 0], L_0x5592cfd1cbc0, L_0x7ff85d2be498; -L_0x5592cfd1cfa0 .part v0x5592cfd06510_0, 31, 1; -L_0x5592cfd1d250 .concat [ 1 1 0 0], L_0x5592cfd1cfa0, L_0x7ff85d2be4e0; -L_0x5592cfd1d390 .functor MUXZ 2, L_0x5592cfd1d250, L_0x5592cfd1ce60, L_0x5592cfd1cb20, C4<>; -L_0x5592cfd1d740 .functor MUXZ 2, L_0x5592cfd1d390, L_0x5592cfd1c7a0, L_0x5592cfd1ba00, C4<>; -L_0x5592cfd1d8d0 .part L_0x5592cfd1d740, 0, 1; -L_0x5592cfd1dbf0 .part v0x5592cfcfec10_0, 24, 1; -L_0x5592cfd1dce0 .functor MUXZ 8, L_0x5592cfd06ef0, L_0x5592cfd06ef0, L_0x5592cfd1dbf0, C4<>; -L_0x5592cfd1e010 .functor MUXZ 8, L_0x5592cfd1dce0, L_0x5592cfd1b4e0, L_0x5592cfd07290, C4<>; -L_0x5592cfd1e0b0 .part L_0x5592cfd1b220, 24, 1; -L_0x5592cfd1e4d0 .arith/sum 8, L_0x5592cfd06ef0, L_0x7ff85d2be528; -L_0x5592cfd1e630 .functor MUXZ 8, L_0x5592cfd1b4e0, L_0x5592cfd06ef0, L_0x5592cfd07290, C4<>; -L_0x5592cfd1e9c0 .functor MUXZ 8, L_0x5592cfd1e630, L_0x5592cfd1e4d0, L_0x5592cfd1e3a0, C4<>; -L_0x5592cfd1eb00 .functor MUXZ 8, L_0x5592cfd1e9c0, L_0x5592cfd1e010, v0x5592cfd06280_0, C4<>; -L_0x5592cfd1eeb0 .concat8 [ 23 8 1 0], L_0x5592cfd20c20, L_0x5592cfd1eb00, L_0x5592cfd1d8d0; -L_0x5592cfd1f040 .part v0x5592cfcfec10_0, 0, 23; -L_0x5592cfd1f360 .part v0x5592cfcfec10_0, 24, 1; -L_0x5592cfd1f490 .part v0x5592cfcfec10_0, 1, 23; -L_0x5592cfd1f7c0 .part v0x5592cfcfec10_0, 0, 23; -L_0x5592cfd1f860 .functor MUXZ 23, L_0x5592cfd1f7c0, L_0x5592cfd1f490, L_0x5592cfd1f360, C4<>; -L_0x5592cfd1fc40 .functor MUXZ 23, L_0x5592cfd1f860, L_0x5592cfd1f040, L_0x5592cfd07290, C4<>; -L_0x5592cfd1fe90 .part L_0x5592cfd1b220, 24, 1; -L_0x5592cfd201e0 .part L_0x5592cfd1b220, 1, 23; -L_0x5592cfd20280 .part L_0x5592cfd1b220, 0, 23; -L_0x5592cfd205e0 .part v0x5592cfcfec10_0, 0, 23; -L_0x5592cfd20680 .functor MUXZ 23, L_0x5592cfd205e0, L_0x5592cfd20280, L_0x5592cfd07290, C4<>; -L_0x5592cfd20a90 .functor MUXZ 23, L_0x5592cfd20680, L_0x5592cfd201e0, L_0x5592cfd1e570, C4<>; -L_0x5592cfd20c20 .functor MUXZ 23, L_0x5592cfd20a90, L_0x5592cfd1fc40, v0x5592cfd06280_0, C4<>; -S_0x5592cfc9c0b0 .scope module, "exp_calc0" "exp_calc" 3 42, 4 10 0, S_0x5592cfc9da90; +L_0x562fb3e82650 .functor XOR 1, L_0x562fb3e82e50, L_0x562fb3e82ef0, C4<0>, C4<0>; +L_0x562fb3e830a0 .functor NOT 1, L_0x562fb3e82650, C4<0>, C4<0>, C4<0>; +L_0x562fb3e82f90 .functor NOT 24, L_0x562fb3e846b0, C4<000000000000000000000000>, C4<000000000000000000000000>, C4<000000000000000000000000>; +L_0x562fb3e94e70 .functor NOT 24, L_0x562fb3e84a30, C4<000000000000000000000000>, C4<000000000000000000000000>, C4<000000000000000000000000>; +L_0x562fb3e954f0 .functor NOT 25, L_0x562fb3e961a0, C4<0000000000000000000000000>, C4<0000000000000000000000000>, C4<0000000000000000000000000>; +L_0x562fb3e96330 .functor OR 1, L_0x562fb3e96a20, L_0x562fb3e830a0, C4<0>, C4<0>; +L_0x562fb3e96c30 .functor NOT 25, L_0x562fb3e96700, C4<0000000000000000000000000>, C4<0000000000000000000000000>, C4<0000000000000000000000000>; +L_0x562fb3e96d40 .functor OR 1, L_0x562fb3e973a0, L_0x562fb3e975f0, C4<0>, C4<0>; +L_0x562fb3e97780 .functor AND 1, v0x562fb3e81df0_0, L_0x562fb3e96d40, C4<1>, C4<1>; +L_0x562fb3e97b40 .functor XOR 1, L_0x562fb3e97840, L_0x562fb3e97aa0, C4<0>, C4<0>; +L_0x562fb3e97cb0 .functor XOR 1, L_0x562fb3e97b40, v0x562fb3e81df0_0, C4<0>, C4<0>; +L_0x562fb3e9a120 .functor AND 1, L_0x562fb3e99e30, L_0x562fb3e830a0, C4<1>, C4<1>; +L_0x562fb3e9a2f0 .functor AND 1, L_0x562fb3e9bc10, L_0x562fb3e830a0, C4<1>, C4<1>; +v0x562fb3e7ac90_0 .net *"_ivl_1", 7 0, L_0x562fb3e823a0; 1 drivers +v0x562fb3e7ad90_0 .net *"_ivl_100", 24 0, L_0x562fb3e95a70; 1 drivers +L_0x7f669afc91c8 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7ae70_0 .net *"_ivl_103", 0 0, L_0x7f669afc91c8; 1 drivers +v0x562fb3e7af30_0 .net *"_ivl_104", 24 0, L_0x562fb3e95b60; 1 drivers +L_0x7f669afc9210 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7b010_0 .net *"_ivl_107", 0 0, L_0x7f669afc9210; 1 drivers +v0x562fb3e7b140_0 .net *"_ivl_110", 24 0, L_0x562fb3e95f40; 1 drivers +L_0x7f669afc9258 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7b220_0 .net *"_ivl_113", 0 0, L_0x7f669afc9258; 1 drivers +v0x562fb3e7b300_0 .net *"_ivl_114", 24 0, L_0x562fb3e961a0; 1 drivers +L_0x7f669afc92a0 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7b3e0_0 .net *"_ivl_117", 0 0, L_0x7f669afc92a0; 1 drivers +v0x562fb3e7b4c0_0 .net *"_ivl_118", 24 0, L_0x562fb3e954f0; 1 drivers +v0x562fb3e7b5a0_0 .net *"_ivl_120", 24 0, L_0x562fb3e96290; 1 drivers +L_0x7f669afc92e8 .functor BUFT 1, C4<0000000000000000000000001>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7b680_0 .net/2u *"_ivl_122", 24 0, L_0x7f669afc92e8; 1 drivers +v0x562fb3e7b760_0 .net *"_ivl_129", 0 0, L_0x562fb3e96a20; 1 drivers +v0x562fb3e7b840_0 .net *"_ivl_13", 0 0, L_0x562fb3e82a80; 1 drivers +v0x562fb3e7b920_0 .net *"_ivl_130", 0 0, L_0x562fb3e96330; 1 drivers +v0x562fb3e7ba00_0 .net *"_ivl_132", 24 0, L_0x562fb3e96c30; 1 drivers +L_0x7f669afc9330 .functor BUFT 1, C4<0000000000000000000000001>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7bae0_0 .net/2u *"_ivl_134", 24 0, L_0x7f669afc9330; 1 drivers +v0x562fb3e7bbc0_0 .net *"_ivl_136", 24 0, L_0x562fb3e96ca0; 1 drivers +v0x562fb3e7bca0_0 .net *"_ivl_143", 0 0, L_0x562fb3e973a0; 1 drivers +v0x562fb3e7bd80_0 .net *"_ivl_145", 0 0, L_0x562fb3e975f0; 1 drivers +v0x562fb3e7be60_0 .net *"_ivl_146", 0 0, L_0x562fb3e96d40; 1 drivers +v0x562fb3e7bf40_0 .net *"_ivl_148", 0 0, L_0x562fb3e97780; 1 drivers +v0x562fb3e7c020_0 .net *"_ivl_15", 7 0, L_0x562fb3e82b70; 1 drivers +v0x562fb3e7c100_0 .net *"_ivl_151", 0 0, L_0x562fb3e97840; 1 drivers +v0x562fb3e7c1e0_0 .net *"_ivl_153", 0 0, L_0x562fb3e97aa0; 1 drivers +v0x562fb3e7c2c0_0 .net *"_ivl_154", 0 0, L_0x562fb3e97b40; 1 drivers +v0x562fb3e7c3a0_0 .net *"_ivl_156", 0 0, L_0x562fb3e97cb0; 1 drivers +v0x562fb3e7c480_0 .net *"_ivl_158", 0 0, L_0x562fb3e97db0; 1 drivers +L_0x7f669afc93c0 .functor BUFT 1, C4<01>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7c540_0 .net/2u *"_ivl_160", 1 0, L_0x7f669afc93c0; 1 drivers +L_0x7f669afc9408 .functor BUFT 1, C4<00>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7c620_0 .net/2u *"_ivl_162", 1 0, L_0x7f669afc9408; 1 drivers +v0x562fb3e7c700_0 .net *"_ivl_164", 1 0, L_0x562fb3e98020; 1 drivers +v0x562fb3e7c7e0_0 .net *"_ivl_167", 0 0, L_0x562fb3e98160; 1 drivers +v0x562fb3e7c8c0_0 .net *"_ivl_168", 1 0, L_0x562fb3e983e0; 1 drivers +v0x562fb3e7c9a0_0 .net *"_ivl_17", 7 0, L_0x562fb3e82c60; 1 drivers +L_0x7f669afc9450 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7ca80_0 .net *"_ivl_171", 0 0, L_0x7f669afc9450; 1 drivers +v0x562fb3e7cb60_0 .net *"_ivl_172", 1 0, L_0x562fb3e98520; 1 drivers +v0x562fb3e7cc40_0 .net *"_ivl_174", 0 0, L_0x562fb3e988a0; 1 drivers +v0x562fb3e7cd00_0 .net *"_ivl_177", 0 0, L_0x562fb3e98940; 1 drivers +v0x562fb3e7cde0_0 .net *"_ivl_178", 1 0, L_0x562fb3e98be0; 1 drivers +L_0x7f669afc9498 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7cec0_0 .net *"_ivl_181", 0 0, L_0x7f669afc9498; 1 drivers +v0x562fb3e7cfa0_0 .net *"_ivl_183", 0 0, L_0x562fb3e98d20; 1 drivers +v0x562fb3e7d080_0 .net *"_ivl_184", 1 0, L_0x562fb3e98fd0; 1 drivers +L_0x7f669afc94e0 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7d160_0 .net *"_ivl_187", 0 0, L_0x7f669afc94e0; 1 drivers +v0x562fb3e7d240_0 .net *"_ivl_188", 1 0, L_0x562fb3e99110; 1 drivers +v0x562fb3e7d320_0 .net *"_ivl_190", 1 0, L_0x562fb3e994c0; 1 drivers +v0x562fb3e7d400_0 .net *"_ivl_193", 0 0, L_0x562fb3e99650; 1 drivers +v0x562fb3e7d4e0_0 .net *"_ivl_197", 0 0, L_0x562fb3e99970; 1 drivers +v0x562fb3e7d5c0_0 .net *"_ivl_198", 7 0, L_0x562fb3e99a60; 1 drivers +v0x562fb3e7d6a0_0 .net *"_ivl_200", 7 0, L_0x562fb3e99d90; 1 drivers +v0x562fb3e7d780_0 .net *"_ivl_203", 0 0, L_0x562fb3e99e30; 1 drivers +v0x562fb3e7d860_0 .net *"_ivl_204", 0 0, L_0x562fb3e9a120; 1 drivers +L_0x7f669afc9528 .functor BUFT 1, C4<00000001>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7d940_0 .net/2u *"_ivl_206", 7 0, L_0x7f669afc9528; 1 drivers +v0x562fb3e7da20_0 .net *"_ivl_208", 7 0, L_0x562fb3e9a250; 1 drivers +v0x562fb3e7db00_0 .net *"_ivl_21", 0 0, L_0x562fb3e82e50; 1 drivers +v0x562fb3e7dbe0_0 .net *"_ivl_210", 7 0, L_0x562fb3e9a3b0; 1 drivers +v0x562fb3e7dcc0_0 .net *"_ivl_212", 7 0, L_0x562fb3e9a740; 1 drivers +v0x562fb3e7dda0_0 .net *"_ivl_214", 7 0, L_0x562fb3e9a880; 1 drivers +v0x562fb3e7de80_0 .net *"_ivl_220", 22 0, L_0x562fb3e9adc0; 1 drivers +v0x562fb3e7df60_0 .net *"_ivl_222", 0 0, L_0x562fb3e9b0e0; 1 drivers +v0x562fb3e7e040_0 .net *"_ivl_224", 22 0, L_0x562fb3e9b210; 1 drivers +v0x562fb3e7e120_0 .net *"_ivl_226", 22 0, L_0x562fb3e9b540; 1 drivers +v0x562fb3e7e200_0 .net *"_ivl_227", 22 0, L_0x562fb3e9b5e0; 1 drivers +v0x562fb3e7e2e0_0 .net *"_ivl_229", 22 0, L_0x562fb3e9b9c0; 1 drivers +v0x562fb3e7e3c0_0 .net *"_ivl_23", 0 0, L_0x562fb3e82ef0; 1 drivers +v0x562fb3e7e4a0_0 .net *"_ivl_232", 0 0, L_0x562fb3e9bc10; 1 drivers +v0x562fb3e7e990_0 .net *"_ivl_233", 0 0, L_0x562fb3e9a2f0; 1 drivers +v0x562fb3e7ea70_0 .net *"_ivl_236", 22 0, L_0x562fb3e9bf60; 1 drivers +v0x562fb3e7eb50_0 .net *"_ivl_238", 22 0, L_0x562fb3e9c000; 1 drivers +v0x562fb3e7ec30_0 .net *"_ivl_24", 0 0, L_0x562fb3e82650; 1 drivers +v0x562fb3e7ed10_0 .net *"_ivl_240", 22 0, L_0x562fb3e9c360; 1 drivers +v0x562fb3e7edf0_0 .net *"_ivl_241", 22 0, L_0x562fb3e9c400; 1 drivers +v0x562fb3e7eed0_0 .net *"_ivl_243", 22 0, L_0x562fb3e9c810; 1 drivers +v0x562fb3e7efb0_0 .net *"_ivl_245", 22 0, L_0x562fb3e9c9a0; 1 drivers +v0x562fb3e7f090_0 .net *"_ivl_29", 7 0, L_0x562fb3e83160; 1 drivers +v0x562fb3e7f170_0 .net *"_ivl_3", 7 0, L_0x562fb3e824c0; 1 drivers +v0x562fb3e7f250_0 .net *"_ivl_31", 0 0, L_0x562fb3e83200; 1 drivers +L_0x7f669afc9018 .functor BUFT 1, C4<1>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7f310_0 .net/2u *"_ivl_32", 0 0, L_0x7f669afc9018; 1 drivers +v0x562fb3e7f3f0_0 .net *"_ivl_35", 22 0, L_0x562fb3e83370; 1 drivers +v0x562fb3e7f4d0_0 .net *"_ivl_36", 23 0, L_0x562fb3e83410; 1 drivers +L_0x7f669afc9060 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7f5b0_0 .net/2u *"_ivl_38", 0 0, L_0x7f669afc9060; 1 drivers +v0x562fb3e7f690_0 .net *"_ivl_41", 22 0, L_0x562fb3e835e0; 1 drivers +v0x562fb3e7f770_0 .net *"_ivl_42", 23 0, L_0x562fb3e83680; 1 drivers +v0x562fb3e7f850_0 .net *"_ivl_47", 7 0, L_0x562fb3e83a20; 1 drivers +v0x562fb3e7f930_0 .net *"_ivl_49", 0 0, L_0x562fb3e837f0; 1 drivers +L_0x7f669afc90a8 .functor BUFT 1, C4<1>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7f9f0_0 .net/2u *"_ivl_50", 0 0, L_0x7f669afc90a8; 1 drivers +v0x562fb3e7fad0_0 .net *"_ivl_53", 22 0, L_0x562fb3e83bc0; 1 drivers +v0x562fb3e7fbb0_0 .net *"_ivl_54", 23 0, L_0x562fb3e83d20; 1 drivers +L_0x7f669afc90f0 .functor BUFT 1, C4<0>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7fc90_0 .net/2u *"_ivl_56", 0 0, L_0x7f669afc90f0; 1 drivers +v0x562fb3e7fd70_0 .net *"_ivl_59", 22 0, L_0x562fb3e83e90; 1 drivers +v0x562fb3e7fe50_0 .net *"_ivl_60", 23 0, L_0x562fb3e84000; 1 drivers +v0x562fb3e7ff30_0 .net *"_ivl_65", 0 0, L_0x562fb3e843e0; 1 drivers +v0x562fb3e80010_0 .net *"_ivl_66", 23 0, L_0x562fb3e84480; 1 drivers +v0x562fb3e800f0_0 .net *"_ivl_7", 7 0, L_0x562fb3e82760; 1 drivers +v0x562fb3e801d0_0 .net *"_ivl_71", 0 0, L_0x562fb3e847f0; 1 drivers +v0x562fb3e802b0_0 .net *"_ivl_72", 23 0, L_0x562fb3e84990; 1 drivers +v0x562fb3e80390_0 .net *"_ivl_77", 0 0, L_0x562fb3e84c80; 1 drivers +v0x562fb3e80470_0 .net *"_ivl_78", 23 0, L_0x562fb3e82f90; 1 drivers +L_0x7f669afc9138 .functor BUFT 1, C4<000000000000000000000001>, C4<0>, C4<0>, C4<0>; +v0x562fb3e80550_0 .net/2u *"_ivl_80", 23 0, L_0x7f669afc9138; 1 drivers +v0x562fb3e80630_0 .net *"_ivl_82", 23 0, L_0x562fb3e94dd0; 1 drivers +v0x562fb3e80710_0 .net *"_ivl_84", 23 0, L_0x562fb3e950a0; 1 drivers +v0x562fb3e807f0_0 .net *"_ivl_89", 0 0, L_0x562fb3e953b0; 1 drivers +v0x562fb3e808d0_0 .net *"_ivl_9", 7 0, L_0x562fb3e82830; 1 drivers +v0x562fb3e809b0_0 .net *"_ivl_90", 23 0, L_0x562fb3e94e70; 1 drivers +L_0x7f669afc9180 .functor BUFT 1, C4<000000000000000000000001>, C4<0>, C4<0>, C4<0>; +v0x562fb3e80a90_0 .net/2u *"_ivl_92", 23 0, L_0x7f669afc9180; 1 drivers +v0x562fb3e80b70_0 .net *"_ivl_94", 23 0, L_0x562fb3e95450; 1 drivers +v0x562fb3e80c50_0 .net *"_ivl_96", 23 0, L_0x562fb3e956f0; 1 drivers +v0x562fb3e80d30_0 .net "a_in", 31 0, v0x562fb3e82200_0; 1 drivers +v0x562fb3e80e10_0 .net "a_shft_sig", 23 0, L_0x562fb3e846b0; 1 drivers +v0x562fb3e80ef0_0 .net "a_sig", 23 0, L_0x562fb3e83890; 1 drivers +v0x562fb3e80fd0_0 .net "a_sign_sig", 23 0, L_0x562fb3e951e0; 1 drivers +v0x562fb3e810b0_0 .net "add_not", 0 0, v0x562fb3e81df0_0; 1 drivers +v0x562fb3e81170_0 .net "b_in", 31 0, v0x562fb3e822d0_0; 1 drivers +v0x562fb3e81250_0 .net "b_shft_sig", 23 0, L_0x562fb3e84a30; 1 drivers +v0x562fb3e81330_0 .net "b_sig", 23 0, L_0x562fb3e84170; 1 drivers +v0x562fb3e81410_0 .net "b_sign_sig", 23 0, L_0x562fb3e95830; 1 drivers +v0x562fb3e814f0_0 .net "diff", 7 0, L_0x562fb3e825b0; 1 drivers +v0x562fb3e815d0_0 .net "exp", 7 0, L_0x562fb3e82d00; 1 drivers +v0x562fb3e81690_0 .net "exp_diff", 7 0, L_0x562fb3e97260; 1 drivers +v0x562fb3e81730_0 .net "neg_diff", 7 0, L_0x562fb3e828d0; 1 drivers +v0x562fb3e817f0_0 .net "out", 31 0, L_0x562fb3e9ac30; alias, 1 drivers +v0x562fb3e818d0_0 .net "same_sign", 0 0, L_0x562fb3e830a0; 1 drivers +v0x562fb3e81990_0 .net "sig_diff", 24 0, L_0x562fb3e965c0; 1 drivers +v0x562fb3e81a70_0 .net "sig_diff_final", 24 0, v0x562fb3e7a780_0; 1 drivers +v0x562fb3e81b30_0 .net "sig_final", 24 0, L_0x562fb3e96fa0; 1 drivers +v0x562fb3e81bd0_0 .net "sig_op", 24 0, L_0x562fb3e96700; 1 drivers +v0x562fb3e81c90_0 .net "sig_sum", 24 0, L_0x562fb3e95e00; 1 drivers +L_0x562fb3e823a0 .part v0x562fb3e82200_0, 23, 8; +L_0x562fb3e824c0 .part v0x562fb3e822d0_0, 23, 8; +L_0x562fb3e825b0 .arith/sub 8, L_0x562fb3e823a0, L_0x562fb3e824c0; +L_0x562fb3e82760 .part v0x562fb3e822d0_0, 23, 8; +L_0x562fb3e82830 .part v0x562fb3e82200_0, 23, 8; +L_0x562fb3e828d0 .arith/sub 8, L_0x562fb3e82760, L_0x562fb3e82830; +L_0x562fb3e82a80 .part L_0x562fb3e825b0, 7, 1; +L_0x562fb3e82b70 .part v0x562fb3e822d0_0, 23, 8; +L_0x562fb3e82c60 .part v0x562fb3e82200_0, 23, 8; +L_0x562fb3e82d00 .functor MUXZ 8, L_0x562fb3e82c60, L_0x562fb3e82b70, L_0x562fb3e82a80, C4<>; +L_0x562fb3e82e50 .part v0x562fb3e82200_0, 31, 1; +L_0x562fb3e82ef0 .part v0x562fb3e822d0_0, 31, 1; +L_0x562fb3e83160 .part v0x562fb3e82200_0, 23, 8; +L_0x562fb3e83200 .reduce/or L_0x562fb3e83160; +L_0x562fb3e83370 .part v0x562fb3e82200_0, 0, 23; +L_0x562fb3e83410 .concat [ 23 1 0 0], L_0x562fb3e83370, L_0x7f669afc9018; +L_0x562fb3e835e0 .part v0x562fb3e82200_0, 0, 23; +L_0x562fb3e83680 .concat [ 23 1 0 0], L_0x562fb3e835e0, L_0x7f669afc9060; +L_0x562fb3e83890 .functor MUXZ 24, L_0x562fb3e83680, L_0x562fb3e83410, L_0x562fb3e83200, C4<>; +L_0x562fb3e83a20 .part v0x562fb3e822d0_0, 23, 8; +L_0x562fb3e837f0 .reduce/or L_0x562fb3e83a20; +L_0x562fb3e83bc0 .part v0x562fb3e822d0_0, 0, 23; +L_0x562fb3e83d20 .concat [ 23 1 0 0], L_0x562fb3e83bc0, L_0x7f669afc90a8; +L_0x562fb3e83e90 .part v0x562fb3e822d0_0, 0, 23; +L_0x562fb3e84000 .concat [ 23 1 0 0], L_0x562fb3e83e90, L_0x7f669afc90f0; +L_0x562fb3e84170 .functor MUXZ 24, L_0x562fb3e84000, L_0x562fb3e83d20, L_0x562fb3e837f0, C4<>; +L_0x562fb3e843e0 .part L_0x562fb3e825b0, 7, 1; +L_0x562fb3e84480 .shift/r 24, L_0x562fb3e83890, L_0x562fb3e828d0; +L_0x562fb3e846b0 .functor MUXZ 24, L_0x562fb3e83890, L_0x562fb3e84480, L_0x562fb3e843e0, C4<>; +L_0x562fb3e847f0 .part L_0x562fb3e825b0, 7, 1; +L_0x562fb3e84990 .shift/r 24, L_0x562fb3e84170, L_0x562fb3e825b0; +L_0x562fb3e84a30 .functor MUXZ 24, L_0x562fb3e84990, L_0x562fb3e84170, L_0x562fb3e847f0, C4<>; +L_0x562fb3e84c80 .part v0x562fb3e82200_0, 31, 1; +L_0x562fb3e94dd0 .arith/sum 24, L_0x562fb3e82f90, L_0x7f669afc9138; +L_0x562fb3e950a0 .functor MUXZ 24, L_0x562fb3e846b0, L_0x562fb3e94dd0, L_0x562fb3e84c80, C4<>; +L_0x562fb3e951e0 .functor MUXZ 24, L_0x562fb3e950a0, L_0x562fb3e846b0, L_0x562fb3e830a0, C4<>; +L_0x562fb3e953b0 .part v0x562fb3e822d0_0, 31, 1; +L_0x562fb3e95450 .arith/sum 24, L_0x562fb3e94e70, L_0x7f669afc9180; +L_0x562fb3e956f0 .functor MUXZ 24, L_0x562fb3e84a30, L_0x562fb3e95450, L_0x562fb3e953b0, C4<>; +L_0x562fb3e95830 .functor MUXZ 24, L_0x562fb3e956f0, L_0x562fb3e84a30, L_0x562fb3e830a0, C4<>; +L_0x562fb3e95a70 .concat [ 24 1 0 0], L_0x562fb3e951e0, L_0x7f669afc91c8; +L_0x562fb3e95b60 .concat [ 24 1 0 0], L_0x562fb3e95830, L_0x7f669afc9210; +L_0x562fb3e95e00 .arith/sum 25, L_0x562fb3e95a70, L_0x562fb3e95b60; +L_0x562fb3e95f40 .concat [ 24 1 0 0], L_0x562fb3e846b0, L_0x7f669afc9258; +L_0x562fb3e961a0 .concat [ 24 1 0 0], L_0x562fb3e84a30, L_0x7f669afc92a0; +L_0x562fb3e96290 .arith/sum 25, L_0x562fb3e95f40, L_0x562fb3e954f0; +L_0x562fb3e965c0 .arith/sum 25, L_0x562fb3e96290, L_0x7f669afc92e8; +L_0x562fb3e96700 .functor MUXZ 25, L_0x562fb3e95e00, L_0x562fb3e965c0, v0x562fb3e81df0_0, C4<>; +L_0x562fb3e96a20 .part L_0x562fb3e96700, 24, 1; +L_0x562fb3e96ca0 .arith/sum 25, L_0x562fb3e96c30, L_0x7f669afc9330; +L_0x562fb3e96fa0 .functor MUXZ 25, L_0x562fb3e96ca0, L_0x562fb3e96700, L_0x562fb3e96330, C4<>; +L_0x562fb3e973a0 .part v0x562fb3e82200_0, 31, 1; +L_0x562fb3e975f0 .part v0x562fb3e822d0_0, 31, 1; +L_0x562fb3e97840 .part v0x562fb3e82200_0, 31, 1; +L_0x562fb3e97aa0 .part v0x562fb3e822d0_0, 31, 1; +L_0x562fb3e97db0 .cmp/gt 24, L_0x562fb3e846b0, L_0x562fb3e84a30; +L_0x562fb3e98020 .functor MUXZ 2, L_0x7f669afc9408, L_0x7f669afc93c0, L_0x562fb3e97db0, C4<>; +L_0x562fb3e98160 .part v0x562fb3e82200_0, 31, 1; +L_0x562fb3e983e0 .concat [ 1 1 0 0], L_0x562fb3e98160, L_0x7f669afc9450; +L_0x562fb3e98520 .functor MUXZ 2, L_0x562fb3e983e0, L_0x562fb3e98020, L_0x562fb3e97cb0, C4<>; +L_0x562fb3e988a0 .cmp/gt 24, L_0x562fb3e846b0, L_0x562fb3e84a30; +L_0x562fb3e98940 .part v0x562fb3e82200_0, 31, 1; +L_0x562fb3e98be0 .concat [ 1 1 0 0], L_0x562fb3e98940, L_0x7f669afc9498; +L_0x562fb3e98d20 .part v0x562fb3e822d0_0, 31, 1; +L_0x562fb3e98fd0 .concat [ 1 1 0 0], L_0x562fb3e98d20, L_0x7f669afc94e0; +L_0x562fb3e99110 .functor MUXZ 2, L_0x562fb3e98fd0, L_0x562fb3e98be0, L_0x562fb3e988a0, C4<>; +L_0x562fb3e994c0 .functor MUXZ 2, L_0x562fb3e99110, L_0x562fb3e98520, L_0x562fb3e97780, C4<>; +L_0x562fb3e99650 .part L_0x562fb3e994c0, 0, 1; +L_0x562fb3e99970 .part v0x562fb3e7a780_0, 24, 1; +L_0x562fb3e99a60 .functor MUXZ 8, L_0x562fb3e82d00, L_0x562fb3e82d00, L_0x562fb3e99970, C4<>; +L_0x562fb3e99d90 .functor MUXZ 8, L_0x562fb3e99a60, L_0x562fb3e97260, L_0x562fb3e830a0, C4<>; +L_0x562fb3e99e30 .part L_0x562fb3e96fa0, 24, 1; +L_0x562fb3e9a250 .arith/sum 8, L_0x562fb3e82d00, L_0x7f669afc9528; +L_0x562fb3e9a3b0 .functor MUXZ 8, L_0x562fb3e97260, L_0x562fb3e82d00, L_0x562fb3e830a0, C4<>; +L_0x562fb3e9a740 .functor MUXZ 8, L_0x562fb3e9a3b0, L_0x562fb3e9a250, L_0x562fb3e9a120, C4<>; +L_0x562fb3e9a880 .functor MUXZ 8, L_0x562fb3e9a740, L_0x562fb3e99d90, v0x562fb3e81df0_0, C4<>; +L_0x562fb3e9ac30 .concat8 [ 23 8 1 0], L_0x562fb3e9c9a0, L_0x562fb3e9a880, L_0x562fb3e99650; +L_0x562fb3e9adc0 .part v0x562fb3e7a780_0, 0, 23; +L_0x562fb3e9b0e0 .part v0x562fb3e7a780_0, 24, 1; +L_0x562fb3e9b210 .part v0x562fb3e7a780_0, 1, 23; +L_0x562fb3e9b540 .part v0x562fb3e7a780_0, 0, 23; +L_0x562fb3e9b5e0 .functor MUXZ 23, L_0x562fb3e9b540, L_0x562fb3e9b210, L_0x562fb3e9b0e0, C4<>; +L_0x562fb3e9b9c0 .functor MUXZ 23, L_0x562fb3e9b5e0, L_0x562fb3e9adc0, L_0x562fb3e830a0, C4<>; +L_0x562fb3e9bc10 .part L_0x562fb3e96fa0, 24, 1; +L_0x562fb3e9bf60 .part L_0x562fb3e96fa0, 1, 23; +L_0x562fb3e9c000 .part L_0x562fb3e96fa0, 0, 23; +L_0x562fb3e9c360 .part v0x562fb3e7a780_0, 0, 23; +L_0x562fb3e9c400 .functor MUXZ 23, L_0x562fb3e9c360, L_0x562fb3e9c000, L_0x562fb3e830a0, C4<>; +L_0x562fb3e9c810 .functor MUXZ 23, L_0x562fb3e9c400, L_0x562fb3e9bf60, L_0x562fb3e9a2f0, C4<>; +L_0x562fb3e9c9a0 .functor MUXZ 23, L_0x562fb3e9c810, L_0x562fb3e9b9c0, v0x562fb3e81df0_0, C4<>; +S_0x562fb3df0690 .scope module, "exp_calc0" "exp_calc" 3 42, 4 10 0, S_0x562fb3df2070; .timescale -6 -9; .port_info 0 /INPUT 25 "significand"; .port_info 1 /INPUT 8 "Exponent_a"; .port_info 2 /OUTPUT 25 "Significand"; .port_info 3 /OUTPUT 8 "Exponent_sub"; -v0x5592cfc9b420_0 .net "Exponent_a", 7 0, L_0x5592cfd06ef0; alias, 1 drivers -v0x5592cfcfeb30_0 .net "Exponent_sub", 7 0, L_0x5592cfd1b4e0; alias, 1 drivers -v0x5592cfcfec10_0 .var "Significand", 24 0; -v0x5592cfcfecd0_0 .net *"_ivl_0", 7 0, L_0x5592cfd1b440; 1 drivers -L_0x7ff85d2be378 .functor BUFT 1, C4<000>, C4<0>, C4<0>, C4<0>; -v0x5592cfcfedb0_0 .net *"_ivl_3", 2 0, L_0x7ff85d2be378; 1 drivers -v0x5592cfcfeee0_0 .var "shift", 4 0; -v0x5592cfcfefc0_0 .net "significand", 24 0, L_0x5592cfd1b220; alias, 1 drivers -E_0x5592cfca3a00 .event edge, v0x5592cfcfefc0_0; -L_0x5592cfd1b440 .concat [ 5 3 0 0], v0x5592cfcfeee0_0, L_0x7ff85d2be378; -L_0x5592cfd1b4e0 .arith/sub 8, L_0x5592cfd06ef0, L_0x5592cfd1b440; - .scope S_0x5592cfc9c0b0; +v0x562fb3def960_0 .net "Exponent_a", 7 0, L_0x562fb3e82d00; alias, 1 drivers +v0x562fb3e7a6a0_0 .net "Exponent_sub", 7 0, L_0x562fb3e97260; alias, 1 drivers +v0x562fb3e7a780_0 .var "Significand", 24 0; +v0x562fb3e7a840_0 .net *"_ivl_0", 7 0, L_0x562fb3e971c0; 1 drivers +L_0x7f669afc9378 .functor BUFT 1, C4<000>, C4<0>, C4<0>, C4<0>; +v0x562fb3e7a920_0 .net *"_ivl_3", 2 0, L_0x7f669afc9378; 1 drivers +v0x562fb3e7aa50_0 .var "shift", 4 0; +v0x562fb3e7ab30_0 .net "significand", 24 0, L_0x562fb3e96fa0; alias, 1 drivers +E_0x562fb3df79f0 .event edge, v0x562fb3e7ab30_0; +L_0x562fb3e971c0 .concat [ 5 3 0 0], v0x562fb3e7aa50_0, L_0x7f669afc9378; +L_0x562fb3e97260 .arith/sub 8, L_0x562fb3e82d00, L_0x562fb3e971c0; + .scope S_0x562fb3df0690; T_0 ; - %wait E_0x5592cfca3a00; - %load/vec4 v0x5592cfcfefc0_0; + %wait E_0x562fb3df79f0; + %load/vec4 v0x562fb3e7ab30_0; %dup/vec4; %pushi/vec4 33554431, 25165823, 25; %cmp/x; @@ -387,296 +390,752 @@ T_0 ; %pushi/vec4 16777216, 16777216, 25; %cmp/x; %jmp/1 T_0.24, 4; - %load/vec4 v0x5592cfcfefc0_0; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %load/vec4 v0x562fb3e7ab30_0; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 0, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.0 ; - %load/vec4 v0x5592cfcfefc0_0; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %load/vec4 v0x562fb3e7ab30_0; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 0, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.1 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 1, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 1, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.2 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 2, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 2, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.3 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 3, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 3, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.4 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 4, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 4, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.5 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 5, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 5, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.6 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 6, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 6, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.7 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 7, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 7, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.8 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 8, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 8, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.9 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 9, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 9, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.10 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 10, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 10, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.11 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 11, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 11, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.12 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 12, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 12, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.13 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 13, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 13, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.14 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 14, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 14, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.15 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 15, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 15, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.16 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 16, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 16, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.17 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 17, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 17, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.18 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 18, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 18, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.19 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 19, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 19, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.20 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 20, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 20, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.21 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 21, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 21, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.22 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 22, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 22, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.23 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 23, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 23, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.24 ; - %load/vec4 v0x5592cfcfefc0_0; + %load/vec4 v0x562fb3e7ab30_0; %ix/load 4, 24, 0; %flag_set/imm 4, 0; %shiftl 4; - %store/vec4 v0x5592cfcfec10_0, 0, 25; + %store/vec4 v0x562fb3e7a780_0, 0, 25; %pushi/vec4 24, 0, 5; - %store/vec4 v0x5592cfcfeee0_0, 0, 5; + %store/vec4 v0x562fb3e7aa50_0, 0, 5; %jmp T_0.26; T_0.26 ; %pop/vec4 1; %jmp T_0; .thread T_0, $push; - .scope S_0x5592cfc9f490; + .scope S_0x562fb3df3a70; T_1 ; %pushi/vec4 0, 0, 1; - %store/vec4 v0x5592cfd06280_0, 0, 1; + %store/vec4 v0x562fb3e81df0_0, 0, 1; %end; .thread T_1; - .scope S_0x5592cfc9f490; + .scope S_0x562fb3df3a70; T_2 ; - %pushi/vec4 1075629261, 0, 32; - %store/vec4 v0x5592cfd06410_0, 0, 32; - %pushi/vec4 1059481190, 0, 32; - %store/vec4 v0x5592cfd06510_0, 0, 32; + %pushi/vec4 1125960909, 0, 32; + %store/vec4 v0x562fb3e82200_0, 0, 32; + %pushi/vec4 958817894, 0, 32; + %store/vec4 v0x562fb3e822d0_0, 0, 32; %delay 5000, 0; - %vpi_call 2 18 "$display", "\012Sum: %16b + %16b = %16b", v0x5592cfd06410_0, v0x5592cfd06510_0, v0x5592cfd06340_0 {0 0 0}; - %pushi/vec4 1075629261, 0, 32; - %store/vec4 v0x5592cfd06410_0, 0, 32; - %pushi/vec4 3206964838, 0, 32; - %store/vec4 v0x5592cfd06510_0, 0, 32; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81eb0_0, 0, 64; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81f70_0, 0, 64; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e82060_0, 0, 64; + %vpi_func/r 2 22 "$bitstoreal", v0x562fb3e81eb0_0 {0 0 0}; + %vpi_func/r 2 22 "$bitstoreal", v0x562fb3e81f70_0 {0 0 0}; + %vpi_func/r 2 22 "$bitstoreal", v0x562fb3e82060_0 {0 0 0}; + %vpi_call 2 22 "$display", "\012Sum: %f + %f = %f", W<2,r>, W<1,r>, W<0,r> {0 3 0}; + %pushi/vec4 1142746829, 0, 32; + %store/vec4 v0x562fb3e82200_0, 0, 32; + %pushi/vec4 3206702694, 0, 32; + %store/vec4 v0x562fb3e822d0_0, 0, 32; %delay 5000, 0; - %vpi_call 2 23 "$display", "\012Sum: %16b + %16b = %16b", v0x5592cfd06410_0, v0x5592cfd06510_0, v0x5592cfd06340_0 {0 0 0}; - %pushi/vec4 3223112909, 0, 32; - %store/vec4 v0x5592cfd06410_0, 0, 32; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81eb0_0, 0, 64; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81f70_0, 0, 64; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e82060_0, 0, 64; + %vpi_func/r 2 30 "$bitstoreal", v0x562fb3e81eb0_0 {0 0 0}; + %vpi_func/r 2 30 "$bitstoreal", v0x562fb3e81f70_0 {0 0 0}; + %vpi_func/r 2 30 "$bitstoreal", v0x562fb3e82060_0 {0 0 0}; + %vpi_call 2 30 "$display", "\012Sum: %f + %f = %f", W<2,r>, W<1,r>, W<0,r> {0 3 0}; + %pushi/vec4 3323776397, 0, 32; + %store/vec4 v0x562fb3e82200_0, 0, 32; %pushi/vec4 1059481190, 0, 32; - %store/vec4 v0x5592cfd06510_0, 0, 32; + %store/vec4 v0x562fb3e822d0_0, 0, 32; %delay 5000, 0; - %vpi_call 2 28 "$display", "\012Sum: %16b + %16b = %16b", v0x5592cfd06410_0, v0x5592cfd06510_0, v0x5592cfd06340_0 {0 0 0}; - %pushi/vec4 3223112909, 0, 32; - %store/vec4 v0x5592cfd06410_0, 0, 32; - %pushi/vec4 3206964838, 0, 32; - %store/vec4 v0x5592cfd06510_0, 0, 32; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81eb0_0, 0, 64; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81f70_0, 0, 64; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e82060_0, 0, 64; + %vpi_func/r 2 38 "$bitstoreal", v0x562fb3e81eb0_0 {0 0 0}; + %vpi_func/r 2 38 "$bitstoreal", v0x562fb3e81f70_0 {0 0 0}; + %vpi_func/r 2 38 "$bitstoreal", v0x562fb3e82060_0 {0 0 0}; + %vpi_call 2 38 "$display", "\012Sum: %f + %f = %f", W<2,r>, W<1,r>, W<0,r> {0 3 0}; + %pushi/vec4 3206335693, 0, 32; + %store/vec4 v0x562fb3e82200_0, 0, 32; + %pushi/vec4 3274072678, 0, 32; + %store/vec4 v0x562fb3e822d0_0, 0, 32; %delay 5000, 0; - %vpi_call 2 33 "$display", "\012Sum: %16b + %16b = %16b", v0x5592cfd06410_0, v0x5592cfd06510_0, v0x5592cfd06340_0 {0 0 0}; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81eb0_0, 0, 64; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81f70_0, 0, 64; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e82060_0, 0, 64; + %vpi_func/r 2 46 "$bitstoreal", v0x562fb3e81eb0_0 {0 0 0}; + %vpi_func/r 2 46 "$bitstoreal", v0x562fb3e81f70_0 {0 0 0}; + %vpi_func/r 2 46 "$bitstoreal", v0x562fb3e82060_0 {0 0 0}; + %vpi_call 2 46 "$display", "\012Sum: %f + %f = %f", W<2,r>, W<1,r>, W<0,r> {0 3 0}; %pushi/vec4 1, 0, 1; - %store/vec4 v0x5592cfd06280_0, 0, 1; - %pushi/vec4 1075629261, 0, 32; - %store/vec4 v0x5592cfd06410_0, 0, 32; - %pushi/vec4 1059481190, 0, 32; - %store/vec4 v0x5592cfd06510_0, 0, 32; + %store/vec4 v0x562fb3e81df0_0, 0, 1; + %pushi/vec4 1125960909, 0, 32; + %store/vec4 v0x562fb3e82200_0, 0, 32; + %pushi/vec4 958817894, 0, 32; + %store/vec4 v0x562fb3e822d0_0, 0, 32; %delay 5000, 0; - %vpi_call 2 40 "$display", "\012Sum: %16b - %16b = %16b", v0x5592cfd06410_0, v0x5592cfd06510_0, v0x5592cfd06340_0 {0 0 0}; - %pushi/vec4 1075629261, 0, 32; - %store/vec4 v0x5592cfd06410_0, 0, 32; - %pushi/vec4 3206964838, 0, 32; - %store/vec4 v0x5592cfd06510_0, 0, 32; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81eb0_0, 0, 64; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81f70_0, 0, 64; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e82060_0, 0, 64; + %vpi_func/r 2 56 "$bitstoreal", v0x562fb3e81eb0_0 {0 0 0}; + %vpi_func/r 2 56 "$bitstoreal", v0x562fb3e81f70_0 {0 0 0}; + %vpi_func/r 2 56 "$bitstoreal", v0x562fb3e82060_0 {0 0 0}; + %vpi_call 2 56 "$display", "\012Sum: %f - %f = %f", W<2,r>, W<1,r>, W<0,r> {0 3 0}; + %pushi/vec4 1142746829, 0, 32; + %store/vec4 v0x562fb3e82200_0, 0, 32; + %pushi/vec4 3206702694, 0, 32; + %store/vec4 v0x562fb3e822d0_0, 0, 32; %delay 5000, 0; - %vpi_call 2 45 "$display", "\012Sum: %16b - %16b = %16b", v0x5592cfd06410_0, v0x5592cfd06510_0, v0x5592cfd06340_0 {0 0 0}; - %pushi/vec4 3223112909, 0, 32; - %store/vec4 v0x5592cfd06410_0, 0, 32; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81eb0_0, 0, 64; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81f70_0, 0, 64; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e82060_0, 0, 64; + %vpi_func/r 2 64 "$bitstoreal", v0x562fb3e81eb0_0 {0 0 0}; + %vpi_func/r 2 64 "$bitstoreal", v0x562fb3e81f70_0 {0 0 0}; + %vpi_func/r 2 64 "$bitstoreal", v0x562fb3e82060_0 {0 0 0}; + %vpi_call 2 64 "$display", "\012Sum: %f - %f = %f", W<2,r>, W<1,r>, W<0,r> {0 3 0}; + %pushi/vec4 3323776397, 0, 32; + %store/vec4 v0x562fb3e82200_0, 0, 32; %pushi/vec4 1059481190, 0, 32; - %store/vec4 v0x5592cfd06510_0, 0, 32; + %store/vec4 v0x562fb3e822d0_0, 0, 32; %delay 5000, 0; - %vpi_call 2 50 "$display", "\012Sum: %16b - %16b = %16b", v0x5592cfd06410_0, v0x5592cfd06510_0, v0x5592cfd06340_0 {0 0 0}; - %pushi/vec4 3223112909, 0, 32; - %store/vec4 v0x5592cfd06410_0, 0, 32; - %pushi/vec4 3206964838, 0, 32; - %store/vec4 v0x5592cfd06510_0, 0, 32; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81eb0_0, 0, 64; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81f70_0, 0, 64; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e82060_0, 0, 64; + %vpi_func/r 2 72 "$bitstoreal", v0x562fb3e81eb0_0 {0 0 0}; + %vpi_func/r 2 72 "$bitstoreal", v0x562fb3e81f70_0 {0 0 0}; + %vpi_func/r 2 72 "$bitstoreal", v0x562fb3e82060_0 {0 0 0}; + %vpi_call 2 72 "$display", "\012Sum: %f - %f = %f", W<2,r>, W<1,r>, W<0,r> {0 3 0}; + %pushi/vec4 3206335693, 0, 32; + %store/vec4 v0x562fb3e82200_0, 0, 32; + %pushi/vec4 3274072678, 0, 32; + %store/vec4 v0x562fb3e822d0_0, 0, 32; %delay 5000, 0; - %vpi_call 2 55 "$display", "\012Sum: %16b - %16b = %16b", v0x5592cfd06410_0, v0x5592cfd06510_0, v0x5592cfd06340_0 {0 0 0}; - %vpi_call 2 56 "$finish" {0 0 0}; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82200_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81eb0_0, 0, 64; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e822d0_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e81f70_0, 0, 64; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 31, 6; + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 1, 30, 6; + %inv; + %replicate 3; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 7, 23, 6; + %concat/vec4; draw_concat_vec4 + %load/vec4 v0x562fb3e82140_0; + %parti/s 23, 0, 2; + %concat/vec4; draw_concat_vec4 + %concati/vec4 0, 0, 29; + %store/vec4 v0x562fb3e82060_0, 0, 64; + %vpi_func/r 2 80 "$bitstoreal", v0x562fb3e81eb0_0 {0 0 0}; + %vpi_func/r 2 80 "$bitstoreal", v0x562fb3e81f70_0 {0 0 0}; + %vpi_func/r 2 80 "$bitstoreal", v0x562fb3e82060_0 {0 0 0}; + %vpi_call 2 80 "$display", "\012Sum: %f - %f = %f", W<2,r>, W<1,r>, W<0,r> {0 3 0}; + %vpi_call 2 81 "$finish" {0 0 0}; %end; .thread T_2; # The file index is used to find the file name in the following table. diff --git a/verilog/fpu/fpu_3.v b/verilog/fpu/fpu_3.v deleted file mode 100644 index 69c7cec..0000000 --- a/verilog/fpu/fpu_3.v +++ /dev/null @@ -1,36 +0,0 @@ -module fpu_3( - input wire add_not, - input wire [31:0] a_in, b_in, - output wire[31:0] out -); - -wire[7:0] diff, neg_diff, exp; -assign diff = a_in[30:23] - b_in[30:23]; -assign neg_diff = b_in[30:23] - a_in[30:23]; -assign exp = diff[7] ? b_in[30:23] : a_in[30:23]; - -// Pull hidden bit into sig, if exp 0, no hidden bit -wire[23:0] a_sig, b_sig; -assign a_sig = (|a_in[30:23] ? {1'b1, a_in[22:0]} : {1'b0, a_in[22:0]}); -assign b_sig = (|b_in[30:23] ? {1'b1, b_in[22:0]} : {1'b0, b_in[22:0]}); - -//Denormalize correct one -wire[23:0] a_shift_sig, b_shift_sig; -assign a_shift_sig = (diff[7] ? a_sig >> neg_diff : a_sig); -assign b_shift_sig = (diff[7] ? b_sig : b_sig >> diff); - -// Set signed based on inputs and signs -wire[23:0] a_signed_sig, b_signed_sig; -assign a_signed_sig = b[31] & (~(add_not ^ b_in[31])) ? ~a_shift_sig + 1'b1 : a_shift_sig; -assign b_signed_sig = ~a[31] & (add_not ^ b_in[31]) ? ~b_shift_sig + 1'b1; : b_shift_sig; - - -wire[24:0] sum_sig; -assign sum_sig = a_signed_sig + b_signed_sig; - -wire[24:0] signed_sum_sig; -assign signed_sum_sig = ~(a_in[31] ^ b_in[31]) ? sum_sig : - -assign out[31] = ; - -endmodule diff --git a/verilog/fpu/fpu_bench.v b/verilog/fpu/fpu_bench.v index ecbd659..2c54c8c 100644 --- a/verilog/fpu/fpu_bench.v +++ b/verilog/fpu/fpu_bench.v @@ -4,6 +4,7 @@ module fpu_bench; +reg[63:0] float1, float2, float_out; reg[31:0] input1, input2; reg add = 1'b0; wire[31:0] fpu_output; @@ -12,47 +13,71 @@ fpu_2 fpu0 (add,input1, input2, fpu_output); initial begin - input1=32'b01000000000111001100110011001101; // 2.45 - input2=32'b00111111001001100110011001100110; //.65 + input1=32'b01000011000111001100110011001101; // 2.45 + input2=32'b00111001001001100110011001100110; //.65 #5; - $display("\nSum: %16b + %16b = %16b",input1,input2,fpu_output); + float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}}; + float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}}; + float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}}; + $display("\nSum: %f + %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out)); - input1=32'b01000000000111001100110011001101; // 2.45 - input2=32'b10111111001001100110011001100110; //.65 + input1=32'b01000100000111001110111011001101; // 2.45 + input2=32'b10111111001000100110011001100110; //.65 #5; - $display("\nSum: %16b + %16b = %16b",input1,input2,fpu_output); + float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}}; + float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}}; + float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}}; + $display("\nSum: %f + %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out)); - input1=32'b11000000000111001100110011001101; // 2.45 + input1=32'b11000110000111001100110110001101; // 2.45 input2=32'b00111111001001100110011001100110; //.65 #5; - $display("\nSum: %16b + %16b = %16b",input1,input2,fpu_output); + float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}}; + float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}}; + float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}}; + $display("\nSum: %f + %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out)); - input1=32'b11000000000111001100110011001101; // 2.45 - input2=32'b10111111001001100110011001100110; //.65 + input1=32'b10111111000111001100110011001101; // 2.45 + input2=32'b11000011001001100110001001100110; //.65 #5; - $display("\nSum: %16b + %16b = %16b",input1,input2,fpu_output); + float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}}; + float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}}; + float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}}; + $display("\nSum: %f + %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out)); add = 1'b1; - input1=32'b01000000000111001100110011001101; // 2.45 - input2=32'b00111111001001100110011001100110; //.65 + input1=32'b01000011000111001100110011001101; // 2.45 + input2=32'b00111001001001100110011001100110; //.65 #5; - $display("\nSum: %16b - %16b = %16b",input1,input2,fpu_output); + float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}}; + float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}}; + float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}}; + $display("\nSum: %f - %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out)); - input1=32'b01000000000111001100110011001101; // 2.45 - input2=32'b10111111001001100110011001100110; //.65 + input1=32'b01000100000111001110111011001101; // 2.45 + input2=32'b10111111001000100110011001100110; //.65 #5; - $display("\nSum: %16b - %16b = %16b",input1,input2,fpu_output); + float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}}; + float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}}; + float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}}; + $display("\nSum: %f - %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out)); - input1=32'b11000000000111001100110011001101; // 2.45 + input1=32'b11000110000111001100110110001101; // 2.45 input2=32'b00111111001001100110011001100110; //.65 #5; - $display("\nSum: %16b - %16b = %16b",input1,input2,fpu_output); + float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}}; + float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}}; + float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}}; + $display("\nSum: %f - %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out)); - input1=32'b11000000000111001100110011001101; // 2.45 - input2=32'b10111111001001100110011001100110; //.65 + input1=32'b10111111000111001100110011001101; // 2.45 + input2=32'b11000011001001100110001001100110; //.65 #5; - $display("\nSum: %16b - %16b = %16b",input1,input2,fpu_output); + float1={input1[31],input1[30],{3{~input1[30]}},input1[29:23],input1[22:0], {29{1'b0}}}; + float2={input2[31],input2[30],{3{~input2[30]}},input2[29:23],input2[22:0], {29{1'b0}}}; + float_out={fpu_output[31],fpu_output[30],{3{~fpu_output[30]}},fpu_output[29:23],fpu_output[22:0], {29{1'b0}}}; + $display("\nSum: %f - %f = %f", $bitstoreal(float1),$bitstoreal(float2), $bitstoreal(float_out)); $finish; end endmodule |