diff --git a/ivtest/gold/br_gh1248-vvp-stdout.gold b/ivtest/gold/br_gh1248-vvp-stdout.gold new file mode 100644 index 000000000..36cf84483 --- /dev/null +++ b/ivtest/gold/br_gh1248-vvp-stdout.gold @@ -0,0 +1,10 @@ +0.000: x xxx x +1.000: x xx0 0 +1.070: x x00 0 +1.130: 0 000 0 +2.000: 0 001 1 +2.050: 0 011 1 +2.120: 1 111 1 +3.000: 1 110 0 +3.070: 1 100 0 +3.130: 0 000 0 diff --git a/ivtest/ivltests/br_gh1248.sdf b/ivtest/ivltests/br_gh1248.sdf new file mode 100644 index 000000000..8d9a73e20 --- /dev/null +++ b/ivtest/ivltests/br_gh1248.sdf @@ -0,0 +1,40 @@ +(DELAYFILE + (SDFVERSION "3.0") + (DESIGN "br_gh1248") + (DATE "Thu Feb 19 22:00:00 2026") + (VENDOR "Custom") + (PROGRAM "Custom") + (VERSION "1.0.0") + (DIVIDER /) + (VOLTAGE 1.200) + (PROCESS "1.000") + (TEMPERATURE 25.000) + (TIMESCALE 1ns) + (CELL + (CELLTYPE "top") + (INSTANCE dut) + (DELAY + (ABSOLUTE + (INTERCONNECT i1/Y i2/A (0.010)) + ) + ) + ) + (CELL + (CELLTYPE "buff") + (INSTANCE dut/i1) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.050) (0.070)) + ) + ) + ) + (CELL + (CELLTYPE "buff") + (INSTANCE dut/i2) + (DELAY + (ABSOLUTE + (IOPATH A Y (0.060) (0.050)) + ) + ) + ) +) diff --git a/ivtest/ivltests/br_gh1248.v b/ivtest/ivltests/br_gh1248.v new file mode 100644 index 000000000..c6b08b7a8 --- /dev/null +++ b/ivtest/ivltests/br_gh1248.v @@ -0,0 +1,40 @@ +`timescale 1ns/1ps + +module tb; + reg in; + wire out; + + top dut(out, in); + + initial begin + $monitor("%.3f: %b %b %b",$realtime,out,dut.int,in); + $sdf_annotate("ivltests/br_gh1248.sdf"); + #1; + in = 1'b0; + #1; + in = 1'b1; + #1; + in = 1'b0; + #1; + end +endmodule + +module top(output wire out, input wire in); + wire [2:0] int; + + assign int[0] = in; + buff i1 (.Y(int[1]), .A(int[0])); + buff i2 (.Y(int[2]), .A(int[1])); + assign out = int[2]; +endmodule + +`celldefine +module buff(output wire Y, input wire A); + buf (Y, A); + + specify + (A => Y) = 0; + endspecify + +endmodule +`endcelldefine diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index 874185139..49a0917df 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -63,6 +63,7 @@ br_gh1180b vvp_tests/br_gh1180b.json br_gh1181 vvp_tests/br_gh1181.json br_gh1184 vvp_tests/br_gh1184.json br_gh1242 vvp_tests/br_gh1242.json +br_gh1248 vvp_tests/br_gh1248.json br_gh1256a vvp_tests/br_gh1256a.json br_gh1256b vvp_tests/br_gh1256b.json br_gh1258a vvp_tests/br_gh1258a.json diff --git a/ivtest/vvp_tests/br_gh1248.json b/ivtest/vvp_tests/br_gh1248.json new file mode 100644 index 000000000..7fa9fed62 --- /dev/null +++ b/ivtest/vvp_tests/br_gh1248.json @@ -0,0 +1,10 @@ +{ + "type" : "normal", + "source" : "br_gh1248.v", + "iverilog-args" : [ "-Ttyp", "-ginterconnect", "-gspecify" ], + "gold" : "br_gh1248", + "vlog95" : { + "__comment" : "The buffer module output is not connected.", + "type" : "TE" + } +}