verilog/project0.2/subtraction
2024-12-26 01:24:14 +03:00

278 lines
14 KiB
Plaintext

#! /usr/bin/vvp
:ivl_version "11.0 (stable)";
:ivl_delay_selection "TYPICAL";
:vpi_time_precision + 0;
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/system.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_sys.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/vhdl_textio.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/v2005_math.vpi";
:vpi_module "/usr/lib/x86_64-linux-gnu/ivl/va_math.vpi";
S_0x56044d0d48c0 .scope module, "subtractionTB" "subtractionTB" 2 1;
.timescale 0 0;
v0x56044d107590_0 .var "A", 3 0;
v0x56044d107670_0 .var "B", 3 0;
v0x56044d107740_0 .var "BorrowIN", 0 0;
v0x56044d107810_0 .net "BorrowOUT", 0 0, L_0x56044d109c20; 1 drivers
v0x56044d107900_0 .net "Y", 3 0, L_0x56044d10a0c0; 1 drivers
S_0x56044d0d0e60 .scope module, "uut" "subtraction" 2 9, 3 1 0, S_0x56044d0d48c0;
.timescale 0 0;
.port_info 0 /INPUT 4 "A";
.port_info 1 /INPUT 4 "B";
.port_info 2 /INPUT 1 "BorrowIN";
.port_info 3 /OUTPUT 4 "Y";
.port_info 4 /OUTPUT 1 "BorrowOUT";
v0x56044d106ef0_0 .net "A", 3 0, v0x56044d107590_0; 1 drivers
v0x56044d106fd0_0 .net "B", 3 0, v0x56044d107670_0; 1 drivers
v0x56044d1070b0_0 .net "BorrowIN", 0 0, v0x56044d107740_0; 1 drivers
v0x56044d1071a0_0 .net "BorrowOUT", 0 0, L_0x56044d109c20; alias, 1 drivers
v0x56044d107240_0 .net "Y", 3 0, L_0x56044d10a0c0; alias, 1 drivers
o0x7f55d9dc01e8 .functor BUFZ 1, C4<z>; HiZ drive
; Elide local net with no drivers, v0x56044d107330_0 name=_ivl_39
v0x56044d107410_0 .net "tempB", 3 0, L_0x56044d10a1d0; 1 drivers
L_0x56044d107fc0 .part v0x56044d107590_0, 0, 1;
L_0x56044d108110 .part v0x56044d107670_0, 0, 1;
L_0x56044d1088f0 .part v0x56044d107590_0, 1, 1;
L_0x56044d108a20 .part v0x56044d107670_0, 1, 1;
L_0x56044d108b50 .part L_0x56044d10a1d0, 0, 1;
L_0x56044d109200 .part v0x56044d107590_0, 2, 1;
L_0x56044d109400 .part v0x56044d107670_0, 2, 1;
L_0x56044d1095c0 .part L_0x56044d10a1d0, 1, 1;
L_0x56044d109cd0 .part v0x56044d107590_0, 3, 1;
L_0x56044d109e00 .part v0x56044d107670_0, 3, 1;
L_0x56044d109f90 .part L_0x56044d10a1d0, 2, 1;
L_0x56044d10a0c0 .concat8 [ 1 1 1 1], L_0x56044d107ca0, L_0x56044d108530, L_0x56044d108e40, L_0x56044d1098f0;
L_0x56044d10a1d0 .concat [ 1 1 1 1], L_0x56044d107f30, L_0x56044d108860, L_0x56044d109170, o0x7f55d9dc01e8;
S_0x56044d0deda0 .scope module, "f0" "fullsubtraction" 3 11, 4 1 0, S_0x56044d0d0e60;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /INPUT 1 "BorrowIN";
.port_info 3 /OUTPUT 1 "Difference";
.port_info 4 /OUTPUT 1 "BorrowOut";
L_0x56044d107f30 .functor OR 1, L_0x56044d107b90, L_0x56044d107ec0, C4<0>, C4<0>;
v0x56044d102580_0 .net "A", 0 0, L_0x56044d107fc0; 1 drivers
v0x56044d102640_0 .net "B", 0 0, L_0x56044d108110; 1 drivers
v0x56044d102710_0 .net "BorrowIN", 0 0, v0x56044d107740_0; alias, 1 drivers
v0x56044d102810_0 .net "BorrowOut", 0 0, L_0x56044d107f30; 1 drivers
v0x56044d1028b0_0 .net "Difference", 0 0, L_0x56044d107ca0; 1 drivers
v0x56044d1029a0_0 .net "tempB1", 0 0, L_0x56044d107b90; 1 drivers
v0x56044d102a70_0 .net "tempB2", 0 0, L_0x56044d107ec0; 1 drivers
v0x56044d102b40_0 .net "tempD", 0 0, L_0x56044d1079f0; 1 drivers
S_0x56044d09ecf0 .scope module, "hf1" "halfsubtraction" 4 8, 5 1 0, S_0x56044d0deda0;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /OUTPUT 1 "Difference";
.port_info 3 /OUTPUT 1 "Borrow";
L_0x56044d1079f0 .functor XOR 1, L_0x56044d107fc0, L_0x56044d108110, C4<0>, C4<0>;
L_0x56044d107b00 .functor NOT 1, L_0x56044d107fc0, C4<0>, C4<0>, C4<0>;
L_0x56044d107b90 .functor AND 1, L_0x56044d107b00, L_0x56044d108110, C4<1>, C4<1>;
v0x56044d0d6940_0 .net "A", 0 0, L_0x56044d107fc0; alias, 1 drivers
v0x56044d0d4ef0_0 .net "B", 0 0, L_0x56044d108110; alias, 1 drivers
v0x56044d0d3210_0 .net "Borrow", 0 0, L_0x56044d107b90; alias, 1 drivers
v0x56044d0d1500_0 .net "Difference", 0 0, L_0x56044d1079f0; alias, 1 drivers
v0x56044d0d4c60_0 .net "notA", 0 0, L_0x56044d107b00; 1 drivers
S_0x56044d102060 .scope module, "hf2" "halfsubtraction" 4 9, 5 1 0, S_0x56044d0deda0;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /OUTPUT 1 "Difference";
.port_info 3 /OUTPUT 1 "Borrow";
L_0x56044d107ca0 .functor XOR 1, L_0x56044d1079f0, v0x56044d107740_0, C4<0>, C4<0>;
L_0x56044d107e30 .functor NOT 1, L_0x56044d1079f0, C4<0>, C4<0>, C4<0>;
L_0x56044d107ec0 .functor AND 1, L_0x56044d107e30, v0x56044d107740_0, C4<1>, C4<1>;
v0x56044d0d2f80_0 .net "A", 0 0, L_0x56044d1079f0; alias, 1 drivers
v0x56044d0d1280_0 .net "B", 0 0, v0x56044d107740_0; alias, 1 drivers
v0x56044d102260_0 .net "Borrow", 0 0, L_0x56044d107ec0; alias, 1 drivers
v0x56044d102330_0 .net "Difference", 0 0, L_0x56044d107ca0; alias, 1 drivers
v0x56044d1023f0_0 .net "notA", 0 0, L_0x56044d107e30; 1 drivers
S_0x56044d102c30 .scope module, "f1" "fullsubtraction" 3 12, 4 1 0, S_0x56044d0d0e60;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /INPUT 1 "BorrowIN";
.port_info 3 /OUTPUT 1 "Difference";
.port_info 4 /OUTPUT 1 "BorrowOut";
L_0x56044d108860 .functor OR 1, L_0x56044d108420, L_0x56044d108750, C4<0>, C4<0>;
v0x56044d103b70_0 .net "A", 0 0, L_0x56044d1088f0; 1 drivers
v0x56044d103c30_0 .net "B", 0 0, L_0x56044d108a20; 1 drivers
v0x56044d103d00_0 .net "BorrowIN", 0 0, L_0x56044d108b50; 1 drivers
v0x56044d103e00_0 .net "BorrowOut", 0 0, L_0x56044d108860; 1 drivers
v0x56044d103ea0_0 .net "Difference", 0 0, L_0x56044d108530; 1 drivers
v0x56044d103f90_0 .net "tempB1", 0 0, L_0x56044d108420; 1 drivers
v0x56044d104060_0 .net "tempB2", 0 0, L_0x56044d108750; 1 drivers
v0x56044d104130_0 .net "tempD", 0 0, L_0x56044d108240; 1 drivers
S_0x56044d102e10 .scope module, "hf1" "halfsubtraction" 4 8, 5 1 0, S_0x56044d102c30;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /OUTPUT 1 "Difference";
.port_info 3 /OUTPUT 1 "Borrow";
L_0x56044d108240 .functor XOR 1, L_0x56044d1088f0, L_0x56044d108a20, C4<0>, C4<0>;
L_0x56044d108390 .functor NOT 1, L_0x56044d1088f0, C4<0>, C4<0>, C4<0>;
L_0x56044d108420 .functor AND 1, L_0x56044d108390, L_0x56044d108a20, C4<1>, C4<1>;
v0x56044d103020_0 .net "A", 0 0, L_0x56044d1088f0; alias, 1 drivers
v0x56044d103100_0 .net "B", 0 0, L_0x56044d108a20; alias, 1 drivers
v0x56044d1031c0_0 .net "Borrow", 0 0, L_0x56044d108420; alias, 1 drivers
v0x56044d103290_0 .net "Difference", 0 0, L_0x56044d108240; alias, 1 drivers
v0x56044d103350_0 .net "notA", 0 0, L_0x56044d108390; 1 drivers
S_0x56044d1034e0 .scope module, "hf2" "halfsubtraction" 4 9, 5 1 0, S_0x56044d102c30;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /OUTPUT 1 "Difference";
.port_info 3 /OUTPUT 1 "Borrow";
L_0x56044d108530 .functor XOR 1, L_0x56044d108240, L_0x56044d108b50, C4<0>, C4<0>;
L_0x56044d1086c0 .functor NOT 1, L_0x56044d108240, C4<0>, C4<0>, C4<0>;
L_0x56044d108750 .functor AND 1, L_0x56044d1086c0, L_0x56044d108b50, C4<1>, C4<1>;
v0x56044d1036e0_0 .net "A", 0 0, L_0x56044d108240; alias, 1 drivers
v0x56044d1037b0_0 .net "B", 0 0, L_0x56044d108b50; alias, 1 drivers
v0x56044d103850_0 .net "Borrow", 0 0, L_0x56044d108750; alias, 1 drivers
v0x56044d103920_0 .net "Difference", 0 0, L_0x56044d108530; alias, 1 drivers
v0x56044d1039e0_0 .net "notA", 0 0, L_0x56044d1086c0; 1 drivers
S_0x56044d104220 .scope module, "f2" "fullsubtraction" 3 13, 4 1 0, S_0x56044d0d0e60;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /INPUT 1 "BorrowIN";
.port_info 3 /OUTPUT 1 "Difference";
.port_info 4 /OUTPUT 1 "BorrowOut";
L_0x56044d109170 .functor OR 1, L_0x56044d108d80, L_0x56044d109060, C4<0>, C4<0>;
v0x56044d105170_0 .net "A", 0 0, L_0x56044d109200; 1 drivers
v0x56044d105230_0 .net "B", 0 0, L_0x56044d109400; 1 drivers
v0x56044d105300_0 .net "BorrowIN", 0 0, L_0x56044d1095c0; 1 drivers
v0x56044d105400_0 .net "BorrowOut", 0 0, L_0x56044d109170; 1 drivers
v0x56044d1054a0_0 .net "Difference", 0 0, L_0x56044d108e40; 1 drivers
v0x56044d105590_0 .net "tempB1", 0 0, L_0x56044d108d80; 1 drivers
v0x56044d105660_0 .net "tempB2", 0 0, L_0x56044d109060; 1 drivers
v0x56044d105730_0 .net "tempD", 0 0, L_0x56044d108c80; 1 drivers
S_0x56044d104430 .scope module, "hf1" "halfsubtraction" 4 8, 5 1 0, S_0x56044d104220;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /OUTPUT 1 "Difference";
.port_info 3 /OUTPUT 1 "Borrow";
L_0x56044d108c80 .functor XOR 1, L_0x56044d109200, L_0x56044d109400, C4<0>, C4<0>;
L_0x56044d108cf0 .functor NOT 1, L_0x56044d109200, C4<0>, C4<0>, C4<0>;
L_0x56044d108d80 .functor AND 1, L_0x56044d108cf0, L_0x56044d109400, C4<1>, C4<1>;
v0x56044d104640_0 .net "A", 0 0, L_0x56044d109200; alias, 1 drivers
v0x56044d104700_0 .net "B", 0 0, L_0x56044d109400; alias, 1 drivers
v0x56044d1047c0_0 .net "Borrow", 0 0, L_0x56044d108d80; alias, 1 drivers
v0x56044d104890_0 .net "Difference", 0 0, L_0x56044d108c80; alias, 1 drivers
v0x56044d104950_0 .net "notA", 0 0, L_0x56044d108cf0; 1 drivers
S_0x56044d104ae0 .scope module, "hf2" "halfsubtraction" 4 9, 5 1 0, S_0x56044d104220;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /OUTPUT 1 "Difference";
.port_info 3 /OUTPUT 1 "Borrow";
L_0x56044d108e40 .functor XOR 1, L_0x56044d108c80, L_0x56044d1095c0, C4<0>, C4<0>;
L_0x56044d108fd0 .functor NOT 1, L_0x56044d108c80, C4<0>, C4<0>, C4<0>;
L_0x56044d109060 .functor AND 1, L_0x56044d108fd0, L_0x56044d1095c0, C4<1>, C4<1>;
v0x56044d104ce0_0 .net "A", 0 0, L_0x56044d108c80; alias, 1 drivers
v0x56044d104db0_0 .net "B", 0 0, L_0x56044d1095c0; alias, 1 drivers
v0x56044d104e50_0 .net "Borrow", 0 0, L_0x56044d109060; alias, 1 drivers
v0x56044d104f20_0 .net "Difference", 0 0, L_0x56044d108e40; alias, 1 drivers
v0x56044d104fe0_0 .net "notA", 0 0, L_0x56044d108fd0; 1 drivers
S_0x56044d105820 .scope module, "f3" "fullsubtraction" 3 14, 4 1 0, S_0x56044d0d0e60;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /INPUT 1 "BorrowIN";
.port_info 3 /OUTPUT 1 "Difference";
.port_info 4 /OUTPUT 1 "BorrowOut";
L_0x56044d109c20 .functor OR 1, L_0x56044d109880, L_0x56044d109b10, C4<0>, C4<0>;
v0x56044d106840_0 .net "A", 0 0, L_0x56044d109cd0; 1 drivers
v0x56044d106900_0 .net "B", 0 0, L_0x56044d109e00; 1 drivers
v0x56044d1069d0_0 .net "BorrowIN", 0 0, L_0x56044d109f90; 1 drivers
v0x56044d106ad0_0 .net "BorrowOut", 0 0, L_0x56044d109c20; alias, 1 drivers
v0x56044d106b70_0 .net "Difference", 0 0, L_0x56044d1098f0; 1 drivers
v0x56044d106c60_0 .net "tempB1", 0 0, L_0x56044d109880; 1 drivers
v0x56044d106d30_0 .net "tempB2", 0 0, L_0x56044d109b10; 1 drivers
v0x56044d106e00_0 .net "tempD", 0 0, L_0x56044d109740; 1 drivers
S_0x56044d105a00 .scope module, "hf1" "halfsubtraction" 4 8, 5 1 0, S_0x56044d105820;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /OUTPUT 1 "Difference";
.port_info 3 /OUTPUT 1 "Borrow";
L_0x56044d109740 .functor XOR 1, L_0x56044d109cd0, L_0x56044d109e00, C4<0>, C4<0>;
L_0x56044d1097f0 .functor NOT 1, L_0x56044d109cd0, C4<0>, C4<0>, C4<0>;
L_0x56044d109880 .functor AND 1, L_0x56044d1097f0, L_0x56044d109e00, C4<1>, C4<1>;
v0x56044d105c80_0 .net "A", 0 0, L_0x56044d109cd0; alias, 1 drivers
v0x56044d105d60_0 .net "B", 0 0, L_0x56044d109e00; alias, 1 drivers
v0x56044d105e20_0 .net "Borrow", 0 0, L_0x56044d109880; alias, 1 drivers
v0x56044d105ef0_0 .net "Difference", 0 0, L_0x56044d109740; alias, 1 drivers
v0x56044d105fb0_0 .net "notA", 0 0, L_0x56044d1097f0; 1 drivers
S_0x56044d106140 .scope module, "hf2" "halfsubtraction" 4 9, 5 1 0, S_0x56044d105820;
.timescale 0 0;
.port_info 0 /INPUT 1 "A";
.port_info 1 /INPUT 1 "B";
.port_info 2 /OUTPUT 1 "Difference";
.port_info 3 /OUTPUT 1 "Borrow";
L_0x56044d1098f0 .functor XOR 1, L_0x56044d109740, L_0x56044d109f90, C4<0>, C4<0>;
L_0x56044d109a80 .functor NOT 1, L_0x56044d109740, C4<0>, C4<0>, C4<0>;
L_0x56044d109b10 .functor AND 1, L_0x56044d109a80, L_0x56044d109f90, C4<1>, C4<1>;
v0x56044d1063b0_0 .net "A", 0 0, L_0x56044d109740; alias, 1 drivers
v0x56044d106480_0 .net "B", 0 0, L_0x56044d109f90; alias, 1 drivers
v0x56044d106520_0 .net "Borrow", 0 0, L_0x56044d109b10; alias, 1 drivers
v0x56044d1065f0_0 .net "Difference", 0 0, L_0x56044d1098f0; alias, 1 drivers
v0x56044d1066b0_0 .net "notA", 0 0, L_0x56044d109a80; 1 drivers
.scope S_0x56044d0d48c0;
T_0 ;
%vpi_call 2 18 "$dumpfile", "subtraction.vcd" {0 0 0};
%vpi_call 2 19 "$dumpvars" {0 0 0};
%pushi/vec4 0, 0, 4;
%store/vec4 v0x56044d107590_0, 0, 4;
%pushi/vec4 0, 0, 4;
%store/vec4 v0x56044d107670_0, 0, 4;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x56044d107740_0, 0, 1;
%delay 10, 0;
%pushi/vec4 6, 0, 4;
%store/vec4 v0x56044d107590_0, 0, 4;
%pushi/vec4 2, 0, 4;
%store/vec4 v0x56044d107670_0, 0, 4;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x56044d107740_0, 0, 1;
%delay 10, 0;
%pushi/vec4 2, 0, 4;
%store/vec4 v0x56044d107590_0, 0, 4;
%pushi/vec4 6, 0, 4;
%store/vec4 v0x56044d107670_0, 0, 4;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x56044d107740_0, 0, 1;
%delay 10, 0;
%pushi/vec4 12, 0, 4;
%store/vec4 v0x56044d107590_0, 0, 4;
%pushi/vec4 4, 0, 4;
%store/vec4 v0x56044d107670_0, 0, 4;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x56044d107740_0, 0, 1;
%delay 10, 0;
%pushi/vec4 8, 0, 4;
%store/vec4 v0x56044d107590_0, 0, 4;
%pushi/vec4 8, 0, 4;
%store/vec4 v0x56044d107670_0, 0, 4;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x56044d107740_0, 0, 1;
%delay 10, 0;
%pushi/vec4 15, 0, 4;
%store/vec4 v0x56044d107590_0, 0, 4;
%pushi/vec4 1, 0, 4;
%store/vec4 v0x56044d107670_0, 0, 4;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x56044d107740_0, 0, 1;
%delay 10, 0;
%vpi_call 2 33 "$finish" {0 0 0};
%end;
.thread T_0;
# The file index is used to find the file name in the following table.
:file_names 6;
"N/A";
"<interactive>";
"subtractionTB.v";
"subtraction.v";
"fullsubtraction.v";
"halfsubtraction.v";