{"id":26233,"date":"2025-05-18T23:23:55","date_gmt":"2025-05-18T23:23:55","guid":{"rendered":"https:\/\/wattsemi.com\/?p=26233"},"modified":"2025-05-18T23:24:20","modified_gmt":"2025-05-18T23:24:20","slug":"lec-common-causes-of-conformal-lec-logic-equivalence-check-failures-during-asic-physical-design","status":"publish","type":"post","link":"https:\/\/wattsemi.com\/?p=26233","title":{"rendered":"LEC: Common Causes of Conformal LEC (Logic Equivalence Check) Failures during ASIC Physical Design"},"content":{"rendered":"\n<p class=\"has-vivid-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-a727e6d481c627ae41f3b5a90add7cef\">Conformal LEC compares\u00a0<strong>RTL vs. Netlist<\/strong>\u00a0or\u00a0<strong>Pre-Post P&amp;R Netlists<\/strong>\u00a0to ensure functional equivalence. <\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-1313566407a8b41e64ac2a2add2b23b6\"><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.edn.com\/wp-content\/uploads\/Figure-1-LEC.png?resize=717%2C705\" alt=\"\" class=\"wp-image-4479695\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.edn.com\/wp-content\/uploads\/Figure-4-LEC.png?resize=950%2C365\" alt=\"\" class=\"wp-image-4479698\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.edn.com\/wp-content\/uploads\/Figure-5-LEC.png?resize=950%2C325\" alt=\"\" class=\"wp-image-4479699\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">This is how golden DFF vs. revised DFF looks after power optimization.<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.edn.com\/wp-content\/uploads\/Figure-6-LEC.png?resize=950%2C484\" alt=\"\" class=\"wp-image-4479700\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Common Causes of Conformal LEC (Logic Equivalence Check) Failures in ASIC Physical Design<\/strong><\/p>\n\n\n\n<p>Conformal LEC compares <strong>RTL vs. Netlist<\/strong> or <strong>Pre-Post P&amp;R Netlists<\/strong> to ensure functional equivalence. <\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-28256413f8b1e053167db41f203b1a8f\"><strong>Failures indicate mismatches\u2014here are the most frequent culprits:<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-text-color has-link-color wp-elements-c5c69216a6f305232bc13d90f9c9db2a\"><strong>1. Unintended Logic Transformations<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Causes:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Optimization Aggressiveness<\/strong>: Synthesis\/P&amp;R tools merge\/remove redundant logic.<\/li>\n\n\n\n<li><strong>Clock Gating\/Power Gating<\/strong>: Missing constraints cause gating logic mismatches.<\/li>\n\n\n\n<li><strong>Constant Propagation<\/strong>: Unintended optimization of tied-high\/low signals.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Debug Steps:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Check if constants are propagated differently:\nreport_constant -pre_synth vs. report_constant -post_phys<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-text-color has-link-color wp-elements-46465ec25ab4cfa736775041a93ad69d\"><strong>2. Clock Tree Modifications<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Causes:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Clock Buffers\/Inverters Inserted<\/strong>: CTS alters clock paths (e.g., balancing skew).<\/li>\n\n\n\n<li><strong>Clock Gating Cells<\/strong>: Added post-synthesis but not modeled in reference design.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Fix:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Exclude clock cells from LEC:\nset_ignore -type cell {CLK_BUF* CLK_INV*}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-text-color has-link-color wp-elements-738a12ee0d7727ab903e9eace3c8d032\"><strong>3. Scan Chain Reordering<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Causes:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DFT Insertion<\/strong>: Scan flops reordered for routing efficiency.<\/li>\n\n\n\n<li><strong>Test Mode Signals<\/strong>: Missing constraints for scan-enable (<code>SE<\/code>)\/test clocks.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Debug:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Compare scan chains pre\/post-P&amp;R:\nreport_scan_chain -pre_synth\nreport_scan_chain -post_phys<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-text-color has-link-color wp-elements-0aa2f97496927b75e6ee95406dac58b2\"><strong>4. Power-Aware Optimizations<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Causes:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Level Shifters\/Isolation Cells<\/strong>: Added for UPF\/CPF power domains.<\/li>\n\n\n\n<li><strong>Retention Registers<\/strong>: Power-gating changes flop behavior.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Fix:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Map power-aware cells correctly:\nset_mapping -match_by_name -type level_shifter<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-text-color has-link-color wp-elements-8cab16f22b60ccddf32a0c009aea9441\"><strong>5. ECO Changes Not Back-Annotated<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Causes:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Manual ECOs<\/strong>: Logic fixes in P&amp;R not reflected in reference netlist.<\/li>\n\n\n\n<li><strong>Metal-Only ECOs<\/strong>: Functional changes missed in LEC.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Debug:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Check ECO log files:\ncompare_eco -pre_eco netlist.v -post_eco netlist_eco.v<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-text-color has-link-color wp-elements-726fe1b4ecbde9c370d7be677a8ce2f7\"><strong>6. Black Boxes\/Unmodeled Hierarchies<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Causes:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Third-Party IPs<\/strong>: Missing\/outdated behavioral models.<\/li>\n\n\n\n<li><strong>Analog Blocks<\/strong>: Treated as black boxes in RTL but instantiated in netlist.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Fix:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Define black boxes explicitly:\nset_blackbox -module {ADC_CORE PLL_CORE}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-text-color has-link-color wp-elements-58acca91c0f463ca257c90a5d69b9616\"><strong>7. Timing-Driven Optimizations<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Causes:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gate Sizing<\/strong>: Changes cell drive strength but not functionality.<\/li>\n\n\n\n<li><strong>Buffer Insertion<\/strong>: Adds delay buffers on critical paths.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Debug:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Ignore non-functional buffers:\nset_ignore -cell_type {BUF*}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-text-color has-link-color wp-elements-497cf6b2efa6af2a5d4ab05dbefdb569\"><strong>8. Reset Signal Handling<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Causes:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Asynchronous vs. Sync Resets<\/strong>: Synthesis converts one to the other.<\/li>\n\n\n\n<li><strong>Reset Tree Buffering<\/strong>: Physical design adds buffers to reset nets.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Fix:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Align reset policies:\nset_reset -sync -all<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-text-color has-link-color wp-elements-27257678c413d1d6747ac163853d855f\"><strong>9. Name Mismatches After P&amp;R<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Causes:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hierarchical Flattening<\/strong>: Physical design removes hierarchies.<\/li>\n\n\n\n<li><strong>Renaming for DRC<\/strong>: Tools rename cells\/nets to avoid violations.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Debug:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Use signature-based matching:\nset_compare -signature<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-text-color has-link-color wp-elements-1e739d4f987ff0ea9a444d0b292ea452\"><strong>10. Missing or Incorrect Constraints<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Causes:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Undefined Don\u2019t-Cares<\/strong>: Unconstrained signals optimized differently.<\/li>\n\n\n\n<li><strong>False Paths\/Multicycle Paths<\/strong>: Not synchronized between RTL and P&amp;R.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Fix:<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Reapply constraints in Conformal:\nread_sdc -both pre_synth.sdc post_phys.sdc<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Debug Flow for LEC Failures<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Isolate Failure Points<\/strong>:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   report_failing_points -summary<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Compare Hierarchies<\/strong>:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   report_design -compare<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Check Mapped\/Unmapped Logic<\/strong>:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   report_unmapped -verbose<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Verify Clock\/Reset Domains<\/strong>:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   report_clock -all\n   report_reset -all<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Key Takeaways<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Issue Category<\/strong><\/th><th><strong>Tool Command<\/strong><\/th><th><strong>Solution<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Clock Tree Changes<\/strong><\/td><td><code>set_ignore -cell CLK_*<\/code><\/td><td>Exclude CTS buffers.<\/td><\/tr><tr><td><strong>Scan Chain Reorder<\/strong><\/td><td><code>report_scan_chain<\/code><\/td><td>Align DFT constraints.<\/td><\/tr><tr><td><strong>Power-Aware Cells<\/strong><\/td><td><code>set_mapping -type level_shifter<\/code><\/td><td>Map UPF\/CPF cells.<\/td><\/tr><tr><td><strong>ECO Mismatches<\/strong><\/td><td><code>compare_eco<\/code><\/td><td>Back-annotate ECOs.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.edn.com\/wp-content\/uploads\/Figure-3-LEC.png?resize=950%2C385\" alt=\"\" class=\"wp-image-4479697\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Conformal LEC compares\u00a0RTL vs. Netlist\u00a0or\u00a0Pre-Post P&amp;R Netlists\u00a0to ensure functional equivalence. This is how golden DFF vs. revised DFF looks after power optimization. Common Causes of Conformal LEC (Logic Equivalence Check) Failures in ASIC Physical Design Conformal LEC compares RTL vs. Netlist or Pre-Post P&amp;R Netlists to ensure functional equivalence. Failures indicate mismatches\u2014here are the most [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":26234,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"footnotes":""},"categories":[40],"tags":[68,64,69,67,63,47,65,66],"class_list":["post-26233","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-compare","tag-conformal","tag-equivalence","tag-golden","tag-lec","tag-low-power","tag-mismatch","tag-revised"],"_links":{"self":[{"href":"https:\/\/wattsemi.com\/index.php?rest_route=\/wp\/v2\/posts\/26233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wattsemi.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wattsemi.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wattsemi.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wattsemi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=26233"}],"version-history":[{"count":1,"href":"https:\/\/wattsemi.com\/index.php?rest_route=\/wp\/v2\/posts\/26233\/revisions"}],"predecessor-version":[{"id":26236,"href":"https:\/\/wattsemi.com\/index.php?rest_route=\/wp\/v2\/posts\/26233\/revisions\/26236"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wattsemi.com\/index.php?rest_route=\/wp\/v2\/media\/26234"}],"wp:attachment":[{"href":"https:\/\/wattsemi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=26233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wattsemi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=26233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wattsemi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=26233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}