aboutsummaryrefslogtreecommitdiffstats
path: root/tests/various/sta.ys
diff options
context:
space:
mode:
authorLofty <dan.ravensloft@gmail.com>2021-11-24 21:21:08 +0000
committerMarcelina Koƛcielnicka <mwk@0x04.net>2021-11-25 17:20:27 +0100
commit77327b2544a30b15e8efc79e1f62661ff25d306c (patch)
treeced90532e760c9fc90dfd0f86ea52eafe67b0f03 /tests/various/sta.ys
parent113c9438419e00c7da2ce76d040a60273ad3ecb2 (diff)
downloadyosys-77327b2544a30b15e8efc79e1f62661ff25d306c.tar.gz
yosys-77327b2544a30b15e8efc79e1f62661ff25d306c.tar.bz2
yosys-77327b2544a30b15e8efc79e1f62661ff25d306c.zip
sta: very crude static timing analysis pass
Co-authored-by: Eddie Hung <eddie@fpgeh.com>
Diffstat (limited to 'tests/various/sta.ys')
-rw-r--r--tests/various/sta.ys81
1 files changed, 81 insertions, 0 deletions
diff --git a/tests/various/sta.ys b/tests/various/sta.ys
new file mode 100644
index 000000000..156c31c47
--- /dev/null
+++ b/tests/various/sta.ys
@@ -0,0 +1,81 @@
+read_verilog -specify <<EOT
+module buffer(input i, output o);
+specify
+(i => o) = 10;
+endspecify
+endmodule
+
+module top(input i);
+wire w;
+buffer b(.i(i), .o(w));
+endmodule
+EOT
+
+logger -expect warning "Critical-path does not terminate in a recognised endpoint\." 1
+sta
+
+
+design -reset
+read_verilog -specify <<EOT
+module top(input i, output o, p);
+assign o = i;
+endmodule
+EOT
+
+logger -expect log "No timing paths found\." 1
+sta
+
+
+design -reset
+read_verilog -specify <<EOT
+module buffer(input i, output o);
+specify
+(i => o) = 10;
+endspecify
+endmodule
+
+module top(input i, output o, p);
+buffer b(.i(i), .o(o));
+endmodule
+EOT
+
+sta
+
+
+design -reset
+read_verilog -specify <<EOT
+module buffer(input i, output o);
+specify
+(i => o) = 10;
+endspecify
+endmodule
+
+module top(input i, output o, p);
+buffer b(.i(i), .o(o));
+const0 c(.o(p));
+endmodule
+EOT
+
+logger -expect warning "Cell type 'const0' not recognised! Ignoring\." 1
+sta
+
+
+design -reset
+read_verilog -specify <<EOT
+module buffer(input i, output o);
+specify
+(i => o) = 10;
+endspecify
+endmodule
+module const0(output o);
+endmodule
+
+module top(input i, output o, p);
+buffer b(.i(i), .o(o));
+const0 c(.o(p));
+endmodule
+EOT
+
+sta
+
+logger -expect-no-warnings