Files
hdl-projects/half_adder/half_adder.vvp
Jose Luis Montañes Ojados d094ff3148 first commit
2026-02-28 21:59:55 +01:00

75 lines
2.5 KiB
Plaintext

#! /c/iverilog/bin/vvp
:ivl_version "0.9.7 " "(v0_9_7)";
:vpi_time_precision + 0;
:vpi_module "system";
:vpi_module "v2005_math";
:vpi_module "va_math";
S_00119918 .scope module, "half_adder_behavioral" "half_adder_behavioral" 2 21;
.timescale 0 0;
v0011E700_0 .net "a", 0 0, C4<z>; 0 drivers
v0011CF80_0 .net "b", 0 0, C4<z>; 0 drivers
v0011E758_0 .var "carry", 0 0;
v0011E7B0_0 .var "sum", 0 0;
E_0011A260 .event edge, v0011CF80_0, v0011E700_0;
S_001191A8 .scope module, "half_adder_dataflow" "half_adder_dataflow" 2 13;
.timescale 0 0;
L_001115D0 .functor XOR 1, C4<z>, C4<z>, C4<0>, C4<0>;
L_0011D930 .functor AND 1, C4<z>, C4<z>, C4<1>, C4<1>;
v0011D828_0 .net "a", 0 0, C4<z>; 0 drivers
v0011D880_0 .net "b", 0 0, C4<z>; 0 drivers
v0011D8D8_0 .net "carry", 0 0, L_0011D930; 1 drivers
v001114C8_0 .net "sum", 0 0, L_001115D0; 1 drivers
S_001199A0 .scope module, "half_adder_tb" "half_adder_tb" 3 6;
.timescale 0 0;
v01030A60_0 .var "a", 0 0;
v01030A08_0 .var "b", 0 0;
v01030900_0 .net "carry", 0 0, L_01031290; 1 drivers
v01030E80_0 .net "sum", 0 0, L_0011D490; 1 drivers
S_001194D8 .scope module, "add1" "half_adder" 3 10, 2 5, S_001199A0;
.timescale 0 0;
L_0011D490 .functor XOR 1, v01030A60_0, v01030A08_0, C4<0>, C4<0>;
L_01031290 .functor AND 1, v01030A60_0, v01030A08_0, C4<1>, C4<1>;
v00111520_0 .net "a", 0 0, v01030A60_0; 1 drivers
v00111578_0 .net "b", 0 0, v01030A08_0; 1 drivers
v0011D400_0 .alias "carry", 0 0, v01030900_0;
v01031038_0 .alias "sum", 0 0, v01030E80_0;
.scope S_00119918;
T_0 ;
%wait E_0011A260;
%load/v 8, v0011E700_0, 1;
%load/v 9, v0011CF80_0, 1;
%xor 8, 9, 1;
%set/v v0011E7B0_0, 8, 1;
%load/v 8, v0011E700_0, 1;
%load/v 9, v0011CF80_0, 1;
%and 8, 9, 1;
%set/v v0011E758_0, 8, 1;
%jmp T_0;
.thread T_0, $push;
.scope S_001199A0;
T_1 ;
%vpi_call 3 13 "$dumpfile", "./half_adder/half_adder.vcd";
%vpi_call 3 14 "$dumpvars", 1'sb0, S_001199A0;
%set/v v01030A60_0, 0, 1;
%set/v v01030A08_0, 0, 1;
%delay 1, 0;
%set/v v01030A60_0, 0, 1;
%set/v v01030A08_0, 1, 1;
%delay 1, 0;
%set/v v01030A60_0, 1, 1;
%set/v v01030A08_0, 0, 1;
%delay 1, 0;
%set/v v01030A60_0, 1, 1;
%set/v v01030A08_0, 1, 1;
%delay 1, 0;
%set/v v01030A60_0, 0, 1;
%set/v v01030A08_0, 0, 1;
%end;
.thread T_1;
# The file index is used to find the file name in the following table.
:file_names 4;
"N/A";
"<interactive>";
"././half_adder/half_adder.v";
".\half_adder\half_adder_tb.v";