From 414e4e44aa1bacfc86641e1793a8b4737da50896 Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Mon, 11 Jul 2022 08:49:12 -0700 Subject: [PATCH 01/12] Initial Pass at Attribute parsing --- .gitignore | 3 + examples/attribute_parsing_test.tcl | 15 + examples/attribute_parsing_test.v | 4740 +++++++++++++++++++++++++++ include/sta/ConcreteLibrary.hh | 4 + include/sta/ConcreteNetwork.hh | 12 + include/sta/Network.hh | 9 + include/sta/SdcNetwork.hh | 2 + network/ConcreteLibrary.cc | 13 + network/ConcreteNetwork.cc | 45 + network/SdcNetwork.cc | 12 + tcl/StaTcl.i | 2 + test/regression_vars.tcl | 1 + verilog/VerilogLex.ll | 18 +- verilog/VerilogParse.yy | 99 +- verilog/VerilogReader.cc | 133 +- verilog/VerilogReaderPvt.hh | 49 + 16 files changed, 5101 insertions(+), 56 deletions(-) create mode 100644 examples/attribute_parsing_test.tcl create mode 100644 examples/attribute_parsing_test.v diff --git a/.gitignore b/.gitignore index e5e79e9a..2013c841 100644 --- a/.gitignore +++ b/.gitignore @@ -6,9 +6,12 @@ TAGS .#* .~lock.*\.*# .DS_Store +.vscode +.idea Makefile gmon.out +cmake-build-debug build pvt diff --git a/examples/attribute_parsing_test.tcl b/examples/attribute_parsing_test.tcl new file mode 100644 index 00000000..912cab8d --- /dev/null +++ b/examples/attribute_parsing_test.tcl @@ -0,0 +1,15 @@ +read_liberty sky130hd_tt.lib +read_verilog attribute_parsing_test.v +link_design counter +create_clock -name clk [get_ports clk] -period 50 +set timing_paths [find_timing_paths -sort_by_slack] +set critical_path [lindex $timing_paths 0] +set critical_path_length [expr {- [get_property $critical_path slack]}] +report_checks -format full +puts stderr "Critical path length is $critical_path_length\n" + +set instance [sta::top_instance] +set cell [$instance cell] +set cell_name [$cell name] +set src_location [$cell get_attribute "src"] +puts "top_instance:\"$cell_name\" attribute \"src\" = $src_location \n" diff --git a/examples/attribute_parsing_test.v b/examples/attribute_parsing_test.v new file mode 100644 index 00000000..e4c9b2b6 --- /dev/null +++ b/examples/attribute_parsing_test.v @@ -0,0 +1,4740 @@ +/* Generated by Yosys 0.8+ */ + +(* hdlname = "\\counter" *) +(* top = 1 *) +(* src = "synthesis/tests/counter.v:16.1-32.10" *) +module counter(clk, reset, out); + wire _0000_; + wire _0001_; + wire _0002_; + wire _0003_; + wire _0004_; + wire _0005_; + wire _0006_; + wire _0007_; + wire _0008_; + wire _0009_; + wire _0010_; + wire _0011_; + wire _0012_; + wire _0013_; + wire _0014_; + wire _0015_; + wire _0016_; + wire _0017_; + wire _0018_; + wire _0019_; + wire _0020_; + wire _0021_; + wire _0022_; + wire _0023_; + wire _0024_; + wire _0025_; + wire _0026_; + wire _0027_; + wire _0028_; + wire _0029_; + wire _0030_; + wire _0031_; + wire _0032_; + wire _0033_; + wire _0034_; + wire _0035_; + wire _0036_; + wire _0037_; + wire _0038_; + wire _0039_; + wire _0040_; + wire _0041_; + wire _0042_; + wire _0043_; + wire _0044_; + wire _0045_; + wire _0046_; + wire _0047_; + wire _0048_; + wire _0049_; + wire _0050_; + wire _0051_; + wire _0052_; + wire _0053_; + wire _0054_; + wire _0055_; + wire _0056_; + wire _0057_; + wire _0058_; + wire _0059_; + wire _0060_; + wire _0061_; + wire _0062_; + wire _0063_; + wire _0064_; + wire _0065_; + wire _0066_; + wire _0067_; + wire _0068_; + wire _0069_; + wire _0070_; + wire _0071_; + wire _0072_; + wire _0073_; + wire _0074_; + wire _0075_; + wire _0076_; + wire _0077_; + wire _0078_; + wire _0079_; + wire _0080_; + wire _0081_; + wire _0082_; + wire _0083_; + wire _0084_; + wire _0085_; + wire _0086_; + wire _0087_; + wire _0088_; + wire _0089_; + wire _0090_; + wire _0091_; + wire _0092_; + wire _0093_; + wire _0094_; + wire _0095_; + wire _0096_; + wire _0097_; + wire _0098_; + wire _0099_; + wire _0100_; + wire _0101_; + wire _0102_; + wire _0103_; + wire _0104_; + wire _0105_; + wire _0106_; + wire _0107_; + wire _0108_; + wire _0109_; + wire _0110_; + wire _0111_; + wire _0112_; + wire _0113_; + wire _0114_; + wire _0115_; + wire _0116_; + wire _0117_; + wire _0118_; + wire _0119_; + wire _0120_; + wire _0121_; + wire _0122_; + wire _0123_; + wire _0124_; + wire _0125_; + wire _0126_; + wire _0127_; + wire _0128_; + wire _0129_; + wire _0130_; + wire _0131_; + wire _0132_; + wire _0133_; + wire _0134_; + wire _0135_; + wire _0136_; + wire _0137_; + wire _0138_; + wire _0139_; + wire _0140_; + wire _0141_; + wire _0142_; + wire _0143_; + wire _0144_; + wire _0145_; + wire _0146_; + wire _0147_; + wire _0148_; + wire _0149_; + wire _0150_; + wire _0151_; + wire _0152_; + wire _0153_; + wire _0154_; + wire _0155_; + wire _0156_; + wire _0157_; + wire _0158_; + wire _0159_; + wire _0160_; + wire _0161_; + wire _0162_; + wire _0163_; + wire _0164_; + wire _0165_; + wire _0166_; + wire _0167_; + wire _0168_; + wire _0169_; + wire _0170_; + wire _0171_; + wire _0172_; + wire _0173_; + wire _0174_; + wire _0175_; + wire _0176_; + wire _0177_; + wire _0178_; + wire _0179_; + wire _0180_; + wire _0181_; + wire _0182_; + wire _0183_; + wire _0184_; + wire _0185_; + wire _0186_; + wire _0187_; + wire _0188_; + wire _0189_; + wire _0190_; + wire _0191_; + wire _0192_; + wire _0193_; + wire _0194_; + wire _0195_; + wire _0196_; + wire _0197_; + wire _0198_; + wire _0199_; + wire _0200_; + wire _0201_; + wire _0202_; + wire _0203_; + wire _0204_; + wire _0205_; + wire _0206_; + wire _0207_; + wire _0208_; + wire _0209_; + wire _0210_; + wire _0211_; + wire _0212_; + wire _0213_; + wire _0214_; + wire _0215_; + wire _0216_; + wire _0217_; + wire _0218_; + wire _0219_; + wire _0220_; + wire _0221_; + wire _0222_; + wire _0223_; + wire _0224_; + wire _0225_; + wire _0226_; + wire _0227_; + wire _0228_; + wire _0229_; + wire _0230_; + wire _0231_; + wire _0232_; + wire _0233_; + wire _0234_; + wire _0235_; + wire _0236_; + wire _0237_; + wire _0238_; + wire _0239_; + wire _0240_; + wire _0241_; + wire _0242_; + wire _0243_; + wire _0244_; + wire _0245_; + wire _0246_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.23-270.24" *) + wire _0247_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0248_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0249_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0250_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0251_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0252_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0253_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0254_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0255_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0256_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0257_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0258_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0259_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0260_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0261_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0262_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0263_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0264_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0265_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0266_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0267_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0268_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0269_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0270_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0271_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0272_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0273_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0274_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0275_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0276_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0277_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0278_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0279_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0280_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0281_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0282_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0283_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0284_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0285_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0286_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0287_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0288_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0289_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0290_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0291_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0292_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0293_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0294_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0295_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0296_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0297_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0298_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0299_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0300_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0301_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0302_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0303_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0304_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0305_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0306_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0307_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0308_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0309_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0310_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0311_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0312_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0313_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0314_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0315_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0316_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0317_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0318_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0319_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0320_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0321_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0322_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0323_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0324_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0325_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0326_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0327_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0328_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0329_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0330_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0331_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0332_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0333_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0334_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0335_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0336_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0337_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0338_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0339_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0340_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0341_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0342_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0343_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0344_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0345_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0346_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0347_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0348_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0349_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0350_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0351_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0352_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0353_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0354_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0355_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0356_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0357_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0358_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0359_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0360_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0361_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0362_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0363_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0364_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0365_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0366_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0367_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0368_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0369_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0370_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0371_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0372_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0373_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0374_; + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire _0375_; + wire _0376_; + wire _0377_; + wire _0378_; + wire _0379_; + wire _0380_; + wire _0381_; + wire _0382_; + wire _0383_; + wire _0384_; + wire _0385_; + wire _0386_; + wire _0387_; + wire _0388_; + wire _0389_; + wire _0390_; + wire _0391_; + wire _0392_; + wire _0393_; + wire _0394_; + wire _0395_; + wire _0396_; + wire _0397_; + wire _0398_; + wire _0399_; + wire _0400_; + wire _0401_; + wire _0402_; + wire _0403_; + wire _0404_; + wire _0405_; + wire _0406_; + wire _0407_; + wire _0408_; + wire _0409_; + wire _0410_; + wire _0411_; + wire _0412_; + wire _0413_; + wire _0414_; + wire _0415_; + wire _0416_; + wire _0417_; + wire _0418_; + wire _0419_; + wire _0420_; + wire _0421_; + wire _0422_; + wire _0423_; + wire _0424_; + wire _0425_; + wire _0426_; + wire _0427_; + wire _0428_; + wire _0429_; + wire _0430_; + wire _0431_; + wire _0432_; + wire _0433_; + wire _0434_; + wire _0435_; + wire _0436_; + wire _0437_; + wire _0438_; + wire _0439_; + wire _0440_; + wire _0441_; + wire _0442_; + wire _0443_; + wire _0444_; + wire _0445_; + wire _0446_; + wire _0447_; + wire _0448_; + wire _0449_; + wire _0450_; + wire _0451_; + wire _0452_; + wire _0453_; + wire _0454_; + wire _0455_; + wire _0456_; + wire _0457_; + wire _0458_; + wire _0459_; + wire _0460_; + wire _0461_; + wire _0462_; + wire _0463_; + wire _0464_; + wire _0465_; + wire _0466_; + wire _0467_; + wire _0468_; + wire _0469_; + wire _0470_; + wire _0471_; + wire _0472_; + wire _0473_; + wire _0474_; + wire _0475_; + wire _0476_; + wire _0477_; + wire _0478_; + wire _0479_; + wire _0480_; + wire _0481_; + wire _0482_; + wire _0483_; + wire _0484_; + wire _0485_; + wire _0486_; + wire _0487_; + wire _0488_; + wire _0489_; + wire _0490_; + wire _0491_; + wire _0492_; + wire _0493_; + wire _0494_; + wire _0495_; + wire _0496_; + wire _0497_; + wire _0498_; + wire _0499_; + wire _0500_; + wire _0501_; + wire _0502_; + wire _0503_; + wire _0504_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0505_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0506_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0507_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0508_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0509_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0510_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0511_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0512_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0513_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0514_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0515_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0516_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0517_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0518_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0519_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0520_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0521_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0522_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0523_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0524_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0525_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0526_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0527_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0528_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0529_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0530_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0531_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0532_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0533_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0534_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0535_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0536_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0537_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0538_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0539_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0540_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0541_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0542_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0543_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0544_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0545_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0546_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0547_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0548_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0549_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0550_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0551_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0552_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0553_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0554_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0555_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0556_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0557_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0558_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0559_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0560_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0561_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0562_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0563_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0564_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0565_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0566_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0567_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0568_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0569_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0570_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0571_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0572_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0573_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0574_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0575_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0576_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0577_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0578_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0579_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0580_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0581_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0582_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0583_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0584_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0585_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0586_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0587_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0588_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0589_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0590_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0591_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0592_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0593_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0594_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0595_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0596_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0597_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0598_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0599_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0600_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0601_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0602_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0603_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0604_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0605_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0606_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0607_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0608_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0609_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0610_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0611_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0612_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0613_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0614_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0615_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0616_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0617_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0618_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0619_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0620_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0621_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0622_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0623_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0624_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0625_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0626_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0627_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0628_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0629_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0630_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0631_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0632_; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire _0633_; + wire _0634_; + wire _0635_; + wire _0636_; + wire _0637_; + wire _0638_; + wire _0639_; + wire _0640_; + wire _0641_; + wire _0642_; + wire _0643_; + wire _0644_; + wire _0645_; + wire _0646_; + wire _0647_; + wire _0648_; + wire _0649_; + wire _0650_; + wire _0651_; + wire _0652_; + wire _0653_; + wire _0654_; + wire _0655_; + wire _0656_; + wire _0657_; + wire _0658_; + wire _0659_; + wire _0660_; + wire _0661_; + wire _0662_; + wire _0663_; + wire _0664_; + wire _0665_; + wire _0666_; + wire _0667_; + wire _0668_; + wire _0669_; + wire _0670_; + wire _0671_; + wire _0672_; + wire _0673_; + wire _0674_; + wire _0675_; + wire _0676_; + wire _0677_; + wire _0678_; + wire _0679_; + wire _0680_; + wire _0681_; + wire _0682_; + wire _0683_; + wire _0684_; + wire _0685_; + wire _0686_; + wire _0687_; + wire _0688_; + wire _0689_; + wire _0690_; + wire _0691_; + wire _0692_; + wire _0693_; + wire _0694_; + wire _0695_; + wire _0696_; + wire _0697_; + wire _0698_; + wire _0699_; + wire _0700_; + wire _0701_; + wire _0702_; + wire _0703_; + wire _0704_; + wire _0705_; + wire _0706_; + wire _0707_; + wire _0708_; + wire _0709_; + wire _0710_; + wire _0711_; + wire _0712_; + wire _0713_; + wire _0714_; + wire _0715_; + wire _0716_; + wire _0717_; + wire _0718_; + wire _0719_; + wire _0720_; + wire _0721_; + wire _0722_; + wire _0723_; + wire _0724_; + wire _0725_; + wire _0726_; + wire _0727_; + wire _0728_; + wire _0729_; + wire _0730_; + wire _0731_; + wire _0732_; + wire _0733_; + wire _0734_; + wire _0735_; + wire _0736_; + wire _0737_; + wire _0738_; + wire _0739_; + wire _0740_; + wire _0741_; + wire _0742_; + wire _0743_; + wire _0744_; + wire _0745_; + wire _0746_; + wire _0747_; + wire _0748_; + wire _0749_; + wire _0750_; + wire _0751_; + wire _0752_; + wire _0753_; + wire _0754_; + wire _0755_; + wire _0756_; + wire _0757_; + wire _0758_; + wire _0759_; + wire _0760_; + wire _0761_; + wire _0762_; + wire _0763_; + wire _0764_; + wire _0765_; + wire _0766_; + wire _0767_; + wire _0768_; + wire _0769_; + wire _0770_; + wire _0771_; + wire _0772_; + wire _0773_; + wire _0774_; + wire _0775_; + wire _0776_; + wire _0777_; + wire _0778_; + wire _0779_; + wire _0780_; + wire _0781_; + wire _0782_; + wire _0783_; + wire _0784_; + wire _0785_; + wire _0786_; + wire _0787_; + wire _0788_; + wire _0789_; + wire _0790_; + wire _0791_; + wire _0792_; + wire _0793_; + wire _0794_; + wire _0795_; + wire _0796_; + wire _0797_; + wire _0798_; + wire _0799_; + wire _0800_; + wire _0801_; + wire _0802_; + wire _0803_; + wire _0804_; + wire _0805_; + wire _0806_; + wire _0807_; + wire _0808_; + wire _0809_; + wire _0810_; + wire _0811_; + wire _0812_; + wire _0813_; + wire _0814_; + wire _0815_; + wire _0816_; + wire _0817_; + wire _0818_; + wire _0819_; + wire _0820_; + wire _0821_; + wire _0822_; + wire _0823_; + wire _0824_; + wire _0825_; + wire _0826_; + wire _0827_; + wire _0828_; + (* src = "synthesis/tests/counter.v:18.14-18.19" *) + wire _0829_; + (* force_downto = 32'd1 *) + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.23-270.24" *) + wire [128:0] _0830_; + (* force_downto = 32'd1 *) + (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) + wire [128:0] _0831_; + wire _0832_; + wire _0833_; + wire _0834_; + wire _0835_; + wire _0836_; + wire _0837_; + wire _0838_; + wire _0839_; + wire _0840_; + wire _0841_; + wire _0842_; + wire _0843_; + wire _0844_; + wire _0845_; + wire _0846_; + wire _0847_; + wire _0848_; + wire _0849_; + wire _0850_; + wire _0851_; + wire _0852_; + wire _0853_; + wire _0854_; + wire _0855_; + wire _0856_; + wire _0857_; + wire _0858_; + wire _0859_; + wire _0860_; + wire _0861_; + wire _0862_; + wire _0863_; + wire _0864_; + wire _0865_; + wire _0866_; + wire _0867_; + wire _0868_; + wire _0869_; + wire _0870_; + wire _0871_; + wire _0872_; + wire _0873_; + wire _0874_; + wire _0875_; + wire _0876_; + wire _0877_; + wire _0878_; + wire _0879_; + wire _0880_; + wire _0881_; + wire _0882_; + wire _0883_; + wire _0884_; + wire _0885_; + wire _0886_; + wire _0887_; + wire _0888_; + wire _0889_; + wire _0890_; + wire _0891_; + wire _0892_; + wire _0893_; + wire _0894_; + wire _0895_; + wire _0896_; + wire _0897_; + wire _0898_; + wire _0899_; + wire _0900_; + wire _0901_; + wire _0902_; + wire _0903_; + wire _0904_; + wire _0905_; + wire _0906_; + wire _0907_; + wire _0908_; + wire _0909_; + wire _0910_; + wire _0911_; + wire _0912_; + wire _0913_; + wire _0914_; + wire _0915_; + wire _0916_; + wire _0917_; + wire _0918_; + wire _0919_; + wire _0920_; + wire _0921_; + wire _0922_; + wire _0923_; + wire _0924_; + wire _0925_; + wire _0926_; + wire _0927_; + wire _0928_; + wire _0929_; + wire _0930_; + wire _0931_; + wire _0932_; + wire _0933_; + wire _0934_; + wire _0935_; + wire _0936_; + wire _0937_; + wire _0938_; + wire _0939_; + wire _0940_; + wire _0941_; + wire _0942_; + wire _0943_; + wire _0944_; + wire _0945_; + wire _0946_; + wire _0947_; + wire _0948_; + wire _0949_; + wire _0950_; + wire _0951_; + wire _0952_; + wire _0953_; + wire _0954_; + wire _0955_; + wire _0956_; + wire _0957_; + wire _0958_; + wire _0959_; + wire _0960_; + (* src = "synthesis/tests/counter.v:17.14-17.17" *) + input clk; + (* src = "synthesis/tests/counter.v:21.15-21.26" *) + wire [128:0] counter_tmp; + (* src = "synthesis/tests/counter.v:19.18-19.21" *) + output [128:0] out; + (* src = "synthesis/tests/counter.v:18.14-18.19" *) + input reset; + sky130_fd_sc_hd__clkinv_1 _0961_ ( + .A(_0609_), + .Y(_0634_) + ); + sky130_fd_sc_hd__clkinv_1 _0962_ ( + .A(_0610_), + .Y(_0635_) + ); + sky130_fd_sc_hd__clkinv_1 _0963_ ( + .A(_0584_), + .Y(_0636_) + ); + sky130_fd_sc_hd__clkinv_1 _0964_ ( + .A(_0543_), + .Y(_0637_) + ); + sky130_fd_sc_hd__clkinv_1 _0965_ ( + .A(_0544_), + .Y(_0638_) + ); + sky130_fd_sc_hd__clkinv_1 _0966_ ( + .A(_0516_), + .Y(_0639_) + ); + sky130_fd_sc_hd__clkinv_1 _0967_ ( + .A(_0572_), + .Y(_0640_) + ); + sky130_fd_sc_hd__clkinv_1 _0968_ ( + .A(_0505_), + .Y(_0247_) + ); + sky130_fd_sc_hd__clkinv_1 _0969_ ( + .A(_0546_), + .Y(_0641_) + ); + sky130_fd_sc_hd__clkinv_1 _0970_ ( + .A(_0547_), + .Y(_0642_) + ); + sky130_fd_sc_hd__clkinv_1 _0971_ ( + .A(_0537_), + .Y(_0643_) + ); + sky130_fd_sc_hd__clkinv_1 _0972_ ( + .A(_0553_), + .Y(_0644_) + ); + sky130_fd_sc_hd__clkinv_1 _0973_ ( + .A(_0552_), + .Y(_0645_) + ); + sky130_fd_sc_hd__clkinv_1 _0974_ ( + .A(_0558_), + .Y(_0646_) + ); + sky130_fd_sc_hd__clkinv_1 _0975_ ( + .A(_0559_), + .Y(_0647_) + ); + sky130_fd_sc_hd__clkinv_1 _0976_ ( + .A(_0560_), + .Y(_0648_) + ); + sky130_fd_sc_hd__clkinv_1 _0977_ ( + .A(_0527_), + .Y(_0649_) + ); + sky130_fd_sc_hd__clkinv_1 _0978_ ( + .A(_0551_), + .Y(_0650_) + ); + sky130_fd_sc_hd__clkinv_1 _0979_ ( + .A(_0626_), + .Y(_0651_) + ); + sky130_fd_sc_hd__clkinv_1 _0980_ ( + .A(_0625_), + .Y(_0652_) + ); + sky130_fd_sc_hd__clkinv_1 _0981_ ( + .A(_0623_), + .Y(_0653_) + ); + sky130_fd_sc_hd__clkinv_1 _0982_ ( + .A(_0624_), + .Y(_0654_) + ); + sky130_fd_sc_hd__clkinv_1 _0983_ ( + .A(_0616_), + .Y(_0655_) + ); + sky130_fd_sc_hd__clkinv_1 _0984_ ( + .A(_0617_), + .Y(_0656_) + ); + sky130_fd_sc_hd__clkinv_1 _0985_ ( + .A(_0585_), + .Y(_0657_) + ); + sky130_fd_sc_hd__clkinv_1 _0986_ ( + .A(_0586_), + .Y(_0658_) + ); + sky130_fd_sc_hd__clkinv_1 _0987_ ( + .A(_0598_), + .Y(_0659_) + ); + sky130_fd_sc_hd__clkinv_1 _0988_ ( + .A(_0541_), + .Y(_0660_) + ); + sky130_fd_sc_hd__clkinv_1 _0989_ ( + .A(_0542_), + .Y(_0661_) + ); + sky130_fd_sc_hd__clkinv_1 _0990_ ( + .A(_0597_), + .Y(_0662_) + ); + sky130_fd_sc_hd__clkinv_1 _0991_ ( + .A(_0592_), + .Y(_0663_) + ); + sky130_fd_sc_hd__clkinv_1 _0992_ ( + .A(_0591_), + .Y(_0664_) + ); + sky130_fd_sc_hd__clkinv_1 _0993_ ( + .A(_0593_), + .Y(_0665_) + ); + sky130_fd_sc_hd__clkinv_1 _0994_ ( + .A(_0508_), + .Y(_0666_) + ); + sky130_fd_sc_hd__clkinv_1 _0995_ ( + .A(_0577_), + .Y(_0667_) + ); + sky130_fd_sc_hd__clkinv_1 _0996_ ( + .A(_0579_), + .Y(_0668_) + ); + sky130_fd_sc_hd__clkinv_1 _0997_ ( + .A(_0580_), + .Y(_0669_) + ); + sky130_fd_sc_hd__clkinv_1 _0998_ ( + .A(_0612_), + .Y(_0670_) + ); + sky130_fd_sc_hd__clkinv_1 _0999_ ( + .A(_0517_), + .Y(_0671_) + ); + sky130_fd_sc_hd__clkinv_1 _1000_ ( + .A(_0627_), + .Y(_0672_) + ); + sky130_fd_sc_hd__clkinv_1 _1001_ ( + .A(_0628_), + .Y(_0673_) + ); + sky130_fd_sc_hd__clkinv_1 _1002_ ( + .A(_0510_), + .Y(_0674_) + ); + sky130_fd_sc_hd__clkinv_1 _1003_ ( + .A(_0509_), + .Y(_0675_) + ); + sky130_fd_sc_hd__clkinv_1 _1004_ ( + .A(_0631_), + .Y(_0676_) + ); + sky130_fd_sc_hd__clkinv_1 _1005_ ( + .A(_0629_), + .Y(_0677_) + ); + sky130_fd_sc_hd__clkinv_1 _1006_ ( + .A(_0630_), + .Y(_0678_) + ); + sky130_fd_sc_hd__clkinv_1 _1007_ ( + .A(_0618_), + .Y(_0679_) + ); + sky130_fd_sc_hd__clkinv_1 _1008_ ( + .A(_0515_), + .Y(_0680_) + ); + sky130_fd_sc_hd__clkinv_1 _1009_ ( + .A(_0514_), + .Y(_0681_) + ); + sky130_fd_sc_hd__clkinv_1 _1010_ ( + .A(_0523_), + .Y(_0682_) + ); + sky130_fd_sc_hd__clkinv_1 _1011_ ( + .A(_0524_), + .Y(_0683_) + ); + sky130_fd_sc_hd__clkinv_1 _1012_ ( + .A(_0573_), + .Y(_0684_) + ); + sky130_fd_sc_hd__clkinv_1 _1013_ ( + .A(_0571_), + .Y(_0685_) + ); + sky130_fd_sc_hd__clkinv_1 _1014_ ( + .A(_0829_), + .Y(_0376_) + ); + sky130_fd_sc_hd__nand2_1 _1015_ ( + .A(_0545_), + .B(_0505_), + .Y(_0686_) + ); + sky130_fd_sc_hd__and4_1 _1016_ ( + .A(_0545_), + .B(_0505_), + .C(_0567_), + .D(_0556_), + .X(_0687_) + ); + sky130_fd_sc_hd__nand2_1 _1017_ ( + .A(_0578_), + .B(_0687_), + .Y(_0688_) + ); + sky130_fd_sc_hd__and4_1 _1018_ ( + .A(_0589_), + .B(_0578_), + .C(_0600_), + .D(_0687_), + .X(_0689_) + ); + sky130_fd_sc_hd__and2_0 _1019_ ( + .A(_0611_), + .B(_0689_), + .X(_0690_) + ); + sky130_fd_sc_hd__nand2_1 _1020_ ( + .A(_0622_), + .B(_0690_), + .Y(_0691_) + ); + sky130_fd_sc_hd__nand4_1 _1021_ ( + .A(_0622_), + .B(_0611_), + .C(_0633_), + .D(_0689_), + .Y(_0692_) + ); + sky130_fd_sc_hd__nor2_1 _1022_ ( + .A(_0639_), + .B(_0692_), + .Y(_0693_) + ); + sky130_fd_sc_hd__nand2_1 _1023_ ( + .A(_0527_), + .B(_0693_), + .Y(_0694_) + ); + sky130_fd_sc_hd__nor4_1 _1024_ ( + .A(_0639_), + .B(_0643_), + .C(_0649_), + .D(_0692_), + .Y(_0695_) + ); + sky130_fd_sc_hd__and2_0 _1025_ ( + .A(_0538_), + .B(_0695_), + .X(_0696_) + ); + sky130_fd_sc_hd__nand2_1 _1026_ ( + .A(_0539_), + .B(_0696_), + .Y(_0697_) + ); + sky130_fd_sc_hd__nand4_1 _1027_ ( + .A(_0539_), + .B(_0540_), + .C(_0538_), + .D(_0695_), + .Y(_0698_) + ); + sky130_fd_sc_hd__nor2_1 _1028_ ( + .A(_0660_), + .B(_0698_), + .Y(_0699_) + ); + sky130_fd_sc_hd__or4_1 _1029_ ( + .A(_0637_), + .B(_0660_), + .C(_0661_), + .D(_0698_), + .X(_0700_) + ); + sky130_fd_sc_hd__nor2_1 _1030_ ( + .A(_0638_), + .B(_0700_), + .Y(_0701_) + ); + sky130_fd_sc_hd__nor3_1 _1031_ ( + .A(_0638_), + .B(_0641_), + .C(_0700_), + .Y(_0702_) + ); + sky130_fd_sc_hd__nor4_1 _1032_ ( + .A(_0638_), + .B(_0641_), + .C(_0642_), + .D(_0700_), + .Y(_0703_) + ); + sky130_fd_sc_hd__and2_0 _1033_ ( + .A(_0548_), + .B(_0703_), + .X(_0704_) + ); + sky130_fd_sc_hd__nand4_1 _1034_ ( + .A(_0549_), + .B(_0548_), + .C(_0550_), + .D(_0703_), + .Y(_0705_) + ); + sky130_fd_sc_hd__nor2_1 _1035_ ( + .A(_0650_), + .B(_0705_), + .Y(_0706_) + ); + sky130_fd_sc_hd__nor4_1 _1036_ ( + .A(_0644_), + .B(_0645_), + .C(_0650_), + .D(_0705_), + .Y(_0707_) + ); + sky130_fd_sc_hd__and2_0 _1037_ ( + .A(_0554_), + .B(_0707_), + .X(_0708_) + ); + sky130_fd_sc_hd__nand2_1 _1038_ ( + .A(_0555_), + .B(_0708_), + .Y(_0709_) + ); + sky130_fd_sc_hd__nand4_1 _1039_ ( + .A(_0554_), + .B(_0555_), + .C(_0557_), + .D(_0707_), + .Y(_0710_) + ); + sky130_fd_sc_hd__nor2_1 _1040_ ( + .A(_0646_), + .B(_0710_), + .Y(_0711_) + ); + sky130_fd_sc_hd__nor4_1 _1041_ ( + .A(_0646_), + .B(_0647_), + .C(_0648_), + .D(_0710_), + .Y(_0712_) + ); + sky130_fd_sc_hd__and2_0 _1042_ ( + .A(_0561_), + .B(_0712_), + .X(_0713_) + ); + sky130_fd_sc_hd__and4_1 _1043_ ( + .A(_0562_), + .B(_0561_), + .C(_0563_), + .D(_0712_), + .X(_0714_) + ); + sky130_fd_sc_hd__and2_0 _1044_ ( + .A(_0564_), + .B(_0714_), + .X(_0715_) + ); + sky130_fd_sc_hd__and4_1 _1045_ ( + .A(_0565_), + .B(_0566_), + .C(_0564_), + .D(_0714_), + .X(_0716_) + ); + sky130_fd_sc_hd__and2_0 _1046_ ( + .A(_0568_), + .B(_0716_), + .X(_0717_) + ); + sky130_fd_sc_hd__nand2_1 _1047_ ( + .A(_0569_), + .B(_0717_), + .Y(_0718_) + ); + sky130_fd_sc_hd__nand4_1 _1048_ ( + .A(_0568_), + .B(_0569_), + .C(_0570_), + .D(_0716_), + .Y(_0719_) + ); + sky130_fd_sc_hd__nor2_1 _1049_ ( + .A(_0685_), + .B(_0719_), + .Y(_0720_) + ); + sky130_fd_sc_hd__nand2_1 _1050_ ( + .A(_0572_), + .B(_0720_), + .Y(_0721_) + ); + sky130_fd_sc_hd__nor4_1 _1051_ ( + .A(_0640_), + .B(_0684_), + .C(_0685_), + .D(_0719_), + .Y(_0722_) + ); + sky130_fd_sc_hd__and2_0 _1052_ ( + .A(_0574_), + .B(_0722_), + .X(_0723_) + ); + sky130_fd_sc_hd__nand2_1 _1053_ ( + .A(_0575_), + .B(_0723_), + .Y(_0724_) + ); + sky130_fd_sc_hd__nand4_1 _1054_ ( + .A(_0574_), + .B(_0575_), + .C(_0576_), + .D(_0722_), + .Y(_0725_) + ); + sky130_fd_sc_hd__nor2_1 _1055_ ( + .A(_0667_), + .B(_0725_), + .Y(_0726_) + ); + sky130_fd_sc_hd__nor4_1 _1056_ ( + .A(_0667_), + .B(_0668_), + .C(_0669_), + .D(_0725_), + .Y(_0727_) + ); + sky130_fd_sc_hd__and2_0 _1057_ ( + .A(_0581_), + .B(_0727_), + .X(_0728_) + ); + sky130_fd_sc_hd__nand2_1 _1058_ ( + .A(_0582_), + .B(_0728_), + .Y(_0729_) + ); + sky130_fd_sc_hd__nand4_1 _1059_ ( + .A(_0583_), + .B(_0581_), + .C(_0582_), + .D(_0727_), + .Y(_0730_) + ); + sky130_fd_sc_hd__nor2_1 _1060_ ( + .A(_0636_), + .B(_0730_), + .Y(_0731_) + ); + sky130_fd_sc_hd__nand2_1 _1061_ ( + .A(_0585_), + .B(_0731_), + .Y(_0732_) + ); + sky130_fd_sc_hd__nor4_1 _1062_ ( + .A(_0636_), + .B(_0657_), + .C(_0658_), + .D(_0730_), + .Y(_0733_) + ); + sky130_fd_sc_hd__and2_0 _1063_ ( + .A(_0587_), + .B(_0733_), + .X(_0734_) + ); + sky130_fd_sc_hd__nand2_1 _1064_ ( + .A(_0588_), + .B(_0734_), + .Y(_0735_) + ); + sky130_fd_sc_hd__nand4_1 _1065_ ( + .A(_0590_), + .B(_0587_), + .C(_0588_), + .D(_0733_), + .Y(_0736_) + ); + sky130_fd_sc_hd__nor2_1 _1066_ ( + .A(_0664_), + .B(_0736_), + .Y(_0737_) + ); + sky130_fd_sc_hd__nor4_1 _1067_ ( + .A(_0663_), + .B(_0664_), + .C(_0665_), + .D(_0736_), + .Y(_0738_) + ); + sky130_fd_sc_hd__and2_0 _1068_ ( + .A(_0594_), + .B(_0738_), + .X(_0739_) + ); + sky130_fd_sc_hd__and3_1 _1069_ ( + .A(_0596_), + .B(_0595_), + .C(_0739_), + .X(_0740_) + ); + sky130_fd_sc_hd__nand4_1 _1070_ ( + .A(_0596_), + .B(_0594_), + .C(_0595_), + .D(_0738_), + .Y(_0741_) + ); + sky130_fd_sc_hd__nor3_1 _1071_ ( + .A(_0659_), + .B(_0662_), + .C(_0741_), + .Y(_0742_) + ); + sky130_fd_sc_hd__nand3_1 _1072_ ( + .A(_0601_), + .B(_0602_), + .C(_0599_), + .Y(_0743_) + ); + sky130_fd_sc_hd__nor4_1 _1073_ ( + .A(_0659_), + .B(_0662_), + .C(_0741_), + .D(_0743_), + .Y(_0744_) + ); + sky130_fd_sc_hd__and2_0 _1074_ ( + .A(_0603_), + .B(_0744_), + .X(_0745_) + ); + sky130_fd_sc_hd__and4_1 _1075_ ( + .A(_0603_), + .B(_0604_), + .C(_0605_), + .D(_0744_), + .X(_0746_) + ); + sky130_fd_sc_hd__and2_0 _1076_ ( + .A(_0606_), + .B(_0746_), + .X(_0747_) + ); + sky130_fd_sc_hd__and3_1 _1077_ ( + .A(_0607_), + .B(_0608_), + .C(_0747_), + .X(_0748_) + ); + sky130_fd_sc_hd__nand4_1 _1078_ ( + .A(_0606_), + .B(_0607_), + .C(_0608_), + .D(_0746_), + .Y(_0749_) + ); + sky130_fd_sc_hd__nand2_1 _1079_ ( + .A(_0609_), + .B(_0748_), + .Y(_0750_) + ); + sky130_fd_sc_hd__xnor2_1 _1080_ ( + .A(_0610_), + .B(_0750_), + .Y(_0352_) + ); + sky130_fd_sc_hd__xnor2_1 _1081_ ( + .A(_0609_), + .B(_0749_), + .Y(_0351_) + ); + sky130_fd_sc_hd__xnor2_1 _1082_ ( + .A(_0540_), + .B(_0697_), + .Y(_0282_) + ); + sky130_fd_sc_hd__xor2_1 _1083_ ( + .A(_0568_), + .B(_0716_), + .X(_0310_) + ); + sky130_fd_sc_hd__xnor2_1 _1084_ ( + .A(_0584_), + .B(_0730_), + .Y(_0326_) + ); + sky130_fd_sc_hd__xnor2_1 _1085_ ( + .A(_0583_), + .B(_0729_), + .Y(_0325_) + ); + sky130_fd_sc_hd__xnor2_1 _1086_ ( + .A(_0544_), + .B(_0700_), + .Y(_0286_) + ); + sky130_fd_sc_hd__xnor2_1 _1087_ ( + .A(_0516_), + .B(_0692_), + .Y(_0258_) + ); + sky130_fd_sc_hd__xnor2_1 _1088_ ( + .A(_0640_), + .B(_0720_), + .Y(_0314_) + ); + sky130_fd_sc_hd__nor2_1 _1089_ ( + .A(_0547_), + .B(_0702_), + .Y(_0751_) + ); + sky130_fd_sc_hd__nor2_1 _1090_ ( + .A(_0703_), + .B(_0751_), + .Y(_0289_) + ); + sky130_fd_sc_hd__nor2_1 _1091_ ( + .A(_0546_), + .B(_0701_), + .Y(_0752_) + ); + sky130_fd_sc_hd__nor2_1 _1092_ ( + .A(_0702_), + .B(_0752_), + .Y(_0288_) + ); + sky130_fd_sc_hd__xor2_1 _1093_ ( + .A(_0575_), + .B(_0723_), + .X(_0317_) + ); + sky130_fd_sc_hd__xor2_1 _1094_ ( + .A(_0539_), + .B(_0696_), + .X(_0281_) + ); + sky130_fd_sc_hd__xor2_1 _1095_ ( + .A(_0549_), + .B(_0704_), + .X(_0291_) + ); + sky130_fd_sc_hd__xor2_1 _1096_ ( + .A(_0548_), + .B(_0703_), + .X(_0290_) + ); + sky130_fd_sc_hd__a21oi_1 _1097_ ( + .A1(_0552_), + .A2(_0706_), + .B1(_0553_), + .Y(_0753_) + ); + sky130_fd_sc_hd__nor2_1 _1098_ ( + .A(_0707_), + .B(_0753_), + .Y(_0295_) + ); + sky130_fd_sc_hd__xnor2_1 _1099_ ( + .A(_0645_), + .B(_0706_), + .Y(_0294_) + ); + sky130_fd_sc_hd__xor2_1 _1100_ ( + .A(_0545_), + .B(_0505_), + .X(_0287_) + ); + sky130_fd_sc_hd__nor2_1 _1101_ ( + .A(_0554_), + .B(_0707_), + .Y(_0754_) + ); + sky130_fd_sc_hd__nor2_1 _1102_ ( + .A(_0708_), + .B(_0754_), + .Y(_0296_) + ); + sky130_fd_sc_hd__nor4_1 _1103_ ( + .A(_0634_), + .B(_0635_), + .C(_0670_), + .D(_0749_), + .Y(_0755_) + ); + sky130_fd_sc_hd__and2_0 _1104_ ( + .A(_0613_), + .B(_0755_), + .X(_0756_) + ); + sky130_fd_sc_hd__nand2_1 _1105_ ( + .A(_0614_), + .B(_0756_), + .Y(_0757_) + ); + sky130_fd_sc_hd__nand4_1 _1106_ ( + .A(_0614_), + .B(_0615_), + .C(_0613_), + .D(_0755_), + .Y(_0758_) + ); + sky130_fd_sc_hd__nor2_1 _1107_ ( + .A(_0655_), + .B(_0758_), + .Y(_0759_) + ); + sky130_fd_sc_hd__nor3_1 _1108_ ( + .A(_0655_), + .B(_0656_), + .C(_0758_), + .Y(_0760_) + ); + sky130_fd_sc_hd__nor4_1 _1109_ ( + .A(_0655_), + .B(_0656_), + .C(_0679_), + .D(_0758_), + .Y(_0761_) + ); + sky130_fd_sc_hd__and2_0 _1110_ ( + .A(_0619_), + .B(_0761_), + .X(_0762_) + ); + sky130_fd_sc_hd__nand2_1 _1111_ ( + .A(_0620_), + .B(_0762_), + .Y(_0763_) + ); + sky130_fd_sc_hd__nand4_1 _1112_ ( + .A(_0620_), + .B(_0621_), + .C(_0619_), + .D(_0761_), + .Y(_0764_) + ); + sky130_fd_sc_hd__or3_1 _1113_ ( + .A(_0653_), + .B(_0654_), + .C(_0764_), + .X(_0765_) + ); + sky130_fd_sc_hd__or4_1 _1114_ ( + .A(_0652_), + .B(_0653_), + .C(_0654_), + .D(_0764_), + .X(_0766_) + ); + sky130_fd_sc_hd__nor2_1 _1115_ ( + .A(_0651_), + .B(_0766_), + .Y(_0767_) + ); + sky130_fd_sc_hd__nand2_1 _1116_ ( + .A(_0627_), + .B(_0767_), + .Y(_0768_) + ); + sky130_fd_sc_hd__or4_1 _1117_ ( + .A(_0651_), + .B(_0672_), + .C(_0673_), + .D(_0766_), + .X(_0769_) + ); + sky130_fd_sc_hd__or3_1 _1118_ ( + .A(_0677_), + .B(_0678_), + .C(_0769_), + .X(_0770_) + ); + sky130_fd_sc_hd__nor4_1 _1119_ ( + .A(_0676_), + .B(_0677_), + .C(_0678_), + .D(_0769_), + .Y(_0771_) + ); + sky130_fd_sc_hd__and2_0 _1120_ ( + .A(_0632_), + .B(_0771_), + .X(_0772_) + ); + sky130_fd_sc_hd__nand2_1 _1121_ ( + .A(_0506_), + .B(_0772_), + .Y(_0773_) + ); + sky130_fd_sc_hd__nand4_1 _1122_ ( + .A(_0506_), + .B(_0507_), + .C(_0632_), + .D(_0771_), + .Y(_0774_) + ); + sky130_fd_sc_hd__nor2_1 _1123_ ( + .A(_0666_), + .B(_0774_), + .Y(_0775_) + ); + sky130_fd_sc_hd__nor4_1 _1124_ ( + .A(_0666_), + .B(_0674_), + .C(_0675_), + .D(_0774_), + .Y(_0776_) + ); + sky130_fd_sc_hd__and2_0 _1125_ ( + .A(_0511_), + .B(_0776_), + .X(_0777_) + ); + sky130_fd_sc_hd__nand2_1 _1126_ ( + .A(_0512_), + .B(_0777_), + .Y(_0778_) + ); + sky130_fd_sc_hd__nand4_1 _1127_ ( + .A(_0511_), + .B(_0512_), + .C(_0513_), + .D(_0776_), + .Y(_0779_) + ); + sky130_fd_sc_hd__nor2_1 _1128_ ( + .A(_0681_), + .B(_0779_), + .Y(_0780_) + ); + sky130_fd_sc_hd__nor4_1 _1129_ ( + .A(_0671_), + .B(_0680_), + .C(_0681_), + .D(_0779_), + .Y(_0781_) + ); + sky130_fd_sc_hd__and2_0 _1130_ ( + .A(_0518_), + .B(_0781_), + .X(_0782_) + ); + sky130_fd_sc_hd__nand2_1 _1131_ ( + .A(_0519_), + .B(_0782_), + .Y(_0783_) + ); + sky130_fd_sc_hd__nand4_1 _1132_ ( + .A(_0518_), + .B(_0519_), + .C(_0520_), + .D(_0781_), + .Y(_0784_) + ); + sky130_fd_sc_hd__nand2_1 _1133_ ( + .A(_0522_), + .B(_0521_), + .Y(_0785_) + ); + sky130_fd_sc_hd__nor2_1 _1134_ ( + .A(_0784_), + .B(_0785_), + .Y(_0786_) + ); + sky130_fd_sc_hd__nor3_1 _1135_ ( + .A(_0682_), + .B(_0784_), + .C(_0785_), + .Y(_0787_) + ); + sky130_fd_sc_hd__nor4_1 _1136_ ( + .A(_0682_), + .B(_0683_), + .C(_0784_), + .D(_0785_), + .Y(_0788_) + ); + sky130_fd_sc_hd__nand3_1 _1137_ ( + .A(_0525_), + .B(_0526_), + .C(_0788_), + .Y(_0789_) + ); + sky130_fd_sc_hd__nand4_1 _1138_ ( + .A(_0528_), + .B(_0525_), + .C(_0526_), + .D(_0788_), + .Y(_0790_) + ); + sky130_fd_sc_hd__lpflow_isobufsrc_1 _1139_ ( + .A(_0529_), + .SLEEP(_0790_), + .X(_0791_) + ); + sky130_fd_sc_hd__nand2_1 _1140_ ( + .A(_0530_), + .B(_0791_), + .Y(_0792_) + ); + sky130_fd_sc_hd__xor2_1 _1141_ ( + .A(_0530_), + .B(_0791_), + .X(_0272_) + ); + sky130_fd_sc_hd__a31oi_1 _1142_ ( + .A1(_0545_), + .A2(_0505_), + .A3(_0556_), + .B1(_0567_), + .Y(_0793_) + ); + sky130_fd_sc_hd__nor2_1 _1143_ ( + .A(_0687_), + .B(_0793_), + .Y(_0309_) + ); + sky130_fd_sc_hd__xnor2_1 _1144_ ( + .A(_0556_), + .B(_0686_), + .Y(_0298_) + ); + sky130_fd_sc_hd__xor2_1 _1145_ ( + .A(_0555_), + .B(_0708_), + .X(_0297_) + ); + sky130_fd_sc_hd__xnor2_1 _1146_ ( + .A(_0589_), + .B(_0688_), + .Y(_0331_) + ); + sky130_fd_sc_hd__xor2_1 _1147_ ( + .A(_0578_), + .B(_0687_), + .X(_0320_) + ); + sky130_fd_sc_hd__xnor2_1 _1148_ ( + .A(_0558_), + .B(_0710_), + .Y(_0300_) + ); + sky130_fd_sc_hd__xnor2_1 _1149_ ( + .A(_0557_), + .B(_0709_), + .Y(_0299_) + ); + sky130_fd_sc_hd__a31oi_1 _1150_ ( + .A1(_0589_), + .A2(_0578_), + .A3(_0687_), + .B1(_0600_), + .Y(_0794_) + ); + sky130_fd_sc_hd__nor2_1 _1151_ ( + .A(_0689_), + .B(_0794_), + .Y(_0342_) + ); + sky130_fd_sc_hd__xor2_1 _1152_ ( + .A(_0622_), + .B(_0690_), + .X(_0364_) + ); + sky130_fd_sc_hd__xor2_1 _1153_ ( + .A(_0611_), + .B(_0689_), + .X(_0353_) + ); + sky130_fd_sc_hd__a21oi_1 _1154_ ( + .A1(_0559_), + .A2(_0711_), + .B1(_0560_), + .Y(_0795_) + ); + sky130_fd_sc_hd__nor2_1 _1155_ ( + .A(_0712_), + .B(_0795_), + .Y(_0302_) + ); + sky130_fd_sc_hd__xnor2_1 _1156_ ( + .A(_0647_), + .B(_0711_), + .Y(_0301_) + ); + sky130_fd_sc_hd__xnor2_1 _1157_ ( + .A(_0633_), + .B(_0691_), + .Y(_0375_) + ); + sky130_fd_sc_hd__xor2_1 _1158_ ( + .A(_0562_), + .B(_0713_), + .X(_0304_) + ); + sky130_fd_sc_hd__nor2_1 _1159_ ( + .A(_0561_), + .B(_0712_), + .Y(_0796_) + ); + sky130_fd_sc_hd__nor2_1 _1160_ ( + .A(_0713_), + .B(_0796_), + .Y(_0303_) + ); + sky130_fd_sc_hd__xnor2_1 _1161_ ( + .A(_0649_), + .B(_0693_), + .Y(_0269_) + ); + sky130_fd_sc_hd__a21oi_1 _1162_ ( + .A1(_0562_), + .A2(_0713_), + .B1(_0563_), + .Y(_0797_) + ); + sky130_fd_sc_hd__nor2_1 _1163_ ( + .A(_0714_), + .B(_0797_), + .Y(_0305_) + ); + sky130_fd_sc_hd__xnor2_1 _1164_ ( + .A(_0551_), + .B(_0705_), + .Y(_0293_) + ); + sky130_fd_sc_hd__a21oi_1 _1165_ ( + .A1(_0549_), + .A2(_0704_), + .B1(_0550_), + .Y(_0798_) + ); + sky130_fd_sc_hd__lpflow_isobufsrc_1 _1166_ ( + .A(_0705_), + .SLEEP(_0798_), + .X(_0292_) + ); + sky130_fd_sc_hd__xnor2_1 _1167_ ( + .A(_0615_), + .B(_0757_), + .Y(_0357_) + ); + sky130_fd_sc_hd__xnor2_1 _1168_ ( + .A(_0626_), + .B(_0766_), + .Y(_0368_) + ); + sky130_fd_sc_hd__xnor2_1 _1169_ ( + .A(_0625_), + .B(_0765_), + .Y(_0367_) + ); + sky130_fd_sc_hd__xnor2_1 _1170_ ( + .A(_0531_), + .B(_0792_), + .Y(_0273_) + ); + sky130_fd_sc_hd__xnor2_1 _1171_ ( + .A(_0576_), + .B(_0724_), + .Y(_0318_) + ); + sky130_fd_sc_hd__xnor2_1 _1172_ ( + .A(_0623_), + .B(_0764_), + .Y(_0365_) + ); + sky130_fd_sc_hd__o21ai_0 _1173_ ( + .A1(_0653_), + .A2(_0764_), + .B1(_0654_), + .Y(_0799_) + ); + sky130_fd_sc_hd__and2_0 _1174_ ( + .A(_0765_), + .B(_0799_), + .X(_0366_) + ); + sky130_fd_sc_hd__nor2_1 _1175_ ( + .A(_0617_), + .B(_0759_), + .Y(_0800_) + ); + sky130_fd_sc_hd__nor2_1 _1176_ ( + .A(_0760_), + .B(_0800_), + .Y(_0359_) + ); + sky130_fd_sc_hd__xnor2_1 _1177_ ( + .A(_0616_), + .B(_0758_), + .Y(_0358_) + ); + sky130_fd_sc_hd__xnor2_1 _1178_ ( + .A(_0590_), + .B(_0735_), + .Y(_0332_) + ); + sky130_fd_sc_hd__xnor2_1 _1179_ ( + .A(_0586_), + .B(_0732_), + .Y(_0328_) + ); + sky130_fd_sc_hd__xor2_1 _1180_ ( + .A(_0588_), + .B(_0734_), + .X(_0330_) + ); + sky130_fd_sc_hd__nor2_1 _1181_ ( + .A(_0587_), + .B(_0733_), + .Y(_0801_) + ); + sky130_fd_sc_hd__nor2_1 _1182_ ( + .A(_0734_), + .B(_0801_), + .Y(_0329_) + ); + sky130_fd_sc_hd__xnor2_1 _1183_ ( + .A(_0657_), + .B(_0731_), + .Y(_0327_) + ); + sky130_fd_sc_hd__nand2_1 _1184_ ( + .A(_0599_), + .B(_0742_), + .Y(_0802_) + ); + sky130_fd_sc_hd__a31oi_1 _1185_ ( + .A1(_0601_), + .A2(_0599_), + .A3(_0742_), + .B1(_0602_), + .Y(_0803_) + ); + sky130_fd_sc_hd__nor2_1 _1186_ ( + .A(_0744_), + .B(_0803_), + .Y(_0344_) + ); + sky130_fd_sc_hd__xnor2_1 _1187_ ( + .A(_0601_), + .B(_0802_), + .Y(_0343_) + ); + sky130_fd_sc_hd__xor2_1 _1188_ ( + .A(_0604_), + .B(_0745_), + .X(_0346_) + ); + sky130_fd_sc_hd__nor2_1 _1189_ ( + .A(_0603_), + .B(_0744_), + .Y(_0804_) + ); + sky130_fd_sc_hd__nor2_1 _1190_ ( + .A(_0745_), + .B(_0804_), + .Y(_0345_) + ); + sky130_fd_sc_hd__xor2_1 _1191_ ( + .A(_0599_), + .B(_0742_), + .X(_0341_) + ); + sky130_fd_sc_hd__a21oi_1 _1192_ ( + .A1(_0542_), + .A2(_0699_), + .B1(_0543_), + .Y(_0805_) + ); + sky130_fd_sc_hd__lpflow_isobufsrc_1 _1193_ ( + .A(_0700_), + .SLEEP(_0805_), + .X(_0285_) + ); + sky130_fd_sc_hd__xnor2_1 _1194_ ( + .A(_0597_), + .B(_0741_), + .Y(_0339_) + ); + sky130_fd_sc_hd__a21oi_1 _1195_ ( + .A1(_0595_), + .A2(_0739_), + .B1(_0596_), + .Y(_0806_) + ); + sky130_fd_sc_hd__nor2_1 _1196_ ( + .A(_0740_), + .B(_0806_), + .Y(_0338_) + ); + sky130_fd_sc_hd__a21oi_1 _1197_ ( + .A1(_0597_), + .A2(_0740_), + .B1(_0598_), + .Y(_0807_) + ); + sky130_fd_sc_hd__nor2_1 _1198_ ( + .A(_0742_), + .B(_0807_), + .Y(_0340_) + ); + sky130_fd_sc_hd__xnor2_1 _1199_ ( + .A(_0663_), + .B(_0737_), + .Y(_0334_) + ); + sky130_fd_sc_hd__xnor2_1 _1200_ ( + .A(_0591_), + .B(_0736_), + .Y(_0333_) + ); + sky130_fd_sc_hd__a21oi_1 _1201_ ( + .A1(_0592_), + .A2(_0737_), + .B1(_0593_), + .Y(_0808_) + ); + sky130_fd_sc_hd__nor2_1 _1202_ ( + .A(_0738_), + .B(_0808_), + .Y(_0335_) + ); + sky130_fd_sc_hd__xor2_1 _1203_ ( + .A(_0595_), + .B(_0739_), + .X(_0337_) + ); + sky130_fd_sc_hd__nor2_1 _1204_ ( + .A(_0594_), + .B(_0738_), + .Y(_0809_) + ); + sky130_fd_sc_hd__nor2_1 _1205_ ( + .A(_0739_), + .B(_0809_), + .Y(_0336_) + ); + sky130_fd_sc_hd__xnor2_1 _1206_ ( + .A(_0508_), + .B(_0774_), + .Y(_0250_) + ); + sky130_fd_sc_hd__nor2_1 _1207_ ( + .A(_0606_), + .B(_0746_), + .Y(_0810_) + ); + sky130_fd_sc_hd__nor2_1 _1208_ ( + .A(_0747_), + .B(_0810_), + .Y(_0348_) + ); + sky130_fd_sc_hd__a21oi_1 _1209_ ( + .A1(_0604_), + .A2(_0745_), + .B1(_0605_), + .Y(_0811_) + ); + sky130_fd_sc_hd__nor2_1 _1210_ ( + .A(_0746_), + .B(_0811_), + .Y(_0347_) + ); + sky130_fd_sc_hd__xnor2_1 _1211_ ( + .A(_0621_), + .B(_0763_), + .Y(_0363_) + ); + sky130_fd_sc_hd__xor2_1 _1212_ ( + .A(_0620_), + .B(_0762_), + .X(_0362_) + ); + sky130_fd_sc_hd__xor2_1 _1213_ ( + .A(_0582_), + .B(_0728_), + .X(_0324_) + ); + sky130_fd_sc_hd__xnor2_1 _1214_ ( + .A(_0577_), + .B(_0725_), + .Y(_0319_) + ); + sky130_fd_sc_hd__a21oi_1 _1215_ ( + .A1(_0607_), + .A2(_0747_), + .B1(_0608_), + .Y(_0812_) + ); + sky130_fd_sc_hd__nor2_1 _1216_ ( + .A(_0748_), + .B(_0812_), + .Y(_0350_) + ); + sky130_fd_sc_hd__xnor2_1 _1217_ ( + .A(_0661_), + .B(_0699_), + .Y(_0284_) + ); + sky130_fd_sc_hd__xnor2_1 _1218_ ( + .A(_0541_), + .B(_0698_), + .Y(_0283_) + ); + sky130_fd_sc_hd__nor2_1 _1219_ ( + .A(_0581_), + .B(_0727_), + .Y(_0813_) + ); + sky130_fd_sc_hd__nor2_1 _1220_ ( + .A(_0728_), + .B(_0813_), + .Y(_0323_) + ); + sky130_fd_sc_hd__a21oi_1 _1221_ ( + .A1(_0579_), + .A2(_0726_), + .B1(_0580_), + .Y(_0814_) + ); + sky130_fd_sc_hd__nor2_1 _1222_ ( + .A(_0727_), + .B(_0814_), + .Y(_0322_) + ); + sky130_fd_sc_hd__xnor2_1 _1223_ ( + .A(_0668_), + .B(_0726_), + .Y(_0321_) + ); + sky130_fd_sc_hd__and4_1 _1224_ ( + .A(_0530_), + .B(_0531_), + .C(_0532_), + .D(_0791_), + .X(_0815_) + ); + sky130_fd_sc_hd__nand3_1 _1225_ ( + .A(_0534_), + .B(_0533_), + .C(_0815_), + .Y(_0816_) + ); + sky130_fd_sc_hd__nand4_1 _1226_ ( + .A(_0534_), + .B(_0535_), + .C(_0533_), + .D(_0815_), + .Y(_0817_) + ); + sky130_fd_sc_hd__xnor2_1 _1227_ ( + .A(_0535_), + .B(_0816_), + .Y(_0277_) + ); + sky130_fd_sc_hd__xor2_1 _1228_ ( + .A(_0613_), + .B(_0755_), + .X(_0355_) + ); + sky130_fd_sc_hd__a31oi_1 _1229_ ( + .A1(_0609_), + .A2(_0610_), + .A3(_0748_), + .B1(_0612_), + .Y(_0818_) + ); + sky130_fd_sc_hd__nor2_1 _1230_ ( + .A(_0755_), + .B(_0818_), + .Y(_0354_) + ); + sky130_fd_sc_hd__a41oi_1 _1231_ ( + .A1(_0521_), + .A2(_0519_), + .A3(_0520_), + .A4(_0782_), + .B1(_0522_), + .Y(_0819_) + ); + sky130_fd_sc_hd__nor2_1 _1232_ ( + .A(_0786_), + .B(_0819_), + .Y(_0264_) + ); + sky130_fd_sc_hd__xnor2_1 _1233_ ( + .A(_0521_), + .B(_0784_), + .Y(_0263_) + ); + sky130_fd_sc_hd__xor2_1 _1234_ ( + .A(_0518_), + .B(_0781_), + .X(_0260_) + ); + sky130_fd_sc_hd__xnor2_1 _1235_ ( + .A(_0628_), + .B(_0768_), + .Y(_0370_) + ); + sky130_fd_sc_hd__xnor2_1 _1236_ ( + .A(_0536_), + .B(_0817_), + .Y(_0278_) + ); + sky130_fd_sc_hd__a21oi_1 _1237_ ( + .A1(_0533_), + .A2(_0815_), + .B1(_0534_), + .Y(_0820_) + ); + sky130_fd_sc_hd__lpflow_isobufsrc_1 _1238_ ( + .A(_0816_), + .SLEEP(_0820_), + .X(_0276_) + ); + sky130_fd_sc_hd__xnor2_1 _1239_ ( + .A(_0529_), + .B(_0790_), + .Y(_0271_) + ); + sky130_fd_sc_hd__xnor2_1 _1240_ ( + .A(_0528_), + .B(_0789_), + .Y(_0270_) + ); + sky130_fd_sc_hd__xor2_1 _1241_ ( + .A(_0511_), + .B(_0776_), + .X(_0253_) + ); + sky130_fd_sc_hd__a21oi_1 _1242_ ( + .A1(_0509_), + .A2(_0775_), + .B1(_0510_), + .Y(_0821_) + ); + sky130_fd_sc_hd__nor2_1 _1243_ ( + .A(_0776_), + .B(_0821_), + .Y(_0252_) + ); + sky130_fd_sc_hd__xnor2_1 _1244_ ( + .A(_0675_), + .B(_0775_), + .Y(_0251_) + ); + sky130_fd_sc_hd__xnor2_1 _1245_ ( + .A(_0631_), + .B(_0770_), + .Y(_0373_) + ); + sky130_fd_sc_hd__xnor2_1 _1246_ ( + .A(_0520_), + .B(_0783_), + .Y(_0262_) + ); + sky130_fd_sc_hd__xnor2_1 _1247_ ( + .A(_0679_), + .B(_0760_), + .Y(_0360_) + ); + sky130_fd_sc_hd__xnor2_1 _1248_ ( + .A(_0680_), + .B(_0780_), + .Y(_0257_) + ); + sky130_fd_sc_hd__xnor2_1 _1249_ ( + .A(_0514_), + .B(_0779_), + .Y(_0256_) + ); + sky130_fd_sc_hd__xnor2_1 _1250_ ( + .A(_0672_), + .B(_0767_), + .Y(_0369_) + ); + sky130_fd_sc_hd__nor2_1 _1251_ ( + .A(_0524_), + .B(_0787_), + .Y(_0822_) + ); + sky130_fd_sc_hd__nor2_1 _1252_ ( + .A(_0788_), + .B(_0822_), + .Y(_0266_) + ); + sky130_fd_sc_hd__xor2_1 _1253_ ( + .A(_0632_), + .B(_0771_), + .X(_0374_) + ); + sky130_fd_sc_hd__a21oi_1 _1254_ ( + .A1(_0525_), + .A2(_0788_), + .B1(_0526_), + .Y(_0823_) + ); + sky130_fd_sc_hd__lpflow_isobufsrc_1 _1255_ ( + .A(_0789_), + .SLEEP(_0823_), + .X(_0268_) + ); + sky130_fd_sc_hd__xor2_1 _1256_ ( + .A(_0525_), + .B(_0788_), + .X(_0267_) + ); + sky130_fd_sc_hd__xor2_1 _1257_ ( + .A(_0619_), + .B(_0761_), + .X(_0361_) + ); + sky130_fd_sc_hd__o21ai_0 _1258_ ( + .A1(_0677_), + .A2(_0769_), + .B1(_0678_), + .Y(_0824_) + ); + sky130_fd_sc_hd__and2_0 _1259_ ( + .A(_0770_), + .B(_0824_), + .X(_0372_) + ); + sky130_fd_sc_hd__xnor2_1 _1260_ ( + .A(_0629_), + .B(_0769_), + .Y(_0371_) + ); + sky130_fd_sc_hd__xor2_1 _1261_ ( + .A(_0533_), + .B(_0815_), + .X(_0275_) + ); + sky130_fd_sc_hd__a31oi_1 _1262_ ( + .A1(_0530_), + .A2(_0531_), + .A3(_0791_), + .B1(_0532_), + .Y(_0825_) + ); + sky130_fd_sc_hd__nor2_1 _1263_ ( + .A(_0815_), + .B(_0825_), + .Y(_0274_) + ); + sky130_fd_sc_hd__xor2_1 _1264_ ( + .A(_0519_), + .B(_0782_), + .X(_0261_) + ); + sky130_fd_sc_hd__xnor2_1 _1265_ ( + .A(_0507_), + .B(_0773_), + .Y(_0249_) + ); + sky130_fd_sc_hd__xor2_1 _1266_ ( + .A(_0506_), + .B(_0772_), + .X(_0248_) + ); + sky130_fd_sc_hd__xnor2_1 _1267_ ( + .A(_0513_), + .B(_0778_), + .Y(_0255_) + ); + sky130_fd_sc_hd__xor2_1 _1268_ ( + .A(_0538_), + .B(_0695_), + .X(_0280_) + ); + sky130_fd_sc_hd__xnor2_1 _1269_ ( + .A(_0537_), + .B(_0694_), + .Y(_0279_) + ); + sky130_fd_sc_hd__xor2_1 _1270_ ( + .A(_0512_), + .B(_0777_), + .X(_0254_) + ); + sky130_fd_sc_hd__nor2_1 _1271_ ( + .A(_0523_), + .B(_0786_), + .Y(_0826_) + ); + sky130_fd_sc_hd__nor2_1 _1272_ ( + .A(_0787_), + .B(_0826_), + .Y(_0265_) + ); + sky130_fd_sc_hd__xor2_1 _1273_ ( + .A(_0569_), + .B(_0717_), + .X(_0311_) + ); + sky130_fd_sc_hd__a21oi_1 _1274_ ( + .A1(_0565_), + .A2(_0715_), + .B1(_0566_), + .Y(_0827_) + ); + sky130_fd_sc_hd__nor2_1 _1275_ ( + .A(_0716_), + .B(_0827_), + .Y(_0308_) + ); + sky130_fd_sc_hd__xor2_1 _1276_ ( + .A(_0565_), + .B(_0715_), + .X(_0307_) + ); + sky130_fd_sc_hd__a21oi_1 _1277_ ( + .A1(_0515_), + .A2(_0780_), + .B1(_0517_), + .Y(_0828_) + ); + sky130_fd_sc_hd__nor2_1 _1278_ ( + .A(_0781_), + .B(_0828_), + .Y(_0259_) + ); + sky130_fd_sc_hd__xor2_1 _1279_ ( + .A(_0614_), + .B(_0756_), + .X(_0356_) + ); + sky130_fd_sc_hd__xor2_1 _1280_ ( + .A(_0564_), + .B(_0714_), + .X(_0306_) + ); + sky130_fd_sc_hd__xor2_1 _1281_ ( + .A(_0607_), + .B(_0747_), + .X(_0349_) + ); + sky130_fd_sc_hd__xor2_1 _1282_ ( + .A(_0574_), + .B(_0722_), + .X(_0316_) + ); + sky130_fd_sc_hd__xnor2_1 _1283_ ( + .A(_0573_), + .B(_0721_), + .Y(_0315_) + ); + sky130_fd_sc_hd__xnor2_1 _1284_ ( + .A(_0571_), + .B(_0719_), + .Y(_0313_) + ); + sky130_fd_sc_hd__xnor2_1 _1285_ ( + .A(_0570_), + .B(_0718_), + .Y(_0312_) + ); + sky130_fd_sc_hd__clkinv_1 _1286_ ( + .A(_0829_), + .Y(_0377_) + ); + sky130_fd_sc_hd__clkinv_1 _1287_ ( + .A(_0829_), + .Y(_0378_) + ); + sky130_fd_sc_hd__clkinv_1 _1288_ ( + .A(_0829_), + .Y(_0379_) + ); + sky130_fd_sc_hd__clkinv_1 _1289_ ( + .A(_0829_), + .Y(_0380_) + ); + sky130_fd_sc_hd__clkinv_1 _1290_ ( + .A(_0829_), + .Y(_0381_) + ); + sky130_fd_sc_hd__clkinv_1 _1291_ ( + .A(_0829_), + .Y(_0382_) + ); + sky130_fd_sc_hd__clkinv_1 _1292_ ( + .A(_0829_), + .Y(_0383_) + ); + sky130_fd_sc_hd__clkinv_1 _1293_ ( + .A(_0829_), + .Y(_0384_) + ); + sky130_fd_sc_hd__clkinv_1 _1294_ ( + .A(_0829_), + .Y(_0385_) + ); + sky130_fd_sc_hd__clkinv_1 _1295_ ( + .A(_0829_), + .Y(_0386_) + ); + sky130_fd_sc_hd__clkinv_1 _1296_ ( + .A(_0829_), + .Y(_0387_) + ); + sky130_fd_sc_hd__clkinv_1 _1297_ ( + .A(_0829_), + .Y(_0388_) + ); + sky130_fd_sc_hd__clkinv_1 _1298_ ( + .A(_0829_), + .Y(_0389_) + ); + sky130_fd_sc_hd__clkinv_1 _1299_ ( + .A(_0829_), + .Y(_0390_) + ); + sky130_fd_sc_hd__clkinv_1 _1300_ ( + .A(_0829_), + .Y(_0391_) + ); + sky130_fd_sc_hd__clkinv_1 _1301_ ( + .A(_0829_), + .Y(_0392_) + ); + sky130_fd_sc_hd__clkinv_1 _1302_ ( + .A(_0829_), + .Y(_0393_) + ); + sky130_fd_sc_hd__clkinv_1 _1303_ ( + .A(_0829_), + .Y(_0394_) + ); + sky130_fd_sc_hd__clkinv_1 _1304_ ( + .A(_0829_), + .Y(_0395_) + ); + sky130_fd_sc_hd__clkinv_1 _1305_ ( + .A(_0829_), + .Y(_0396_) + ); + sky130_fd_sc_hd__clkinv_1 _1306_ ( + .A(_0829_), + .Y(_0397_) + ); + sky130_fd_sc_hd__clkinv_1 _1307_ ( + .A(_0829_), + .Y(_0398_) + ); + sky130_fd_sc_hd__clkinv_1 _1308_ ( + .A(_0829_), + .Y(_0399_) + ); + sky130_fd_sc_hd__clkinv_1 _1309_ ( + .A(_0829_), + .Y(_0400_) + ); + sky130_fd_sc_hd__clkinv_1 _1310_ ( + .A(_0829_), + .Y(_0401_) + ); + sky130_fd_sc_hd__clkinv_1 _1311_ ( + .A(_0829_), + .Y(_0402_) + ); + sky130_fd_sc_hd__clkinv_1 _1312_ ( + .A(_0829_), + .Y(_0403_) + ); + sky130_fd_sc_hd__clkinv_1 _1313_ ( + .A(_0829_), + .Y(_0404_) + ); + sky130_fd_sc_hd__clkinv_1 _1314_ ( + .A(_0829_), + .Y(_0405_) + ); + sky130_fd_sc_hd__clkinv_1 _1315_ ( + .A(_0829_), + .Y(_0406_) + ); + sky130_fd_sc_hd__clkinv_1 _1316_ ( + .A(_0829_), + .Y(_0407_) + ); + sky130_fd_sc_hd__clkinv_1 _1317_ ( + .A(_0829_), + .Y(_0408_) + ); + sky130_fd_sc_hd__clkinv_1 _1318_ ( + .A(_0829_), + .Y(_0409_) + ); + sky130_fd_sc_hd__clkinv_1 _1319_ ( + .A(_0829_), + .Y(_0410_) + ); + sky130_fd_sc_hd__clkinv_1 _1320_ ( + .A(_0829_), + .Y(_0411_) + ); + sky130_fd_sc_hd__clkinv_1 _1321_ ( + .A(_0829_), + .Y(_0412_) + ); + sky130_fd_sc_hd__clkinv_1 _1322_ ( + .A(_0829_), + .Y(_0413_) + ); + sky130_fd_sc_hd__clkinv_1 _1323_ ( + .A(_0829_), + .Y(_0414_) + ); + sky130_fd_sc_hd__clkinv_1 _1324_ ( + .A(_0829_), + .Y(_0415_) + ); + sky130_fd_sc_hd__clkinv_1 _1325_ ( + .A(_0829_), + .Y(_0416_) + ); + sky130_fd_sc_hd__clkinv_1 _1326_ ( + .A(_0829_), + .Y(_0417_) + ); + sky130_fd_sc_hd__clkinv_1 _1327_ ( + .A(_0829_), + .Y(_0418_) + ); + sky130_fd_sc_hd__clkinv_1 _1328_ ( + .A(_0829_), + .Y(_0419_) + ); + sky130_fd_sc_hd__clkinv_1 _1329_ ( + .A(_0829_), + .Y(_0420_) + ); + sky130_fd_sc_hd__clkinv_1 _1330_ ( + .A(_0829_), + .Y(_0421_) + ); + sky130_fd_sc_hd__clkinv_1 _1331_ ( + .A(_0829_), + .Y(_0422_) + ); + sky130_fd_sc_hd__clkinv_1 _1332_ ( + .A(_0829_), + .Y(_0423_) + ); + sky130_fd_sc_hd__clkinv_1 _1333_ ( + .A(_0829_), + .Y(_0424_) + ); + sky130_fd_sc_hd__clkinv_1 _1334_ ( + .A(_0829_), + .Y(_0425_) + ); + sky130_fd_sc_hd__clkinv_1 _1335_ ( + .A(_0829_), + .Y(_0426_) + ); + sky130_fd_sc_hd__clkinv_1 _1336_ ( + .A(_0829_), + .Y(_0427_) + ); + sky130_fd_sc_hd__clkinv_1 _1337_ ( + .A(_0829_), + .Y(_0428_) + ); + sky130_fd_sc_hd__clkinv_1 _1338_ ( + .A(_0829_), + .Y(_0429_) + ); + sky130_fd_sc_hd__clkinv_1 _1339_ ( + .A(_0829_), + .Y(_0430_) + ); + sky130_fd_sc_hd__clkinv_1 _1340_ ( + .A(_0829_), + .Y(_0431_) + ); + sky130_fd_sc_hd__clkinv_1 _1341_ ( + .A(_0829_), + .Y(_0432_) + ); + sky130_fd_sc_hd__clkinv_1 _1342_ ( + .A(_0829_), + .Y(_0433_) + ); + sky130_fd_sc_hd__clkinv_1 _1343_ ( + .A(_0829_), + .Y(_0434_) + ); + sky130_fd_sc_hd__clkinv_1 _1344_ ( + .A(_0829_), + .Y(_0435_) + ); + sky130_fd_sc_hd__clkinv_1 _1345_ ( + .A(_0829_), + .Y(_0436_) + ); + sky130_fd_sc_hd__clkinv_1 _1346_ ( + .A(_0829_), + .Y(_0437_) + ); + sky130_fd_sc_hd__clkinv_1 _1347_ ( + .A(_0829_), + .Y(_0438_) + ); + sky130_fd_sc_hd__clkinv_1 _1348_ ( + .A(_0829_), + .Y(_0439_) + ); + sky130_fd_sc_hd__clkinv_1 _1349_ ( + .A(_0829_), + .Y(_0440_) + ); + sky130_fd_sc_hd__clkinv_1 _1350_ ( + .A(_0829_), + .Y(_0441_) + ); + sky130_fd_sc_hd__clkinv_1 _1351_ ( + .A(_0829_), + .Y(_0442_) + ); + sky130_fd_sc_hd__clkinv_1 _1352_ ( + .A(_0829_), + .Y(_0443_) + ); + sky130_fd_sc_hd__clkinv_1 _1353_ ( + .A(_0829_), + .Y(_0444_) + ); + sky130_fd_sc_hd__clkinv_1 _1354_ ( + .A(_0829_), + .Y(_0445_) + ); + sky130_fd_sc_hd__clkinv_1 _1355_ ( + .A(_0829_), + .Y(_0446_) + ); + sky130_fd_sc_hd__clkinv_1 _1356_ ( + .A(_0829_), + .Y(_0447_) + ); + sky130_fd_sc_hd__clkinv_1 _1357_ ( + .A(_0829_), + .Y(_0448_) + ); + sky130_fd_sc_hd__clkinv_1 _1358_ ( + .A(_0829_), + .Y(_0449_) + ); + sky130_fd_sc_hd__clkinv_1 _1359_ ( + .A(_0829_), + .Y(_0450_) + ); + sky130_fd_sc_hd__clkinv_1 _1360_ ( + .A(_0829_), + .Y(_0451_) + ); + sky130_fd_sc_hd__clkinv_1 _1361_ ( + .A(_0829_), + .Y(_0452_) + ); + sky130_fd_sc_hd__clkinv_1 _1362_ ( + .A(_0829_), + .Y(_0453_) + ); + sky130_fd_sc_hd__clkinv_1 _1363_ ( + .A(_0829_), + .Y(_0454_) + ); + sky130_fd_sc_hd__clkinv_1 _1364_ ( + .A(_0829_), + .Y(_0455_) + ); + sky130_fd_sc_hd__clkinv_1 _1365_ ( + .A(_0829_), + .Y(_0456_) + ); + sky130_fd_sc_hd__clkinv_1 _1366_ ( + .A(_0829_), + .Y(_0457_) + ); + sky130_fd_sc_hd__clkinv_1 _1367_ ( + .A(_0829_), + .Y(_0458_) + ); + sky130_fd_sc_hd__clkinv_1 _1368_ ( + .A(_0829_), + .Y(_0459_) + ); + sky130_fd_sc_hd__clkinv_1 _1369_ ( + .A(_0829_), + .Y(_0460_) + ); + sky130_fd_sc_hd__clkinv_1 _1370_ ( + .A(_0829_), + .Y(_0461_) + ); + sky130_fd_sc_hd__clkinv_1 _1371_ ( + .A(_0829_), + .Y(_0462_) + ); + sky130_fd_sc_hd__clkinv_1 _1372_ ( + .A(_0829_), + .Y(_0463_) + ); + sky130_fd_sc_hd__clkinv_1 _1373_ ( + .A(_0829_), + .Y(_0464_) + ); + sky130_fd_sc_hd__clkinv_1 _1374_ ( + .A(_0829_), + .Y(_0465_) + ); + sky130_fd_sc_hd__clkinv_1 _1375_ ( + .A(_0829_), + .Y(_0466_) + ); + sky130_fd_sc_hd__clkinv_1 _1376_ ( + .A(_0829_), + .Y(_0467_) + ); + sky130_fd_sc_hd__clkinv_1 _1377_ ( + .A(_0829_), + .Y(_0468_) + ); + sky130_fd_sc_hd__clkinv_1 _1378_ ( + .A(_0829_), + .Y(_0469_) + ); + sky130_fd_sc_hd__clkinv_1 _1379_ ( + .A(_0829_), + .Y(_0470_) + ); + sky130_fd_sc_hd__clkinv_1 _1380_ ( + .A(_0829_), + .Y(_0471_) + ); + sky130_fd_sc_hd__clkinv_1 _1381_ ( + .A(_0829_), + .Y(_0472_) + ); + sky130_fd_sc_hd__clkinv_1 _1382_ ( + .A(_0829_), + .Y(_0473_) + ); + sky130_fd_sc_hd__clkinv_1 _1383_ ( + .A(_0829_), + .Y(_0474_) + ); + sky130_fd_sc_hd__clkinv_1 _1384_ ( + .A(_0829_), + .Y(_0475_) + ); + sky130_fd_sc_hd__clkinv_1 _1385_ ( + .A(_0829_), + .Y(_0476_) + ); + sky130_fd_sc_hd__clkinv_1 _1386_ ( + .A(_0829_), + .Y(_0477_) + ); + sky130_fd_sc_hd__clkinv_1 _1387_ ( + .A(_0829_), + .Y(_0478_) + ); + sky130_fd_sc_hd__clkinv_1 _1388_ ( + .A(_0829_), + .Y(_0479_) + ); + sky130_fd_sc_hd__clkinv_1 _1389_ ( + .A(_0829_), + .Y(_0480_) + ); + sky130_fd_sc_hd__clkinv_1 _1390_ ( + .A(_0829_), + .Y(_0481_) + ); + sky130_fd_sc_hd__clkinv_1 _1391_ ( + .A(_0829_), + .Y(_0482_) + ); + sky130_fd_sc_hd__clkinv_1 _1392_ ( + .A(_0829_), + .Y(_0483_) + ); + sky130_fd_sc_hd__clkinv_1 _1393_ ( + .A(_0829_), + .Y(_0484_) + ); + sky130_fd_sc_hd__clkinv_1 _1394_ ( + .A(_0829_), + .Y(_0485_) + ); + sky130_fd_sc_hd__clkinv_1 _1395_ ( + .A(_0829_), + .Y(_0486_) + ); + sky130_fd_sc_hd__clkinv_1 _1396_ ( + .A(_0829_), + .Y(_0487_) + ); + sky130_fd_sc_hd__clkinv_1 _1397_ ( + .A(_0829_), + .Y(_0488_) + ); + sky130_fd_sc_hd__clkinv_1 _1398_ ( + .A(_0829_), + .Y(_0489_) + ); + sky130_fd_sc_hd__clkinv_1 _1399_ ( + .A(_0829_), + .Y(_0490_) + ); + sky130_fd_sc_hd__clkinv_1 _1400_ ( + .A(_0829_), + .Y(_0491_) + ); + sky130_fd_sc_hd__clkinv_1 _1401_ ( + .A(_0829_), + .Y(_0492_) + ); + sky130_fd_sc_hd__clkinv_1 _1402_ ( + .A(_0829_), + .Y(_0493_) + ); + sky130_fd_sc_hd__clkinv_1 _1403_ ( + .A(_0829_), + .Y(_0494_) + ); + sky130_fd_sc_hd__clkinv_1 _1404_ ( + .A(_0829_), + .Y(_0495_) + ); + sky130_fd_sc_hd__clkinv_1 _1405_ ( + .A(_0829_), + .Y(_0496_) + ); + sky130_fd_sc_hd__clkinv_1 _1406_ ( + .A(_0829_), + .Y(_0497_) + ); + sky130_fd_sc_hd__clkinv_1 _1407_ ( + .A(_0829_), + .Y(_0498_) + ); + sky130_fd_sc_hd__clkinv_1 _1408_ ( + .A(_0829_), + .Y(_0499_) + ); + sky130_fd_sc_hd__clkinv_1 _1409_ ( + .A(_0829_), + .Y(_0500_) + ); + sky130_fd_sc_hd__clkinv_1 _1410_ ( + .A(_0829_), + .Y(_0501_) + ); + sky130_fd_sc_hd__clkinv_1 _1411_ ( + .A(_0829_), + .Y(_0502_) + ); + sky130_fd_sc_hd__clkinv_1 _1412_ ( + .A(_0829_), + .Y(_0503_) + ); + sky130_fd_sc_hd__clkinv_1 _1413_ ( + .A(_0829_), + .Y(_0504_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1414_ ( + .CLK(clk), + .D(_0831_[22]), + .Q(counter_tmp[22]), + .RESET_B(_0832_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1415_ ( + .CLK(clk), + .D(_0831_[23]), + .Q(counter_tmp[23]), + .RESET_B(_0833_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1416_ ( + .CLK(clk), + .D(_0831_[24]), + .Q(counter_tmp[24]), + .RESET_B(_0834_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1417_ ( + .CLK(clk), + .D(_0831_[25]), + .Q(counter_tmp[25]), + .RESET_B(_0835_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1418_ ( + .CLK(clk), + .D(_0831_[26]), + .Q(counter_tmp[26]), + .RESET_B(_0836_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1419_ ( + .CLK(clk), + .D(_0831_[27]), + .Q(counter_tmp[27]), + .RESET_B(_0837_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1420_ ( + .CLK(clk), + .D(_0831_[28]), + .Q(counter_tmp[28]), + .RESET_B(_0838_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1421_ ( + .CLK(clk), + .D(_0831_[29]), + .Q(counter_tmp[29]), + .RESET_B(_0839_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1422_ ( + .CLK(clk), + .D(_0831_[30]), + .Q(counter_tmp[30]), + .RESET_B(_0840_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1423_ ( + .CLK(clk), + .D(_0831_[31]), + .Q(counter_tmp[31]), + .RESET_B(_0841_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1424_ ( + .CLK(clk), + .D(_0831_[32]), + .Q(counter_tmp[32]), + .RESET_B(_0842_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1425_ ( + .CLK(clk), + .D(_0831_[33]), + .Q(counter_tmp[33]), + .RESET_B(_0843_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1426_ ( + .CLK(clk), + .D(_0831_[34]), + .Q(counter_tmp[34]), + .RESET_B(_0844_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1427_ ( + .CLK(clk), + .D(_0831_[35]), + .Q(counter_tmp[35]), + .RESET_B(_0845_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1428_ ( + .CLK(clk), + .D(_0831_[36]), + .Q(counter_tmp[36]), + .RESET_B(_0846_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1429_ ( + .CLK(clk), + .D(_0831_[37]), + .Q(counter_tmp[37]), + .RESET_B(_0847_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1430_ ( + .CLK(clk), + .D(_0831_[38]), + .Q(counter_tmp[38]), + .RESET_B(_0848_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1431_ ( + .CLK(clk), + .D(_0831_[39]), + .Q(counter_tmp[39]), + .RESET_B(_0849_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1432_ ( + .CLK(clk), + .D(_0831_[40]), + .Q(counter_tmp[40]), + .RESET_B(_0850_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1433_ ( + .CLK(clk), + .D(_0831_[41]), + .Q(counter_tmp[41]), + .RESET_B(_0851_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1434_ ( + .CLK(clk), + .D(_0831_[42]), + .Q(counter_tmp[42]), + .RESET_B(_0852_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1435_ ( + .CLK(clk), + .D(_0831_[43]), + .Q(counter_tmp[43]), + .RESET_B(_0853_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1436_ ( + .CLK(clk), + .D(_0831_[44]), + .Q(counter_tmp[44]), + .RESET_B(_0854_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1437_ ( + .CLK(clk), + .D(_0831_[45]), + .Q(counter_tmp[45]), + .RESET_B(_0855_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1438_ ( + .CLK(clk), + .D(_0831_[46]), + .Q(counter_tmp[46]), + .RESET_B(_0856_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1439_ ( + .CLK(clk), + .D(_0831_[47]), + .Q(counter_tmp[47]), + .RESET_B(_0857_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1440_ ( + .CLK(clk), + .D(_0831_[48]), + .Q(counter_tmp[48]), + .RESET_B(_0858_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1441_ ( + .CLK(clk), + .D(_0831_[49]), + .Q(counter_tmp[49]), + .RESET_B(_0859_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1442_ ( + .CLK(clk), + .D(_0831_[50]), + .Q(counter_tmp[50]), + .RESET_B(_0860_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1443_ ( + .CLK(clk), + .D(_0831_[51]), + .Q(counter_tmp[51]), + .RESET_B(_0861_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1444_ ( + .CLK(clk), + .D(_0831_[52]), + .Q(counter_tmp[52]), + .RESET_B(_0862_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1445_ ( + .CLK(clk), + .D(_0831_[53]), + .Q(counter_tmp[53]), + .RESET_B(_0863_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1446_ ( + .CLK(clk), + .D(_0831_[54]), + .Q(counter_tmp[54]), + .RESET_B(_0864_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1447_ ( + .CLK(clk), + .D(_0831_[55]), + .Q(counter_tmp[55]), + .RESET_B(_0865_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1448_ ( + .CLK(clk), + .D(_0831_[56]), + .Q(counter_tmp[56]), + .RESET_B(_0866_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1449_ ( + .CLK(clk), + .D(_0831_[57]), + .Q(counter_tmp[57]), + .RESET_B(_0867_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1450_ ( + .CLK(clk), + .D(_0831_[58]), + .Q(counter_tmp[58]), + .RESET_B(_0868_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1451_ ( + .CLK(clk), + .D(_0831_[59]), + .Q(counter_tmp[59]), + .RESET_B(_0869_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1452_ ( + .CLK(clk), + .D(_0831_[60]), + .Q(counter_tmp[60]), + .RESET_B(_0870_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1453_ ( + .CLK(clk), + .D(_0831_[61]), + .Q(counter_tmp[61]), + .RESET_B(_0871_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1454_ ( + .CLK(clk), + .D(_0831_[62]), + .Q(counter_tmp[62]), + .RESET_B(_0872_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1455_ ( + .CLK(clk), + .D(_0831_[63]), + .Q(counter_tmp[63]), + .RESET_B(_0873_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1456_ ( + .CLK(clk), + .D(_0831_[64]), + .Q(counter_tmp[64]), + .RESET_B(_0874_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1457_ ( + .CLK(clk), + .D(_0831_[65]), + .Q(counter_tmp[65]), + .RESET_B(_0875_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1458_ ( + .CLK(clk), + .D(_0831_[66]), + .Q(counter_tmp[66]), + .RESET_B(_0876_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1459_ ( + .CLK(clk), + .D(_0831_[67]), + .Q(counter_tmp[67]), + .RESET_B(_0877_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1460_ ( + .CLK(clk), + .D(_0831_[68]), + .Q(counter_tmp[68]), + .RESET_B(_0878_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1461_ ( + .CLK(clk), + .D(_0831_[69]), + .Q(counter_tmp[69]), + .RESET_B(_0879_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1462_ ( + .CLK(clk), + .D(_0831_[70]), + .Q(counter_tmp[70]), + .RESET_B(_0880_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1463_ ( + .CLK(clk), + .D(_0831_[71]), + .Q(counter_tmp[71]), + .RESET_B(_0881_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1464_ ( + .CLK(clk), + .D(_0831_[72]), + .Q(counter_tmp[72]), + .RESET_B(_0882_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1465_ ( + .CLK(clk), + .D(_0831_[73]), + .Q(counter_tmp[73]), + .RESET_B(_0883_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1466_ ( + .CLK(clk), + .D(_0831_[74]), + .Q(counter_tmp[74]), + .RESET_B(_0884_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1467_ ( + .CLK(clk), + .D(_0831_[75]), + .Q(counter_tmp[75]), + .RESET_B(_0885_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1468_ ( + .CLK(clk), + .D(_0831_[76]), + .Q(counter_tmp[76]), + .RESET_B(_0886_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1469_ ( + .CLK(clk), + .D(_0831_[77]), + .Q(counter_tmp[77]), + .RESET_B(_0887_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1470_ ( + .CLK(clk), + .D(_0831_[78]), + .Q(counter_tmp[78]), + .RESET_B(_0888_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1471_ ( + .CLK(clk), + .D(_0831_[79]), + .Q(counter_tmp[79]), + .RESET_B(_0889_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1472_ ( + .CLK(clk), + .D(_0831_[80]), + .Q(counter_tmp[80]), + .RESET_B(_0890_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1473_ ( + .CLK(clk), + .D(_0831_[81]), + .Q(counter_tmp[81]), + .RESET_B(_0891_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1474_ ( + .CLK(clk), + .D(_0831_[82]), + .Q(counter_tmp[82]), + .RESET_B(_0892_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1475_ ( + .CLK(clk), + .D(_0831_[83]), + .Q(counter_tmp[83]), + .RESET_B(_0893_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1476_ ( + .CLK(clk), + .D(_0831_[84]), + .Q(counter_tmp[84]), + .RESET_B(_0894_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1477_ ( + .CLK(clk), + .D(_0831_[85]), + .Q(counter_tmp[85]), + .RESET_B(_0895_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1478_ ( + .CLK(clk), + .D(_0831_[86]), + .Q(counter_tmp[86]), + .RESET_B(_0896_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1479_ ( + .CLK(clk), + .D(_0831_[87]), + .Q(counter_tmp[87]), + .RESET_B(_0897_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1480_ ( + .CLK(clk), + .D(_0831_[88]), + .Q(counter_tmp[88]), + .RESET_B(_0898_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1481_ ( + .CLK(clk), + .D(_0831_[89]), + .Q(counter_tmp[89]), + .RESET_B(_0899_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1482_ ( + .CLK(clk), + .D(_0831_[90]), + .Q(counter_tmp[90]), + .RESET_B(_0900_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1483_ ( + .CLK(clk), + .D(_0831_[91]), + .Q(counter_tmp[91]), + .RESET_B(_0901_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1484_ ( + .CLK(clk), + .D(_0831_[92]), + .Q(counter_tmp[92]), + .RESET_B(_0902_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1485_ ( + .CLK(clk), + .D(_0831_[93]), + .Q(counter_tmp[93]), + .RESET_B(_0903_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1486_ ( + .CLK(clk), + .D(_0831_[94]), + .Q(counter_tmp[94]), + .RESET_B(_0904_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1487_ ( + .CLK(clk), + .D(_0831_[95]), + .Q(counter_tmp[95]), + .RESET_B(_0905_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1488_ ( + .CLK(clk), + .D(_0831_[96]), + .Q(counter_tmp[96]), + .RESET_B(_0906_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1489_ ( + .CLK(clk), + .D(_0831_[97]), + .Q(counter_tmp[97]), + .RESET_B(_0907_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1490_ ( + .CLK(clk), + .D(_0831_[98]), + .Q(counter_tmp[98]), + .RESET_B(_0908_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1491_ ( + .CLK(clk), + .D(_0831_[99]), + .Q(counter_tmp[99]), + .RESET_B(_0909_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1492_ ( + .CLK(clk), + .D(_0831_[100]), + .Q(counter_tmp[100]), + .RESET_B(_0910_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1493_ ( + .CLK(clk), + .D(_0831_[101]), + .Q(counter_tmp[101]), + .RESET_B(_0911_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1494_ ( + .CLK(clk), + .D(_0831_[102]), + .Q(counter_tmp[102]), + .RESET_B(_0912_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1495_ ( + .CLK(clk), + .D(_0831_[103]), + .Q(counter_tmp[103]), + .RESET_B(_0913_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1496_ ( + .CLK(clk), + .D(_0831_[104]), + .Q(counter_tmp[104]), + .RESET_B(_0914_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1497_ ( + .CLK(clk), + .D(_0831_[105]), + .Q(counter_tmp[105]), + .RESET_B(_0915_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1498_ ( + .CLK(clk), + .D(_0831_[106]), + .Q(counter_tmp[106]), + .RESET_B(_0916_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1499_ ( + .CLK(clk), + .D(_0831_[107]), + .Q(counter_tmp[107]), + .RESET_B(_0917_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1500_ ( + .CLK(clk), + .D(_0831_[108]), + .Q(counter_tmp[108]), + .RESET_B(_0918_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1501_ ( + .CLK(clk), + .D(_0831_[109]), + .Q(counter_tmp[109]), + .RESET_B(_0919_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1502_ ( + .CLK(clk), + .D(_0831_[110]), + .Q(counter_tmp[110]), + .RESET_B(_0920_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1503_ ( + .CLK(clk), + .D(_0831_[111]), + .Q(counter_tmp[111]), + .RESET_B(_0921_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1504_ ( + .CLK(clk), + .D(_0831_[112]), + .Q(counter_tmp[112]), + .RESET_B(_0922_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1505_ ( + .CLK(clk), + .D(_0831_[113]), + .Q(counter_tmp[113]), + .RESET_B(_0923_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1506_ ( + .CLK(clk), + .D(_0831_[114]), + .Q(counter_tmp[114]), + .RESET_B(_0924_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1507_ ( + .CLK(clk), + .D(_0831_[115]), + .Q(counter_tmp[115]), + .RESET_B(_0925_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1508_ ( + .CLK(clk), + .D(_0831_[116]), + .Q(counter_tmp[116]), + .RESET_B(_0926_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1509_ ( + .CLK(clk), + .D(_0831_[117]), + .Q(counter_tmp[117]), + .RESET_B(_0927_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1510_ ( + .CLK(clk), + .D(_0831_[118]), + .Q(counter_tmp[118]), + .RESET_B(_0928_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1511_ ( + .CLK(clk), + .D(_0831_[119]), + .Q(counter_tmp[119]), + .RESET_B(_0929_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1512_ ( + .CLK(clk), + .D(_0831_[120]), + .Q(counter_tmp[120]), + .RESET_B(_0930_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1513_ ( + .CLK(clk), + .D(_0831_[121]), + .Q(counter_tmp[121]), + .RESET_B(_0931_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1514_ ( + .CLK(clk), + .D(_0831_[122]), + .Q(counter_tmp[122]), + .RESET_B(_0932_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1515_ ( + .CLK(clk), + .D(_0831_[123]), + .Q(counter_tmp[123]), + .RESET_B(_0933_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1516_ ( + .CLK(clk), + .D(_0831_[124]), + .Q(counter_tmp[124]), + .RESET_B(_0934_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1517_ ( + .CLK(clk), + .D(_0831_[125]), + .Q(counter_tmp[125]), + .RESET_B(_0935_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1518_ ( + .CLK(clk), + .D(_0831_[126]), + .Q(counter_tmp[126]), + .RESET_B(_0936_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1519_ ( + .CLK(clk), + .D(_0831_[127]), + .Q(counter_tmp[127]), + .RESET_B(_0937_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1520_ ( + .CLK(clk), + .D(_0831_[128]), + .Q(counter_tmp[128]), + .RESET_B(_0938_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1521_ ( + .CLK(clk), + .D(_0830_[0]), + .Q(counter_tmp[0]), + .RESET_B(_0939_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1522_ ( + .CLK(clk), + .D(_0831_[1]), + .Q(counter_tmp[1]), + .RESET_B(_0940_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1523_ ( + .CLK(clk), + .D(_0831_[2]), + .Q(counter_tmp[2]), + .RESET_B(_0941_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1524_ ( + .CLK(clk), + .D(_0831_[3]), + .Q(counter_tmp[3]), + .RESET_B(_0942_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1525_ ( + .CLK(clk), + .D(_0831_[4]), + .Q(counter_tmp[4]), + .RESET_B(_0943_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1526_ ( + .CLK(clk), + .D(_0831_[5]), + .Q(counter_tmp[5]), + .RESET_B(_0944_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1527_ ( + .CLK(clk), + .D(_0831_[6]), + .Q(counter_tmp[6]), + .RESET_B(_0945_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1528_ ( + .CLK(clk), + .D(_0831_[7]), + .Q(counter_tmp[7]), + .RESET_B(_0946_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1529_ ( + .CLK(clk), + .D(_0831_[8]), + .Q(counter_tmp[8]), + .RESET_B(_0947_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1530_ ( + .CLK(clk), + .D(_0831_[9]), + .Q(counter_tmp[9]), + .RESET_B(_0948_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1531_ ( + .CLK(clk), + .D(_0831_[10]), + .Q(counter_tmp[10]), + .RESET_B(_0949_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1532_ ( + .CLK(clk), + .D(_0831_[11]), + .Q(counter_tmp[11]), + .RESET_B(_0950_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1533_ ( + .CLK(clk), + .D(_0831_[12]), + .Q(counter_tmp[12]), + .RESET_B(_0951_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1534_ ( + .CLK(clk), + .D(_0831_[13]), + .Q(counter_tmp[13]), + .RESET_B(_0952_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1535_ ( + .CLK(clk), + .D(_0831_[14]), + .Q(counter_tmp[14]), + .RESET_B(_0953_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1536_ ( + .CLK(clk), + .D(_0831_[15]), + .Q(counter_tmp[15]), + .RESET_B(_0954_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1537_ ( + .CLK(clk), + .D(_0831_[16]), + .Q(counter_tmp[16]), + .RESET_B(_0955_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1538_ ( + .CLK(clk), + .D(_0831_[17]), + .Q(counter_tmp[17]), + .RESET_B(_0956_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1539_ ( + .CLK(clk), + .D(_0831_[18]), + .Q(counter_tmp[18]), + .RESET_B(_0957_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1540_ ( + .CLK(clk), + .D(_0831_[19]), + .Q(counter_tmp[19]), + .RESET_B(_0958_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1541_ ( + .CLK(clk), + .D(_0831_[20]), + .Q(counter_tmp[20]), + .RESET_B(_0959_) + ); + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1542_ ( + .CLK(clk), + .D(_0831_[21]), + .Q(counter_tmp[21]), + .RESET_B(_0960_) + ); + assign _0830_[128:1] = counter_tmp[128:1]; + assign _0831_[0] = _0830_[0]; + assign out = counter_tmp; + assign _0609_ = counter_tmp[78]; + assign _0610_ = counter_tmp[79]; + assign _0831_[79] = _0352_; + assign _0831_[78] = _0351_; + assign _0539_ = counter_tmp[14]; + assign _0540_ = counter_tmp[15]; + assign _0831_[15] = _0282_; + assign _0568_ = counter_tmp[40]; + assign _0831_[40] = _0310_; + assign _0583_ = counter_tmp[54]; + assign _0584_ = counter_tmp[55]; + assign _0831_[55] = _0326_; + assign _0831_[54] = _0325_; + assign _0543_ = counter_tmp[18]; + assign _0544_ = counter_tmp[19]; + assign _0831_[19] = _0286_; + assign _0516_ = counter_tmp[10]; + assign _0831_[10] = _0258_; + assign _0572_ = counter_tmp[44]; + assign _0831_[44] = _0314_; + assign _0545_ = counter_tmp[1]; + assign _0505_ = counter_tmp[0]; + assign _0546_ = counter_tmp[20]; + assign _0547_ = counter_tmp[21]; + assign _0831_[21] = _0289_; + assign _0831_[20] = _0288_; + assign _0574_ = counter_tmp[46]; + assign _0575_ = counter_tmp[47]; + assign _0831_[47] = _0317_; + assign _0831_[14] = _0281_; + assign _0537_ = counter_tmp[12]; + assign _0538_ = counter_tmp[13]; + assign _0549_ = counter_tmp[23]; + assign _0831_[23] = _0291_; + assign _0548_ = counter_tmp[22]; + assign _0831_[22] = _0290_; + assign _0553_ = counter_tmp[27]; + assign _0831_[27] = _0295_; + assign _0552_ = counter_tmp[26]; + assign _0831_[26] = _0294_; + assign _0831_[1] = _0287_; + assign _0830_[0] = _0247_; + assign _0554_ = counter_tmp[28]; + assign _0831_[28] = _0296_; + assign _0530_ = counter_tmp[122]; + assign _0831_[122] = _0272_; + assign _0567_ = counter_tmp[3]; + assign _0831_[3] = _0309_; + assign _0556_ = counter_tmp[2]; + assign _0831_[2] = _0298_; + assign _0555_ = counter_tmp[29]; + assign _0831_[29] = _0297_; + assign _0589_ = counter_tmp[5]; + assign _0831_[5] = _0331_; + assign _0578_ = counter_tmp[4]; + assign _0831_[4] = _0320_; + assign _0557_ = counter_tmp[30]; + assign _0558_ = counter_tmp[31]; + assign _0831_[31] = _0300_; + assign _0831_[30] = _0299_; + assign _0600_ = counter_tmp[6]; + assign _0831_[6] = _0342_; + assign _0622_ = counter_tmp[8]; + assign _0831_[8] = _0364_; + assign _0611_ = counter_tmp[7]; + assign _0831_[7] = _0353_; + assign _0559_ = counter_tmp[32]; + assign _0560_ = counter_tmp[33]; + assign _0831_[33] = _0302_; + assign _0831_[32] = _0301_; + assign _0633_ = counter_tmp[9]; + assign _0831_[9] = _0375_; + assign _0562_ = counter_tmp[35]; + assign _0831_[35] = _0304_; + assign _0561_ = counter_tmp[34]; + assign _0831_[34] = _0303_; + assign _0527_ = counter_tmp[11]; + assign _0831_[11] = _0269_; + assign _0563_ = counter_tmp[36]; + assign _0831_[36] = _0305_; + assign _0550_ = counter_tmp[24]; + assign _0551_ = counter_tmp[25]; + assign _0831_[25] = _0293_; + assign _0831_[24] = _0292_; + assign _0614_ = counter_tmp[82]; + assign _0615_ = counter_tmp[83]; + assign _0831_[83] = _0357_; + assign _0626_ = counter_tmp[93]; + assign _0831_[93] = _0368_; + assign _0625_ = counter_tmp[92]; + assign _0831_[92] = _0367_; + assign _0531_ = counter_tmp[123]; + assign _0831_[123] = _0273_; + assign _0576_ = counter_tmp[48]; + assign _0831_[48] = _0318_; + assign _0623_ = counter_tmp[90]; + assign _0831_[90] = _0365_; + assign _0620_ = counter_tmp[88]; + assign _0621_ = counter_tmp[89]; + assign _0624_ = counter_tmp[91]; + assign _0831_[91] = _0366_; + assign _0616_ = counter_tmp[84]; + assign _0617_ = counter_tmp[85]; + assign _0831_[85] = _0359_; + assign _0831_[84] = _0358_; + assign _0590_ = counter_tmp[60]; + assign _0831_[60] = _0332_; + assign _0585_ = counter_tmp[56]; + assign _0586_ = counter_tmp[57]; + assign _0831_[57] = _0328_; + assign _0587_ = counter_tmp[58]; + assign _0588_ = counter_tmp[59]; + assign _0831_[59] = _0330_; + assign _0831_[58] = _0329_; + assign _0831_[56] = _0327_; + assign _0601_ = counter_tmp[70]; + assign _0602_ = counter_tmp[71]; + assign _0831_[71] = _0344_; + assign _0831_[70] = _0343_; + assign _0603_ = counter_tmp[72]; + assign _0604_ = counter_tmp[73]; + assign _0831_[73] = _0346_; + assign _0831_[72] = _0345_; + assign _0598_ = counter_tmp[68]; + assign _0599_ = counter_tmp[69]; + assign _0831_[69] = _0341_; + assign _0831_[18] = _0285_; + assign _0541_ = counter_tmp[16]; + assign _0542_ = counter_tmp[17]; + assign _0597_ = counter_tmp[67]; + assign _0831_[67] = _0339_; + assign _0596_ = counter_tmp[66]; + assign _0831_[66] = _0338_; + assign _0831_[68] = _0340_; + assign _0592_ = counter_tmp[62]; + assign _0831_[62] = _0334_; + assign _0591_ = counter_tmp[61]; + assign _0831_[61] = _0333_; + assign _0593_ = counter_tmp[63]; + assign _0831_[63] = _0335_; + assign _0594_ = counter_tmp[64]; + assign _0595_ = counter_tmp[65]; + assign _0831_[65] = _0337_; + assign _0831_[64] = _0336_; + assign _0508_ = counter_tmp[102]; + assign _0831_[102] = _0250_; + assign _0506_ = counter_tmp[100]; + assign _0507_ = counter_tmp[101]; + assign _0606_ = counter_tmp[75]; + assign _0831_[75] = _0348_; + assign _0605_ = counter_tmp[74]; + assign _0831_[74] = _0347_; + assign _0831_[89] = _0363_; + assign _0831_[88] = _0362_; + assign _0581_ = counter_tmp[52]; + assign _0582_ = counter_tmp[53]; + assign _0831_[53] = _0324_; + assign _0577_ = counter_tmp[49]; + assign _0831_[49] = _0319_; + assign _0607_ = counter_tmp[76]; + assign _0608_ = counter_tmp[77]; + assign _0831_[77] = _0350_; + assign _0831_[17] = _0284_; + assign _0831_[16] = _0283_; + assign _0831_[52] = _0323_; + assign _0579_ = counter_tmp[50]; + assign _0580_ = counter_tmp[51]; + assign _0831_[51] = _0322_; + assign _0831_[50] = _0321_; + assign _0534_ = counter_tmp[126]; + assign _0535_ = counter_tmp[127]; + assign _0831_[127] = _0277_; + assign _0532_ = counter_tmp[124]; + assign _0533_ = counter_tmp[125]; + assign _0613_ = counter_tmp[81]; + assign _0831_[81] = _0355_; + assign _0612_ = counter_tmp[80]; + assign _0831_[80] = _0354_; + assign _0522_ = counter_tmp[115]; + assign _0831_[115] = _0264_; + assign _0521_ = counter_tmp[114]; + assign _0831_[114] = _0263_; + assign _0517_ = counter_tmp[110]; + assign _0518_ = counter_tmp[111]; + assign _0831_[111] = _0260_; + assign _0627_ = counter_tmp[94]; + assign _0628_ = counter_tmp[95]; + assign _0831_[95] = _0370_; + assign _0536_ = counter_tmp[128]; + assign _0831_[128] = _0278_; + assign _0831_[126] = _0276_; + assign _0528_ = counter_tmp[120]; + assign _0529_ = counter_tmp[121]; + assign _0831_[121] = _0271_; + assign _0831_[120] = _0270_; + assign _0525_ = counter_tmp[118]; + assign _0526_ = counter_tmp[119]; + assign _0511_ = counter_tmp[105]; + assign _0831_[105] = _0253_; + assign _0510_ = counter_tmp[104]; + assign _0831_[104] = _0252_; + assign _0509_ = counter_tmp[103]; + assign _0831_[103] = _0251_; + assign _0631_ = counter_tmp[98]; + assign _0831_[98] = _0373_; + assign _0629_ = counter_tmp[96]; + assign _0630_ = counter_tmp[97]; + assign _0519_ = counter_tmp[112]; + assign _0520_ = counter_tmp[113]; + assign _0831_[113] = _0262_; + assign _0618_ = counter_tmp[86]; + assign _0831_[86] = _0360_; + assign _0515_ = counter_tmp[109]; + assign _0831_[109] = _0257_; + assign _0514_ = counter_tmp[108]; + assign _0831_[108] = _0256_; + assign _0512_ = counter_tmp[106]; + assign _0831_[94] = _0369_; + assign _0523_ = counter_tmp[116]; + assign _0524_ = counter_tmp[117]; + assign _0831_[117] = _0266_; + assign _0632_ = counter_tmp[99]; + assign _0831_[99] = _0374_; + assign _0831_[119] = _0268_; + assign _0831_[118] = _0267_; + assign _0619_ = counter_tmp[87]; + assign _0831_[87] = _0361_; + assign _0831_[97] = _0372_; + assign _0831_[96] = _0371_; + assign _0831_[125] = _0275_; + assign _0831_[124] = _0274_; + assign _0831_[112] = _0261_; + assign _0831_[101] = _0249_; + assign _0831_[100] = _0248_; + assign _0513_ = counter_tmp[107]; + assign _0831_[107] = _0255_; + assign _0831_[13] = _0280_; + assign _0831_[12] = _0279_; + assign _0831_[106] = _0254_; + assign _0831_[116] = _0265_; + assign _0569_ = counter_tmp[41]; + assign _0831_[41] = _0311_; + assign _0565_ = counter_tmp[38]; + assign _0566_ = counter_tmp[39]; + assign _0831_[39] = _0308_; + assign _0831_[38] = _0307_; + assign _0831_[110] = _0259_; + assign _0831_[82] = _0356_; + assign _0564_ = counter_tmp[37]; + assign _0831_[37] = _0306_; + assign _0831_[76] = _0349_; + assign _0831_[46] = _0316_; + assign _0573_ = counter_tmp[45]; + assign _0831_[45] = _0315_; + assign _0570_ = counter_tmp[42]; + assign _0571_ = counter_tmp[43]; + assign _0831_[43] = _0313_; + assign _0831_[42] = _0312_; + assign _0829_ = reset; + assign _0832_ = _0376_; + assign _0833_ = _0377_; + assign _0834_ = _0378_; + assign _0835_ = _0379_; + assign _0836_ = _0380_; + assign _0837_ = _0381_; + assign _0838_ = _0382_; + assign _0839_ = _0383_; + assign _0840_ = _0384_; + assign _0841_ = _0385_; + assign _0842_ = _0386_; + assign _0843_ = _0387_; + assign _0844_ = _0388_; + assign _0845_ = _0389_; + assign _0846_ = _0390_; + assign _0847_ = _0391_; + assign _0848_ = _0392_; + assign _0849_ = _0393_; + assign _0850_ = _0394_; + assign _0851_ = _0395_; + assign _0852_ = _0396_; + assign _0853_ = _0397_; + assign _0854_ = _0398_; + assign _0855_ = _0399_; + assign _0856_ = _0400_; + assign _0857_ = _0401_; + assign _0858_ = _0402_; + assign _0859_ = _0403_; + assign _0860_ = _0404_; + assign _0861_ = _0405_; + assign _0862_ = _0406_; + assign _0863_ = _0407_; + assign _0864_ = _0408_; + assign _0865_ = _0409_; + assign _0866_ = _0410_; + assign _0867_ = _0411_; + assign _0868_ = _0412_; + assign _0869_ = _0413_; + assign _0870_ = _0414_; + assign _0871_ = _0415_; + assign _0872_ = _0416_; + assign _0873_ = _0417_; + assign _0874_ = _0418_; + assign _0875_ = _0419_; + assign _0876_ = _0420_; + assign _0877_ = _0421_; + assign _0878_ = _0422_; + assign _0879_ = _0423_; + assign _0880_ = _0424_; + assign _0881_ = _0425_; + assign _0882_ = _0426_; + assign _0883_ = _0427_; + assign _0884_ = _0428_; + assign _0885_ = _0429_; + assign _0886_ = _0430_; + assign _0887_ = _0431_; + assign _0888_ = _0432_; + assign _0889_ = _0433_; + assign _0890_ = _0434_; + assign _0891_ = _0435_; + assign _0892_ = _0436_; + assign _0893_ = _0437_; + assign _0894_ = _0438_; + assign _0895_ = _0439_; + assign _0896_ = _0440_; + assign _0897_ = _0441_; + assign _0898_ = _0442_; + assign _0899_ = _0443_; + assign _0900_ = _0444_; + assign _0901_ = _0445_; + assign _0902_ = _0446_; + assign _0903_ = _0447_; + assign _0904_ = _0448_; + assign _0905_ = _0449_; + assign _0906_ = _0450_; + assign _0907_ = _0451_; + assign _0908_ = _0452_; + assign _0909_ = _0453_; + assign _0910_ = _0454_; + assign _0911_ = _0455_; + assign _0912_ = _0456_; + assign _0913_ = _0457_; + assign _0914_ = _0458_; + assign _0915_ = _0459_; + assign _0916_ = _0460_; + assign _0917_ = _0461_; + assign _0918_ = _0462_; + assign _0919_ = _0463_; + assign _0920_ = _0464_; + assign _0921_ = _0465_; + assign _0922_ = _0466_; + assign _0923_ = _0467_; + assign _0924_ = _0468_; + assign _0925_ = _0469_; + assign _0926_ = _0470_; + assign _0927_ = _0471_; + assign _0928_ = _0472_; + assign _0929_ = _0473_; + assign _0930_ = _0474_; + assign _0931_ = _0475_; + assign _0932_ = _0476_; + assign _0933_ = _0477_; + assign _0934_ = _0478_; + assign _0935_ = _0479_; + assign _0936_ = _0480_; + assign _0937_ = _0481_; + assign _0938_ = _0482_; + assign _0939_ = _0483_; + assign _0940_ = _0484_; + assign _0941_ = _0485_; + assign _0942_ = _0486_; + assign _0943_ = _0487_; + assign _0944_ = _0488_; + assign _0945_ = _0489_; + assign _0946_ = _0490_; + assign _0947_ = _0491_; + assign _0948_ = _0492_; + assign _0949_ = _0493_; + assign _0950_ = _0494_; + assign _0951_ = _0495_; + assign _0952_ = _0496_; + assign _0953_ = _0497_; + assign _0954_ = _0498_; + assign _0955_ = _0499_; + assign _0956_ = _0500_; + assign _0957_ = _0501_; + assign _0958_ = _0502_; + assign _0959_ = _0503_; + assign _0960_ = _0504_; +endmodule diff --git a/include/sta/ConcreteLibrary.hh b/include/sta/ConcreteLibrary.hh index 5909b81e..78b3a596 100644 --- a/include/sta/ConcreteLibrary.hh +++ b/include/sta/ConcreteLibrary.hh @@ -38,6 +38,7 @@ class LibertyCell; class LibertyPort; typedef Map ConcreteCellMap; +typedef Map AttributeMap; typedef Vector ConcretePortSeq; typedef Map ConcretePortMap; typedef ConcreteCellMap::ConstIterator ConcreteLibraryCellIterator; @@ -105,6 +106,8 @@ public: ConcreteCellPortBitIterator *portBitIterator() const; bool isLeaf() const { return is_leaf_; } void setIsLeaf(bool is_leaf); + void setAttribute(const char *key, const char *value); + const char *getAttribute(const char *key) const; // Cell acts as port factory. ConcretePort *makePort(const char *name); @@ -158,6 +161,7 @@ protected: // Port bit count (expanded buses). int port_bit_count_; bool is_leaf_; + AttributeMap attribute_map_; private: friend class ConcreteLibrary; diff --git a/include/sta/ConcreteNetwork.hh b/include/sta/ConcreteNetwork.hh index 99728c9c..d8856611 100644 --- a/include/sta/ConcreteNetwork.hh +++ b/include/sta/ConcreteNetwork.hh @@ -38,6 +38,7 @@ class ConcreteBindingTbl; class ConcreteLibertyLibraryIterator; typedef Vector ConcreteLibrarySeq; +typedef Map AttributeMap; typedef Map ConcreteLibraryMap; typedef ConcreteLibrarySeq::ConstIterator ConcreteLibraryIterator; typedef MapsetIsLeaf(is_leaf); } +void +ConcreteNetwork::setAttribute(Cell *cell, + const char *key, + const char *value) +{ + ConcreteCell *ccell = reinterpret_cast(cell); + ccell->setAttribute(key, value); +} + Library * ConcreteNetwork::library(const Cell *cell) const { @@ -597,6 +606,13 @@ ConcreteNetwork::filename(const Cell *cell) return ccell->filename(); } +const char * +ConcreteNetwork::getAttribute(const Cell *cell, const char *key) const +{ + const ConcreteCell *ccell = reinterpret_cast(cell); + return ccell->getAttribute(key); +} + Port * ConcreteNetwork::findPort(const Cell *cell, const char *name) const @@ -921,6 +937,13 @@ ConcreteNetwork::id(const Instance *instance) const return inst->id(); } +const char * +ConcreteNetwork::getAttribute(const Instance *inst, const char *key) const +{ + const ConcreteInstance *cinst = reinterpret_cast(inst); + return cinst->getAttribute(key); +} + Cell * ConcreteNetwork::cell(const Instance *instance) const { @@ -1325,6 +1348,15 @@ ConcreteNetwork::connect(Instance *inst, return connect(inst, reinterpret_cast(port), net); } +void +ConcreteNetwork::setAttribute(Instance *inst, + const char *key, + const char *value) +{ + ConcreteInstance *cinst = reinterpret_cast(inst); + cinst->setAttribute(key, value); +} + Pin * ConcreteNetwork::connect(Instance *inst, Port *port, @@ -1564,6 +1596,7 @@ ConcreteInstance::~ConcreteInstance() stringDelete(name_); delete children_; delete nets_; + attribute_map_.deleteArrayContents(); } Instance * @@ -1648,6 +1681,18 @@ ConcreteInstance::childIterator() const return new ConcreteInstanceChildIterator(children_); } +void +ConcreteInstance::setAttribute(const char *key, const char *value) +{ + attribute_map_.insert(key, stringCopy(value)); +} + +const char * +ConcreteInstance::getAttribute(const char *key) const +{ + return attribute_map_.findKey(key); +} + void ConcreteInstance::addChild(ConcreteInstance *child) { diff --git a/network/SdcNetwork.cc b/network/SdcNetwork.cc index e5eb36bb..b83beb21 100644 --- a/network/SdcNetwork.cc +++ b/network/SdcNetwork.cc @@ -122,6 +122,12 @@ NetworkNameAdapter::id(const Cell *cell) const return network_->id(cell); } +const char * +NetworkNameAdapter::getAttribute(const Cell *cell, const char *key) const +{ + return network_->getAttribute(cell, key); +} + Library * NetworkNameAdapter::library(const Cell *cell) const { @@ -327,6 +333,12 @@ NetworkNameAdapter::cell(const Instance *instance) const return network_->cell(instance); } +const char * +NetworkNameAdapter::getAttribute(const Instance *inst, const char *key) const +{ + return network_->getAttribute(inst, key); +} + Instance * NetworkNameAdapter::parent(const Instance *instance) const { diff --git a/tcl/StaTcl.i b/tcl/StaTcl.i index 39d4ec55..64bcabe9 100644 --- a/tcl/StaTcl.i +++ b/tcl/StaTcl.i @@ -4180,11 +4180,13 @@ void finish() { delete self; } } // LibertyLibraryIterator methods %extend Cell { +const char *name() { return cmdNetwork()->name(self); } Library *library() { return cmdNetwork()->library(self); } LibertyCell *liberty_cell() { return cmdNetwork()->libertyCell(self); } bool is_leaf() { return cmdNetwork()->isLeaf(self); } CellPortIterator * port_iterator() { return cmdNetwork()->portIterator(self); } +const char *get_attribute(const char *key) { return cmdNetwork()->getAttribute(self, key); } Port * find_port(const char *name) diff --git a/test/regression_vars.tcl b/test/regression_vars.tcl index 8509e04a..9ab48816 100644 --- a/test/regression_vars.tcl +++ b/test/regression_vars.tcl @@ -119,6 +119,7 @@ record_example_tests { multi_corner power power_vcd + attribute_parsing_test } record_sta_tests { diff --git a/verilog/VerilogLex.ll b/verilog/VerilogLex.ll index 42880540..60dd6109 100644 --- a/verilog/VerilogLex.ll +++ b/verilog/VerilogLex.ll @@ -41,7 +41,6 @@ verilogFlushBuffer() %option never-interactive %x COMMENT -%x ATTRIBUTE %x QSTRING SIGN "+"|"-" @@ -77,21 +76,6 @@ ID_TOKEN {ID_ESCAPED_TOKEN}|{ID_ALPHA_TOKEN} } } -"(*" { BEGIN ATTRIBUTE; } -{ -. - -{EOL} { sta::verilog_reader->incrLine(); } - -"*)" { BEGIN INITIAL; } - -<> { - VerilogParse_error("unterminated attribute"); - BEGIN(INITIAL); - yyterminate(); - } -} - {SIGN}?{UNSIGNED_NUMBER}?"'"[bB][01_xz]+ { VerilogParse_lval.constant = sta::stringCopy(VerilogLex_text); return CONSTANT; @@ -121,6 +105,8 @@ ID_TOKEN {ID_ESCAPED_TOKEN}|{ID_ALPHA_TOKEN} return ((int) VerilogLex_text[0]); } +"(*" { return ATTRIBUTE_OPEN; } +"*)" { return ATTRIBUTE_CLOSED; } assign { return ASSIGN; } endmodule { return ENDMODULE; } inout { return INOUT; } diff --git a/verilog/VerilogParse.yy b/verilog/VerilogParse.yy index b12f3cef..d53ba4ed 100644 --- a/verilog/VerilogParse.yy +++ b/verilog/VerilogParse.yy @@ -17,6 +17,8 @@ // along with this program. If not, see . #include +#include +#include #include "PortDirection.hh" #include "verilog/VerilogReaderPvt.hh" @@ -33,6 +35,7 @@ int VerilogLex_lex(); int ival; const char *string; const char *constant; + const char *attribute_spec_value; sta::VerilogModule *module; sta::VerilogStmt *stmt; sta::VerilogStmtSeq *stmt_seq; @@ -44,10 +47,15 @@ int VerilogLex_lex(); sta::VerilogNet *net; sta::VerilogNetBitSelect *net_bit; sta::VerilogNetSeq *nets; + sta::VerilogAttributeEntry *attribute_entry; + sta::VerilogAttributeEntrySeq *attribute_seq; + sta::VerilogAttributeStmt *attribute_stmt; + sta::VerilogAttributeStmtSeq *attribute_stmt_seq; } %token INT CONSTANT ID STRING MODULE ENDMODULE ASSIGN PARAMETER DEFPARAM %token WIRE WAND WOR TRI INPUT OUTPUT INOUT SUPPLY1 SUPPLY0 REG +%token ATTRIBUTE_OPEN ATTRIBUTE_CLOSED %left '-' '+' %left '*' '/' @@ -55,8 +63,10 @@ int VerilogLex_lex(); %type ID STRING %type WIRE WAND WOR TRI INPUT OUTPUT INOUT SUPPLY1 SUPPLY0 +%type ATTRIBUTE_OPEN ATTRIBUTE_CLOSED %type INT parameter_exprs parameter_expr module_begin %type CONSTANT +%type attr_spec_value %type dcl_type port_dcl_type %type stmt declaration instance parameter parameter_dcls parameter_dcl %type defparam param_values param_value port_dcl @@ -69,6 +79,10 @@ int VerilogLex_lex(); %type inst_named_pin net_named net_expr_concat %type port_list port_refs inst_ordered_pins %type inst_named_pins net_exprs inst_pins +%type attr_spec +%type attr_specs +%type attribute_instance +%type attribute_instance_seq %start file @@ -92,14 +106,14 @@ module_begin: ; module: - module_begin ID ';' stmts ENDMODULE - { sta::verilog_reader->makeModule($2, new sta::VerilogNetSeq,$4,$1);} -| module_begin ID '(' ')' ';' stmts ENDMODULE - { sta::verilog_reader->makeModule($2, new sta::VerilogNetSeq,$6,$1);} -| module_begin ID '(' port_list ')' ';' stmts ENDMODULE - { sta::verilog_reader->makeModule($2, $4, $7, $1); } -| module_begin ID '(' port_dcls ')' ';' stmts ENDMODULE - { sta::verilog_reader->makeModule($2, $4, $7, $1); } + attribute_instance_seq module_begin ID ';' stmts ENDMODULE + { sta::verilog_reader->makeModule($3, new sta::VerilogNetSeq, $5, $1, $2);} +| attribute_instance_seq module_begin ID '(' ')' ';' stmts ENDMODULE + { sta::verilog_reader->makeModule($3, new sta::VerilogNetSeq, $7, $1, $2);} +| attribute_instance_seq module_begin ID '(' port_list ')' ';' stmts ENDMODULE + { sta::verilog_reader->makeModule($3, $5, $8, $1, $2); } +| attribute_instance_seq module_begin ID '(' port_dcls ')' ';' stmts ENDMODULE + { sta::verilog_reader->makeModule($3, $5, $8, $1, $2); } ; port_list: @@ -157,11 +171,12 @@ port_dcls: ; port_dcl: - port_dcl_type { $$ = sta::verilog_reader->line(); } dcl_arg - { $$ = sta::verilog_reader->makeDcl($1, $3, $2); } -| port_dcl_type { $$ = sta::verilog_reader->line(); } - '[' INT ':' INT ']' dcl_arg - { $$ = sta::verilog_reader->makeDclBus($1, $4, $6, $8, $2); } + attribute_instance_seq port_dcl_type + { $$ = sta::verilog_reader->line(); } dcl_arg + { $$ = sta::verilog_reader->makeDcl($2, $4, $1, $3); } +| attribute_instance_seq port_dcl_type + { $$ = sta::verilog_reader->line(); } '[' INT ':' INT ']' dcl_arg + { $$ = sta::verilog_reader->makeDclBus($2, $5, $7, $9, $1, $3); } ; port_dcl_type: @@ -282,11 +297,11 @@ param_value: ; declaration: - dcl_type { $$ = sta::verilog_reader->line(); } dcl_args ';' - { $$ = sta::verilog_reader->makeDcl($1, $3, $2); } -| dcl_type { $$ = sta::verilog_reader->line(); } + attribute_instance_seq dcl_type { $$ = sta::verilog_reader->line(); } dcl_args ';' + { $$ = sta::verilog_reader->makeDcl($2, $4, $1, $3); } +| attribute_instance_seq dcl_type { $$ = sta::verilog_reader->line(); } '[' INT ':' INT ']' dcl_args ';' - { $$ = sta::verilog_reader->makeDclBus($1, $4, $6, $8, $2); } + { $$ = sta::verilog_reader->makeDclBus($2, $5, $7, $9, $1,$3); } ; dcl_type: @@ -344,11 +359,11 @@ net_assign_lhs: ; instance: - ID { $$ = sta::verilog_reader->line(); } ID '(' inst_pins ')' ';' - { $$ = sta::verilog_reader->makeModuleInst($1, $3, $5, $2); } -| ID { $$ = sta::verilog_reader->line(); } parameter_values + attribute_instance_seq ID { $$ = sta::verilog_reader->line(); } ID '(' inst_pins ')' ';' + { $$ = sta::verilog_reader->makeModuleInst($2, $4, $6, $1, $3); } +| attribute_instance_seq ID { $$ = sta::verilog_reader->line(); } parameter_values ID '(' inst_pins ')' ';' - { $$ = sta::verilog_reader->makeModuleInst($1, $4, $6, $2); } + { $$ = sta::verilog_reader->makeModuleInst($2, $5, $7, $1, $3); } ; parameter_values: @@ -467,4 +482,46 @@ net_expr: | net_expr_concat ; +attribute_instance_seq: + // empty + { $$ = new sta::VerilogAttributeStmtSeq; } +| attribute_instance_seq attribute_instance + { if ($2) $1->push_back($2); } + ; + +attribute_instance: + ATTRIBUTE_OPEN attr_specs ATTRIBUTE_CLOSED + { + $$ = new sta::VerilogAttributeStmt($2); + } + ; + +attr_specs: + attr_spec + { + $$ = new sta::VerilogAttributeEntrySeq; + $$->push_back($1); + } +| attr_spec ',' attr_spec + { $$->push_back($3); } + ; + +attr_spec: + ID + { $$ = new sta::VerilogAttributeEntry($1, "1");} +| ID '=' attr_spec_value + { + $$ = new sta::VerilogAttributeEntry($1, $3); + } + ; + +attr_spec_value: + CONSTANT + {$$ = $1;} +| STRING + {$$ = $1;} +| INT + {$$ = sta::stringCopy(std::to_string($1).c_str());} + ; + %% diff --git a/verilog/VerilogReader.cc b/verilog/VerilogReader.cc index fdfa1288..b7e4a763 100644 --- a/verilog/VerilogReader.cc +++ b/verilog/VerilogReader.cc @@ -26,6 +26,7 @@ #include "PortDirection.hh" #include "Network.hh" #include "VerilogNamespace.hh" +#include "StringUtil.hh" #include "verilog/VerilogReaderPvt.hh" extern int @@ -253,6 +254,7 @@ void VerilogReader::makeModule(const char *module_vname, VerilogNetSeq *ports, VerilogStmtSeq *stmts, + VerilogAttributeStmtSeq *attribute_stmts, int line) { string module_name = moduleVerilogToSta(module_vname); @@ -263,10 +265,17 @@ VerilogReader::makeModule(const char *module_vname, module_map_.erase(cell); network_->deleteCell(cell); } - VerilogModule *module = new VerilogModule(module_name.c_str(), - ports, stmts, - filename_, line, this); + + VerilogModule *module = new VerilogModule(module_name.c_str(), ports, stmts, + attribute_stmts, filename_, line, this); cell = network_->makeCell(library_, module_name.c_str(), false, filename_); + + for (VerilogAttributeStmt *stmt : *attribute_stmts) { + for (VerilogAttributeEntry *entry : *stmt->attribute_sequence()) { + network_->setAttribute(cell, entry->key(), entry->value()); + } + } + module_map_[cell] = module; makeCellPorts(cell, module, ports); module_count_++; @@ -277,6 +286,7 @@ void VerilogReader::makeModule(const char *module_name, VerilogStmtSeq *port_dcls, VerilogStmtSeq *stmts, + VerilogAttributeStmtSeq *attribute_stmts, int line) { VerilogNetSeq *ports = new VerilogNetSeq; @@ -293,7 +303,7 @@ VerilogReader::makeModule(const char *module_name, } } delete port_dcls; - makeModule(module_name, ports, stmts, line); + makeModule(module_name, ports, stmts, attribute_stmts, line); } void @@ -392,6 +402,7 @@ VerilogReader::checkModuleDcls(VerilogModule *module, VerilogDcl * VerilogReader::makeDcl(PortDirection *dir, VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, int line) { if (dir->isInternal()) { @@ -411,24 +422,25 @@ VerilogReader::makeDcl(PortDirection *dir, delete args; if (assign_args) { dcl_count_++; - return new VerilogDcl(dir, assign_args, line); + return new VerilogDcl(dir, assign_args, attribute_stmts, line); } else return nullptr; } else { dcl_count_++; - return new VerilogDcl(dir, args, line); + return new VerilogDcl(dir, args, attribute_stmts, line); } } VerilogDcl * VerilogReader::makeDcl(PortDirection *dir, VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, int line) { dcl_count_++; - return new VerilogDcl(dir, arg, line); + return new VerilogDcl(dir, arg, attribute_stmts, line); } VerilogDclBus * @@ -436,10 +448,12 @@ VerilogReader::makeDclBus(PortDirection *dir, int from_index, int to_index, VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, int line) { dcl_bus_count_++; - return new VerilogDclBus(dir, from_index, to_index, arg, line); + return new VerilogDclBus(dir, from_index, to_index, arg, attribute_stmts, + line); } VerilogDclBus * @@ -447,10 +461,12 @@ VerilogReader::makeDclBus(PortDirection *dir, int from_index, int to_index, VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, int line) { dcl_bus_count_++; - return new VerilogDclBus(dir, from_index, to_index, args, line); + return new VerilogDclBus(dir, from_index, to_index, args, attribute_stmts, + line); } VerilogDclArg * @@ -531,6 +547,7 @@ VerilogInst * VerilogReader::makeModuleInst(const char *module_vname, const char *inst_vname, VerilogNetSeq *pins, + VerilogAttributeStmtSeq* attribute_stmts, const int line) { string module_name = moduleVerilogToSta(module_vname); @@ -571,7 +588,7 @@ VerilogReader::makeModuleInst(const char *module_vname, net_port_ref_scalar_net_count_--; } VerilogInst *inst = new VerilogLibertyInst(liberty_cell, inst_name.c_str(), - net_names, line); + net_names, attribute_stmts, line); delete pins; if (report_stmt_stats_) { inst_names_ += inst_name.size() + 1; @@ -585,7 +602,9 @@ VerilogReader::makeModuleInst(const char *module_vname, else { VerilogInst *inst = new VerilogModuleInst(module_name.c_str(), inst_name.c_str(), - pins, line); + pins, + attribute_stmts, + line); if (report_stmt_stats_) { inst_module_names_ += module_name.size() + 1; inst_names_ += inst_name.size() + 1; @@ -819,6 +838,7 @@ VerilogReader::netVerilogName(const char *net_name) VerilogModule::VerilogModule(const char *name, VerilogNetSeq *ports, VerilogStmtSeq *stmts, + VerilogAttributeStmtSeq *attribute_stmts, const char *filename, int line, VerilogReader *reader) : @@ -826,7 +846,8 @@ VerilogModule::VerilogModule(const char *name, name_(stringCopy(name)), filename_(filename), ports_(ports), - stmts_(stmts) + stmts_(stmts), + attribute_stmts_(attribute_stmts) { parseStmts(reader); } @@ -837,6 +858,8 @@ VerilogModule::~VerilogModule() delete ports_; stmts_->deleteContents(); delete stmts_; + attribute_stmts_->deleteContents(); + delete attribute_stmts_; stringDelete(name_); } @@ -936,15 +959,19 @@ VerilogStmt::VerilogStmt(int line) : } VerilogInst::VerilogInst(const char *inst_name, + VerilogAttributeStmtSeq* attribute_stmts, const int line) : VerilogStmt(line), - inst_name_(stringCopy(inst_name)) + inst_name_(stringCopy(inst_name)), + attribute_stmts_(attribute_stmts) { } VerilogInst::~VerilogInst() { stringDelete(inst_name_); + attribute_stmts_->deleteContents(); + delete attribute_stmts_; } void @@ -957,8 +984,9 @@ VerilogInst::setInstanceName(const char *inst_name) VerilogModuleInst::VerilogModuleInst(const char *module_name, const char *inst_name, VerilogNetSeq *pins, + VerilogAttributeStmtSeq* attribute_stmts, int line) : - VerilogInst(inst_name, line), + VerilogInst(inst_name, attribute_stmts, line), module_name_(stringCopy(module_name)), pins_(pins) { @@ -992,8 +1020,9 @@ VerilogModuleInst::namedPins() VerilogLibertyInst::VerilogLibertyInst(LibertyCell *cell, const char *inst_name, const char **net_names, + VerilogAttributeStmtSeq* attribute_stmts, const int line) : - VerilogInst(inst_name, line), + VerilogInst(inst_name, attribute_stmts, line), cell_(cell), net_names_(net_names) { @@ -1013,27 +1042,33 @@ VerilogLibertyInst::~VerilogLibertyInst() VerilogDcl::VerilogDcl(PortDirection *dir, VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, int line) : VerilogStmt(line), dir_(dir), - args_(args) + args_(args), + attribute_stmts_(attribute_stmts) { } VerilogDcl::VerilogDcl(PortDirection *dir, VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, int line) : VerilogStmt(line), dir_(dir) { args_ = new VerilogDclArgSeq; args_->push_back(arg); + attribute_stmts_ = attribute_stmts; } VerilogDcl::~VerilogDcl() { args_->deleteContents(); delete args_; + attribute_stmts_->deleteContents(); + delete attribute_stmts_; } void @@ -1052,8 +1087,9 @@ VerilogDclBus::VerilogDclBus(PortDirection *dir, int from_index, int to_index, VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, int line) : - VerilogDcl(dir, args, line), + VerilogDcl(dir, args, attribute_stmts, line), from_index_(from_index), to_index_(to_index) { @@ -1063,8 +1099,9 @@ VerilogDclBus::VerilogDclBus(PortDirection *dir, int from_index, int to_index, VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, int line) : - VerilogDcl(dir, arg, line), + VerilogDcl(dir, arg, attribute_stmts, line), from_index_(from_index), to_index_(to_index) { @@ -1702,6 +1739,51 @@ VerilogNetPortRefPart::name() const return name_; } +VerilogAttributeEntry::VerilogAttributeEntry(const char *key, + const char * value) : + key_(key), + value_(value) +{ +} + +VerilogAttributeEntry::~VerilogAttributeEntry() +{ + stringDelete(key_); + stringDelete(value_); +} + + +const char * +VerilogAttributeEntry::key() +{ + return key_; +} + +const char * +VerilogAttributeEntry::value() +{ + return value_; +} + +VerilogAttributeStmt::VerilogAttributeStmt( + VerilogAttributeEntrySeq* attribute_sequence): + attribute_sequence_(attribute_sequence) +{ +} + +VerilogAttributeStmt::~VerilogAttributeStmt() +{ + attribute_sequence_->deleteContents(); + delete attribute_sequence_; +} + +VerilogAttributeEntrySeq* +VerilogAttributeStmt::attribute_sequence() +{ + return attribute_sequence_; +} + + //////////////////////////////////////////////////////////////// // // Link verilog network @@ -1859,6 +1941,13 @@ VerilogReader::makeModuleInstNetwork(VerilogModuleInst *mod_inst, cell = network_->cell(lib_cell); Instance *inst = network_->makeInstance(cell, mod_inst->instanceName(), parent); + VerilogAttributeStmtSeq *attribute_stmts = mod_inst->attribute_stmts(); + for (VerilogAttributeStmt *stmt : *attribute_stmts) { + for (VerilogAttributeEntry *entry : *stmt->attribute_sequence()) { + network_->setAttribute(inst, entry->key(), entry->value()); + } + } + if (lib_cell) { // Make all pins so timing arcs are built. LibertyCellPortBitIterator port_iter(lib_cell); @@ -2044,6 +2133,12 @@ VerilogReader::makeLibertyInst(VerilogLibertyInst *lib_inst, Cell *cell = reinterpret_cast(lib_cell); Instance *inst = network_->makeInstance(cell, lib_inst->instanceName(), parent); + VerilogAttributeStmtSeq *attribute_stmts = lib_inst->attribute_stmts(); + for (VerilogAttributeStmt *stmt : *attribute_stmts) { + for (VerilogAttributeEntry *entry : *stmt->attribute_sequence()) { + network_->setAttribute(inst, entry->key(), entry->value()); + } + } const char **net_names = lib_inst->netNames(); LibertyCellPortBitIterator port_iter(lib_cell); while (port_iter.hasNext()) { @@ -2205,7 +2300,7 @@ VerilogBindingTbl::find(const char *name, NetworkReader *network) } void -VerilogBindingTbl::bind(const char *name, +VerilogBindingTbl::bind(const char *name, Net *net) { map_[name] = net; diff --git a/verilog/VerilogReaderPvt.hh b/verilog/VerilogReaderPvt.hh index eb6afa09..bb279ffb 100644 --- a/verilog/VerilogReaderPvt.hh +++ b/verilog/VerilogReaderPvt.hh @@ -37,6 +37,8 @@ using std::set; class Debug; class Report; +class VerilogAttributeEntry; +class VerilogAttributeStmt; class VerilogReader; class VerilogStmt; class VerilogNet; @@ -60,6 +62,8 @@ class VerilogNetPortRef; class VerilogError; class LibertyCell; +typedef Vector VerilogAttributeStmtSeq; +typedef Vector VerilogAttributeEntrySeq; typedef Vector VerilogNetSeq; typedef Vector VerilogStmtSeq; typedef Map VerilogDclMap; @@ -89,16 +93,20 @@ public: void makeModule(const char *module_name, VerilogNetSeq *ports, VerilogStmtSeq *stmts, + VerilogAttributeStmtSeq *attribute_stmts, int line); void makeModule(const char *module_name, VerilogStmtSeq *port_dcls, VerilogStmtSeq *stmts, + VerilogAttributeStmtSeq *attribute_stmts, int line); VerilogDcl *makeDcl(PortDirection *dir, VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, int line); VerilogDcl *makeDcl(PortDirection *dir, VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, int line); VerilogDclArg *makeDclArg(const char *net_name); VerilogDclArg*makeDclArg(VerilogAssign *assign); @@ -106,15 +114,18 @@ public: int from_index, int to_index, VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, int line); VerilogDclBus *makeDclBus(PortDirection *dir, int from_index, int to_index, VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, int line); VerilogInst *makeModuleInst(const char *module_name, const char *inst_name, VerilogNetSeq *pins, + VerilogAttributeStmtSeq* attribute_stmts, const int line); VerilogAssign *makeAssign(VerilogNet *lhs, VerilogNet *rhs, @@ -328,12 +339,14 @@ public: VerilogModule(const char *name, VerilogNetSeq *ports, VerilogStmtSeq *stmts, + VerilogAttributeStmtSeq *attribute_stmts, const char *filename, int line, VerilogReader *reader); virtual ~VerilogModule(); const char *name() { return name_; } const char *filename() { return filename_; } + VerilogAttributeStmtSeq *attribute_stmts() { return attribute_stmts_; } VerilogNetSeq *ports() { return ports_; } VerilogDcl *declaration(const char *net_name); VerilogStmtSeq *stmts() { return stmts_; } @@ -352,6 +365,7 @@ private: VerilogNetSeq *ports_; VerilogStmtSeq *stmts_; VerilogDclMap dcl_map_; + VerilogAttributeStmtSeq *attribute_stmts_; }; class VerilogDcl : public VerilogStmt @@ -359,9 +373,11 @@ class VerilogDcl : public VerilogStmt public: VerilogDcl(PortDirection *dir, VerilogDclArgSeq *args, + VerilogAttributeStmtSeq *attribute_stmts, int line); VerilogDcl(PortDirection *dir, VerilogDclArg *arg, + VerilogAttributeStmtSeq *attribute_stmts, int line); virtual ~VerilogDcl(); const char *portName(); @@ -376,6 +392,7 @@ public: private: PortDirection *dir_; VerilogDclArgSeq *args_; + VerilogAttributeStmtSeq *attribute_stmts_; }; class VerilogDclBus : public VerilogDcl @@ -385,11 +402,13 @@ public: int from_index, int to_index, VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, int line); VerilogDclBus(PortDirection *dir, int from_index, int to_index, VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, int line); virtual bool isBus() const { return true; } int fromIndex() const { return from_index_; } @@ -437,14 +456,17 @@ class VerilogInst : public VerilogStmt { public: VerilogInst(const char *inst_name, + VerilogAttributeStmtSeq* attribute_stmts, const int line); virtual ~VerilogInst(); virtual bool isInstance() const { return true; } const char *instanceName() const { return inst_name_; } + VerilogAttributeStmtSeq *attribute_stmts() const { return attribute_stmts_; } void setInstanceName(const char *inst_name); private: const char *inst_name_; + VerilogAttributeStmtSeq* attribute_stmts_; }; class VerilogModuleInst : public VerilogInst @@ -453,6 +475,7 @@ public: VerilogModuleInst(const char *module_name, const char *inst_name, VerilogNetSeq *pins, + VerilogAttributeStmtSeq* attribute_stmts, const int line); virtual ~VerilogModuleInst(); virtual bool isModuleInst() const { return true; } @@ -475,6 +498,7 @@ public: VerilogLibertyInst(LibertyCell *cell, const char *inst_name, const char **net_names, + VerilogAttributeStmtSeq* attribute_stmts, const int line); virtual ~VerilogLibertyInst(); virtual bool isLibertyInst() const { return true; } @@ -691,4 +715,29 @@ class VerilogNetNameIterator : public Iterator { }; +class VerilogAttributeStmt +{ +public: + VerilogAttributeStmt(VerilogAttributeEntrySeq *attribute_sequence); + VerilogAttributeEntrySeq *attribute_sequence(); + virtual ~VerilogAttributeStmt(); + +private: + VerilogAttributeEntrySeq *attribute_sequence_; +}; + +class VerilogAttributeEntry +{ +public: + VerilogAttributeEntry(const char *key, const char *value); + virtual const char *key(); + virtual const char *value(); + virtual ~VerilogAttributeEntry(); + +private: + const char *key_; + const char *value_; + +}; + } // namespace From ecd9a343609b91f6331dc2b58a63a2108d727eec Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Tue, 5 Mar 2024 23:08:25 +0000 Subject: [PATCH 02/12] update clang format Signed-off-by: Ethan Mahintorabi --- verilog/VerilogReaderPvt.hh | 1 - 1 file changed, 1 deletion(-) diff --git a/verilog/VerilogReaderPvt.hh b/verilog/VerilogReaderPvt.hh index bb279ffb..04e30a1f 100644 --- a/verilog/VerilogReaderPvt.hh +++ b/verilog/VerilogReaderPvt.hh @@ -737,7 +737,6 @@ public: private: const char *key_; const char *value_; - }; } // namespace From 74e41a6d2ac3ca89f2ef1adc77c74ee368c67737 Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Tue, 5 Mar 2024 23:11:02 +0000 Subject: [PATCH 03/12] adding ok files for attribute parsing test Signed-off-by: Ethan Mahintorabi --- test/attribute_parsing_test.ok | 74 ++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 test/attribute_parsing_test.ok diff --git a/test/attribute_parsing_test.ok b/test/attribute_parsing_test.ok new file mode 100644 index 00000000..53b927dd --- /dev/null +++ b/test/attribute_parsing_test.ok @@ -0,0 +1,74 @@ +Startpoint: _1521_ (rising edge-triggered flip-flop clocked by clk) +Endpoint: _1520_ (rising edge-triggered flip-flop clocked by clk) +Path Group: clk +Path Type: max + + Delay Time Description +--------------------------------------------------------- + 0.00 0.00 clock clk (rise edge) + 0.00 0.00 clock network delay (ideal) + 0.00 0.00 ^ _1521_/CLK (sky130_fd_sc_hd__dfrtp_1) src: synthesis/tests/counter.v:22.3-28.6 + 0.37 0.37 ^ _1521_/Q (sky130_fd_sc_hd__dfrtp_1) src: synthesis/tests/counter.v:22.3-28.6 + 0.28 0.65 ^ _1016_/X (sky130_fd_sc_hd__and4_1) + 0.27 0.92 ^ _1018_/X (sky130_fd_sc_hd__and4_1) + 0.16 1.08 v _1021_/Y (sky130_fd_sc_hd__nand4_1) + 0.35 1.43 ^ _1024_/Y (sky130_fd_sc_hd__nor4_1) + 0.20 1.63 v _1027_/Y (sky130_fd_sc_hd__nand4_1) + 0.51 2.13 v _1029_/X (sky130_fd_sc_hd__or4_1) + 0.42 2.56 ^ _1032_/Y (sky130_fd_sc_hd__nor4_1) + 0.24 2.79 v _1034_/Y (sky130_fd_sc_hd__nand4_1) + 0.38 3.17 ^ _1036_/Y (sky130_fd_sc_hd__nor4_1) + 0.21 3.38 v _1039_/Y (sky130_fd_sc_hd__nand4_1) + 0.35 3.74 ^ _1041_/Y (sky130_fd_sc_hd__nor4_1) + 0.30 4.04 ^ _1043_/X (sky130_fd_sc_hd__and4_1) + 0.26 4.30 ^ _1045_/X (sky130_fd_sc_hd__and4_1) + 0.16 4.46 v _1048_/Y (sky130_fd_sc_hd__nand4_1) + 0.35 4.81 ^ _1051_/Y (sky130_fd_sc_hd__nor4_1) + 0.21 5.02 v _1054_/Y (sky130_fd_sc_hd__nand4_1) + 0.37 5.40 ^ _1056_/Y (sky130_fd_sc_hd__nor4_1) + 0.21 5.61 v _1059_/Y (sky130_fd_sc_hd__nand4_1) + 0.30 5.91 ^ _1062_/Y (sky130_fd_sc_hd__nor4_1) + 0.20 6.11 v _1065_/Y (sky130_fd_sc_hd__nand4_1) + 0.37 6.48 ^ _1067_/Y (sky130_fd_sc_hd__nor4_1) + 0.21 6.69 v _1070_/Y (sky130_fd_sc_hd__nand4_1) + 0.41 7.10 ^ _1073_/Y (sky130_fd_sc_hd__nor4_1) + 0.30 7.40 ^ _1075_/X (sky130_fd_sc_hd__and4_1) + 0.14 7.54 v _1078_/Y (sky130_fd_sc_hd__nand4_1) + 0.41 7.95 ^ _1103_/Y (sky130_fd_sc_hd__nor4_1) + 0.24 8.19 v _1106_/Y (sky130_fd_sc_hd__nand4_1) + 0.37 8.56 ^ _1109_/Y (sky130_fd_sc_hd__nor4_1) + 0.21 8.77 v _1112_/Y (sky130_fd_sc_hd__nand4_1) + 0.48 9.25 v _1114_/X (sky130_fd_sc_hd__or4_1) + 0.48 9.72 v _1117_/X (sky130_fd_sc_hd__or4_1) + 0.35 10.07 ^ _1119_/Y (sky130_fd_sc_hd__nor4_1) + 0.21 10.28 v _1122_/Y (sky130_fd_sc_hd__nand4_1) + 0.43 10.71 ^ _1124_/Y (sky130_fd_sc_hd__nor4_1) + 0.22 10.93 v _1127_/Y (sky130_fd_sc_hd__nand4_1) + 0.43 11.36 ^ _1129_/Y (sky130_fd_sc_hd__nor4_1) + 0.25 11.61 v _1132_/Y (sky130_fd_sc_hd__nand4_1) + 0.59 12.19 ^ _1136_/Y (sky130_fd_sc_hd__nor4_1) + 0.21 12.40 v _1138_/Y (sky130_fd_sc_hd__nand4_1) + 0.25 12.65 ^ _1139_/X (sky130_fd_sc_hd__lpflow_isobufsrc_1) + 0.30 12.96 ^ _1224_/X (sky130_fd_sc_hd__and4_1) + 0.13 13.08 v _1226_/Y (sky130_fd_sc_hd__nand4_1) + 0.13 13.22 v _1236_/Y (sky130_fd_sc_hd__xnor2_1) + 0.00 13.22 v _1520_/D (sky130_fd_sc_hd__dfrtp_1) src: synthesis/tests/counter.v:22.3-28.6 + 13.22 data arrival time + + 50.00 50.00 clock clk (rise edge) + 0.00 50.00 clock network delay (ideal) + 0.00 50.00 clock reconvergence pessimism + 50.00 ^ _1520_/CLK (sky130_fd_sc_hd__dfrtp_1) src: synthesis/tests/counter.v:22.3-28.6 + -0.12 49.88 library setup time + 49.88 data required time +--------------------------------------------------------- + 49.88 data required time + -13.22 data arrival time +--------------------------------------------------------- + 36.66 slack (MET) + + +Critical path length is -36.662277 + +top_instance:"counter" attribute "src" = synthesis/tests/counter.v:16.1-32.10 + From 1fd97b479f5edd297c3b5f2336560501b146fd69 Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Tue, 5 Mar 2024 23:38:05 +0000 Subject: [PATCH 04/12] update ok file attribute_parsing Signed-off-by: Ethan Mahintorabi --- test/attribute_parsing_test.ok | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/attribute_parsing_test.ok b/test/attribute_parsing_test.ok index 53b927dd..3095de4b 100644 --- a/test/attribute_parsing_test.ok +++ b/test/attribute_parsing_test.ok @@ -7,8 +7,8 @@ Path Type: max --------------------------------------------------------- 0.00 0.00 clock clk (rise edge) 0.00 0.00 clock network delay (ideal) - 0.00 0.00 ^ _1521_/CLK (sky130_fd_sc_hd__dfrtp_1) src: synthesis/tests/counter.v:22.3-28.6 - 0.37 0.37 ^ _1521_/Q (sky130_fd_sc_hd__dfrtp_1) src: synthesis/tests/counter.v:22.3-28.6 + 0.00 0.00 ^ _1521_/CLK (sky130_fd_sc_hd__dfrtp_1) + 0.37 0.37 ^ _1521_/Q (sky130_fd_sc_hd__dfrtp_1) 0.28 0.65 ^ _1016_/X (sky130_fd_sc_hd__and4_1) 0.27 0.92 ^ _1018_/X (sky130_fd_sc_hd__and4_1) 0.16 1.08 v _1021_/Y (sky130_fd_sc_hd__nand4_1) @@ -52,13 +52,13 @@ Path Type: max 0.30 12.96 ^ _1224_/X (sky130_fd_sc_hd__and4_1) 0.13 13.08 v _1226_/Y (sky130_fd_sc_hd__nand4_1) 0.13 13.22 v _1236_/Y (sky130_fd_sc_hd__xnor2_1) - 0.00 13.22 v _1520_/D (sky130_fd_sc_hd__dfrtp_1) src: synthesis/tests/counter.v:22.3-28.6 + 0.00 13.22 v _1520_/D (sky130_fd_sc_hd__dfrtp_1) 13.22 data arrival time 50.00 50.00 clock clk (rise edge) 0.00 50.00 clock network delay (ideal) 0.00 50.00 clock reconvergence pessimism - 50.00 ^ _1520_/CLK (sky130_fd_sc_hd__dfrtp_1) src: synthesis/tests/counter.v:22.3-28.6 + 50.00 ^ _1520_/CLK (sky130_fd_sc_hd__dfrtp_1) -0.12 49.88 library setup time 49.88 data required time --------------------------------------------------------- From ad6f4cd3b19caf34813209f5ecba77b406b0cdb0 Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Sat, 9 Mar 2024 05:56:25 +0000 Subject: [PATCH 05/12] format fixes Signed-off-by: Ethan Mahintorabi --- include/sta/ConcreteLibrary.hh | 3 +- include/sta/ConcreteNetwork.hh | 17 +++-- include/sta/Network.hh | 14 ++-- include/sta/SdcNetwork.hh | 6 +- network/ConcreteLibrary.cc | 3 +- network/ConcreteNetwork.cc | 17 +++-- network/SdcNetwork.cc | 3 +- verilog/VerilogReader.cc | 72 +++++++++---------- verilog/VerilogReaderPvt.hh | 123 +++++++++++++++++---------------- 9 files changed, 136 insertions(+), 122 deletions(-) diff --git a/include/sta/ConcreteLibrary.hh b/include/sta/ConcreteLibrary.hh index 78b3a596..ab196e65 100644 --- a/include/sta/ConcreteLibrary.hh +++ b/include/sta/ConcreteLibrary.hh @@ -106,7 +106,8 @@ public: ConcreteCellPortBitIterator *portBitIterator() const; bool isLeaf() const { return is_leaf_; } void setIsLeaf(bool is_leaf); - void setAttribute(const char *key, const char *value); + void setAttribute(const char *key, + const char *value); const char *getAttribute(const char *key) const; // Cell acts as port factory. diff --git a/include/sta/ConcreteNetwork.hh b/include/sta/ConcreteNetwork.hh index d8856611..60671780 100644 --- a/include/sta/ConcreteNetwork.hh +++ b/include/sta/ConcreteNetwork.hh @@ -75,7 +75,8 @@ public: const PatternMatch *pattern) const override; const char *name(const Cell *cell) const override; - const char *getAttribute(const Cell *cell, const char *key) const override; + const char *getAttribute(const Cell *cell, + const char *key) const override; ObjectId id(const Cell *cell) const override; Library *library(const Cell *cell) const override; LibertyCell *libertyCell(Cell *cell) const override; @@ -110,7 +111,8 @@ public: PortMemberIterator *memberIterator(const Port *port) const override; const char *name(const Instance *instance) const override; - const char *getAttribute(const Instance *inst, const char *key) const override; + const char *getAttribute(const Instance *inst, + const char *key) const override; ObjectId id(const Instance *instance) const override; Cell *cell(const Instance *instance) const override; Instance *parent(const Instance *instance) const override; @@ -179,8 +181,8 @@ public: void setIsLeaf(Cell *cell, bool is_leaf) override; void setAttribute(Cell *cell, - const char *key, - const char *value) override; + const char *key, + const char *value) override; Port *makePort(Cell *cell, const char *name) override; Port *makeBusPort(Cell *cell, @@ -213,8 +215,8 @@ public: LibertyPort *port, Net *net) override; void setAttribute(Instance *inst, - const char *key, - const char *value) override; + const char *key, + const char *value) override; void disconnectPin(Pin *pin) override; void deletePin(Pin *pin) override; Net *makeNet(const char *name, @@ -294,7 +296,8 @@ public: InstanceNetIterator *netIterator() const; Instance *findChild(const char *name) const; InstanceChildIterator *childIterator() const; - void setAttribute(const char *key, const char *value); + void setAttribute(const char *key, + const char *value); const char *getAttribute(const char *key) const; void addChild(ConcreteInstance *child); void deleteChild(ConcreteInstance *child); diff --git a/include/sta/Network.hh b/include/sta/Network.hh index da982c09..6b67f7dd 100644 --- a/include/sta/Network.hh +++ b/include/sta/Network.hh @@ -145,7 +145,8 @@ public: // Filename may return null. virtual const char *filename(const Cell *cell) = 0; // Attributes can be null - virtual const char *getAttribute(const Cell *cell, const char *key) const = 0; + virtual const char *getAttribute(const Cell *cell, + const char *key) const = 0; // Name can be a simple, bundle, bus, or bus bit name. virtual Port *findPort(const Cell *cell, const char *name) const = 0; @@ -208,7 +209,8 @@ public: const PatternMatch *pattern) const; virtual InstanceSeq findInstancesHierMatching(const Instance *instance, const PatternMatch *pattern) const; - virtual const char *getAttribute(const Instance *inst, const char *key) const = 0; + virtual const char *getAttribute(const Instance *inst, + const char *key) const = 0; // Hierarchical path name. virtual const char *pathName(const Instance *instance) const; bool pathNameLess(const Instance *inst1, @@ -548,11 +550,11 @@ public: virtual void setIsLeaf(Cell *cell, bool is_leaf) = 0; virtual void setAttribute(Cell *cell, - const char *key, - const char *value) = 0; + const char *key, + const char *value) = 0; virtual void setAttribute(Instance *instance, - const char *key, - const char *value) = 0; + const char *key, + const char *value) = 0; virtual Port *makePort(Cell *cell, const char *name) = 0; virtual Port *makeBusPort(Cell *cell, diff --git a/include/sta/SdcNetwork.hh b/include/sta/SdcNetwork.hh index fcc98f99..58abad29 100644 --- a/include/sta/SdcNetwork.hh +++ b/include/sta/SdcNetwork.hh @@ -45,7 +45,8 @@ public: const PatternMatch *pattern) const override; const char *name(const Cell *cell) const override; - const char *getAttribute(const Cell *cell, const char* key) const override; + const char *getAttribute(const Cell *cell, + const char* key) const override; ObjectId id(const Cell *cell) const override; Library *library(const Cell *cell) const override; LibertyCell *libertyCell(Cell *cell) const override; @@ -81,7 +82,8 @@ public: bool hasMembers(const Port *port) const override; ObjectId id(const Instance *instance) const override; - const char *getAttribute(const Instance *inst, const char* key) const override; + const char *getAttribute(const Instance *inst, + const char* key) const override; Instance *topInstance() const override; Cell *cell(const Instance *instance) const override; Instance *parent(const Instance *instance) const override; diff --git a/network/ConcreteLibrary.cc b/network/ConcreteLibrary.cc index 53402990..6195708e 100644 --- a/network/ConcreteLibrary.cc +++ b/network/ConcreteLibrary.cc @@ -270,7 +270,8 @@ ConcreteCell::setIsLeaf(bool is_leaf) } void -ConcreteCell::setAttribute(const char* key, const char* value) +ConcreteCell::setAttribute(const char* key, + const char* value) { attribute_map_.insert(key, stringCopy(value)); } diff --git a/network/ConcreteNetwork.cc b/network/ConcreteNetwork.cc index a8e580d4..7bd3e611 100644 --- a/network/ConcreteNetwork.cc +++ b/network/ConcreteNetwork.cc @@ -559,8 +559,8 @@ ConcreteNetwork::setIsLeaf(Cell *cell, void ConcreteNetwork::setAttribute(Cell *cell, - const char *key, - const char *value) + const char *key, + const char *value) { ConcreteCell *ccell = reinterpret_cast(cell); ccell->setAttribute(key, value); @@ -607,7 +607,8 @@ ConcreteNetwork::filename(const Cell *cell) } const char * -ConcreteNetwork::getAttribute(const Cell *cell, const char *key) const +ConcreteNetwork::getAttribute(const Cell *cell, + const char *key) const { const ConcreteCell *ccell = reinterpret_cast(cell); return ccell->getAttribute(key); @@ -938,7 +939,8 @@ ConcreteNetwork::id(const Instance *instance) const } const char * -ConcreteNetwork::getAttribute(const Instance *inst, const char *key) const +ConcreteNetwork::getAttribute(const Instance *inst, + const char *key) const { const ConcreteInstance *cinst = reinterpret_cast(inst); return cinst->getAttribute(key); @@ -1350,8 +1352,8 @@ ConcreteNetwork::connect(Instance *inst, void ConcreteNetwork::setAttribute(Instance *inst, - const char *key, - const char *value) + const char *key, + const char *value) { ConcreteInstance *cinst = reinterpret_cast(inst); cinst->setAttribute(key, value); @@ -1682,7 +1684,8 @@ ConcreteInstance::childIterator() const } void -ConcreteInstance::setAttribute(const char *key, const char *value) +ConcreteInstance::setAttribute(const char *key, + const char *value) { attribute_map_.insert(key, stringCopy(value)); } diff --git a/network/SdcNetwork.cc b/network/SdcNetwork.cc index b83beb21..7b0ae729 100644 --- a/network/SdcNetwork.cc +++ b/network/SdcNetwork.cc @@ -123,7 +123,8 @@ NetworkNameAdapter::id(const Cell *cell) const } const char * -NetworkNameAdapter::getAttribute(const Cell *cell, const char *key) const +NetworkNameAdapter::getAttribute(const Cell *cell, + const char *key) const { return network_->getAttribute(cell, key); } diff --git a/verilog/VerilogReader.cc b/verilog/VerilogReader.cc index b7e4a763..3d3cd76e 100644 --- a/verilog/VerilogReader.cc +++ b/verilog/VerilogReader.cc @@ -545,10 +545,10 @@ VerilogReader::makeAssign(VerilogNet *lhs, VerilogInst * VerilogReader::makeModuleInst(const char *module_vname, - const char *inst_vname, - VerilogNetSeq *pins, - VerilogAttributeStmtSeq* attribute_stmts, - const int line) + const char *inst_vname, + VerilogNetSeq *pins, + VerilogAttributeStmtSeq* attribute_stmts, + const int line) { string module_name = moduleVerilogToSta(module_vname); string inst_name = instanceVerilogToSta(inst_vname); @@ -836,12 +836,12 @@ VerilogReader::netVerilogName(const char *net_name) //////////////////////////////////////////////////////////////// VerilogModule::VerilogModule(const char *name, - VerilogNetSeq *ports, - VerilogStmtSeq *stmts, - VerilogAttributeStmtSeq *attribute_stmts, - const char *filename, - int line, - VerilogReader *reader) : + VerilogNetSeq *ports, + VerilogStmtSeq *stmts, + VerilogAttributeStmtSeq *attribute_stmts, + const char *filename, + int line, + VerilogReader *reader) : VerilogStmt(line), name_(stringCopy(name)), filename_(filename), @@ -959,7 +959,7 @@ VerilogStmt::VerilogStmt(int line) : } VerilogInst::VerilogInst(const char *inst_name, - VerilogAttributeStmtSeq* attribute_stmts, + VerilogAttributeStmtSeq* attribute_stmts, const int line) : VerilogStmt(line), inst_name_(stringCopy(inst_name)), @@ -982,10 +982,10 @@ VerilogInst::setInstanceName(const char *inst_name) } VerilogModuleInst::VerilogModuleInst(const char *module_name, - const char *inst_name, - VerilogNetSeq *pins, - VerilogAttributeStmtSeq* attribute_stmts, - int line) : + const char *inst_name, + VerilogNetSeq *pins, + VerilogAttributeStmtSeq* attribute_stmts, + int line) : VerilogInst(inst_name, attribute_stmts, line), module_name_(stringCopy(module_name)), pins_(pins) @@ -1018,10 +1018,10 @@ VerilogModuleInst::namedPins() } VerilogLibertyInst::VerilogLibertyInst(LibertyCell *cell, - const char *inst_name, - const char **net_names, - VerilogAttributeStmtSeq* attribute_stmts, - const int line) : + const char *inst_name, + const char **net_names, + VerilogAttributeStmtSeq* attribute_stmts, + const int line) : VerilogInst(inst_name, attribute_stmts, line), cell_(cell), net_names_(net_names) @@ -1041,9 +1041,9 @@ VerilogLibertyInst::~VerilogLibertyInst() } VerilogDcl::VerilogDcl(PortDirection *dir, - VerilogDclArgSeq *args, - VerilogAttributeStmtSeq* attribute_stmts, - int line) : + VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, + int line) : VerilogStmt(line), dir_(dir), args_(args), @@ -1052,9 +1052,9 @@ VerilogDcl::VerilogDcl(PortDirection *dir, } VerilogDcl::VerilogDcl(PortDirection *dir, - VerilogDclArg *arg, - VerilogAttributeStmtSeq* attribute_stmts, - int line) : + VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, + int line) : VerilogStmt(line), dir_(dir) { @@ -1084,11 +1084,11 @@ VerilogDcl::portName() } VerilogDclBus::VerilogDclBus(PortDirection *dir, - int from_index, - int to_index, - VerilogDclArgSeq *args, - VerilogAttributeStmtSeq* attribute_stmts, - int line) : + int from_index, + int to_index, + VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, + int line) : VerilogDcl(dir, args, attribute_stmts, line), from_index_(from_index), to_index_(to_index) @@ -1096,11 +1096,11 @@ VerilogDclBus::VerilogDclBus(PortDirection *dir, } VerilogDclBus::VerilogDclBus(PortDirection *dir, - int from_index, - int to_index, - VerilogDclArg *arg, - VerilogAttributeStmtSeq* attribute_stmts, - int line) : + int from_index, + int to_index, + VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, + int line) : VerilogDcl(dir, arg, attribute_stmts, line), from_index_(from_index), to_index_(to_index) @@ -1740,7 +1740,7 @@ VerilogNetPortRefPart::name() const } VerilogAttributeEntry::VerilogAttributeEntry(const char *key, - const char * value) : + const char * value) : key_(key), value_(value) { diff --git a/verilog/VerilogReaderPvt.hh b/verilog/VerilogReaderPvt.hh index 04e30a1f..5d88b55b 100644 --- a/verilog/VerilogReaderPvt.hh +++ b/verilog/VerilogReaderPvt.hh @@ -91,42 +91,42 @@ public: int &result, size_t max_size); void makeModule(const char *module_name, - VerilogNetSeq *ports, - VerilogStmtSeq *stmts, - VerilogAttributeStmtSeq *attribute_stmts, - int line); + VerilogNetSeq *ports, + VerilogStmtSeq *stmts, + VerilogAttributeStmtSeq *attribute_stmts, + int line); void makeModule(const char *module_name, - VerilogStmtSeq *port_dcls, - VerilogStmtSeq *stmts, - VerilogAttributeStmtSeq *attribute_stmts, - int line); + VerilogStmtSeq *port_dcls, + VerilogStmtSeq *stmts, + VerilogAttributeStmtSeq *attribute_stmts, + int line); VerilogDcl *makeDcl(PortDirection *dir, - VerilogDclArgSeq *args, - VerilogAttributeStmtSeq* attribute_stmts, - int line); + VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, + int line); VerilogDcl *makeDcl(PortDirection *dir, - VerilogDclArg *arg, - VerilogAttributeStmtSeq* attribute_stmts, - int line); + VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, + int line); VerilogDclArg *makeDclArg(const char *net_name); VerilogDclArg*makeDclArg(VerilogAssign *assign); VerilogDclBus *makeDclBus(PortDirection *dir, - int from_index, - int to_index, - VerilogDclArg *arg, - VerilogAttributeStmtSeq* attribute_stmts, - int line); + int from_index, + int to_index, + VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, + int line); VerilogDclBus *makeDclBus(PortDirection *dir, - int from_index, - int to_index, - VerilogDclArgSeq *args, - VerilogAttributeStmtSeq* attribute_stmts, - int line); + int from_index, + int to_index, + VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, + int line); VerilogInst *makeModuleInst(const char *module_name, - const char *inst_name, - VerilogNetSeq *pins, - VerilogAttributeStmtSeq* attribute_stmts, - const int line); + const char *inst_name, + VerilogNetSeq *pins, + VerilogAttributeStmtSeq* attribute_stmts, + const int line); VerilogAssign *makeAssign(VerilogNet *lhs, VerilogNet *rhs, int line); @@ -337,12 +337,12 @@ class VerilogModule : public VerilogStmt { public: VerilogModule(const char *name, - VerilogNetSeq *ports, - VerilogStmtSeq *stmts, - VerilogAttributeStmtSeq *attribute_stmts, - const char *filename, - int line, - VerilogReader *reader); + VerilogNetSeq *ports, + VerilogStmtSeq *stmts, + VerilogAttributeStmtSeq *attribute_stmts, + const char *filename, + int line, + VerilogReader *reader); virtual ~VerilogModule(); const char *name() { return name_; } const char *filename() { return filename_; } @@ -372,13 +372,13 @@ class VerilogDcl : public VerilogStmt { public: VerilogDcl(PortDirection *dir, - VerilogDclArgSeq *args, - VerilogAttributeStmtSeq *attribute_stmts, - int line); + VerilogDclArgSeq *args, + VerilogAttributeStmtSeq *attribute_stmts, + int line); VerilogDcl(PortDirection *dir, - VerilogDclArg *arg, - VerilogAttributeStmtSeq *attribute_stmts, - int line); + VerilogDclArg *arg, + VerilogAttributeStmtSeq *attribute_stmts, + int line); virtual ~VerilogDcl(); const char *portName(); virtual bool isBus() const { return false; } @@ -399,17 +399,17 @@ class VerilogDclBus : public VerilogDcl { public: VerilogDclBus(PortDirection *dir, - int from_index, - int to_index, - VerilogDclArgSeq *args, - VerilogAttributeStmtSeq* attribute_stmts, - int line); + int from_index, + int to_index, + VerilogDclArgSeq *args, + VerilogAttributeStmtSeq* attribute_stmts, + int line); VerilogDclBus(PortDirection *dir, - int from_index, - int to_index, - VerilogDclArg *arg, - VerilogAttributeStmtSeq* attribute_stmts, - int line); + int from_index, + int to_index, + VerilogDclArg *arg, + VerilogAttributeStmtSeq* attribute_stmts, + int line); virtual bool isBus() const { return true; } int fromIndex() const { return from_index_; } int toIndex() const { return to_index_; } @@ -456,8 +456,8 @@ class VerilogInst : public VerilogStmt { public: VerilogInst(const char *inst_name, - VerilogAttributeStmtSeq* attribute_stmts, - const int line); + VerilogAttributeStmtSeq* attribute_stmts, + const int line); virtual ~VerilogInst(); virtual bool isInstance() const { return true; } const char *instanceName() const { return inst_name_; } @@ -473,10 +473,10 @@ class VerilogModuleInst : public VerilogInst { public: VerilogModuleInst(const char *module_name, - const char *inst_name, - VerilogNetSeq *pins, - VerilogAttributeStmtSeq* attribute_stmts, - const int line); + const char *inst_name, + VerilogNetSeq *pins, + VerilogAttributeStmtSeq* attribute_stmts, + const int line); virtual ~VerilogModuleInst(); virtual bool isModuleInst() const { return true; } const char *moduleName() const { return module_name_; } @@ -496,10 +496,10 @@ class VerilogLibertyInst : public VerilogInst { public: VerilogLibertyInst(LibertyCell *cell, - const char *inst_name, - const char **net_names, - VerilogAttributeStmtSeq* attribute_stmts, - const int line); + const char *inst_name, + const char **net_names, + VerilogAttributeStmtSeq* attribute_stmts, + const int line); virtual ~VerilogLibertyInst(); virtual bool isLibertyInst() const { return true; } LibertyCell *cell() const { return cell_; } @@ -729,7 +729,8 @@ private: class VerilogAttributeEntry { public: - VerilogAttributeEntry(const char *key, const char *value); + VerilogAttributeEntry(const char *key, + const char *value); virtual const char *key(); virtual const char *value(); virtual ~VerilogAttributeEntry(); From 36c1bade14a1f93a31490560967705701ee22a61 Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Sat, 9 Mar 2024 21:56:58 +0000 Subject: [PATCH 06/12] moving attribute types to std::string Signed-off-by: Ethan Mahintorabi --- include/sta/ConcreteLibrary.hh | 8 ++++---- include/sta/ConcreteNetwork.hh | 24 ++++++++++++------------ include/sta/Network.hh | 16 ++++++++-------- include/sta/SdcNetwork.hh | 8 ++++---- network/ConcreteLibrary.cc | 11 +++++------ network/ConcreteNetwork.cc | 27 +++++++++++++-------------- network/SdcNetwork.cc | 9 +++++---- tcl/StaTcl.i | 2 +- verilog/VerilogReader.cc | 14 ++++---------- verilog/VerilogReaderPvt.hh | 14 +++++++------- 10 files changed, 63 insertions(+), 70 deletions(-) diff --git a/include/sta/ConcreteLibrary.hh b/include/sta/ConcreteLibrary.hh index ab196e65..afad639d 100644 --- a/include/sta/ConcreteLibrary.hh +++ b/include/sta/ConcreteLibrary.hh @@ -38,7 +38,7 @@ class LibertyCell; class LibertyPort; typedef Map ConcreteCellMap; -typedef Map AttributeMap; +typedef Map AttributeMap; typedef Vector ConcretePortSeq; typedef Map ConcretePortMap; typedef ConcreteCellMap::ConstIterator ConcreteLibraryCellIterator; @@ -106,9 +106,9 @@ public: ConcreteCellPortBitIterator *portBitIterator() const; bool isLeaf() const { return is_leaf_; } void setIsLeaf(bool is_leaf); - void setAttribute(const char *key, - const char *value); - const char *getAttribute(const char *key) const; + void setAttribute(const std::string &key, + const std::string &value); + std::string getAttribute(const std::string &key) const; // Cell acts as port factory. ConcretePort *makePort(const char *name); diff --git a/include/sta/ConcreteNetwork.hh b/include/sta/ConcreteNetwork.hh index 60671780..e248ad06 100644 --- a/include/sta/ConcreteNetwork.hh +++ b/include/sta/ConcreteNetwork.hh @@ -38,7 +38,7 @@ class ConcreteBindingTbl; class ConcreteLibertyLibraryIterator; typedef Vector ConcreteLibrarySeq; -typedef Map AttributeMap; +typedef Map AttributeMap; typedef Map ConcreteLibraryMap; typedef ConcreteLibrarySeq::ConstIterator ConcreteLibraryIterator; typedef Map(cell); ccell->setAttribute(key, value); @@ -606,9 +606,9 @@ ConcreteNetwork::filename(const Cell *cell) return ccell->filename(); } -const char * +std::string ConcreteNetwork::getAttribute(const Cell *cell, - const char *key) const + const std::string &key) const { const ConcreteCell *ccell = reinterpret_cast(cell); return ccell->getAttribute(key); @@ -938,9 +938,9 @@ ConcreteNetwork::id(const Instance *instance) const return inst->id(); } -const char * +std::string ConcreteNetwork::getAttribute(const Instance *inst, - const char *key) const + const std::string &key) const { const ConcreteInstance *cinst = reinterpret_cast(inst); return cinst->getAttribute(key); @@ -1352,8 +1352,8 @@ ConcreteNetwork::connect(Instance *inst, void ConcreteNetwork::setAttribute(Instance *inst, - const char *key, - const char *value) + const std::string &key, + const std::string &value) { ConcreteInstance *cinst = reinterpret_cast(inst); cinst->setAttribute(key, value); @@ -1598,7 +1598,6 @@ ConcreteInstance::~ConcreteInstance() stringDelete(name_); delete children_; delete nets_; - attribute_map_.deleteArrayContents(); } Instance * @@ -1684,14 +1683,14 @@ ConcreteInstance::childIterator() const } void -ConcreteInstance::setAttribute(const char *key, - const char *value) +ConcreteInstance::setAttribute(const std::string &key, + const std::string &value) { - attribute_map_.insert(key, stringCopy(value)); + attribute_map_.insert(key, value); } -const char * -ConcreteInstance::getAttribute(const char *key) const +std::string +ConcreteInstance::getAttribute(const std::string &key) const { return attribute_map_.findKey(key); } diff --git a/network/SdcNetwork.cc b/network/SdcNetwork.cc index 7b0ae729..00d7a07e 100644 --- a/network/SdcNetwork.cc +++ b/network/SdcNetwork.cc @@ -122,9 +122,9 @@ NetworkNameAdapter::id(const Cell *cell) const return network_->id(cell); } -const char * +std::string NetworkNameAdapter::getAttribute(const Cell *cell, - const char *key) const + const std::string &key) const { return network_->getAttribute(cell, key); } @@ -334,8 +334,9 @@ NetworkNameAdapter::cell(const Instance *instance) const return network_->cell(instance); } -const char * -NetworkNameAdapter::getAttribute(const Instance *inst, const char *key) const +std::string +NetworkNameAdapter::getAttribute(const Instance *inst, + const std::string &key) const { return network_->getAttribute(inst, key); } diff --git a/tcl/StaTcl.i b/tcl/StaTcl.i index 64bcabe9..b6c7ab3c 100644 --- a/tcl/StaTcl.i +++ b/tcl/StaTcl.i @@ -4186,7 +4186,7 @@ LibertyCell *liberty_cell() { return cmdNetwork()->libertyCell(self); } bool is_leaf() { return cmdNetwork()->isLeaf(self); } CellPortIterator * port_iterator() { return cmdNetwork()->portIterator(self); } -const char *get_attribute(const char *key) { return cmdNetwork()->getAttribute(self, key); } +string get_attribute(const char *key) { return cmdNetwork()->getAttribute(self, key); } Port * find_port(const char *name) diff --git a/verilog/VerilogReader.cc b/verilog/VerilogReader.cc index 3d3cd76e..0b7c7fcc 100644 --- a/verilog/VerilogReader.cc +++ b/verilog/VerilogReader.cc @@ -1739,27 +1739,21 @@ VerilogNetPortRefPart::name() const return name_; } -VerilogAttributeEntry::VerilogAttributeEntry(const char *key, - const char * value) : +VerilogAttributeEntry::VerilogAttributeEntry(std::string key, + std::string value) : key_(key), value_(value) { } -VerilogAttributeEntry::~VerilogAttributeEntry() -{ - stringDelete(key_); - stringDelete(value_); -} - -const char * +std::string VerilogAttributeEntry::key() { return key_; } -const char * +std::string VerilogAttributeEntry::value() { return value_; diff --git a/verilog/VerilogReaderPvt.hh b/verilog/VerilogReaderPvt.hh index 5d88b55b..ea9f857c 100644 --- a/verilog/VerilogReaderPvt.hh +++ b/verilog/VerilogReaderPvt.hh @@ -729,15 +729,15 @@ private: class VerilogAttributeEntry { public: - VerilogAttributeEntry(const char *key, - const char *value); - virtual const char *key(); - virtual const char *value(); - virtual ~VerilogAttributeEntry(); + VerilogAttributeEntry(std::string key, + std::string value); + virtual std::string key(); + virtual std::string value(); + virtual ~VerilogAttributeEntry() = default; private: - const char *key_; - const char *value_; + std::string key_; + std::string value_; }; } // namespace From 8aef4d549ee958e9c020601a8dedfcd8337d65d9 Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Sun, 10 Mar 2024 01:56:33 +0000 Subject: [PATCH 07/12] Adding optional to differentiate between empty sets and unset attributes Signed-off-by: Ethan Mahintorabi --- include/sta/ConcreteLibrary.hh | 3 ++- include/sta/ConcreteNetwork.hh | 11 ++++++----- include/sta/Network.hh | 9 +++++---- include/sta/SdcNetwork.hh | 9 +++++---- network/ConcreteLibrary.cc | 7 +++++-- network/ConcreteNetwork.cc | 11 +++++++---- network/SdcNetwork.cc | 4 ++-- tcl/StaTcl.i | 17 ++++++++++++++++- 8 files changed, 48 insertions(+), 23 deletions(-) diff --git a/include/sta/ConcreteLibrary.hh b/include/sta/ConcreteLibrary.hh index afad639d..6d44cb4f 100644 --- a/include/sta/ConcreteLibrary.hh +++ b/include/sta/ConcreteLibrary.hh @@ -17,6 +17,7 @@ #pragma once #include +#include #include "Vector.hh" #include "Map.hh" @@ -108,7 +109,7 @@ public: void setIsLeaf(bool is_leaf); void setAttribute(const std::string &key, const std::string &value); - std::string getAttribute(const std::string &key) const; + std::optional getAttribute(const std::string &key) const; // Cell acts as port factory. ConcretePort *makePort(const char *name); diff --git a/include/sta/ConcreteNetwork.hh b/include/sta/ConcreteNetwork.hh index e248ad06..77c41de0 100644 --- a/include/sta/ConcreteNetwork.hh +++ b/include/sta/ConcreteNetwork.hh @@ -17,6 +17,7 @@ #pragma once #include +#include #include "Map.hh" #include "Set.hh" @@ -75,8 +76,8 @@ public: const PatternMatch *pattern) const override; const char *name(const Cell *cell) const override; - std::string getAttribute(const Cell *cell, - const std::string &key) const override; + std::optional getAttribute(const Cell *cell, + const std::string &key) const override; ObjectId id(const Cell *cell) const override; Library *library(const Cell *cell) const override; LibertyCell *libertyCell(Cell *cell) const override; @@ -111,8 +112,8 @@ public: PortMemberIterator *memberIterator(const Port *port) const override; const char *name(const Instance *instance) const override; - std::string getAttribute(const Instance *inst, - const std::string &key) const override; + std::optional getAttribute(const Instance *inst, + const std::string &key) const override; ObjectId id(const Instance *instance) const override; Cell *cell(const Instance *instance) const override; Instance *parent(const Instance *instance) const override; @@ -298,7 +299,7 @@ public: InstanceChildIterator *childIterator() const; void setAttribute(const std::string &key, const std::string &value); - std::string getAttribute(const std::string &key) const; + std::optional getAttribute(const std::string &key) const; void addChild(ConcreteInstance *child); void deleteChild(ConcreteInstance *child); void addPin(ConcretePin *pin); diff --git a/include/sta/Network.hh b/include/sta/Network.hh index b05a65c6..6408aa25 100644 --- a/include/sta/Network.hh +++ b/include/sta/Network.hh @@ -17,6 +17,7 @@ #pragma once #include +#include #include "Map.hh" #include "StringUtil.hh" @@ -145,8 +146,8 @@ public: // Filename may return null. virtual const char *filename(const Cell *cell) = 0; // Attributes can be null - virtual std::string getAttribute(const Cell *cell, - const std::string &key) const = 0; + virtual std::optional getAttribute(const Cell *cell, + const std::string &key) const = 0; // Name can be a simple, bundle, bus, or bus bit name. virtual Port *findPort(const Cell *cell, const char *name) const = 0; @@ -209,8 +210,8 @@ public: const PatternMatch *pattern) const; virtual InstanceSeq findInstancesHierMatching(const Instance *instance, const PatternMatch *pattern) const; - virtual std::string getAttribute(const Instance *inst, - const std::string &key) const = 0; + virtual std::optional getAttribute(const Instance *inst, + const std::string &key) const = 0; // Hierarchical path name. virtual const char *pathName(const Instance *instance) const; bool pathNameLess(const Instance *inst1, diff --git a/include/sta/SdcNetwork.hh b/include/sta/SdcNetwork.hh index ed929537..c43c7550 100644 --- a/include/sta/SdcNetwork.hh +++ b/include/sta/SdcNetwork.hh @@ -17,6 +17,7 @@ #pragma once #include +#include #include "Network.hh" @@ -45,8 +46,8 @@ public: const PatternMatch *pattern) const override; const char *name(const Cell *cell) const override; - std::string getAttribute(const Cell *cell, - const std::string &key) const override; + std::optional getAttribute(const Cell *cell, + const std::string &key) const override; ObjectId id(const Cell *cell) const override; Library *library(const Cell *cell) const override; LibertyCell *libertyCell(Cell *cell) const override; @@ -82,8 +83,8 @@ public: bool hasMembers(const Port *port) const override; ObjectId id(const Instance *instance) const override; - std::string getAttribute(const Instance *inst, - const std::string &key) const override; + std::optional getAttribute(const Instance *inst, + const std::string &key) const override; Instance *topInstance() const override; Cell *cell(const Instance *instance) const override; Instance *parent(const Instance *instance) const override; diff --git a/network/ConcreteLibrary.cc b/network/ConcreteLibrary.cc index 2465438c..ae486293 100644 --- a/network/ConcreteLibrary.cc +++ b/network/ConcreteLibrary.cc @@ -275,10 +275,13 @@ ConcreteCell::setAttribute(const std::string &key, attribute_map_.insert(key, value); } -std::string +std::optional ConcreteCell::getAttribute(const std::string &key) const { - return attribute_map_.findKey(key); + if (attribute_map_.hasKey(key)) { + return attribute_map_.findKey(key); + } + return {}; } ConcretePort * diff --git a/network/ConcreteNetwork.cc b/network/ConcreteNetwork.cc index 40ba2eab..166be95e 100644 --- a/network/ConcreteNetwork.cc +++ b/network/ConcreteNetwork.cc @@ -606,7 +606,7 @@ ConcreteNetwork::filename(const Cell *cell) return ccell->filename(); } -std::string +std::optional ConcreteNetwork::getAttribute(const Cell *cell, const std::string &key) const { @@ -938,7 +938,7 @@ ConcreteNetwork::id(const Instance *instance) const return inst->id(); } -std::string +std::optional ConcreteNetwork::getAttribute(const Instance *inst, const std::string &key) const { @@ -1689,10 +1689,13 @@ ConcreteInstance::setAttribute(const std::string &key, attribute_map_.insert(key, value); } -std::string +std::optional ConcreteInstance::getAttribute(const std::string &key) const { - return attribute_map_.findKey(key); + if (attribute_map_.hasKey(key)) { + return attribute_map_.findKey(key); + } + return {}; } void diff --git a/network/SdcNetwork.cc b/network/SdcNetwork.cc index 00d7a07e..b12ee0af 100644 --- a/network/SdcNetwork.cc +++ b/network/SdcNetwork.cc @@ -122,7 +122,7 @@ NetworkNameAdapter::id(const Cell *cell) const return network_->id(cell); } -std::string +std::optional NetworkNameAdapter::getAttribute(const Cell *cell, const std::string &key) const { @@ -334,7 +334,7 @@ NetworkNameAdapter::cell(const Instance *instance) const return network_->cell(instance); } -std::string +std::optional NetworkNameAdapter::getAttribute(const Instance *inst, const std::string &key) const { diff --git a/tcl/StaTcl.i b/tcl/StaTcl.i index b6c7ab3c..7325c15b 100644 --- a/tcl/StaTcl.i +++ b/tcl/StaTcl.i @@ -4186,7 +4186,14 @@ LibertyCell *liberty_cell() { return cmdNetwork()->libertyCell(self); } bool is_leaf() { return cmdNetwork()->isLeaf(self); } CellPortIterator * port_iterator() { return cmdNetwork()->portIterator(self); } -string get_attribute(const char *key) { return cmdNetwork()->getAttribute(self, key); } +string get_attribute(const char *key) +{ + std::optional result = cmdNetwork()->getAttribute(self, key); + if (result) { + return result.value(); + } + return ""; +} Port * find_port(const char *name) @@ -4411,6 +4418,14 @@ find_pin(const char *name) { return cmdLinkedNetwork()->findPin(self, name); } +string get_attribute(const char *key) +{ + std::optional result = cmdNetwork()->getAttribute(self, key); + if (result) { + return result.value(); + } + return ""; +} } // Instance methods %extend InstanceChildIterator { From 2a379d1b7c4765b76442fd8c68ae3fa0ea139343 Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Sun, 10 Mar 2024 01:57:07 +0000 Subject: [PATCH 08/12] simplifying test cases and adding test for instance attributes Signed-off-by: Ethan Mahintorabi --- examples/attribute_parsing_test.tcl | 15 - examples/attribute_parsing_test.v | 4740 --------------------------- test/attribute_parsing.ok | 2 + test/attribute_parsing.tcl | 14 + test/attribute_parsing.v | 21 + test/attribute_parsing_test.ok | 74 - test/regression_vars.tcl | 2 +- 7 files changed, 38 insertions(+), 4830 deletions(-) delete mode 100644 examples/attribute_parsing_test.tcl delete mode 100644 examples/attribute_parsing_test.v create mode 100644 test/attribute_parsing.ok create mode 100644 test/attribute_parsing.tcl create mode 100644 test/attribute_parsing.v delete mode 100644 test/attribute_parsing_test.ok diff --git a/examples/attribute_parsing_test.tcl b/examples/attribute_parsing_test.tcl deleted file mode 100644 index 912cab8d..00000000 --- a/examples/attribute_parsing_test.tcl +++ /dev/null @@ -1,15 +0,0 @@ -read_liberty sky130hd_tt.lib -read_verilog attribute_parsing_test.v -link_design counter -create_clock -name clk [get_ports clk] -period 50 -set timing_paths [find_timing_paths -sort_by_slack] -set critical_path [lindex $timing_paths 0] -set critical_path_length [expr {- [get_property $critical_path slack]}] -report_checks -format full -puts stderr "Critical path length is $critical_path_length\n" - -set instance [sta::top_instance] -set cell [$instance cell] -set cell_name [$cell name] -set src_location [$cell get_attribute "src"] -puts "top_instance:\"$cell_name\" attribute \"src\" = $src_location \n" diff --git a/examples/attribute_parsing_test.v b/examples/attribute_parsing_test.v deleted file mode 100644 index e4c9b2b6..00000000 --- a/examples/attribute_parsing_test.v +++ /dev/null @@ -1,4740 +0,0 @@ -/* Generated by Yosys 0.8+ */ - -(* hdlname = "\\counter" *) -(* top = 1 *) -(* src = "synthesis/tests/counter.v:16.1-32.10" *) -module counter(clk, reset, out); - wire _0000_; - wire _0001_; - wire _0002_; - wire _0003_; - wire _0004_; - wire _0005_; - wire _0006_; - wire _0007_; - wire _0008_; - wire _0009_; - wire _0010_; - wire _0011_; - wire _0012_; - wire _0013_; - wire _0014_; - wire _0015_; - wire _0016_; - wire _0017_; - wire _0018_; - wire _0019_; - wire _0020_; - wire _0021_; - wire _0022_; - wire _0023_; - wire _0024_; - wire _0025_; - wire _0026_; - wire _0027_; - wire _0028_; - wire _0029_; - wire _0030_; - wire _0031_; - wire _0032_; - wire _0033_; - wire _0034_; - wire _0035_; - wire _0036_; - wire _0037_; - wire _0038_; - wire _0039_; - wire _0040_; - wire _0041_; - wire _0042_; - wire _0043_; - wire _0044_; - wire _0045_; - wire _0046_; - wire _0047_; - wire _0048_; - wire _0049_; - wire _0050_; - wire _0051_; - wire _0052_; - wire _0053_; - wire _0054_; - wire _0055_; - wire _0056_; - wire _0057_; - wire _0058_; - wire _0059_; - wire _0060_; - wire _0061_; - wire _0062_; - wire _0063_; - wire _0064_; - wire _0065_; - wire _0066_; - wire _0067_; - wire _0068_; - wire _0069_; - wire _0070_; - wire _0071_; - wire _0072_; - wire _0073_; - wire _0074_; - wire _0075_; - wire _0076_; - wire _0077_; - wire _0078_; - wire _0079_; - wire _0080_; - wire _0081_; - wire _0082_; - wire _0083_; - wire _0084_; - wire _0085_; - wire _0086_; - wire _0087_; - wire _0088_; - wire _0089_; - wire _0090_; - wire _0091_; - wire _0092_; - wire _0093_; - wire _0094_; - wire _0095_; - wire _0096_; - wire _0097_; - wire _0098_; - wire _0099_; - wire _0100_; - wire _0101_; - wire _0102_; - wire _0103_; - wire _0104_; - wire _0105_; - wire _0106_; - wire _0107_; - wire _0108_; - wire _0109_; - wire _0110_; - wire _0111_; - wire _0112_; - wire _0113_; - wire _0114_; - wire _0115_; - wire _0116_; - wire _0117_; - wire _0118_; - wire _0119_; - wire _0120_; - wire _0121_; - wire _0122_; - wire _0123_; - wire _0124_; - wire _0125_; - wire _0126_; - wire _0127_; - wire _0128_; - wire _0129_; - wire _0130_; - wire _0131_; - wire _0132_; - wire _0133_; - wire _0134_; - wire _0135_; - wire _0136_; - wire _0137_; - wire _0138_; - wire _0139_; - wire _0140_; - wire _0141_; - wire _0142_; - wire _0143_; - wire _0144_; - wire _0145_; - wire _0146_; - wire _0147_; - wire _0148_; - wire _0149_; - wire _0150_; - wire _0151_; - wire _0152_; - wire _0153_; - wire _0154_; - wire _0155_; - wire _0156_; - wire _0157_; - wire _0158_; - wire _0159_; - wire _0160_; - wire _0161_; - wire _0162_; - wire _0163_; - wire _0164_; - wire _0165_; - wire _0166_; - wire _0167_; - wire _0168_; - wire _0169_; - wire _0170_; - wire _0171_; - wire _0172_; - wire _0173_; - wire _0174_; - wire _0175_; - wire _0176_; - wire _0177_; - wire _0178_; - wire _0179_; - wire _0180_; - wire _0181_; - wire _0182_; - wire _0183_; - wire _0184_; - wire _0185_; - wire _0186_; - wire _0187_; - wire _0188_; - wire _0189_; - wire _0190_; - wire _0191_; - wire _0192_; - wire _0193_; - wire _0194_; - wire _0195_; - wire _0196_; - wire _0197_; - wire _0198_; - wire _0199_; - wire _0200_; - wire _0201_; - wire _0202_; - wire _0203_; - wire _0204_; - wire _0205_; - wire _0206_; - wire _0207_; - wire _0208_; - wire _0209_; - wire _0210_; - wire _0211_; - wire _0212_; - wire _0213_; - wire _0214_; - wire _0215_; - wire _0216_; - wire _0217_; - wire _0218_; - wire _0219_; - wire _0220_; - wire _0221_; - wire _0222_; - wire _0223_; - wire _0224_; - wire _0225_; - wire _0226_; - wire _0227_; - wire _0228_; - wire _0229_; - wire _0230_; - wire _0231_; - wire _0232_; - wire _0233_; - wire _0234_; - wire _0235_; - wire _0236_; - wire _0237_; - wire _0238_; - wire _0239_; - wire _0240_; - wire _0241_; - wire _0242_; - wire _0243_; - wire _0244_; - wire _0245_; - wire _0246_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.23-270.24" *) - wire _0247_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0248_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0249_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0250_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0251_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0252_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0253_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0254_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0255_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0256_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0257_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0258_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0259_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0260_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0261_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0262_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0263_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0264_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0265_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0266_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0267_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0268_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0269_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0270_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0271_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0272_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0273_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0274_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0275_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0276_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0277_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0278_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0279_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0280_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0281_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0282_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0283_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0284_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0285_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0286_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0287_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0288_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0289_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0290_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0291_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0292_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0293_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0294_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0295_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0296_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0297_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0298_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0299_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0300_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0301_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0302_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0303_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0304_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0305_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0306_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0307_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0308_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0309_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0310_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0311_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0312_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0313_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0314_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0315_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0316_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0317_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0318_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0319_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0320_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0321_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0322_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0323_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0324_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0325_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0326_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0327_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0328_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0329_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0330_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0331_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0332_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0333_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0334_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0335_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0336_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0337_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0338_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0339_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0340_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0341_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0342_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0343_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0344_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0345_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0346_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0347_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0348_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0349_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0350_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0351_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0352_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0353_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0354_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0355_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0356_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0357_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0358_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0359_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0360_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0361_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0362_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0363_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0364_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0365_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0366_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0367_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0368_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0369_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0370_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0371_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0372_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0373_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0374_; - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire _0375_; - wire _0376_; - wire _0377_; - wire _0378_; - wire _0379_; - wire _0380_; - wire _0381_; - wire _0382_; - wire _0383_; - wire _0384_; - wire _0385_; - wire _0386_; - wire _0387_; - wire _0388_; - wire _0389_; - wire _0390_; - wire _0391_; - wire _0392_; - wire _0393_; - wire _0394_; - wire _0395_; - wire _0396_; - wire _0397_; - wire _0398_; - wire _0399_; - wire _0400_; - wire _0401_; - wire _0402_; - wire _0403_; - wire _0404_; - wire _0405_; - wire _0406_; - wire _0407_; - wire _0408_; - wire _0409_; - wire _0410_; - wire _0411_; - wire _0412_; - wire _0413_; - wire _0414_; - wire _0415_; - wire _0416_; - wire _0417_; - wire _0418_; - wire _0419_; - wire _0420_; - wire _0421_; - wire _0422_; - wire _0423_; - wire _0424_; - wire _0425_; - wire _0426_; - wire _0427_; - wire _0428_; - wire _0429_; - wire _0430_; - wire _0431_; - wire _0432_; - wire _0433_; - wire _0434_; - wire _0435_; - wire _0436_; - wire _0437_; - wire _0438_; - wire _0439_; - wire _0440_; - wire _0441_; - wire _0442_; - wire _0443_; - wire _0444_; - wire _0445_; - wire _0446_; - wire _0447_; - wire _0448_; - wire _0449_; - wire _0450_; - wire _0451_; - wire _0452_; - wire _0453_; - wire _0454_; - wire _0455_; - wire _0456_; - wire _0457_; - wire _0458_; - wire _0459_; - wire _0460_; - wire _0461_; - wire _0462_; - wire _0463_; - wire _0464_; - wire _0465_; - wire _0466_; - wire _0467_; - wire _0468_; - wire _0469_; - wire _0470_; - wire _0471_; - wire _0472_; - wire _0473_; - wire _0474_; - wire _0475_; - wire _0476_; - wire _0477_; - wire _0478_; - wire _0479_; - wire _0480_; - wire _0481_; - wire _0482_; - wire _0483_; - wire _0484_; - wire _0485_; - wire _0486_; - wire _0487_; - wire _0488_; - wire _0489_; - wire _0490_; - wire _0491_; - wire _0492_; - wire _0493_; - wire _0494_; - wire _0495_; - wire _0496_; - wire _0497_; - wire _0498_; - wire _0499_; - wire _0500_; - wire _0501_; - wire _0502_; - wire _0503_; - wire _0504_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0505_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0506_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0507_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0508_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0509_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0510_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0511_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0512_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0513_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0514_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0515_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0516_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0517_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0518_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0519_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0520_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0521_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0522_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0523_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0524_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0525_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0526_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0527_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0528_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0529_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0530_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0531_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0532_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0533_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0534_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0535_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0536_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0537_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0538_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0539_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0540_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0541_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0542_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0543_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0544_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0545_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0546_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0547_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0548_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0549_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0550_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0551_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0552_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0553_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0554_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0555_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0556_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0557_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0558_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0559_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0560_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0561_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0562_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0563_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0564_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0565_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0566_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0567_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0568_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0569_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0570_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0571_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0572_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0573_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0574_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0575_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0576_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0577_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0578_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0579_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0580_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0581_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0582_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0583_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0584_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0585_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0586_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0587_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0588_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0589_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0590_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0591_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0592_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0593_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0594_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0595_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0596_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0597_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0598_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0599_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0600_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0601_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0602_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0603_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0604_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0605_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0606_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0607_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0608_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0609_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0610_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0611_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0612_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0613_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0614_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0615_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0616_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0617_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0618_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0619_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0620_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0621_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0622_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0623_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0624_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0625_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0626_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0627_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0628_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0629_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0630_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0631_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0632_; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire _0633_; - wire _0634_; - wire _0635_; - wire _0636_; - wire _0637_; - wire _0638_; - wire _0639_; - wire _0640_; - wire _0641_; - wire _0642_; - wire _0643_; - wire _0644_; - wire _0645_; - wire _0646_; - wire _0647_; - wire _0648_; - wire _0649_; - wire _0650_; - wire _0651_; - wire _0652_; - wire _0653_; - wire _0654_; - wire _0655_; - wire _0656_; - wire _0657_; - wire _0658_; - wire _0659_; - wire _0660_; - wire _0661_; - wire _0662_; - wire _0663_; - wire _0664_; - wire _0665_; - wire _0666_; - wire _0667_; - wire _0668_; - wire _0669_; - wire _0670_; - wire _0671_; - wire _0672_; - wire _0673_; - wire _0674_; - wire _0675_; - wire _0676_; - wire _0677_; - wire _0678_; - wire _0679_; - wire _0680_; - wire _0681_; - wire _0682_; - wire _0683_; - wire _0684_; - wire _0685_; - wire _0686_; - wire _0687_; - wire _0688_; - wire _0689_; - wire _0690_; - wire _0691_; - wire _0692_; - wire _0693_; - wire _0694_; - wire _0695_; - wire _0696_; - wire _0697_; - wire _0698_; - wire _0699_; - wire _0700_; - wire _0701_; - wire _0702_; - wire _0703_; - wire _0704_; - wire _0705_; - wire _0706_; - wire _0707_; - wire _0708_; - wire _0709_; - wire _0710_; - wire _0711_; - wire _0712_; - wire _0713_; - wire _0714_; - wire _0715_; - wire _0716_; - wire _0717_; - wire _0718_; - wire _0719_; - wire _0720_; - wire _0721_; - wire _0722_; - wire _0723_; - wire _0724_; - wire _0725_; - wire _0726_; - wire _0727_; - wire _0728_; - wire _0729_; - wire _0730_; - wire _0731_; - wire _0732_; - wire _0733_; - wire _0734_; - wire _0735_; - wire _0736_; - wire _0737_; - wire _0738_; - wire _0739_; - wire _0740_; - wire _0741_; - wire _0742_; - wire _0743_; - wire _0744_; - wire _0745_; - wire _0746_; - wire _0747_; - wire _0748_; - wire _0749_; - wire _0750_; - wire _0751_; - wire _0752_; - wire _0753_; - wire _0754_; - wire _0755_; - wire _0756_; - wire _0757_; - wire _0758_; - wire _0759_; - wire _0760_; - wire _0761_; - wire _0762_; - wire _0763_; - wire _0764_; - wire _0765_; - wire _0766_; - wire _0767_; - wire _0768_; - wire _0769_; - wire _0770_; - wire _0771_; - wire _0772_; - wire _0773_; - wire _0774_; - wire _0775_; - wire _0776_; - wire _0777_; - wire _0778_; - wire _0779_; - wire _0780_; - wire _0781_; - wire _0782_; - wire _0783_; - wire _0784_; - wire _0785_; - wire _0786_; - wire _0787_; - wire _0788_; - wire _0789_; - wire _0790_; - wire _0791_; - wire _0792_; - wire _0793_; - wire _0794_; - wire _0795_; - wire _0796_; - wire _0797_; - wire _0798_; - wire _0799_; - wire _0800_; - wire _0801_; - wire _0802_; - wire _0803_; - wire _0804_; - wire _0805_; - wire _0806_; - wire _0807_; - wire _0808_; - wire _0809_; - wire _0810_; - wire _0811_; - wire _0812_; - wire _0813_; - wire _0814_; - wire _0815_; - wire _0816_; - wire _0817_; - wire _0818_; - wire _0819_; - wire _0820_; - wire _0821_; - wire _0822_; - wire _0823_; - wire _0824_; - wire _0825_; - wire _0826_; - wire _0827_; - wire _0828_; - (* src = "synthesis/tests/counter.v:18.14-18.19" *) - wire _0829_; - (* force_downto = 32'd1 *) - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.23-270.24" *) - wire [128:0] _0830_; - (* force_downto = 32'd1 *) - (* src = "synthesis/tests/counter.v:26.22-26.37|bazel-out/k8-opt-exec-2B5CBBC6/bin/external/at_clifford_yosys/yosys.runfiles/at_clifford_yosys/techlibs/techmap.v:270.26-270.27" *) - wire [128:0] _0831_; - wire _0832_; - wire _0833_; - wire _0834_; - wire _0835_; - wire _0836_; - wire _0837_; - wire _0838_; - wire _0839_; - wire _0840_; - wire _0841_; - wire _0842_; - wire _0843_; - wire _0844_; - wire _0845_; - wire _0846_; - wire _0847_; - wire _0848_; - wire _0849_; - wire _0850_; - wire _0851_; - wire _0852_; - wire _0853_; - wire _0854_; - wire _0855_; - wire _0856_; - wire _0857_; - wire _0858_; - wire _0859_; - wire _0860_; - wire _0861_; - wire _0862_; - wire _0863_; - wire _0864_; - wire _0865_; - wire _0866_; - wire _0867_; - wire _0868_; - wire _0869_; - wire _0870_; - wire _0871_; - wire _0872_; - wire _0873_; - wire _0874_; - wire _0875_; - wire _0876_; - wire _0877_; - wire _0878_; - wire _0879_; - wire _0880_; - wire _0881_; - wire _0882_; - wire _0883_; - wire _0884_; - wire _0885_; - wire _0886_; - wire _0887_; - wire _0888_; - wire _0889_; - wire _0890_; - wire _0891_; - wire _0892_; - wire _0893_; - wire _0894_; - wire _0895_; - wire _0896_; - wire _0897_; - wire _0898_; - wire _0899_; - wire _0900_; - wire _0901_; - wire _0902_; - wire _0903_; - wire _0904_; - wire _0905_; - wire _0906_; - wire _0907_; - wire _0908_; - wire _0909_; - wire _0910_; - wire _0911_; - wire _0912_; - wire _0913_; - wire _0914_; - wire _0915_; - wire _0916_; - wire _0917_; - wire _0918_; - wire _0919_; - wire _0920_; - wire _0921_; - wire _0922_; - wire _0923_; - wire _0924_; - wire _0925_; - wire _0926_; - wire _0927_; - wire _0928_; - wire _0929_; - wire _0930_; - wire _0931_; - wire _0932_; - wire _0933_; - wire _0934_; - wire _0935_; - wire _0936_; - wire _0937_; - wire _0938_; - wire _0939_; - wire _0940_; - wire _0941_; - wire _0942_; - wire _0943_; - wire _0944_; - wire _0945_; - wire _0946_; - wire _0947_; - wire _0948_; - wire _0949_; - wire _0950_; - wire _0951_; - wire _0952_; - wire _0953_; - wire _0954_; - wire _0955_; - wire _0956_; - wire _0957_; - wire _0958_; - wire _0959_; - wire _0960_; - (* src = "synthesis/tests/counter.v:17.14-17.17" *) - input clk; - (* src = "synthesis/tests/counter.v:21.15-21.26" *) - wire [128:0] counter_tmp; - (* src = "synthesis/tests/counter.v:19.18-19.21" *) - output [128:0] out; - (* src = "synthesis/tests/counter.v:18.14-18.19" *) - input reset; - sky130_fd_sc_hd__clkinv_1 _0961_ ( - .A(_0609_), - .Y(_0634_) - ); - sky130_fd_sc_hd__clkinv_1 _0962_ ( - .A(_0610_), - .Y(_0635_) - ); - sky130_fd_sc_hd__clkinv_1 _0963_ ( - .A(_0584_), - .Y(_0636_) - ); - sky130_fd_sc_hd__clkinv_1 _0964_ ( - .A(_0543_), - .Y(_0637_) - ); - sky130_fd_sc_hd__clkinv_1 _0965_ ( - .A(_0544_), - .Y(_0638_) - ); - sky130_fd_sc_hd__clkinv_1 _0966_ ( - .A(_0516_), - .Y(_0639_) - ); - sky130_fd_sc_hd__clkinv_1 _0967_ ( - .A(_0572_), - .Y(_0640_) - ); - sky130_fd_sc_hd__clkinv_1 _0968_ ( - .A(_0505_), - .Y(_0247_) - ); - sky130_fd_sc_hd__clkinv_1 _0969_ ( - .A(_0546_), - .Y(_0641_) - ); - sky130_fd_sc_hd__clkinv_1 _0970_ ( - .A(_0547_), - .Y(_0642_) - ); - sky130_fd_sc_hd__clkinv_1 _0971_ ( - .A(_0537_), - .Y(_0643_) - ); - sky130_fd_sc_hd__clkinv_1 _0972_ ( - .A(_0553_), - .Y(_0644_) - ); - sky130_fd_sc_hd__clkinv_1 _0973_ ( - .A(_0552_), - .Y(_0645_) - ); - sky130_fd_sc_hd__clkinv_1 _0974_ ( - .A(_0558_), - .Y(_0646_) - ); - sky130_fd_sc_hd__clkinv_1 _0975_ ( - .A(_0559_), - .Y(_0647_) - ); - sky130_fd_sc_hd__clkinv_1 _0976_ ( - .A(_0560_), - .Y(_0648_) - ); - sky130_fd_sc_hd__clkinv_1 _0977_ ( - .A(_0527_), - .Y(_0649_) - ); - sky130_fd_sc_hd__clkinv_1 _0978_ ( - .A(_0551_), - .Y(_0650_) - ); - sky130_fd_sc_hd__clkinv_1 _0979_ ( - .A(_0626_), - .Y(_0651_) - ); - sky130_fd_sc_hd__clkinv_1 _0980_ ( - .A(_0625_), - .Y(_0652_) - ); - sky130_fd_sc_hd__clkinv_1 _0981_ ( - .A(_0623_), - .Y(_0653_) - ); - sky130_fd_sc_hd__clkinv_1 _0982_ ( - .A(_0624_), - .Y(_0654_) - ); - sky130_fd_sc_hd__clkinv_1 _0983_ ( - .A(_0616_), - .Y(_0655_) - ); - sky130_fd_sc_hd__clkinv_1 _0984_ ( - .A(_0617_), - .Y(_0656_) - ); - sky130_fd_sc_hd__clkinv_1 _0985_ ( - .A(_0585_), - .Y(_0657_) - ); - sky130_fd_sc_hd__clkinv_1 _0986_ ( - .A(_0586_), - .Y(_0658_) - ); - sky130_fd_sc_hd__clkinv_1 _0987_ ( - .A(_0598_), - .Y(_0659_) - ); - sky130_fd_sc_hd__clkinv_1 _0988_ ( - .A(_0541_), - .Y(_0660_) - ); - sky130_fd_sc_hd__clkinv_1 _0989_ ( - .A(_0542_), - .Y(_0661_) - ); - sky130_fd_sc_hd__clkinv_1 _0990_ ( - .A(_0597_), - .Y(_0662_) - ); - sky130_fd_sc_hd__clkinv_1 _0991_ ( - .A(_0592_), - .Y(_0663_) - ); - sky130_fd_sc_hd__clkinv_1 _0992_ ( - .A(_0591_), - .Y(_0664_) - ); - sky130_fd_sc_hd__clkinv_1 _0993_ ( - .A(_0593_), - .Y(_0665_) - ); - sky130_fd_sc_hd__clkinv_1 _0994_ ( - .A(_0508_), - .Y(_0666_) - ); - sky130_fd_sc_hd__clkinv_1 _0995_ ( - .A(_0577_), - .Y(_0667_) - ); - sky130_fd_sc_hd__clkinv_1 _0996_ ( - .A(_0579_), - .Y(_0668_) - ); - sky130_fd_sc_hd__clkinv_1 _0997_ ( - .A(_0580_), - .Y(_0669_) - ); - sky130_fd_sc_hd__clkinv_1 _0998_ ( - .A(_0612_), - .Y(_0670_) - ); - sky130_fd_sc_hd__clkinv_1 _0999_ ( - .A(_0517_), - .Y(_0671_) - ); - sky130_fd_sc_hd__clkinv_1 _1000_ ( - .A(_0627_), - .Y(_0672_) - ); - sky130_fd_sc_hd__clkinv_1 _1001_ ( - .A(_0628_), - .Y(_0673_) - ); - sky130_fd_sc_hd__clkinv_1 _1002_ ( - .A(_0510_), - .Y(_0674_) - ); - sky130_fd_sc_hd__clkinv_1 _1003_ ( - .A(_0509_), - .Y(_0675_) - ); - sky130_fd_sc_hd__clkinv_1 _1004_ ( - .A(_0631_), - .Y(_0676_) - ); - sky130_fd_sc_hd__clkinv_1 _1005_ ( - .A(_0629_), - .Y(_0677_) - ); - sky130_fd_sc_hd__clkinv_1 _1006_ ( - .A(_0630_), - .Y(_0678_) - ); - sky130_fd_sc_hd__clkinv_1 _1007_ ( - .A(_0618_), - .Y(_0679_) - ); - sky130_fd_sc_hd__clkinv_1 _1008_ ( - .A(_0515_), - .Y(_0680_) - ); - sky130_fd_sc_hd__clkinv_1 _1009_ ( - .A(_0514_), - .Y(_0681_) - ); - sky130_fd_sc_hd__clkinv_1 _1010_ ( - .A(_0523_), - .Y(_0682_) - ); - sky130_fd_sc_hd__clkinv_1 _1011_ ( - .A(_0524_), - .Y(_0683_) - ); - sky130_fd_sc_hd__clkinv_1 _1012_ ( - .A(_0573_), - .Y(_0684_) - ); - sky130_fd_sc_hd__clkinv_1 _1013_ ( - .A(_0571_), - .Y(_0685_) - ); - sky130_fd_sc_hd__clkinv_1 _1014_ ( - .A(_0829_), - .Y(_0376_) - ); - sky130_fd_sc_hd__nand2_1 _1015_ ( - .A(_0545_), - .B(_0505_), - .Y(_0686_) - ); - sky130_fd_sc_hd__and4_1 _1016_ ( - .A(_0545_), - .B(_0505_), - .C(_0567_), - .D(_0556_), - .X(_0687_) - ); - sky130_fd_sc_hd__nand2_1 _1017_ ( - .A(_0578_), - .B(_0687_), - .Y(_0688_) - ); - sky130_fd_sc_hd__and4_1 _1018_ ( - .A(_0589_), - .B(_0578_), - .C(_0600_), - .D(_0687_), - .X(_0689_) - ); - sky130_fd_sc_hd__and2_0 _1019_ ( - .A(_0611_), - .B(_0689_), - .X(_0690_) - ); - sky130_fd_sc_hd__nand2_1 _1020_ ( - .A(_0622_), - .B(_0690_), - .Y(_0691_) - ); - sky130_fd_sc_hd__nand4_1 _1021_ ( - .A(_0622_), - .B(_0611_), - .C(_0633_), - .D(_0689_), - .Y(_0692_) - ); - sky130_fd_sc_hd__nor2_1 _1022_ ( - .A(_0639_), - .B(_0692_), - .Y(_0693_) - ); - sky130_fd_sc_hd__nand2_1 _1023_ ( - .A(_0527_), - .B(_0693_), - .Y(_0694_) - ); - sky130_fd_sc_hd__nor4_1 _1024_ ( - .A(_0639_), - .B(_0643_), - .C(_0649_), - .D(_0692_), - .Y(_0695_) - ); - sky130_fd_sc_hd__and2_0 _1025_ ( - .A(_0538_), - .B(_0695_), - .X(_0696_) - ); - sky130_fd_sc_hd__nand2_1 _1026_ ( - .A(_0539_), - .B(_0696_), - .Y(_0697_) - ); - sky130_fd_sc_hd__nand4_1 _1027_ ( - .A(_0539_), - .B(_0540_), - .C(_0538_), - .D(_0695_), - .Y(_0698_) - ); - sky130_fd_sc_hd__nor2_1 _1028_ ( - .A(_0660_), - .B(_0698_), - .Y(_0699_) - ); - sky130_fd_sc_hd__or4_1 _1029_ ( - .A(_0637_), - .B(_0660_), - .C(_0661_), - .D(_0698_), - .X(_0700_) - ); - sky130_fd_sc_hd__nor2_1 _1030_ ( - .A(_0638_), - .B(_0700_), - .Y(_0701_) - ); - sky130_fd_sc_hd__nor3_1 _1031_ ( - .A(_0638_), - .B(_0641_), - .C(_0700_), - .Y(_0702_) - ); - sky130_fd_sc_hd__nor4_1 _1032_ ( - .A(_0638_), - .B(_0641_), - .C(_0642_), - .D(_0700_), - .Y(_0703_) - ); - sky130_fd_sc_hd__and2_0 _1033_ ( - .A(_0548_), - .B(_0703_), - .X(_0704_) - ); - sky130_fd_sc_hd__nand4_1 _1034_ ( - .A(_0549_), - .B(_0548_), - .C(_0550_), - .D(_0703_), - .Y(_0705_) - ); - sky130_fd_sc_hd__nor2_1 _1035_ ( - .A(_0650_), - .B(_0705_), - .Y(_0706_) - ); - sky130_fd_sc_hd__nor4_1 _1036_ ( - .A(_0644_), - .B(_0645_), - .C(_0650_), - .D(_0705_), - .Y(_0707_) - ); - sky130_fd_sc_hd__and2_0 _1037_ ( - .A(_0554_), - .B(_0707_), - .X(_0708_) - ); - sky130_fd_sc_hd__nand2_1 _1038_ ( - .A(_0555_), - .B(_0708_), - .Y(_0709_) - ); - sky130_fd_sc_hd__nand4_1 _1039_ ( - .A(_0554_), - .B(_0555_), - .C(_0557_), - .D(_0707_), - .Y(_0710_) - ); - sky130_fd_sc_hd__nor2_1 _1040_ ( - .A(_0646_), - .B(_0710_), - .Y(_0711_) - ); - sky130_fd_sc_hd__nor4_1 _1041_ ( - .A(_0646_), - .B(_0647_), - .C(_0648_), - .D(_0710_), - .Y(_0712_) - ); - sky130_fd_sc_hd__and2_0 _1042_ ( - .A(_0561_), - .B(_0712_), - .X(_0713_) - ); - sky130_fd_sc_hd__and4_1 _1043_ ( - .A(_0562_), - .B(_0561_), - .C(_0563_), - .D(_0712_), - .X(_0714_) - ); - sky130_fd_sc_hd__and2_0 _1044_ ( - .A(_0564_), - .B(_0714_), - .X(_0715_) - ); - sky130_fd_sc_hd__and4_1 _1045_ ( - .A(_0565_), - .B(_0566_), - .C(_0564_), - .D(_0714_), - .X(_0716_) - ); - sky130_fd_sc_hd__and2_0 _1046_ ( - .A(_0568_), - .B(_0716_), - .X(_0717_) - ); - sky130_fd_sc_hd__nand2_1 _1047_ ( - .A(_0569_), - .B(_0717_), - .Y(_0718_) - ); - sky130_fd_sc_hd__nand4_1 _1048_ ( - .A(_0568_), - .B(_0569_), - .C(_0570_), - .D(_0716_), - .Y(_0719_) - ); - sky130_fd_sc_hd__nor2_1 _1049_ ( - .A(_0685_), - .B(_0719_), - .Y(_0720_) - ); - sky130_fd_sc_hd__nand2_1 _1050_ ( - .A(_0572_), - .B(_0720_), - .Y(_0721_) - ); - sky130_fd_sc_hd__nor4_1 _1051_ ( - .A(_0640_), - .B(_0684_), - .C(_0685_), - .D(_0719_), - .Y(_0722_) - ); - sky130_fd_sc_hd__and2_0 _1052_ ( - .A(_0574_), - .B(_0722_), - .X(_0723_) - ); - sky130_fd_sc_hd__nand2_1 _1053_ ( - .A(_0575_), - .B(_0723_), - .Y(_0724_) - ); - sky130_fd_sc_hd__nand4_1 _1054_ ( - .A(_0574_), - .B(_0575_), - .C(_0576_), - .D(_0722_), - .Y(_0725_) - ); - sky130_fd_sc_hd__nor2_1 _1055_ ( - .A(_0667_), - .B(_0725_), - .Y(_0726_) - ); - sky130_fd_sc_hd__nor4_1 _1056_ ( - .A(_0667_), - .B(_0668_), - .C(_0669_), - .D(_0725_), - .Y(_0727_) - ); - sky130_fd_sc_hd__and2_0 _1057_ ( - .A(_0581_), - .B(_0727_), - .X(_0728_) - ); - sky130_fd_sc_hd__nand2_1 _1058_ ( - .A(_0582_), - .B(_0728_), - .Y(_0729_) - ); - sky130_fd_sc_hd__nand4_1 _1059_ ( - .A(_0583_), - .B(_0581_), - .C(_0582_), - .D(_0727_), - .Y(_0730_) - ); - sky130_fd_sc_hd__nor2_1 _1060_ ( - .A(_0636_), - .B(_0730_), - .Y(_0731_) - ); - sky130_fd_sc_hd__nand2_1 _1061_ ( - .A(_0585_), - .B(_0731_), - .Y(_0732_) - ); - sky130_fd_sc_hd__nor4_1 _1062_ ( - .A(_0636_), - .B(_0657_), - .C(_0658_), - .D(_0730_), - .Y(_0733_) - ); - sky130_fd_sc_hd__and2_0 _1063_ ( - .A(_0587_), - .B(_0733_), - .X(_0734_) - ); - sky130_fd_sc_hd__nand2_1 _1064_ ( - .A(_0588_), - .B(_0734_), - .Y(_0735_) - ); - sky130_fd_sc_hd__nand4_1 _1065_ ( - .A(_0590_), - .B(_0587_), - .C(_0588_), - .D(_0733_), - .Y(_0736_) - ); - sky130_fd_sc_hd__nor2_1 _1066_ ( - .A(_0664_), - .B(_0736_), - .Y(_0737_) - ); - sky130_fd_sc_hd__nor4_1 _1067_ ( - .A(_0663_), - .B(_0664_), - .C(_0665_), - .D(_0736_), - .Y(_0738_) - ); - sky130_fd_sc_hd__and2_0 _1068_ ( - .A(_0594_), - .B(_0738_), - .X(_0739_) - ); - sky130_fd_sc_hd__and3_1 _1069_ ( - .A(_0596_), - .B(_0595_), - .C(_0739_), - .X(_0740_) - ); - sky130_fd_sc_hd__nand4_1 _1070_ ( - .A(_0596_), - .B(_0594_), - .C(_0595_), - .D(_0738_), - .Y(_0741_) - ); - sky130_fd_sc_hd__nor3_1 _1071_ ( - .A(_0659_), - .B(_0662_), - .C(_0741_), - .Y(_0742_) - ); - sky130_fd_sc_hd__nand3_1 _1072_ ( - .A(_0601_), - .B(_0602_), - .C(_0599_), - .Y(_0743_) - ); - sky130_fd_sc_hd__nor4_1 _1073_ ( - .A(_0659_), - .B(_0662_), - .C(_0741_), - .D(_0743_), - .Y(_0744_) - ); - sky130_fd_sc_hd__and2_0 _1074_ ( - .A(_0603_), - .B(_0744_), - .X(_0745_) - ); - sky130_fd_sc_hd__and4_1 _1075_ ( - .A(_0603_), - .B(_0604_), - .C(_0605_), - .D(_0744_), - .X(_0746_) - ); - sky130_fd_sc_hd__and2_0 _1076_ ( - .A(_0606_), - .B(_0746_), - .X(_0747_) - ); - sky130_fd_sc_hd__and3_1 _1077_ ( - .A(_0607_), - .B(_0608_), - .C(_0747_), - .X(_0748_) - ); - sky130_fd_sc_hd__nand4_1 _1078_ ( - .A(_0606_), - .B(_0607_), - .C(_0608_), - .D(_0746_), - .Y(_0749_) - ); - sky130_fd_sc_hd__nand2_1 _1079_ ( - .A(_0609_), - .B(_0748_), - .Y(_0750_) - ); - sky130_fd_sc_hd__xnor2_1 _1080_ ( - .A(_0610_), - .B(_0750_), - .Y(_0352_) - ); - sky130_fd_sc_hd__xnor2_1 _1081_ ( - .A(_0609_), - .B(_0749_), - .Y(_0351_) - ); - sky130_fd_sc_hd__xnor2_1 _1082_ ( - .A(_0540_), - .B(_0697_), - .Y(_0282_) - ); - sky130_fd_sc_hd__xor2_1 _1083_ ( - .A(_0568_), - .B(_0716_), - .X(_0310_) - ); - sky130_fd_sc_hd__xnor2_1 _1084_ ( - .A(_0584_), - .B(_0730_), - .Y(_0326_) - ); - sky130_fd_sc_hd__xnor2_1 _1085_ ( - .A(_0583_), - .B(_0729_), - .Y(_0325_) - ); - sky130_fd_sc_hd__xnor2_1 _1086_ ( - .A(_0544_), - .B(_0700_), - .Y(_0286_) - ); - sky130_fd_sc_hd__xnor2_1 _1087_ ( - .A(_0516_), - .B(_0692_), - .Y(_0258_) - ); - sky130_fd_sc_hd__xnor2_1 _1088_ ( - .A(_0640_), - .B(_0720_), - .Y(_0314_) - ); - sky130_fd_sc_hd__nor2_1 _1089_ ( - .A(_0547_), - .B(_0702_), - .Y(_0751_) - ); - sky130_fd_sc_hd__nor2_1 _1090_ ( - .A(_0703_), - .B(_0751_), - .Y(_0289_) - ); - sky130_fd_sc_hd__nor2_1 _1091_ ( - .A(_0546_), - .B(_0701_), - .Y(_0752_) - ); - sky130_fd_sc_hd__nor2_1 _1092_ ( - .A(_0702_), - .B(_0752_), - .Y(_0288_) - ); - sky130_fd_sc_hd__xor2_1 _1093_ ( - .A(_0575_), - .B(_0723_), - .X(_0317_) - ); - sky130_fd_sc_hd__xor2_1 _1094_ ( - .A(_0539_), - .B(_0696_), - .X(_0281_) - ); - sky130_fd_sc_hd__xor2_1 _1095_ ( - .A(_0549_), - .B(_0704_), - .X(_0291_) - ); - sky130_fd_sc_hd__xor2_1 _1096_ ( - .A(_0548_), - .B(_0703_), - .X(_0290_) - ); - sky130_fd_sc_hd__a21oi_1 _1097_ ( - .A1(_0552_), - .A2(_0706_), - .B1(_0553_), - .Y(_0753_) - ); - sky130_fd_sc_hd__nor2_1 _1098_ ( - .A(_0707_), - .B(_0753_), - .Y(_0295_) - ); - sky130_fd_sc_hd__xnor2_1 _1099_ ( - .A(_0645_), - .B(_0706_), - .Y(_0294_) - ); - sky130_fd_sc_hd__xor2_1 _1100_ ( - .A(_0545_), - .B(_0505_), - .X(_0287_) - ); - sky130_fd_sc_hd__nor2_1 _1101_ ( - .A(_0554_), - .B(_0707_), - .Y(_0754_) - ); - sky130_fd_sc_hd__nor2_1 _1102_ ( - .A(_0708_), - .B(_0754_), - .Y(_0296_) - ); - sky130_fd_sc_hd__nor4_1 _1103_ ( - .A(_0634_), - .B(_0635_), - .C(_0670_), - .D(_0749_), - .Y(_0755_) - ); - sky130_fd_sc_hd__and2_0 _1104_ ( - .A(_0613_), - .B(_0755_), - .X(_0756_) - ); - sky130_fd_sc_hd__nand2_1 _1105_ ( - .A(_0614_), - .B(_0756_), - .Y(_0757_) - ); - sky130_fd_sc_hd__nand4_1 _1106_ ( - .A(_0614_), - .B(_0615_), - .C(_0613_), - .D(_0755_), - .Y(_0758_) - ); - sky130_fd_sc_hd__nor2_1 _1107_ ( - .A(_0655_), - .B(_0758_), - .Y(_0759_) - ); - sky130_fd_sc_hd__nor3_1 _1108_ ( - .A(_0655_), - .B(_0656_), - .C(_0758_), - .Y(_0760_) - ); - sky130_fd_sc_hd__nor4_1 _1109_ ( - .A(_0655_), - .B(_0656_), - .C(_0679_), - .D(_0758_), - .Y(_0761_) - ); - sky130_fd_sc_hd__and2_0 _1110_ ( - .A(_0619_), - .B(_0761_), - .X(_0762_) - ); - sky130_fd_sc_hd__nand2_1 _1111_ ( - .A(_0620_), - .B(_0762_), - .Y(_0763_) - ); - sky130_fd_sc_hd__nand4_1 _1112_ ( - .A(_0620_), - .B(_0621_), - .C(_0619_), - .D(_0761_), - .Y(_0764_) - ); - sky130_fd_sc_hd__or3_1 _1113_ ( - .A(_0653_), - .B(_0654_), - .C(_0764_), - .X(_0765_) - ); - sky130_fd_sc_hd__or4_1 _1114_ ( - .A(_0652_), - .B(_0653_), - .C(_0654_), - .D(_0764_), - .X(_0766_) - ); - sky130_fd_sc_hd__nor2_1 _1115_ ( - .A(_0651_), - .B(_0766_), - .Y(_0767_) - ); - sky130_fd_sc_hd__nand2_1 _1116_ ( - .A(_0627_), - .B(_0767_), - .Y(_0768_) - ); - sky130_fd_sc_hd__or4_1 _1117_ ( - .A(_0651_), - .B(_0672_), - .C(_0673_), - .D(_0766_), - .X(_0769_) - ); - sky130_fd_sc_hd__or3_1 _1118_ ( - .A(_0677_), - .B(_0678_), - .C(_0769_), - .X(_0770_) - ); - sky130_fd_sc_hd__nor4_1 _1119_ ( - .A(_0676_), - .B(_0677_), - .C(_0678_), - .D(_0769_), - .Y(_0771_) - ); - sky130_fd_sc_hd__and2_0 _1120_ ( - .A(_0632_), - .B(_0771_), - .X(_0772_) - ); - sky130_fd_sc_hd__nand2_1 _1121_ ( - .A(_0506_), - .B(_0772_), - .Y(_0773_) - ); - sky130_fd_sc_hd__nand4_1 _1122_ ( - .A(_0506_), - .B(_0507_), - .C(_0632_), - .D(_0771_), - .Y(_0774_) - ); - sky130_fd_sc_hd__nor2_1 _1123_ ( - .A(_0666_), - .B(_0774_), - .Y(_0775_) - ); - sky130_fd_sc_hd__nor4_1 _1124_ ( - .A(_0666_), - .B(_0674_), - .C(_0675_), - .D(_0774_), - .Y(_0776_) - ); - sky130_fd_sc_hd__and2_0 _1125_ ( - .A(_0511_), - .B(_0776_), - .X(_0777_) - ); - sky130_fd_sc_hd__nand2_1 _1126_ ( - .A(_0512_), - .B(_0777_), - .Y(_0778_) - ); - sky130_fd_sc_hd__nand4_1 _1127_ ( - .A(_0511_), - .B(_0512_), - .C(_0513_), - .D(_0776_), - .Y(_0779_) - ); - sky130_fd_sc_hd__nor2_1 _1128_ ( - .A(_0681_), - .B(_0779_), - .Y(_0780_) - ); - sky130_fd_sc_hd__nor4_1 _1129_ ( - .A(_0671_), - .B(_0680_), - .C(_0681_), - .D(_0779_), - .Y(_0781_) - ); - sky130_fd_sc_hd__and2_0 _1130_ ( - .A(_0518_), - .B(_0781_), - .X(_0782_) - ); - sky130_fd_sc_hd__nand2_1 _1131_ ( - .A(_0519_), - .B(_0782_), - .Y(_0783_) - ); - sky130_fd_sc_hd__nand4_1 _1132_ ( - .A(_0518_), - .B(_0519_), - .C(_0520_), - .D(_0781_), - .Y(_0784_) - ); - sky130_fd_sc_hd__nand2_1 _1133_ ( - .A(_0522_), - .B(_0521_), - .Y(_0785_) - ); - sky130_fd_sc_hd__nor2_1 _1134_ ( - .A(_0784_), - .B(_0785_), - .Y(_0786_) - ); - sky130_fd_sc_hd__nor3_1 _1135_ ( - .A(_0682_), - .B(_0784_), - .C(_0785_), - .Y(_0787_) - ); - sky130_fd_sc_hd__nor4_1 _1136_ ( - .A(_0682_), - .B(_0683_), - .C(_0784_), - .D(_0785_), - .Y(_0788_) - ); - sky130_fd_sc_hd__nand3_1 _1137_ ( - .A(_0525_), - .B(_0526_), - .C(_0788_), - .Y(_0789_) - ); - sky130_fd_sc_hd__nand4_1 _1138_ ( - .A(_0528_), - .B(_0525_), - .C(_0526_), - .D(_0788_), - .Y(_0790_) - ); - sky130_fd_sc_hd__lpflow_isobufsrc_1 _1139_ ( - .A(_0529_), - .SLEEP(_0790_), - .X(_0791_) - ); - sky130_fd_sc_hd__nand2_1 _1140_ ( - .A(_0530_), - .B(_0791_), - .Y(_0792_) - ); - sky130_fd_sc_hd__xor2_1 _1141_ ( - .A(_0530_), - .B(_0791_), - .X(_0272_) - ); - sky130_fd_sc_hd__a31oi_1 _1142_ ( - .A1(_0545_), - .A2(_0505_), - .A3(_0556_), - .B1(_0567_), - .Y(_0793_) - ); - sky130_fd_sc_hd__nor2_1 _1143_ ( - .A(_0687_), - .B(_0793_), - .Y(_0309_) - ); - sky130_fd_sc_hd__xnor2_1 _1144_ ( - .A(_0556_), - .B(_0686_), - .Y(_0298_) - ); - sky130_fd_sc_hd__xor2_1 _1145_ ( - .A(_0555_), - .B(_0708_), - .X(_0297_) - ); - sky130_fd_sc_hd__xnor2_1 _1146_ ( - .A(_0589_), - .B(_0688_), - .Y(_0331_) - ); - sky130_fd_sc_hd__xor2_1 _1147_ ( - .A(_0578_), - .B(_0687_), - .X(_0320_) - ); - sky130_fd_sc_hd__xnor2_1 _1148_ ( - .A(_0558_), - .B(_0710_), - .Y(_0300_) - ); - sky130_fd_sc_hd__xnor2_1 _1149_ ( - .A(_0557_), - .B(_0709_), - .Y(_0299_) - ); - sky130_fd_sc_hd__a31oi_1 _1150_ ( - .A1(_0589_), - .A2(_0578_), - .A3(_0687_), - .B1(_0600_), - .Y(_0794_) - ); - sky130_fd_sc_hd__nor2_1 _1151_ ( - .A(_0689_), - .B(_0794_), - .Y(_0342_) - ); - sky130_fd_sc_hd__xor2_1 _1152_ ( - .A(_0622_), - .B(_0690_), - .X(_0364_) - ); - sky130_fd_sc_hd__xor2_1 _1153_ ( - .A(_0611_), - .B(_0689_), - .X(_0353_) - ); - sky130_fd_sc_hd__a21oi_1 _1154_ ( - .A1(_0559_), - .A2(_0711_), - .B1(_0560_), - .Y(_0795_) - ); - sky130_fd_sc_hd__nor2_1 _1155_ ( - .A(_0712_), - .B(_0795_), - .Y(_0302_) - ); - sky130_fd_sc_hd__xnor2_1 _1156_ ( - .A(_0647_), - .B(_0711_), - .Y(_0301_) - ); - sky130_fd_sc_hd__xnor2_1 _1157_ ( - .A(_0633_), - .B(_0691_), - .Y(_0375_) - ); - sky130_fd_sc_hd__xor2_1 _1158_ ( - .A(_0562_), - .B(_0713_), - .X(_0304_) - ); - sky130_fd_sc_hd__nor2_1 _1159_ ( - .A(_0561_), - .B(_0712_), - .Y(_0796_) - ); - sky130_fd_sc_hd__nor2_1 _1160_ ( - .A(_0713_), - .B(_0796_), - .Y(_0303_) - ); - sky130_fd_sc_hd__xnor2_1 _1161_ ( - .A(_0649_), - .B(_0693_), - .Y(_0269_) - ); - sky130_fd_sc_hd__a21oi_1 _1162_ ( - .A1(_0562_), - .A2(_0713_), - .B1(_0563_), - .Y(_0797_) - ); - sky130_fd_sc_hd__nor2_1 _1163_ ( - .A(_0714_), - .B(_0797_), - .Y(_0305_) - ); - sky130_fd_sc_hd__xnor2_1 _1164_ ( - .A(_0551_), - .B(_0705_), - .Y(_0293_) - ); - sky130_fd_sc_hd__a21oi_1 _1165_ ( - .A1(_0549_), - .A2(_0704_), - .B1(_0550_), - .Y(_0798_) - ); - sky130_fd_sc_hd__lpflow_isobufsrc_1 _1166_ ( - .A(_0705_), - .SLEEP(_0798_), - .X(_0292_) - ); - sky130_fd_sc_hd__xnor2_1 _1167_ ( - .A(_0615_), - .B(_0757_), - .Y(_0357_) - ); - sky130_fd_sc_hd__xnor2_1 _1168_ ( - .A(_0626_), - .B(_0766_), - .Y(_0368_) - ); - sky130_fd_sc_hd__xnor2_1 _1169_ ( - .A(_0625_), - .B(_0765_), - .Y(_0367_) - ); - sky130_fd_sc_hd__xnor2_1 _1170_ ( - .A(_0531_), - .B(_0792_), - .Y(_0273_) - ); - sky130_fd_sc_hd__xnor2_1 _1171_ ( - .A(_0576_), - .B(_0724_), - .Y(_0318_) - ); - sky130_fd_sc_hd__xnor2_1 _1172_ ( - .A(_0623_), - .B(_0764_), - .Y(_0365_) - ); - sky130_fd_sc_hd__o21ai_0 _1173_ ( - .A1(_0653_), - .A2(_0764_), - .B1(_0654_), - .Y(_0799_) - ); - sky130_fd_sc_hd__and2_0 _1174_ ( - .A(_0765_), - .B(_0799_), - .X(_0366_) - ); - sky130_fd_sc_hd__nor2_1 _1175_ ( - .A(_0617_), - .B(_0759_), - .Y(_0800_) - ); - sky130_fd_sc_hd__nor2_1 _1176_ ( - .A(_0760_), - .B(_0800_), - .Y(_0359_) - ); - sky130_fd_sc_hd__xnor2_1 _1177_ ( - .A(_0616_), - .B(_0758_), - .Y(_0358_) - ); - sky130_fd_sc_hd__xnor2_1 _1178_ ( - .A(_0590_), - .B(_0735_), - .Y(_0332_) - ); - sky130_fd_sc_hd__xnor2_1 _1179_ ( - .A(_0586_), - .B(_0732_), - .Y(_0328_) - ); - sky130_fd_sc_hd__xor2_1 _1180_ ( - .A(_0588_), - .B(_0734_), - .X(_0330_) - ); - sky130_fd_sc_hd__nor2_1 _1181_ ( - .A(_0587_), - .B(_0733_), - .Y(_0801_) - ); - sky130_fd_sc_hd__nor2_1 _1182_ ( - .A(_0734_), - .B(_0801_), - .Y(_0329_) - ); - sky130_fd_sc_hd__xnor2_1 _1183_ ( - .A(_0657_), - .B(_0731_), - .Y(_0327_) - ); - sky130_fd_sc_hd__nand2_1 _1184_ ( - .A(_0599_), - .B(_0742_), - .Y(_0802_) - ); - sky130_fd_sc_hd__a31oi_1 _1185_ ( - .A1(_0601_), - .A2(_0599_), - .A3(_0742_), - .B1(_0602_), - .Y(_0803_) - ); - sky130_fd_sc_hd__nor2_1 _1186_ ( - .A(_0744_), - .B(_0803_), - .Y(_0344_) - ); - sky130_fd_sc_hd__xnor2_1 _1187_ ( - .A(_0601_), - .B(_0802_), - .Y(_0343_) - ); - sky130_fd_sc_hd__xor2_1 _1188_ ( - .A(_0604_), - .B(_0745_), - .X(_0346_) - ); - sky130_fd_sc_hd__nor2_1 _1189_ ( - .A(_0603_), - .B(_0744_), - .Y(_0804_) - ); - sky130_fd_sc_hd__nor2_1 _1190_ ( - .A(_0745_), - .B(_0804_), - .Y(_0345_) - ); - sky130_fd_sc_hd__xor2_1 _1191_ ( - .A(_0599_), - .B(_0742_), - .X(_0341_) - ); - sky130_fd_sc_hd__a21oi_1 _1192_ ( - .A1(_0542_), - .A2(_0699_), - .B1(_0543_), - .Y(_0805_) - ); - sky130_fd_sc_hd__lpflow_isobufsrc_1 _1193_ ( - .A(_0700_), - .SLEEP(_0805_), - .X(_0285_) - ); - sky130_fd_sc_hd__xnor2_1 _1194_ ( - .A(_0597_), - .B(_0741_), - .Y(_0339_) - ); - sky130_fd_sc_hd__a21oi_1 _1195_ ( - .A1(_0595_), - .A2(_0739_), - .B1(_0596_), - .Y(_0806_) - ); - sky130_fd_sc_hd__nor2_1 _1196_ ( - .A(_0740_), - .B(_0806_), - .Y(_0338_) - ); - sky130_fd_sc_hd__a21oi_1 _1197_ ( - .A1(_0597_), - .A2(_0740_), - .B1(_0598_), - .Y(_0807_) - ); - sky130_fd_sc_hd__nor2_1 _1198_ ( - .A(_0742_), - .B(_0807_), - .Y(_0340_) - ); - sky130_fd_sc_hd__xnor2_1 _1199_ ( - .A(_0663_), - .B(_0737_), - .Y(_0334_) - ); - sky130_fd_sc_hd__xnor2_1 _1200_ ( - .A(_0591_), - .B(_0736_), - .Y(_0333_) - ); - sky130_fd_sc_hd__a21oi_1 _1201_ ( - .A1(_0592_), - .A2(_0737_), - .B1(_0593_), - .Y(_0808_) - ); - sky130_fd_sc_hd__nor2_1 _1202_ ( - .A(_0738_), - .B(_0808_), - .Y(_0335_) - ); - sky130_fd_sc_hd__xor2_1 _1203_ ( - .A(_0595_), - .B(_0739_), - .X(_0337_) - ); - sky130_fd_sc_hd__nor2_1 _1204_ ( - .A(_0594_), - .B(_0738_), - .Y(_0809_) - ); - sky130_fd_sc_hd__nor2_1 _1205_ ( - .A(_0739_), - .B(_0809_), - .Y(_0336_) - ); - sky130_fd_sc_hd__xnor2_1 _1206_ ( - .A(_0508_), - .B(_0774_), - .Y(_0250_) - ); - sky130_fd_sc_hd__nor2_1 _1207_ ( - .A(_0606_), - .B(_0746_), - .Y(_0810_) - ); - sky130_fd_sc_hd__nor2_1 _1208_ ( - .A(_0747_), - .B(_0810_), - .Y(_0348_) - ); - sky130_fd_sc_hd__a21oi_1 _1209_ ( - .A1(_0604_), - .A2(_0745_), - .B1(_0605_), - .Y(_0811_) - ); - sky130_fd_sc_hd__nor2_1 _1210_ ( - .A(_0746_), - .B(_0811_), - .Y(_0347_) - ); - sky130_fd_sc_hd__xnor2_1 _1211_ ( - .A(_0621_), - .B(_0763_), - .Y(_0363_) - ); - sky130_fd_sc_hd__xor2_1 _1212_ ( - .A(_0620_), - .B(_0762_), - .X(_0362_) - ); - sky130_fd_sc_hd__xor2_1 _1213_ ( - .A(_0582_), - .B(_0728_), - .X(_0324_) - ); - sky130_fd_sc_hd__xnor2_1 _1214_ ( - .A(_0577_), - .B(_0725_), - .Y(_0319_) - ); - sky130_fd_sc_hd__a21oi_1 _1215_ ( - .A1(_0607_), - .A2(_0747_), - .B1(_0608_), - .Y(_0812_) - ); - sky130_fd_sc_hd__nor2_1 _1216_ ( - .A(_0748_), - .B(_0812_), - .Y(_0350_) - ); - sky130_fd_sc_hd__xnor2_1 _1217_ ( - .A(_0661_), - .B(_0699_), - .Y(_0284_) - ); - sky130_fd_sc_hd__xnor2_1 _1218_ ( - .A(_0541_), - .B(_0698_), - .Y(_0283_) - ); - sky130_fd_sc_hd__nor2_1 _1219_ ( - .A(_0581_), - .B(_0727_), - .Y(_0813_) - ); - sky130_fd_sc_hd__nor2_1 _1220_ ( - .A(_0728_), - .B(_0813_), - .Y(_0323_) - ); - sky130_fd_sc_hd__a21oi_1 _1221_ ( - .A1(_0579_), - .A2(_0726_), - .B1(_0580_), - .Y(_0814_) - ); - sky130_fd_sc_hd__nor2_1 _1222_ ( - .A(_0727_), - .B(_0814_), - .Y(_0322_) - ); - sky130_fd_sc_hd__xnor2_1 _1223_ ( - .A(_0668_), - .B(_0726_), - .Y(_0321_) - ); - sky130_fd_sc_hd__and4_1 _1224_ ( - .A(_0530_), - .B(_0531_), - .C(_0532_), - .D(_0791_), - .X(_0815_) - ); - sky130_fd_sc_hd__nand3_1 _1225_ ( - .A(_0534_), - .B(_0533_), - .C(_0815_), - .Y(_0816_) - ); - sky130_fd_sc_hd__nand4_1 _1226_ ( - .A(_0534_), - .B(_0535_), - .C(_0533_), - .D(_0815_), - .Y(_0817_) - ); - sky130_fd_sc_hd__xnor2_1 _1227_ ( - .A(_0535_), - .B(_0816_), - .Y(_0277_) - ); - sky130_fd_sc_hd__xor2_1 _1228_ ( - .A(_0613_), - .B(_0755_), - .X(_0355_) - ); - sky130_fd_sc_hd__a31oi_1 _1229_ ( - .A1(_0609_), - .A2(_0610_), - .A3(_0748_), - .B1(_0612_), - .Y(_0818_) - ); - sky130_fd_sc_hd__nor2_1 _1230_ ( - .A(_0755_), - .B(_0818_), - .Y(_0354_) - ); - sky130_fd_sc_hd__a41oi_1 _1231_ ( - .A1(_0521_), - .A2(_0519_), - .A3(_0520_), - .A4(_0782_), - .B1(_0522_), - .Y(_0819_) - ); - sky130_fd_sc_hd__nor2_1 _1232_ ( - .A(_0786_), - .B(_0819_), - .Y(_0264_) - ); - sky130_fd_sc_hd__xnor2_1 _1233_ ( - .A(_0521_), - .B(_0784_), - .Y(_0263_) - ); - sky130_fd_sc_hd__xor2_1 _1234_ ( - .A(_0518_), - .B(_0781_), - .X(_0260_) - ); - sky130_fd_sc_hd__xnor2_1 _1235_ ( - .A(_0628_), - .B(_0768_), - .Y(_0370_) - ); - sky130_fd_sc_hd__xnor2_1 _1236_ ( - .A(_0536_), - .B(_0817_), - .Y(_0278_) - ); - sky130_fd_sc_hd__a21oi_1 _1237_ ( - .A1(_0533_), - .A2(_0815_), - .B1(_0534_), - .Y(_0820_) - ); - sky130_fd_sc_hd__lpflow_isobufsrc_1 _1238_ ( - .A(_0816_), - .SLEEP(_0820_), - .X(_0276_) - ); - sky130_fd_sc_hd__xnor2_1 _1239_ ( - .A(_0529_), - .B(_0790_), - .Y(_0271_) - ); - sky130_fd_sc_hd__xnor2_1 _1240_ ( - .A(_0528_), - .B(_0789_), - .Y(_0270_) - ); - sky130_fd_sc_hd__xor2_1 _1241_ ( - .A(_0511_), - .B(_0776_), - .X(_0253_) - ); - sky130_fd_sc_hd__a21oi_1 _1242_ ( - .A1(_0509_), - .A2(_0775_), - .B1(_0510_), - .Y(_0821_) - ); - sky130_fd_sc_hd__nor2_1 _1243_ ( - .A(_0776_), - .B(_0821_), - .Y(_0252_) - ); - sky130_fd_sc_hd__xnor2_1 _1244_ ( - .A(_0675_), - .B(_0775_), - .Y(_0251_) - ); - sky130_fd_sc_hd__xnor2_1 _1245_ ( - .A(_0631_), - .B(_0770_), - .Y(_0373_) - ); - sky130_fd_sc_hd__xnor2_1 _1246_ ( - .A(_0520_), - .B(_0783_), - .Y(_0262_) - ); - sky130_fd_sc_hd__xnor2_1 _1247_ ( - .A(_0679_), - .B(_0760_), - .Y(_0360_) - ); - sky130_fd_sc_hd__xnor2_1 _1248_ ( - .A(_0680_), - .B(_0780_), - .Y(_0257_) - ); - sky130_fd_sc_hd__xnor2_1 _1249_ ( - .A(_0514_), - .B(_0779_), - .Y(_0256_) - ); - sky130_fd_sc_hd__xnor2_1 _1250_ ( - .A(_0672_), - .B(_0767_), - .Y(_0369_) - ); - sky130_fd_sc_hd__nor2_1 _1251_ ( - .A(_0524_), - .B(_0787_), - .Y(_0822_) - ); - sky130_fd_sc_hd__nor2_1 _1252_ ( - .A(_0788_), - .B(_0822_), - .Y(_0266_) - ); - sky130_fd_sc_hd__xor2_1 _1253_ ( - .A(_0632_), - .B(_0771_), - .X(_0374_) - ); - sky130_fd_sc_hd__a21oi_1 _1254_ ( - .A1(_0525_), - .A2(_0788_), - .B1(_0526_), - .Y(_0823_) - ); - sky130_fd_sc_hd__lpflow_isobufsrc_1 _1255_ ( - .A(_0789_), - .SLEEP(_0823_), - .X(_0268_) - ); - sky130_fd_sc_hd__xor2_1 _1256_ ( - .A(_0525_), - .B(_0788_), - .X(_0267_) - ); - sky130_fd_sc_hd__xor2_1 _1257_ ( - .A(_0619_), - .B(_0761_), - .X(_0361_) - ); - sky130_fd_sc_hd__o21ai_0 _1258_ ( - .A1(_0677_), - .A2(_0769_), - .B1(_0678_), - .Y(_0824_) - ); - sky130_fd_sc_hd__and2_0 _1259_ ( - .A(_0770_), - .B(_0824_), - .X(_0372_) - ); - sky130_fd_sc_hd__xnor2_1 _1260_ ( - .A(_0629_), - .B(_0769_), - .Y(_0371_) - ); - sky130_fd_sc_hd__xor2_1 _1261_ ( - .A(_0533_), - .B(_0815_), - .X(_0275_) - ); - sky130_fd_sc_hd__a31oi_1 _1262_ ( - .A1(_0530_), - .A2(_0531_), - .A3(_0791_), - .B1(_0532_), - .Y(_0825_) - ); - sky130_fd_sc_hd__nor2_1 _1263_ ( - .A(_0815_), - .B(_0825_), - .Y(_0274_) - ); - sky130_fd_sc_hd__xor2_1 _1264_ ( - .A(_0519_), - .B(_0782_), - .X(_0261_) - ); - sky130_fd_sc_hd__xnor2_1 _1265_ ( - .A(_0507_), - .B(_0773_), - .Y(_0249_) - ); - sky130_fd_sc_hd__xor2_1 _1266_ ( - .A(_0506_), - .B(_0772_), - .X(_0248_) - ); - sky130_fd_sc_hd__xnor2_1 _1267_ ( - .A(_0513_), - .B(_0778_), - .Y(_0255_) - ); - sky130_fd_sc_hd__xor2_1 _1268_ ( - .A(_0538_), - .B(_0695_), - .X(_0280_) - ); - sky130_fd_sc_hd__xnor2_1 _1269_ ( - .A(_0537_), - .B(_0694_), - .Y(_0279_) - ); - sky130_fd_sc_hd__xor2_1 _1270_ ( - .A(_0512_), - .B(_0777_), - .X(_0254_) - ); - sky130_fd_sc_hd__nor2_1 _1271_ ( - .A(_0523_), - .B(_0786_), - .Y(_0826_) - ); - sky130_fd_sc_hd__nor2_1 _1272_ ( - .A(_0787_), - .B(_0826_), - .Y(_0265_) - ); - sky130_fd_sc_hd__xor2_1 _1273_ ( - .A(_0569_), - .B(_0717_), - .X(_0311_) - ); - sky130_fd_sc_hd__a21oi_1 _1274_ ( - .A1(_0565_), - .A2(_0715_), - .B1(_0566_), - .Y(_0827_) - ); - sky130_fd_sc_hd__nor2_1 _1275_ ( - .A(_0716_), - .B(_0827_), - .Y(_0308_) - ); - sky130_fd_sc_hd__xor2_1 _1276_ ( - .A(_0565_), - .B(_0715_), - .X(_0307_) - ); - sky130_fd_sc_hd__a21oi_1 _1277_ ( - .A1(_0515_), - .A2(_0780_), - .B1(_0517_), - .Y(_0828_) - ); - sky130_fd_sc_hd__nor2_1 _1278_ ( - .A(_0781_), - .B(_0828_), - .Y(_0259_) - ); - sky130_fd_sc_hd__xor2_1 _1279_ ( - .A(_0614_), - .B(_0756_), - .X(_0356_) - ); - sky130_fd_sc_hd__xor2_1 _1280_ ( - .A(_0564_), - .B(_0714_), - .X(_0306_) - ); - sky130_fd_sc_hd__xor2_1 _1281_ ( - .A(_0607_), - .B(_0747_), - .X(_0349_) - ); - sky130_fd_sc_hd__xor2_1 _1282_ ( - .A(_0574_), - .B(_0722_), - .X(_0316_) - ); - sky130_fd_sc_hd__xnor2_1 _1283_ ( - .A(_0573_), - .B(_0721_), - .Y(_0315_) - ); - sky130_fd_sc_hd__xnor2_1 _1284_ ( - .A(_0571_), - .B(_0719_), - .Y(_0313_) - ); - sky130_fd_sc_hd__xnor2_1 _1285_ ( - .A(_0570_), - .B(_0718_), - .Y(_0312_) - ); - sky130_fd_sc_hd__clkinv_1 _1286_ ( - .A(_0829_), - .Y(_0377_) - ); - sky130_fd_sc_hd__clkinv_1 _1287_ ( - .A(_0829_), - .Y(_0378_) - ); - sky130_fd_sc_hd__clkinv_1 _1288_ ( - .A(_0829_), - .Y(_0379_) - ); - sky130_fd_sc_hd__clkinv_1 _1289_ ( - .A(_0829_), - .Y(_0380_) - ); - sky130_fd_sc_hd__clkinv_1 _1290_ ( - .A(_0829_), - .Y(_0381_) - ); - sky130_fd_sc_hd__clkinv_1 _1291_ ( - .A(_0829_), - .Y(_0382_) - ); - sky130_fd_sc_hd__clkinv_1 _1292_ ( - .A(_0829_), - .Y(_0383_) - ); - sky130_fd_sc_hd__clkinv_1 _1293_ ( - .A(_0829_), - .Y(_0384_) - ); - sky130_fd_sc_hd__clkinv_1 _1294_ ( - .A(_0829_), - .Y(_0385_) - ); - sky130_fd_sc_hd__clkinv_1 _1295_ ( - .A(_0829_), - .Y(_0386_) - ); - sky130_fd_sc_hd__clkinv_1 _1296_ ( - .A(_0829_), - .Y(_0387_) - ); - sky130_fd_sc_hd__clkinv_1 _1297_ ( - .A(_0829_), - .Y(_0388_) - ); - sky130_fd_sc_hd__clkinv_1 _1298_ ( - .A(_0829_), - .Y(_0389_) - ); - sky130_fd_sc_hd__clkinv_1 _1299_ ( - .A(_0829_), - .Y(_0390_) - ); - sky130_fd_sc_hd__clkinv_1 _1300_ ( - .A(_0829_), - .Y(_0391_) - ); - sky130_fd_sc_hd__clkinv_1 _1301_ ( - .A(_0829_), - .Y(_0392_) - ); - sky130_fd_sc_hd__clkinv_1 _1302_ ( - .A(_0829_), - .Y(_0393_) - ); - sky130_fd_sc_hd__clkinv_1 _1303_ ( - .A(_0829_), - .Y(_0394_) - ); - sky130_fd_sc_hd__clkinv_1 _1304_ ( - .A(_0829_), - .Y(_0395_) - ); - sky130_fd_sc_hd__clkinv_1 _1305_ ( - .A(_0829_), - .Y(_0396_) - ); - sky130_fd_sc_hd__clkinv_1 _1306_ ( - .A(_0829_), - .Y(_0397_) - ); - sky130_fd_sc_hd__clkinv_1 _1307_ ( - .A(_0829_), - .Y(_0398_) - ); - sky130_fd_sc_hd__clkinv_1 _1308_ ( - .A(_0829_), - .Y(_0399_) - ); - sky130_fd_sc_hd__clkinv_1 _1309_ ( - .A(_0829_), - .Y(_0400_) - ); - sky130_fd_sc_hd__clkinv_1 _1310_ ( - .A(_0829_), - .Y(_0401_) - ); - sky130_fd_sc_hd__clkinv_1 _1311_ ( - .A(_0829_), - .Y(_0402_) - ); - sky130_fd_sc_hd__clkinv_1 _1312_ ( - .A(_0829_), - .Y(_0403_) - ); - sky130_fd_sc_hd__clkinv_1 _1313_ ( - .A(_0829_), - .Y(_0404_) - ); - sky130_fd_sc_hd__clkinv_1 _1314_ ( - .A(_0829_), - .Y(_0405_) - ); - sky130_fd_sc_hd__clkinv_1 _1315_ ( - .A(_0829_), - .Y(_0406_) - ); - sky130_fd_sc_hd__clkinv_1 _1316_ ( - .A(_0829_), - .Y(_0407_) - ); - sky130_fd_sc_hd__clkinv_1 _1317_ ( - .A(_0829_), - .Y(_0408_) - ); - sky130_fd_sc_hd__clkinv_1 _1318_ ( - .A(_0829_), - .Y(_0409_) - ); - sky130_fd_sc_hd__clkinv_1 _1319_ ( - .A(_0829_), - .Y(_0410_) - ); - sky130_fd_sc_hd__clkinv_1 _1320_ ( - .A(_0829_), - .Y(_0411_) - ); - sky130_fd_sc_hd__clkinv_1 _1321_ ( - .A(_0829_), - .Y(_0412_) - ); - sky130_fd_sc_hd__clkinv_1 _1322_ ( - .A(_0829_), - .Y(_0413_) - ); - sky130_fd_sc_hd__clkinv_1 _1323_ ( - .A(_0829_), - .Y(_0414_) - ); - sky130_fd_sc_hd__clkinv_1 _1324_ ( - .A(_0829_), - .Y(_0415_) - ); - sky130_fd_sc_hd__clkinv_1 _1325_ ( - .A(_0829_), - .Y(_0416_) - ); - sky130_fd_sc_hd__clkinv_1 _1326_ ( - .A(_0829_), - .Y(_0417_) - ); - sky130_fd_sc_hd__clkinv_1 _1327_ ( - .A(_0829_), - .Y(_0418_) - ); - sky130_fd_sc_hd__clkinv_1 _1328_ ( - .A(_0829_), - .Y(_0419_) - ); - sky130_fd_sc_hd__clkinv_1 _1329_ ( - .A(_0829_), - .Y(_0420_) - ); - sky130_fd_sc_hd__clkinv_1 _1330_ ( - .A(_0829_), - .Y(_0421_) - ); - sky130_fd_sc_hd__clkinv_1 _1331_ ( - .A(_0829_), - .Y(_0422_) - ); - sky130_fd_sc_hd__clkinv_1 _1332_ ( - .A(_0829_), - .Y(_0423_) - ); - sky130_fd_sc_hd__clkinv_1 _1333_ ( - .A(_0829_), - .Y(_0424_) - ); - sky130_fd_sc_hd__clkinv_1 _1334_ ( - .A(_0829_), - .Y(_0425_) - ); - sky130_fd_sc_hd__clkinv_1 _1335_ ( - .A(_0829_), - .Y(_0426_) - ); - sky130_fd_sc_hd__clkinv_1 _1336_ ( - .A(_0829_), - .Y(_0427_) - ); - sky130_fd_sc_hd__clkinv_1 _1337_ ( - .A(_0829_), - .Y(_0428_) - ); - sky130_fd_sc_hd__clkinv_1 _1338_ ( - .A(_0829_), - .Y(_0429_) - ); - sky130_fd_sc_hd__clkinv_1 _1339_ ( - .A(_0829_), - .Y(_0430_) - ); - sky130_fd_sc_hd__clkinv_1 _1340_ ( - .A(_0829_), - .Y(_0431_) - ); - sky130_fd_sc_hd__clkinv_1 _1341_ ( - .A(_0829_), - .Y(_0432_) - ); - sky130_fd_sc_hd__clkinv_1 _1342_ ( - .A(_0829_), - .Y(_0433_) - ); - sky130_fd_sc_hd__clkinv_1 _1343_ ( - .A(_0829_), - .Y(_0434_) - ); - sky130_fd_sc_hd__clkinv_1 _1344_ ( - .A(_0829_), - .Y(_0435_) - ); - sky130_fd_sc_hd__clkinv_1 _1345_ ( - .A(_0829_), - .Y(_0436_) - ); - sky130_fd_sc_hd__clkinv_1 _1346_ ( - .A(_0829_), - .Y(_0437_) - ); - sky130_fd_sc_hd__clkinv_1 _1347_ ( - .A(_0829_), - .Y(_0438_) - ); - sky130_fd_sc_hd__clkinv_1 _1348_ ( - .A(_0829_), - .Y(_0439_) - ); - sky130_fd_sc_hd__clkinv_1 _1349_ ( - .A(_0829_), - .Y(_0440_) - ); - sky130_fd_sc_hd__clkinv_1 _1350_ ( - .A(_0829_), - .Y(_0441_) - ); - sky130_fd_sc_hd__clkinv_1 _1351_ ( - .A(_0829_), - .Y(_0442_) - ); - sky130_fd_sc_hd__clkinv_1 _1352_ ( - .A(_0829_), - .Y(_0443_) - ); - sky130_fd_sc_hd__clkinv_1 _1353_ ( - .A(_0829_), - .Y(_0444_) - ); - sky130_fd_sc_hd__clkinv_1 _1354_ ( - .A(_0829_), - .Y(_0445_) - ); - sky130_fd_sc_hd__clkinv_1 _1355_ ( - .A(_0829_), - .Y(_0446_) - ); - sky130_fd_sc_hd__clkinv_1 _1356_ ( - .A(_0829_), - .Y(_0447_) - ); - sky130_fd_sc_hd__clkinv_1 _1357_ ( - .A(_0829_), - .Y(_0448_) - ); - sky130_fd_sc_hd__clkinv_1 _1358_ ( - .A(_0829_), - .Y(_0449_) - ); - sky130_fd_sc_hd__clkinv_1 _1359_ ( - .A(_0829_), - .Y(_0450_) - ); - sky130_fd_sc_hd__clkinv_1 _1360_ ( - .A(_0829_), - .Y(_0451_) - ); - sky130_fd_sc_hd__clkinv_1 _1361_ ( - .A(_0829_), - .Y(_0452_) - ); - sky130_fd_sc_hd__clkinv_1 _1362_ ( - .A(_0829_), - .Y(_0453_) - ); - sky130_fd_sc_hd__clkinv_1 _1363_ ( - .A(_0829_), - .Y(_0454_) - ); - sky130_fd_sc_hd__clkinv_1 _1364_ ( - .A(_0829_), - .Y(_0455_) - ); - sky130_fd_sc_hd__clkinv_1 _1365_ ( - .A(_0829_), - .Y(_0456_) - ); - sky130_fd_sc_hd__clkinv_1 _1366_ ( - .A(_0829_), - .Y(_0457_) - ); - sky130_fd_sc_hd__clkinv_1 _1367_ ( - .A(_0829_), - .Y(_0458_) - ); - sky130_fd_sc_hd__clkinv_1 _1368_ ( - .A(_0829_), - .Y(_0459_) - ); - sky130_fd_sc_hd__clkinv_1 _1369_ ( - .A(_0829_), - .Y(_0460_) - ); - sky130_fd_sc_hd__clkinv_1 _1370_ ( - .A(_0829_), - .Y(_0461_) - ); - sky130_fd_sc_hd__clkinv_1 _1371_ ( - .A(_0829_), - .Y(_0462_) - ); - sky130_fd_sc_hd__clkinv_1 _1372_ ( - .A(_0829_), - .Y(_0463_) - ); - sky130_fd_sc_hd__clkinv_1 _1373_ ( - .A(_0829_), - .Y(_0464_) - ); - sky130_fd_sc_hd__clkinv_1 _1374_ ( - .A(_0829_), - .Y(_0465_) - ); - sky130_fd_sc_hd__clkinv_1 _1375_ ( - .A(_0829_), - .Y(_0466_) - ); - sky130_fd_sc_hd__clkinv_1 _1376_ ( - .A(_0829_), - .Y(_0467_) - ); - sky130_fd_sc_hd__clkinv_1 _1377_ ( - .A(_0829_), - .Y(_0468_) - ); - sky130_fd_sc_hd__clkinv_1 _1378_ ( - .A(_0829_), - .Y(_0469_) - ); - sky130_fd_sc_hd__clkinv_1 _1379_ ( - .A(_0829_), - .Y(_0470_) - ); - sky130_fd_sc_hd__clkinv_1 _1380_ ( - .A(_0829_), - .Y(_0471_) - ); - sky130_fd_sc_hd__clkinv_1 _1381_ ( - .A(_0829_), - .Y(_0472_) - ); - sky130_fd_sc_hd__clkinv_1 _1382_ ( - .A(_0829_), - .Y(_0473_) - ); - sky130_fd_sc_hd__clkinv_1 _1383_ ( - .A(_0829_), - .Y(_0474_) - ); - sky130_fd_sc_hd__clkinv_1 _1384_ ( - .A(_0829_), - .Y(_0475_) - ); - sky130_fd_sc_hd__clkinv_1 _1385_ ( - .A(_0829_), - .Y(_0476_) - ); - sky130_fd_sc_hd__clkinv_1 _1386_ ( - .A(_0829_), - .Y(_0477_) - ); - sky130_fd_sc_hd__clkinv_1 _1387_ ( - .A(_0829_), - .Y(_0478_) - ); - sky130_fd_sc_hd__clkinv_1 _1388_ ( - .A(_0829_), - .Y(_0479_) - ); - sky130_fd_sc_hd__clkinv_1 _1389_ ( - .A(_0829_), - .Y(_0480_) - ); - sky130_fd_sc_hd__clkinv_1 _1390_ ( - .A(_0829_), - .Y(_0481_) - ); - sky130_fd_sc_hd__clkinv_1 _1391_ ( - .A(_0829_), - .Y(_0482_) - ); - sky130_fd_sc_hd__clkinv_1 _1392_ ( - .A(_0829_), - .Y(_0483_) - ); - sky130_fd_sc_hd__clkinv_1 _1393_ ( - .A(_0829_), - .Y(_0484_) - ); - sky130_fd_sc_hd__clkinv_1 _1394_ ( - .A(_0829_), - .Y(_0485_) - ); - sky130_fd_sc_hd__clkinv_1 _1395_ ( - .A(_0829_), - .Y(_0486_) - ); - sky130_fd_sc_hd__clkinv_1 _1396_ ( - .A(_0829_), - .Y(_0487_) - ); - sky130_fd_sc_hd__clkinv_1 _1397_ ( - .A(_0829_), - .Y(_0488_) - ); - sky130_fd_sc_hd__clkinv_1 _1398_ ( - .A(_0829_), - .Y(_0489_) - ); - sky130_fd_sc_hd__clkinv_1 _1399_ ( - .A(_0829_), - .Y(_0490_) - ); - sky130_fd_sc_hd__clkinv_1 _1400_ ( - .A(_0829_), - .Y(_0491_) - ); - sky130_fd_sc_hd__clkinv_1 _1401_ ( - .A(_0829_), - .Y(_0492_) - ); - sky130_fd_sc_hd__clkinv_1 _1402_ ( - .A(_0829_), - .Y(_0493_) - ); - sky130_fd_sc_hd__clkinv_1 _1403_ ( - .A(_0829_), - .Y(_0494_) - ); - sky130_fd_sc_hd__clkinv_1 _1404_ ( - .A(_0829_), - .Y(_0495_) - ); - sky130_fd_sc_hd__clkinv_1 _1405_ ( - .A(_0829_), - .Y(_0496_) - ); - sky130_fd_sc_hd__clkinv_1 _1406_ ( - .A(_0829_), - .Y(_0497_) - ); - sky130_fd_sc_hd__clkinv_1 _1407_ ( - .A(_0829_), - .Y(_0498_) - ); - sky130_fd_sc_hd__clkinv_1 _1408_ ( - .A(_0829_), - .Y(_0499_) - ); - sky130_fd_sc_hd__clkinv_1 _1409_ ( - .A(_0829_), - .Y(_0500_) - ); - sky130_fd_sc_hd__clkinv_1 _1410_ ( - .A(_0829_), - .Y(_0501_) - ); - sky130_fd_sc_hd__clkinv_1 _1411_ ( - .A(_0829_), - .Y(_0502_) - ); - sky130_fd_sc_hd__clkinv_1 _1412_ ( - .A(_0829_), - .Y(_0503_) - ); - sky130_fd_sc_hd__clkinv_1 _1413_ ( - .A(_0829_), - .Y(_0504_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1414_ ( - .CLK(clk), - .D(_0831_[22]), - .Q(counter_tmp[22]), - .RESET_B(_0832_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1415_ ( - .CLK(clk), - .D(_0831_[23]), - .Q(counter_tmp[23]), - .RESET_B(_0833_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1416_ ( - .CLK(clk), - .D(_0831_[24]), - .Q(counter_tmp[24]), - .RESET_B(_0834_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1417_ ( - .CLK(clk), - .D(_0831_[25]), - .Q(counter_tmp[25]), - .RESET_B(_0835_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1418_ ( - .CLK(clk), - .D(_0831_[26]), - .Q(counter_tmp[26]), - .RESET_B(_0836_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1419_ ( - .CLK(clk), - .D(_0831_[27]), - .Q(counter_tmp[27]), - .RESET_B(_0837_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1420_ ( - .CLK(clk), - .D(_0831_[28]), - .Q(counter_tmp[28]), - .RESET_B(_0838_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1421_ ( - .CLK(clk), - .D(_0831_[29]), - .Q(counter_tmp[29]), - .RESET_B(_0839_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1422_ ( - .CLK(clk), - .D(_0831_[30]), - .Q(counter_tmp[30]), - .RESET_B(_0840_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1423_ ( - .CLK(clk), - .D(_0831_[31]), - .Q(counter_tmp[31]), - .RESET_B(_0841_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1424_ ( - .CLK(clk), - .D(_0831_[32]), - .Q(counter_tmp[32]), - .RESET_B(_0842_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1425_ ( - .CLK(clk), - .D(_0831_[33]), - .Q(counter_tmp[33]), - .RESET_B(_0843_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1426_ ( - .CLK(clk), - .D(_0831_[34]), - .Q(counter_tmp[34]), - .RESET_B(_0844_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1427_ ( - .CLK(clk), - .D(_0831_[35]), - .Q(counter_tmp[35]), - .RESET_B(_0845_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1428_ ( - .CLK(clk), - .D(_0831_[36]), - .Q(counter_tmp[36]), - .RESET_B(_0846_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1429_ ( - .CLK(clk), - .D(_0831_[37]), - .Q(counter_tmp[37]), - .RESET_B(_0847_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1430_ ( - .CLK(clk), - .D(_0831_[38]), - .Q(counter_tmp[38]), - .RESET_B(_0848_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1431_ ( - .CLK(clk), - .D(_0831_[39]), - .Q(counter_tmp[39]), - .RESET_B(_0849_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1432_ ( - .CLK(clk), - .D(_0831_[40]), - .Q(counter_tmp[40]), - .RESET_B(_0850_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1433_ ( - .CLK(clk), - .D(_0831_[41]), - .Q(counter_tmp[41]), - .RESET_B(_0851_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1434_ ( - .CLK(clk), - .D(_0831_[42]), - .Q(counter_tmp[42]), - .RESET_B(_0852_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1435_ ( - .CLK(clk), - .D(_0831_[43]), - .Q(counter_tmp[43]), - .RESET_B(_0853_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1436_ ( - .CLK(clk), - .D(_0831_[44]), - .Q(counter_tmp[44]), - .RESET_B(_0854_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1437_ ( - .CLK(clk), - .D(_0831_[45]), - .Q(counter_tmp[45]), - .RESET_B(_0855_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1438_ ( - .CLK(clk), - .D(_0831_[46]), - .Q(counter_tmp[46]), - .RESET_B(_0856_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1439_ ( - .CLK(clk), - .D(_0831_[47]), - .Q(counter_tmp[47]), - .RESET_B(_0857_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1440_ ( - .CLK(clk), - .D(_0831_[48]), - .Q(counter_tmp[48]), - .RESET_B(_0858_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1441_ ( - .CLK(clk), - .D(_0831_[49]), - .Q(counter_tmp[49]), - .RESET_B(_0859_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1442_ ( - .CLK(clk), - .D(_0831_[50]), - .Q(counter_tmp[50]), - .RESET_B(_0860_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1443_ ( - .CLK(clk), - .D(_0831_[51]), - .Q(counter_tmp[51]), - .RESET_B(_0861_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1444_ ( - .CLK(clk), - .D(_0831_[52]), - .Q(counter_tmp[52]), - .RESET_B(_0862_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1445_ ( - .CLK(clk), - .D(_0831_[53]), - .Q(counter_tmp[53]), - .RESET_B(_0863_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1446_ ( - .CLK(clk), - .D(_0831_[54]), - .Q(counter_tmp[54]), - .RESET_B(_0864_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1447_ ( - .CLK(clk), - .D(_0831_[55]), - .Q(counter_tmp[55]), - .RESET_B(_0865_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1448_ ( - .CLK(clk), - .D(_0831_[56]), - .Q(counter_tmp[56]), - .RESET_B(_0866_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1449_ ( - .CLK(clk), - .D(_0831_[57]), - .Q(counter_tmp[57]), - .RESET_B(_0867_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1450_ ( - .CLK(clk), - .D(_0831_[58]), - .Q(counter_tmp[58]), - .RESET_B(_0868_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1451_ ( - .CLK(clk), - .D(_0831_[59]), - .Q(counter_tmp[59]), - .RESET_B(_0869_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1452_ ( - .CLK(clk), - .D(_0831_[60]), - .Q(counter_tmp[60]), - .RESET_B(_0870_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1453_ ( - .CLK(clk), - .D(_0831_[61]), - .Q(counter_tmp[61]), - .RESET_B(_0871_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1454_ ( - .CLK(clk), - .D(_0831_[62]), - .Q(counter_tmp[62]), - .RESET_B(_0872_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1455_ ( - .CLK(clk), - .D(_0831_[63]), - .Q(counter_tmp[63]), - .RESET_B(_0873_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1456_ ( - .CLK(clk), - .D(_0831_[64]), - .Q(counter_tmp[64]), - .RESET_B(_0874_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1457_ ( - .CLK(clk), - .D(_0831_[65]), - .Q(counter_tmp[65]), - .RESET_B(_0875_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1458_ ( - .CLK(clk), - .D(_0831_[66]), - .Q(counter_tmp[66]), - .RESET_B(_0876_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1459_ ( - .CLK(clk), - .D(_0831_[67]), - .Q(counter_tmp[67]), - .RESET_B(_0877_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1460_ ( - .CLK(clk), - .D(_0831_[68]), - .Q(counter_tmp[68]), - .RESET_B(_0878_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1461_ ( - .CLK(clk), - .D(_0831_[69]), - .Q(counter_tmp[69]), - .RESET_B(_0879_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1462_ ( - .CLK(clk), - .D(_0831_[70]), - .Q(counter_tmp[70]), - .RESET_B(_0880_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1463_ ( - .CLK(clk), - .D(_0831_[71]), - .Q(counter_tmp[71]), - .RESET_B(_0881_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1464_ ( - .CLK(clk), - .D(_0831_[72]), - .Q(counter_tmp[72]), - .RESET_B(_0882_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1465_ ( - .CLK(clk), - .D(_0831_[73]), - .Q(counter_tmp[73]), - .RESET_B(_0883_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1466_ ( - .CLK(clk), - .D(_0831_[74]), - .Q(counter_tmp[74]), - .RESET_B(_0884_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1467_ ( - .CLK(clk), - .D(_0831_[75]), - .Q(counter_tmp[75]), - .RESET_B(_0885_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1468_ ( - .CLK(clk), - .D(_0831_[76]), - .Q(counter_tmp[76]), - .RESET_B(_0886_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1469_ ( - .CLK(clk), - .D(_0831_[77]), - .Q(counter_tmp[77]), - .RESET_B(_0887_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1470_ ( - .CLK(clk), - .D(_0831_[78]), - .Q(counter_tmp[78]), - .RESET_B(_0888_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1471_ ( - .CLK(clk), - .D(_0831_[79]), - .Q(counter_tmp[79]), - .RESET_B(_0889_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1472_ ( - .CLK(clk), - .D(_0831_[80]), - .Q(counter_tmp[80]), - .RESET_B(_0890_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1473_ ( - .CLK(clk), - .D(_0831_[81]), - .Q(counter_tmp[81]), - .RESET_B(_0891_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1474_ ( - .CLK(clk), - .D(_0831_[82]), - .Q(counter_tmp[82]), - .RESET_B(_0892_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1475_ ( - .CLK(clk), - .D(_0831_[83]), - .Q(counter_tmp[83]), - .RESET_B(_0893_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1476_ ( - .CLK(clk), - .D(_0831_[84]), - .Q(counter_tmp[84]), - .RESET_B(_0894_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1477_ ( - .CLK(clk), - .D(_0831_[85]), - .Q(counter_tmp[85]), - .RESET_B(_0895_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1478_ ( - .CLK(clk), - .D(_0831_[86]), - .Q(counter_tmp[86]), - .RESET_B(_0896_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1479_ ( - .CLK(clk), - .D(_0831_[87]), - .Q(counter_tmp[87]), - .RESET_B(_0897_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1480_ ( - .CLK(clk), - .D(_0831_[88]), - .Q(counter_tmp[88]), - .RESET_B(_0898_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1481_ ( - .CLK(clk), - .D(_0831_[89]), - .Q(counter_tmp[89]), - .RESET_B(_0899_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1482_ ( - .CLK(clk), - .D(_0831_[90]), - .Q(counter_tmp[90]), - .RESET_B(_0900_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1483_ ( - .CLK(clk), - .D(_0831_[91]), - .Q(counter_tmp[91]), - .RESET_B(_0901_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1484_ ( - .CLK(clk), - .D(_0831_[92]), - .Q(counter_tmp[92]), - .RESET_B(_0902_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1485_ ( - .CLK(clk), - .D(_0831_[93]), - .Q(counter_tmp[93]), - .RESET_B(_0903_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1486_ ( - .CLK(clk), - .D(_0831_[94]), - .Q(counter_tmp[94]), - .RESET_B(_0904_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1487_ ( - .CLK(clk), - .D(_0831_[95]), - .Q(counter_tmp[95]), - .RESET_B(_0905_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1488_ ( - .CLK(clk), - .D(_0831_[96]), - .Q(counter_tmp[96]), - .RESET_B(_0906_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1489_ ( - .CLK(clk), - .D(_0831_[97]), - .Q(counter_tmp[97]), - .RESET_B(_0907_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1490_ ( - .CLK(clk), - .D(_0831_[98]), - .Q(counter_tmp[98]), - .RESET_B(_0908_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1491_ ( - .CLK(clk), - .D(_0831_[99]), - .Q(counter_tmp[99]), - .RESET_B(_0909_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1492_ ( - .CLK(clk), - .D(_0831_[100]), - .Q(counter_tmp[100]), - .RESET_B(_0910_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1493_ ( - .CLK(clk), - .D(_0831_[101]), - .Q(counter_tmp[101]), - .RESET_B(_0911_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1494_ ( - .CLK(clk), - .D(_0831_[102]), - .Q(counter_tmp[102]), - .RESET_B(_0912_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1495_ ( - .CLK(clk), - .D(_0831_[103]), - .Q(counter_tmp[103]), - .RESET_B(_0913_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1496_ ( - .CLK(clk), - .D(_0831_[104]), - .Q(counter_tmp[104]), - .RESET_B(_0914_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1497_ ( - .CLK(clk), - .D(_0831_[105]), - .Q(counter_tmp[105]), - .RESET_B(_0915_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1498_ ( - .CLK(clk), - .D(_0831_[106]), - .Q(counter_tmp[106]), - .RESET_B(_0916_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1499_ ( - .CLK(clk), - .D(_0831_[107]), - .Q(counter_tmp[107]), - .RESET_B(_0917_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1500_ ( - .CLK(clk), - .D(_0831_[108]), - .Q(counter_tmp[108]), - .RESET_B(_0918_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1501_ ( - .CLK(clk), - .D(_0831_[109]), - .Q(counter_tmp[109]), - .RESET_B(_0919_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1502_ ( - .CLK(clk), - .D(_0831_[110]), - .Q(counter_tmp[110]), - .RESET_B(_0920_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1503_ ( - .CLK(clk), - .D(_0831_[111]), - .Q(counter_tmp[111]), - .RESET_B(_0921_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1504_ ( - .CLK(clk), - .D(_0831_[112]), - .Q(counter_tmp[112]), - .RESET_B(_0922_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1505_ ( - .CLK(clk), - .D(_0831_[113]), - .Q(counter_tmp[113]), - .RESET_B(_0923_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1506_ ( - .CLK(clk), - .D(_0831_[114]), - .Q(counter_tmp[114]), - .RESET_B(_0924_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1507_ ( - .CLK(clk), - .D(_0831_[115]), - .Q(counter_tmp[115]), - .RESET_B(_0925_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1508_ ( - .CLK(clk), - .D(_0831_[116]), - .Q(counter_tmp[116]), - .RESET_B(_0926_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1509_ ( - .CLK(clk), - .D(_0831_[117]), - .Q(counter_tmp[117]), - .RESET_B(_0927_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1510_ ( - .CLK(clk), - .D(_0831_[118]), - .Q(counter_tmp[118]), - .RESET_B(_0928_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1511_ ( - .CLK(clk), - .D(_0831_[119]), - .Q(counter_tmp[119]), - .RESET_B(_0929_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1512_ ( - .CLK(clk), - .D(_0831_[120]), - .Q(counter_tmp[120]), - .RESET_B(_0930_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1513_ ( - .CLK(clk), - .D(_0831_[121]), - .Q(counter_tmp[121]), - .RESET_B(_0931_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1514_ ( - .CLK(clk), - .D(_0831_[122]), - .Q(counter_tmp[122]), - .RESET_B(_0932_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1515_ ( - .CLK(clk), - .D(_0831_[123]), - .Q(counter_tmp[123]), - .RESET_B(_0933_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1516_ ( - .CLK(clk), - .D(_0831_[124]), - .Q(counter_tmp[124]), - .RESET_B(_0934_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1517_ ( - .CLK(clk), - .D(_0831_[125]), - .Q(counter_tmp[125]), - .RESET_B(_0935_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1518_ ( - .CLK(clk), - .D(_0831_[126]), - .Q(counter_tmp[126]), - .RESET_B(_0936_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1519_ ( - .CLK(clk), - .D(_0831_[127]), - .Q(counter_tmp[127]), - .RESET_B(_0937_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1520_ ( - .CLK(clk), - .D(_0831_[128]), - .Q(counter_tmp[128]), - .RESET_B(_0938_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1521_ ( - .CLK(clk), - .D(_0830_[0]), - .Q(counter_tmp[0]), - .RESET_B(_0939_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1522_ ( - .CLK(clk), - .D(_0831_[1]), - .Q(counter_tmp[1]), - .RESET_B(_0940_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1523_ ( - .CLK(clk), - .D(_0831_[2]), - .Q(counter_tmp[2]), - .RESET_B(_0941_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1524_ ( - .CLK(clk), - .D(_0831_[3]), - .Q(counter_tmp[3]), - .RESET_B(_0942_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1525_ ( - .CLK(clk), - .D(_0831_[4]), - .Q(counter_tmp[4]), - .RESET_B(_0943_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1526_ ( - .CLK(clk), - .D(_0831_[5]), - .Q(counter_tmp[5]), - .RESET_B(_0944_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1527_ ( - .CLK(clk), - .D(_0831_[6]), - .Q(counter_tmp[6]), - .RESET_B(_0945_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1528_ ( - .CLK(clk), - .D(_0831_[7]), - .Q(counter_tmp[7]), - .RESET_B(_0946_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1529_ ( - .CLK(clk), - .D(_0831_[8]), - .Q(counter_tmp[8]), - .RESET_B(_0947_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1530_ ( - .CLK(clk), - .D(_0831_[9]), - .Q(counter_tmp[9]), - .RESET_B(_0948_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1531_ ( - .CLK(clk), - .D(_0831_[10]), - .Q(counter_tmp[10]), - .RESET_B(_0949_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1532_ ( - .CLK(clk), - .D(_0831_[11]), - .Q(counter_tmp[11]), - .RESET_B(_0950_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1533_ ( - .CLK(clk), - .D(_0831_[12]), - .Q(counter_tmp[12]), - .RESET_B(_0951_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1534_ ( - .CLK(clk), - .D(_0831_[13]), - .Q(counter_tmp[13]), - .RESET_B(_0952_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1535_ ( - .CLK(clk), - .D(_0831_[14]), - .Q(counter_tmp[14]), - .RESET_B(_0953_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1536_ ( - .CLK(clk), - .D(_0831_[15]), - .Q(counter_tmp[15]), - .RESET_B(_0954_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1537_ ( - .CLK(clk), - .D(_0831_[16]), - .Q(counter_tmp[16]), - .RESET_B(_0955_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1538_ ( - .CLK(clk), - .D(_0831_[17]), - .Q(counter_tmp[17]), - .RESET_B(_0956_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1539_ ( - .CLK(clk), - .D(_0831_[18]), - .Q(counter_tmp[18]), - .RESET_B(_0957_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1540_ ( - .CLK(clk), - .D(_0831_[19]), - .Q(counter_tmp[19]), - .RESET_B(_0958_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1541_ ( - .CLK(clk), - .D(_0831_[20]), - .Q(counter_tmp[20]), - .RESET_B(_0959_) - ); - (* src = "synthesis/tests/counter.v:22.3-28.6" *) - sky130_fd_sc_hd__dfrtp_1 _1542_ ( - .CLK(clk), - .D(_0831_[21]), - .Q(counter_tmp[21]), - .RESET_B(_0960_) - ); - assign _0830_[128:1] = counter_tmp[128:1]; - assign _0831_[0] = _0830_[0]; - assign out = counter_tmp; - assign _0609_ = counter_tmp[78]; - assign _0610_ = counter_tmp[79]; - assign _0831_[79] = _0352_; - assign _0831_[78] = _0351_; - assign _0539_ = counter_tmp[14]; - assign _0540_ = counter_tmp[15]; - assign _0831_[15] = _0282_; - assign _0568_ = counter_tmp[40]; - assign _0831_[40] = _0310_; - assign _0583_ = counter_tmp[54]; - assign _0584_ = counter_tmp[55]; - assign _0831_[55] = _0326_; - assign _0831_[54] = _0325_; - assign _0543_ = counter_tmp[18]; - assign _0544_ = counter_tmp[19]; - assign _0831_[19] = _0286_; - assign _0516_ = counter_tmp[10]; - assign _0831_[10] = _0258_; - assign _0572_ = counter_tmp[44]; - assign _0831_[44] = _0314_; - assign _0545_ = counter_tmp[1]; - assign _0505_ = counter_tmp[0]; - assign _0546_ = counter_tmp[20]; - assign _0547_ = counter_tmp[21]; - assign _0831_[21] = _0289_; - assign _0831_[20] = _0288_; - assign _0574_ = counter_tmp[46]; - assign _0575_ = counter_tmp[47]; - assign _0831_[47] = _0317_; - assign _0831_[14] = _0281_; - assign _0537_ = counter_tmp[12]; - assign _0538_ = counter_tmp[13]; - assign _0549_ = counter_tmp[23]; - assign _0831_[23] = _0291_; - assign _0548_ = counter_tmp[22]; - assign _0831_[22] = _0290_; - assign _0553_ = counter_tmp[27]; - assign _0831_[27] = _0295_; - assign _0552_ = counter_tmp[26]; - assign _0831_[26] = _0294_; - assign _0831_[1] = _0287_; - assign _0830_[0] = _0247_; - assign _0554_ = counter_tmp[28]; - assign _0831_[28] = _0296_; - assign _0530_ = counter_tmp[122]; - assign _0831_[122] = _0272_; - assign _0567_ = counter_tmp[3]; - assign _0831_[3] = _0309_; - assign _0556_ = counter_tmp[2]; - assign _0831_[2] = _0298_; - assign _0555_ = counter_tmp[29]; - assign _0831_[29] = _0297_; - assign _0589_ = counter_tmp[5]; - assign _0831_[5] = _0331_; - assign _0578_ = counter_tmp[4]; - assign _0831_[4] = _0320_; - assign _0557_ = counter_tmp[30]; - assign _0558_ = counter_tmp[31]; - assign _0831_[31] = _0300_; - assign _0831_[30] = _0299_; - assign _0600_ = counter_tmp[6]; - assign _0831_[6] = _0342_; - assign _0622_ = counter_tmp[8]; - assign _0831_[8] = _0364_; - assign _0611_ = counter_tmp[7]; - assign _0831_[7] = _0353_; - assign _0559_ = counter_tmp[32]; - assign _0560_ = counter_tmp[33]; - assign _0831_[33] = _0302_; - assign _0831_[32] = _0301_; - assign _0633_ = counter_tmp[9]; - assign _0831_[9] = _0375_; - assign _0562_ = counter_tmp[35]; - assign _0831_[35] = _0304_; - assign _0561_ = counter_tmp[34]; - assign _0831_[34] = _0303_; - assign _0527_ = counter_tmp[11]; - assign _0831_[11] = _0269_; - assign _0563_ = counter_tmp[36]; - assign _0831_[36] = _0305_; - assign _0550_ = counter_tmp[24]; - assign _0551_ = counter_tmp[25]; - assign _0831_[25] = _0293_; - assign _0831_[24] = _0292_; - assign _0614_ = counter_tmp[82]; - assign _0615_ = counter_tmp[83]; - assign _0831_[83] = _0357_; - assign _0626_ = counter_tmp[93]; - assign _0831_[93] = _0368_; - assign _0625_ = counter_tmp[92]; - assign _0831_[92] = _0367_; - assign _0531_ = counter_tmp[123]; - assign _0831_[123] = _0273_; - assign _0576_ = counter_tmp[48]; - assign _0831_[48] = _0318_; - assign _0623_ = counter_tmp[90]; - assign _0831_[90] = _0365_; - assign _0620_ = counter_tmp[88]; - assign _0621_ = counter_tmp[89]; - assign _0624_ = counter_tmp[91]; - assign _0831_[91] = _0366_; - assign _0616_ = counter_tmp[84]; - assign _0617_ = counter_tmp[85]; - assign _0831_[85] = _0359_; - assign _0831_[84] = _0358_; - assign _0590_ = counter_tmp[60]; - assign _0831_[60] = _0332_; - assign _0585_ = counter_tmp[56]; - assign _0586_ = counter_tmp[57]; - assign _0831_[57] = _0328_; - assign _0587_ = counter_tmp[58]; - assign _0588_ = counter_tmp[59]; - assign _0831_[59] = _0330_; - assign _0831_[58] = _0329_; - assign _0831_[56] = _0327_; - assign _0601_ = counter_tmp[70]; - assign _0602_ = counter_tmp[71]; - assign _0831_[71] = _0344_; - assign _0831_[70] = _0343_; - assign _0603_ = counter_tmp[72]; - assign _0604_ = counter_tmp[73]; - assign _0831_[73] = _0346_; - assign _0831_[72] = _0345_; - assign _0598_ = counter_tmp[68]; - assign _0599_ = counter_tmp[69]; - assign _0831_[69] = _0341_; - assign _0831_[18] = _0285_; - assign _0541_ = counter_tmp[16]; - assign _0542_ = counter_tmp[17]; - assign _0597_ = counter_tmp[67]; - assign _0831_[67] = _0339_; - assign _0596_ = counter_tmp[66]; - assign _0831_[66] = _0338_; - assign _0831_[68] = _0340_; - assign _0592_ = counter_tmp[62]; - assign _0831_[62] = _0334_; - assign _0591_ = counter_tmp[61]; - assign _0831_[61] = _0333_; - assign _0593_ = counter_tmp[63]; - assign _0831_[63] = _0335_; - assign _0594_ = counter_tmp[64]; - assign _0595_ = counter_tmp[65]; - assign _0831_[65] = _0337_; - assign _0831_[64] = _0336_; - assign _0508_ = counter_tmp[102]; - assign _0831_[102] = _0250_; - assign _0506_ = counter_tmp[100]; - assign _0507_ = counter_tmp[101]; - assign _0606_ = counter_tmp[75]; - assign _0831_[75] = _0348_; - assign _0605_ = counter_tmp[74]; - assign _0831_[74] = _0347_; - assign _0831_[89] = _0363_; - assign _0831_[88] = _0362_; - assign _0581_ = counter_tmp[52]; - assign _0582_ = counter_tmp[53]; - assign _0831_[53] = _0324_; - assign _0577_ = counter_tmp[49]; - assign _0831_[49] = _0319_; - assign _0607_ = counter_tmp[76]; - assign _0608_ = counter_tmp[77]; - assign _0831_[77] = _0350_; - assign _0831_[17] = _0284_; - assign _0831_[16] = _0283_; - assign _0831_[52] = _0323_; - assign _0579_ = counter_tmp[50]; - assign _0580_ = counter_tmp[51]; - assign _0831_[51] = _0322_; - assign _0831_[50] = _0321_; - assign _0534_ = counter_tmp[126]; - assign _0535_ = counter_tmp[127]; - assign _0831_[127] = _0277_; - assign _0532_ = counter_tmp[124]; - assign _0533_ = counter_tmp[125]; - assign _0613_ = counter_tmp[81]; - assign _0831_[81] = _0355_; - assign _0612_ = counter_tmp[80]; - assign _0831_[80] = _0354_; - assign _0522_ = counter_tmp[115]; - assign _0831_[115] = _0264_; - assign _0521_ = counter_tmp[114]; - assign _0831_[114] = _0263_; - assign _0517_ = counter_tmp[110]; - assign _0518_ = counter_tmp[111]; - assign _0831_[111] = _0260_; - assign _0627_ = counter_tmp[94]; - assign _0628_ = counter_tmp[95]; - assign _0831_[95] = _0370_; - assign _0536_ = counter_tmp[128]; - assign _0831_[128] = _0278_; - assign _0831_[126] = _0276_; - assign _0528_ = counter_tmp[120]; - assign _0529_ = counter_tmp[121]; - assign _0831_[121] = _0271_; - assign _0831_[120] = _0270_; - assign _0525_ = counter_tmp[118]; - assign _0526_ = counter_tmp[119]; - assign _0511_ = counter_tmp[105]; - assign _0831_[105] = _0253_; - assign _0510_ = counter_tmp[104]; - assign _0831_[104] = _0252_; - assign _0509_ = counter_tmp[103]; - assign _0831_[103] = _0251_; - assign _0631_ = counter_tmp[98]; - assign _0831_[98] = _0373_; - assign _0629_ = counter_tmp[96]; - assign _0630_ = counter_tmp[97]; - assign _0519_ = counter_tmp[112]; - assign _0520_ = counter_tmp[113]; - assign _0831_[113] = _0262_; - assign _0618_ = counter_tmp[86]; - assign _0831_[86] = _0360_; - assign _0515_ = counter_tmp[109]; - assign _0831_[109] = _0257_; - assign _0514_ = counter_tmp[108]; - assign _0831_[108] = _0256_; - assign _0512_ = counter_tmp[106]; - assign _0831_[94] = _0369_; - assign _0523_ = counter_tmp[116]; - assign _0524_ = counter_tmp[117]; - assign _0831_[117] = _0266_; - assign _0632_ = counter_tmp[99]; - assign _0831_[99] = _0374_; - assign _0831_[119] = _0268_; - assign _0831_[118] = _0267_; - assign _0619_ = counter_tmp[87]; - assign _0831_[87] = _0361_; - assign _0831_[97] = _0372_; - assign _0831_[96] = _0371_; - assign _0831_[125] = _0275_; - assign _0831_[124] = _0274_; - assign _0831_[112] = _0261_; - assign _0831_[101] = _0249_; - assign _0831_[100] = _0248_; - assign _0513_ = counter_tmp[107]; - assign _0831_[107] = _0255_; - assign _0831_[13] = _0280_; - assign _0831_[12] = _0279_; - assign _0831_[106] = _0254_; - assign _0831_[116] = _0265_; - assign _0569_ = counter_tmp[41]; - assign _0831_[41] = _0311_; - assign _0565_ = counter_tmp[38]; - assign _0566_ = counter_tmp[39]; - assign _0831_[39] = _0308_; - assign _0831_[38] = _0307_; - assign _0831_[110] = _0259_; - assign _0831_[82] = _0356_; - assign _0564_ = counter_tmp[37]; - assign _0831_[37] = _0306_; - assign _0831_[76] = _0349_; - assign _0831_[46] = _0316_; - assign _0573_ = counter_tmp[45]; - assign _0831_[45] = _0315_; - assign _0570_ = counter_tmp[42]; - assign _0571_ = counter_tmp[43]; - assign _0831_[43] = _0313_; - assign _0831_[42] = _0312_; - assign _0829_ = reset; - assign _0832_ = _0376_; - assign _0833_ = _0377_; - assign _0834_ = _0378_; - assign _0835_ = _0379_; - assign _0836_ = _0380_; - assign _0837_ = _0381_; - assign _0838_ = _0382_; - assign _0839_ = _0383_; - assign _0840_ = _0384_; - assign _0841_ = _0385_; - assign _0842_ = _0386_; - assign _0843_ = _0387_; - assign _0844_ = _0388_; - assign _0845_ = _0389_; - assign _0846_ = _0390_; - assign _0847_ = _0391_; - assign _0848_ = _0392_; - assign _0849_ = _0393_; - assign _0850_ = _0394_; - assign _0851_ = _0395_; - assign _0852_ = _0396_; - assign _0853_ = _0397_; - assign _0854_ = _0398_; - assign _0855_ = _0399_; - assign _0856_ = _0400_; - assign _0857_ = _0401_; - assign _0858_ = _0402_; - assign _0859_ = _0403_; - assign _0860_ = _0404_; - assign _0861_ = _0405_; - assign _0862_ = _0406_; - assign _0863_ = _0407_; - assign _0864_ = _0408_; - assign _0865_ = _0409_; - assign _0866_ = _0410_; - assign _0867_ = _0411_; - assign _0868_ = _0412_; - assign _0869_ = _0413_; - assign _0870_ = _0414_; - assign _0871_ = _0415_; - assign _0872_ = _0416_; - assign _0873_ = _0417_; - assign _0874_ = _0418_; - assign _0875_ = _0419_; - assign _0876_ = _0420_; - assign _0877_ = _0421_; - assign _0878_ = _0422_; - assign _0879_ = _0423_; - assign _0880_ = _0424_; - assign _0881_ = _0425_; - assign _0882_ = _0426_; - assign _0883_ = _0427_; - assign _0884_ = _0428_; - assign _0885_ = _0429_; - assign _0886_ = _0430_; - assign _0887_ = _0431_; - assign _0888_ = _0432_; - assign _0889_ = _0433_; - assign _0890_ = _0434_; - assign _0891_ = _0435_; - assign _0892_ = _0436_; - assign _0893_ = _0437_; - assign _0894_ = _0438_; - assign _0895_ = _0439_; - assign _0896_ = _0440_; - assign _0897_ = _0441_; - assign _0898_ = _0442_; - assign _0899_ = _0443_; - assign _0900_ = _0444_; - assign _0901_ = _0445_; - assign _0902_ = _0446_; - assign _0903_ = _0447_; - assign _0904_ = _0448_; - assign _0905_ = _0449_; - assign _0906_ = _0450_; - assign _0907_ = _0451_; - assign _0908_ = _0452_; - assign _0909_ = _0453_; - assign _0910_ = _0454_; - assign _0911_ = _0455_; - assign _0912_ = _0456_; - assign _0913_ = _0457_; - assign _0914_ = _0458_; - assign _0915_ = _0459_; - assign _0916_ = _0460_; - assign _0917_ = _0461_; - assign _0918_ = _0462_; - assign _0919_ = _0463_; - assign _0920_ = _0464_; - assign _0921_ = _0465_; - assign _0922_ = _0466_; - assign _0923_ = _0467_; - assign _0924_ = _0468_; - assign _0925_ = _0469_; - assign _0926_ = _0470_; - assign _0927_ = _0471_; - assign _0928_ = _0472_; - assign _0929_ = _0473_; - assign _0930_ = _0474_; - assign _0931_ = _0475_; - assign _0932_ = _0476_; - assign _0933_ = _0477_; - assign _0934_ = _0478_; - assign _0935_ = _0479_; - assign _0936_ = _0480_; - assign _0937_ = _0481_; - assign _0938_ = _0482_; - assign _0939_ = _0483_; - assign _0940_ = _0484_; - assign _0941_ = _0485_; - assign _0942_ = _0486_; - assign _0943_ = _0487_; - assign _0944_ = _0488_; - assign _0945_ = _0489_; - assign _0946_ = _0490_; - assign _0947_ = _0491_; - assign _0948_ = _0492_; - assign _0949_ = _0493_; - assign _0950_ = _0494_; - assign _0951_ = _0495_; - assign _0952_ = _0496_; - assign _0953_ = _0497_; - assign _0954_ = _0498_; - assign _0955_ = _0499_; - assign _0956_ = _0500_; - assign _0957_ = _0501_; - assign _0958_ = _0502_; - assign _0959_ = _0503_; - assign _0960_ = _0504_; -endmodule diff --git a/test/attribute_parsing.ok b/test/attribute_parsing.ok new file mode 100644 index 00000000..96fae92c --- /dev/null +++ b/test/attribute_parsing.ok @@ -0,0 +1,2 @@ +top_instance:"counter" attribute "src" = synthesis/tests/counter.v:16.1-32.10 +instance: _1415_ attribute "src" = synthesis/tests/counter.v:22.3-28.6 diff --git a/test/attribute_parsing.tcl b/test/attribute_parsing.tcl new file mode 100644 index 00000000..e771c6d2 --- /dev/null +++ b/test/attribute_parsing.tcl @@ -0,0 +1,14 @@ +read_liberty ../examples/sky130hd_tt.lib +read_verilog attribute_parsing.v +link_design counter +create_clock -name clk [get_ports clk] -period 50 + +set instance [sta::top_instance] +set cell [$instance cell] +set cell_name [$cell name] +set src_location [$cell get_attribute "src"] +puts "top_instance:\"$cell_name\" attribute \"src\" = $src_location" + +set instance_name "_1415_" +set instance_src_location [[sta::find_instance $instance_name] get_attribute "src"] +puts "instance: $instance_name attribute \"src\" = $instance_src_location" \ No newline at end of file diff --git a/test/attribute_parsing.v b/test/attribute_parsing.v new file mode 100644 index 00000000..bb353e19 --- /dev/null +++ b/test/attribute_parsing.v @@ -0,0 +1,21 @@ +/* Generated by Yosys 0.8+ */ + +(* hdlname = "\\counter" *) +(* top = 1 *) +(* src = "synthesis/tests/counter.v:16.1-32.10" *) +module counter(clk, reset, in, out); + (* src = "synthesis/tests/counter.v:17.14-17.17" *) + input clk; + (* src = "synthesis/tests/counter.v:19.18-19.21" *) + output out; + (* src = "synthesis/tests/counter.v:18.14-18.19" *) + input reset; + input in; + (* src = "synthesis/tests/counter.v:22.3-28.6" *) + sky130_fd_sc_hd__dfrtp_1 _1415_ ( + .CLK(clk), + .D(in), + .Q(out), + .RESET_B(reset) + ); +endmodule diff --git a/test/attribute_parsing_test.ok b/test/attribute_parsing_test.ok deleted file mode 100644 index 3095de4b..00000000 --- a/test/attribute_parsing_test.ok +++ /dev/null @@ -1,74 +0,0 @@ -Startpoint: _1521_ (rising edge-triggered flip-flop clocked by clk) -Endpoint: _1520_ (rising edge-triggered flip-flop clocked by clk) -Path Group: clk -Path Type: max - - Delay Time Description ---------------------------------------------------------- - 0.00 0.00 clock clk (rise edge) - 0.00 0.00 clock network delay (ideal) - 0.00 0.00 ^ _1521_/CLK (sky130_fd_sc_hd__dfrtp_1) - 0.37 0.37 ^ _1521_/Q (sky130_fd_sc_hd__dfrtp_1) - 0.28 0.65 ^ _1016_/X (sky130_fd_sc_hd__and4_1) - 0.27 0.92 ^ _1018_/X (sky130_fd_sc_hd__and4_1) - 0.16 1.08 v _1021_/Y (sky130_fd_sc_hd__nand4_1) - 0.35 1.43 ^ _1024_/Y (sky130_fd_sc_hd__nor4_1) - 0.20 1.63 v _1027_/Y (sky130_fd_sc_hd__nand4_1) - 0.51 2.13 v _1029_/X (sky130_fd_sc_hd__or4_1) - 0.42 2.56 ^ _1032_/Y (sky130_fd_sc_hd__nor4_1) - 0.24 2.79 v _1034_/Y (sky130_fd_sc_hd__nand4_1) - 0.38 3.17 ^ _1036_/Y (sky130_fd_sc_hd__nor4_1) - 0.21 3.38 v _1039_/Y (sky130_fd_sc_hd__nand4_1) - 0.35 3.74 ^ _1041_/Y (sky130_fd_sc_hd__nor4_1) - 0.30 4.04 ^ _1043_/X (sky130_fd_sc_hd__and4_1) - 0.26 4.30 ^ _1045_/X (sky130_fd_sc_hd__and4_1) - 0.16 4.46 v _1048_/Y (sky130_fd_sc_hd__nand4_1) - 0.35 4.81 ^ _1051_/Y (sky130_fd_sc_hd__nor4_1) - 0.21 5.02 v _1054_/Y (sky130_fd_sc_hd__nand4_1) - 0.37 5.40 ^ _1056_/Y (sky130_fd_sc_hd__nor4_1) - 0.21 5.61 v _1059_/Y (sky130_fd_sc_hd__nand4_1) - 0.30 5.91 ^ _1062_/Y (sky130_fd_sc_hd__nor4_1) - 0.20 6.11 v _1065_/Y (sky130_fd_sc_hd__nand4_1) - 0.37 6.48 ^ _1067_/Y (sky130_fd_sc_hd__nor4_1) - 0.21 6.69 v _1070_/Y (sky130_fd_sc_hd__nand4_1) - 0.41 7.10 ^ _1073_/Y (sky130_fd_sc_hd__nor4_1) - 0.30 7.40 ^ _1075_/X (sky130_fd_sc_hd__and4_1) - 0.14 7.54 v _1078_/Y (sky130_fd_sc_hd__nand4_1) - 0.41 7.95 ^ _1103_/Y (sky130_fd_sc_hd__nor4_1) - 0.24 8.19 v _1106_/Y (sky130_fd_sc_hd__nand4_1) - 0.37 8.56 ^ _1109_/Y (sky130_fd_sc_hd__nor4_1) - 0.21 8.77 v _1112_/Y (sky130_fd_sc_hd__nand4_1) - 0.48 9.25 v _1114_/X (sky130_fd_sc_hd__or4_1) - 0.48 9.72 v _1117_/X (sky130_fd_sc_hd__or4_1) - 0.35 10.07 ^ _1119_/Y (sky130_fd_sc_hd__nor4_1) - 0.21 10.28 v _1122_/Y (sky130_fd_sc_hd__nand4_1) - 0.43 10.71 ^ _1124_/Y (sky130_fd_sc_hd__nor4_1) - 0.22 10.93 v _1127_/Y (sky130_fd_sc_hd__nand4_1) - 0.43 11.36 ^ _1129_/Y (sky130_fd_sc_hd__nor4_1) - 0.25 11.61 v _1132_/Y (sky130_fd_sc_hd__nand4_1) - 0.59 12.19 ^ _1136_/Y (sky130_fd_sc_hd__nor4_1) - 0.21 12.40 v _1138_/Y (sky130_fd_sc_hd__nand4_1) - 0.25 12.65 ^ _1139_/X (sky130_fd_sc_hd__lpflow_isobufsrc_1) - 0.30 12.96 ^ _1224_/X (sky130_fd_sc_hd__and4_1) - 0.13 13.08 v _1226_/Y (sky130_fd_sc_hd__nand4_1) - 0.13 13.22 v _1236_/Y (sky130_fd_sc_hd__xnor2_1) - 0.00 13.22 v _1520_/D (sky130_fd_sc_hd__dfrtp_1) - 13.22 data arrival time - - 50.00 50.00 clock clk (rise edge) - 0.00 50.00 clock network delay (ideal) - 0.00 50.00 clock reconvergence pessimism - 50.00 ^ _1520_/CLK (sky130_fd_sc_hd__dfrtp_1) - -0.12 49.88 library setup time - 49.88 data required time ---------------------------------------------------------- - 49.88 data required time - -13.22 data arrival time ---------------------------------------------------------- - 36.66 slack (MET) - - -Critical path length is -36.662277 - -top_instance:"counter" attribute "src" = synthesis/tests/counter.v:16.1-32.10 - diff --git a/test/regression_vars.tcl b/test/regression_vars.tcl index 9ab48816..f6a9ad8c 100644 --- a/test/regression_vars.tcl +++ b/test/regression_vars.tcl @@ -119,10 +119,10 @@ record_example_tests { multi_corner power power_vcd - attribute_parsing_test } record_sta_tests { + attribute_parsing } define_test_group fast [group_tests all] From d0195093781259ee065f50dfec3e1bc8ff33d080 Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Sun, 10 Mar 2024 01:58:10 +0000 Subject: [PATCH 09/12] remove trailing space Signed-off-by: Ethan Mahintorabi --- network/ConcreteLibrary.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network/ConcreteLibrary.cc b/network/ConcreteLibrary.cc index ae486293..c787aad8 100644 --- a/network/ConcreteLibrary.cc +++ b/network/ConcreteLibrary.cc @@ -276,7 +276,7 @@ ConcreteCell::setAttribute(const std::string &key, } std::optional -ConcreteCell::getAttribute(const std::string &key) const +ConcreteCell::getAttribute(const std::string &key) const { if (attribute_map_.hasKey(key)) { return attribute_map_.findKey(key); From a59adbb01947bad1a8a493609a88e86b77f4963a Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Sun, 10 Mar 2024 04:45:55 +0000 Subject: [PATCH 10/12] format yacc file Signed-off-by: Ethan Mahintorabi --- verilog/VerilogParse.yy | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/verilog/VerilogParse.yy b/verilog/VerilogParse.yy index d53ba4ed..e70b74e8 100644 --- a/verilog/VerilogParse.yy +++ b/verilog/VerilogParse.yy @@ -491,16 +491,13 @@ attribute_instance_seq: attribute_instance: ATTRIBUTE_OPEN attr_specs ATTRIBUTE_CLOSED - { - $$ = new sta::VerilogAttributeStmt($2); - } + { $$ = new sta::VerilogAttributeStmt($2); } ; attr_specs: attr_spec - { - $$ = new sta::VerilogAttributeEntrySeq; - $$->push_back($1); + { $$ = new sta::VerilogAttributeEntrySeq; + $$->push_back($1); } | attr_spec ',' attr_spec { $$->push_back($3); } @@ -508,20 +505,18 @@ attr_specs: attr_spec: ID - { $$ = new sta::VerilogAttributeEntry($1, "1");} -| ID '=' attr_spec_value - { - $$ = new sta::VerilogAttributeEntry($1, $3); - } + { $$ = new sta::VerilogAttributeEntry($1, "1"); } +| ID '=' attr_spec_value + { $$ = new sta::VerilogAttributeEntry($1, $3); } ; attr_spec_value: CONSTANT - {$$ = $1;} -| STRING - {$$ = $1;} -| INT - {$$ = sta::stringCopy(std::to_string($1).c_str());} + { $$ = $1; } +| STRING + { $$ = $1; } +| INT + { $$ = sta::stringCopy(std::to_string($1).c_str()); } ; %% From d9244a7289d659d6c3e8bdc109e9200e385083e5 Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Tue, 12 Mar 2024 20:08:54 +0000 Subject: [PATCH 11/12] Removes std::optional from the API This reverts commit 8aef4d549ee958e9c020601a8dedfcd8337d65d9. Signed-off-by: Ethan Mahintorabi --- include/sta/ConcreteLibrary.hh | 3 +-- include/sta/ConcreteNetwork.hh | 11 +++++------ include/sta/Network.hh | 9 ++++----- include/sta/SdcNetwork.hh | 9 ++++----- network/ConcreteLibrary.cc | 6 +++--- network/ConcreteNetwork.cc | 8 ++++---- network/SdcNetwork.cc | 4 ++-- tcl/StaTcl.i | 18 ++---------------- 8 files changed, 25 insertions(+), 43 deletions(-) diff --git a/include/sta/ConcreteLibrary.hh b/include/sta/ConcreteLibrary.hh index 6d44cb4f..afad639d 100644 --- a/include/sta/ConcreteLibrary.hh +++ b/include/sta/ConcreteLibrary.hh @@ -17,7 +17,6 @@ #pragma once #include -#include #include "Vector.hh" #include "Map.hh" @@ -109,7 +108,7 @@ public: void setIsLeaf(bool is_leaf); void setAttribute(const std::string &key, const std::string &value); - std::optional getAttribute(const std::string &key) const; + std::string getAttribute(const std::string &key) const; // Cell acts as port factory. ConcretePort *makePort(const char *name); diff --git a/include/sta/ConcreteNetwork.hh b/include/sta/ConcreteNetwork.hh index 77c41de0..e248ad06 100644 --- a/include/sta/ConcreteNetwork.hh +++ b/include/sta/ConcreteNetwork.hh @@ -17,7 +17,6 @@ #pragma once #include -#include #include "Map.hh" #include "Set.hh" @@ -76,8 +75,8 @@ public: const PatternMatch *pattern) const override; const char *name(const Cell *cell) const override; - std::optional getAttribute(const Cell *cell, - const std::string &key) const override; + std::string getAttribute(const Cell *cell, + const std::string &key) const override; ObjectId id(const Cell *cell) const override; Library *library(const Cell *cell) const override; LibertyCell *libertyCell(Cell *cell) const override; @@ -112,8 +111,8 @@ public: PortMemberIterator *memberIterator(const Port *port) const override; const char *name(const Instance *instance) const override; - std::optional getAttribute(const Instance *inst, - const std::string &key) const override; + std::string getAttribute(const Instance *inst, + const std::string &key) const override; ObjectId id(const Instance *instance) const override; Cell *cell(const Instance *instance) const override; Instance *parent(const Instance *instance) const override; @@ -299,7 +298,7 @@ public: InstanceChildIterator *childIterator() const; void setAttribute(const std::string &key, const std::string &value); - std::optional getAttribute(const std::string &key) const; + std::string getAttribute(const std::string &key) const; void addChild(ConcreteInstance *child); void deleteChild(ConcreteInstance *child); void addPin(ConcretePin *pin); diff --git a/include/sta/Network.hh b/include/sta/Network.hh index 6408aa25..b05a65c6 100644 --- a/include/sta/Network.hh +++ b/include/sta/Network.hh @@ -17,7 +17,6 @@ #pragma once #include -#include #include "Map.hh" #include "StringUtil.hh" @@ -146,8 +145,8 @@ public: // Filename may return null. virtual const char *filename(const Cell *cell) = 0; // Attributes can be null - virtual std::optional getAttribute(const Cell *cell, - const std::string &key) const = 0; + virtual std::string getAttribute(const Cell *cell, + const std::string &key) const = 0; // Name can be a simple, bundle, bus, or bus bit name. virtual Port *findPort(const Cell *cell, const char *name) const = 0; @@ -210,8 +209,8 @@ public: const PatternMatch *pattern) const; virtual InstanceSeq findInstancesHierMatching(const Instance *instance, const PatternMatch *pattern) const; - virtual std::optional getAttribute(const Instance *inst, - const std::string &key) const = 0; + virtual std::string getAttribute(const Instance *inst, + const std::string &key) const = 0; // Hierarchical path name. virtual const char *pathName(const Instance *instance) const; bool pathNameLess(const Instance *inst1, diff --git a/include/sta/SdcNetwork.hh b/include/sta/SdcNetwork.hh index c43c7550..ed929537 100644 --- a/include/sta/SdcNetwork.hh +++ b/include/sta/SdcNetwork.hh @@ -17,7 +17,6 @@ #pragma once #include -#include #include "Network.hh" @@ -46,8 +45,8 @@ public: const PatternMatch *pattern) const override; const char *name(const Cell *cell) const override; - std::optional getAttribute(const Cell *cell, - const std::string &key) const override; + std::string getAttribute(const Cell *cell, + const std::string &key) const override; ObjectId id(const Cell *cell) const override; Library *library(const Cell *cell) const override; LibertyCell *libertyCell(Cell *cell) const override; @@ -83,8 +82,8 @@ public: bool hasMembers(const Port *port) const override; ObjectId id(const Instance *instance) const override; - std::optional getAttribute(const Instance *inst, - const std::string &key) const override; + std::string getAttribute(const Instance *inst, + const std::string &key) const override; Instance *topInstance() const override; Cell *cell(const Instance *instance) const override; Instance *parent(const Instance *instance) const override; diff --git a/network/ConcreteLibrary.cc b/network/ConcreteLibrary.cc index c787aad8..1cbd2a39 100644 --- a/network/ConcreteLibrary.cc +++ b/network/ConcreteLibrary.cc @@ -275,13 +275,13 @@ ConcreteCell::setAttribute(const std::string &key, attribute_map_.insert(key, value); } -std::optional -ConcreteCell::getAttribute(const std::string &key) const +std::string +ConcreteCell::getAttribute(const std::string &key) const { if (attribute_map_.hasKey(key)) { return attribute_map_.findKey(key); } - return {}; + return ""; } ConcretePort * diff --git a/network/ConcreteNetwork.cc b/network/ConcreteNetwork.cc index 166be95e..a75dbc75 100644 --- a/network/ConcreteNetwork.cc +++ b/network/ConcreteNetwork.cc @@ -606,7 +606,7 @@ ConcreteNetwork::filename(const Cell *cell) return ccell->filename(); } -std::optional +std::string ConcreteNetwork::getAttribute(const Cell *cell, const std::string &key) const { @@ -938,7 +938,7 @@ ConcreteNetwork::id(const Instance *instance) const return inst->id(); } -std::optional +std::string ConcreteNetwork::getAttribute(const Instance *inst, const std::string &key) const { @@ -1689,13 +1689,13 @@ ConcreteInstance::setAttribute(const std::string &key, attribute_map_.insert(key, value); } -std::optional +std::string ConcreteInstance::getAttribute(const std::string &key) const { if (attribute_map_.hasKey(key)) { return attribute_map_.findKey(key); } - return {}; + return ""; } void diff --git a/network/SdcNetwork.cc b/network/SdcNetwork.cc index b12ee0af..00d7a07e 100644 --- a/network/SdcNetwork.cc +++ b/network/SdcNetwork.cc @@ -122,7 +122,7 @@ NetworkNameAdapter::id(const Cell *cell) const return network_->id(cell); } -std::optional +std::string NetworkNameAdapter::getAttribute(const Cell *cell, const std::string &key) const { @@ -334,7 +334,7 @@ NetworkNameAdapter::cell(const Instance *instance) const return network_->cell(instance); } -std::optional +std::string NetworkNameAdapter::getAttribute(const Instance *inst, const std::string &key) const { diff --git a/tcl/StaTcl.i b/tcl/StaTcl.i index 7325c15b..4eef9c66 100644 --- a/tcl/StaTcl.i +++ b/tcl/StaTcl.i @@ -4186,14 +4186,7 @@ LibertyCell *liberty_cell() { return cmdNetwork()->libertyCell(self); } bool is_leaf() { return cmdNetwork()->isLeaf(self); } CellPortIterator * port_iterator() { return cmdNetwork()->portIterator(self); } -string get_attribute(const char *key) -{ - std::optional result = cmdNetwork()->getAttribute(self, key); - if (result) { - return result.value(); - } - return ""; -} +string get_attribute(const char *key) { return cmdNetwork()->getAttribute(self, key); } Port * find_port(const char *name) @@ -4418,14 +4411,7 @@ find_pin(const char *name) { return cmdLinkedNetwork()->findPin(self, name); } -string get_attribute(const char *key) -{ - std::optional result = cmdNetwork()->getAttribute(self, key); - if (result) { - return result.value(); - } - return ""; -} +string get_attribute(const char *key) { return cmdNetwork()->getAttribute(self, key); } } // Instance methods %extend InstanceChildIterator { From 8b3e49188c2345fc0b96e6740292ee12eb5d692b Mon Sep 17 00:00:00 2001 From: Ethan Mahintorabi Date: Wed, 13 Mar 2024 00:00:47 +0000 Subject: [PATCH 12/12] moving to string instead of std::string Signed-off-by: Ethan Mahintorabi --- include/sta/ConcreteLibrary.hh | 8 ++++---- include/sta/ConcreteNetwork.hh | 24 ++++++++++++------------ include/sta/Network.hh | 16 ++++++++-------- include/sta/SdcNetwork.hh | 8 ++++---- network/ConcreteLibrary.cc | 8 ++++---- network/ConcreteNetwork.cc | 24 ++++++++++++------------ network/SdcNetwork.cc | 8 ++++---- 7 files changed, 48 insertions(+), 48 deletions(-) diff --git a/include/sta/ConcreteLibrary.hh b/include/sta/ConcreteLibrary.hh index afad639d..bacd91a0 100644 --- a/include/sta/ConcreteLibrary.hh +++ b/include/sta/ConcreteLibrary.hh @@ -38,7 +38,7 @@ class LibertyCell; class LibertyPort; typedef Map ConcreteCellMap; -typedef Map AttributeMap; +typedef Map AttributeMap; typedef Vector ConcretePortSeq; typedef Map ConcretePortMap; typedef ConcreteCellMap::ConstIterator ConcreteLibraryCellIterator; @@ -106,9 +106,9 @@ public: ConcreteCellPortBitIterator *portBitIterator() const; bool isLeaf() const { return is_leaf_; } void setIsLeaf(bool is_leaf); - void setAttribute(const std::string &key, - const std::string &value); - std::string getAttribute(const std::string &key) const; + void setAttribute(const string &key, + const string &value); + string getAttribute(const string &key) const; // Cell acts as port factory. ConcretePort *makePort(const char *name); diff --git a/include/sta/ConcreteNetwork.hh b/include/sta/ConcreteNetwork.hh index e248ad06..06528214 100644 --- a/include/sta/ConcreteNetwork.hh +++ b/include/sta/ConcreteNetwork.hh @@ -38,7 +38,7 @@ class ConcreteBindingTbl; class ConcreteLibertyLibraryIterator; typedef Vector ConcreteLibrarySeq; -typedef Map AttributeMap; +typedef Map AttributeMap; typedef Map ConcreteLibraryMap; typedef ConcreteLibrarySeq::ConstIterator ConcreteLibraryIterator; typedef Map(cell); ccell->setAttribute(key, value); @@ -606,9 +606,9 @@ ConcreteNetwork::filename(const Cell *cell) return ccell->filename(); } -std::string +string ConcreteNetwork::getAttribute(const Cell *cell, - const std::string &key) const + const string &key) const { const ConcreteCell *ccell = reinterpret_cast(cell); return ccell->getAttribute(key); @@ -938,9 +938,9 @@ ConcreteNetwork::id(const Instance *instance) const return inst->id(); } -std::string +string ConcreteNetwork::getAttribute(const Instance *inst, - const std::string &key) const + const string &key) const { const ConcreteInstance *cinst = reinterpret_cast(inst); return cinst->getAttribute(key); @@ -1352,8 +1352,8 @@ ConcreteNetwork::connect(Instance *inst, void ConcreteNetwork::setAttribute(Instance *inst, - const std::string &key, - const std::string &value) + const string &key, + const string &value) { ConcreteInstance *cinst = reinterpret_cast(inst); cinst->setAttribute(key, value); @@ -1683,14 +1683,14 @@ ConcreteInstance::childIterator() const } void -ConcreteInstance::setAttribute(const std::string &key, - const std::string &value) +ConcreteInstance::setAttribute(const string &key, + const string &value) { attribute_map_.insert(key, value); } -std::string -ConcreteInstance::getAttribute(const std::string &key) const +string +ConcreteInstance::getAttribute(const string &key) const { if (attribute_map_.hasKey(key)) { return attribute_map_.findKey(key); diff --git a/network/SdcNetwork.cc b/network/SdcNetwork.cc index 00d7a07e..0973ed0c 100644 --- a/network/SdcNetwork.cc +++ b/network/SdcNetwork.cc @@ -122,9 +122,9 @@ NetworkNameAdapter::id(const Cell *cell) const return network_->id(cell); } -std::string +string NetworkNameAdapter::getAttribute(const Cell *cell, - const std::string &key) const + const string &key) const { return network_->getAttribute(cell, key); } @@ -334,9 +334,9 @@ NetworkNameAdapter::cell(const Instance *instance) const return network_->cell(instance); } -std::string +string NetworkNameAdapter::getAttribute(const Instance *inst, - const std::string &key) const + const string &key) const { return network_->getAttribute(inst, key); }