| # Copyright lowRISC contributors. |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| # SPDX-License-Identifier: Apache-2.0 |
| # |
| # waiver file for top_earlgrey |
| |
| # dedicated reset drivers / muxes |
| set_reset_drivers prim_clock_mux2 prim_flop_2sync prim_flop |
| set_clock_drivers prim_clock_buf prim_clock_mux2 |
| |
| # All leaf resets have a reset multiplex |
| waive -rules RESET_MUX -location {top_earlgrey.sv} -regexp {Asynchronous reset .*rstmgr_aon_resets\.rst.* is driven by a multiplexer} \ |
| -comment "This is dedicated reset infrastructure, and hence permissible" |
| |
| waive -rules RESET_MUX -location {rstmgr.sv rstmgr_por.sv rstmgr_ctrl.sv} -regexp {Asynchronous reset '(resets_o\.)?rst_[A-Za-z_0-9]+_n(\[[0-9:]+\])?' is driven by a multiplexer} \ |
| -comment "This is dedicated reset infrastructure, and hence permissible" |
| |
| waive -rules RESET_MUX -location {rstmgr.sv} -regexp {Asynchronous reset 'scan_rst_ni' reaches a multiplexer} \ |
| -comment "This is dedicated reset infrastructure, and hence permissible" |
| |
| waive -rules RESET_MUX -location {spi_device.sv} -regexp {Asynchronous reset '(rst_ni|rst_spi_n)' reaches a multiplexer} \ |
| -comment "This is dedicated reset infrastructure, and hence permissible" |
| |
| waive -rules CLOCK_USE -location {top_earlgrey.sv} -regexp {'clkmgr_aon_clocks.clk_io_div2_peri' is connected to 'spi_device' port 'scan_clk_i', and used as a clock} \ |
| -comment "This connection is a scan clock connection." |
| |
| waive -rules CLOCK_MUX -location {clkmgr.sv top_earlgrey.sv} -regexp {.*clk_io_div.* is driven by a multiplexer here} \ |
| -comment "Divided clocks go through prim_clock_div, which use muxes for scan bypass and clock step down" |
| |
| # scan reset is a legal asynchronous reset |
| waive -rules RESET_USE -location {top_earlgrey.sv} -regexp {'scan_rst_ni' is connected to .* port 'scan_rst_ni', and used as an asynchronous reset or set 'rst_.*ni' at} \ |
| -comment "Scan reset is a legal asynchronous reset" |
| |
| # intentionally unused |
| waive -rules {NOT_READ HIER_NET_NOT_READ} -location {top_earlgrey.sv} -regexp {.*cio_otp_ctrl_test_(en_)?d2p\[7:1\].* is not read} \ |
| -comment "otp test bus made deliberately larger on purpose" |
| |
| ## xbar |
| #waive -rules HIER_NET_NOT_READ -location {tlul_xbar.sv} -regexp {a_source.* is not read from} \ |
| # -comment "upper bits of a_source are shifted off when going through M:1 sockets" |
| #waive -rules LINE_LENGTH -location {xbar_main.sv} -regexp {Line length of .* exceeds 100 character limit} \ |
| # -comment "This is a generated file and it is hence permissible to have line lengths that exceed this limit" |
| |
| # Possible tool shortcomings |
| |
| waive -rules CLOCK_USE -location {top_earlgrey.sv} -regexp {'clkmgr_aon_clocks.clk_io_div4_secure' is connected to 'pwrmgr' port 'clk_esc_i', and used as a clock 'clk_i' at tlul_socket_1n.sv} \ |
| -comment "The tool for reasons unknown is unable to trace through a prim buf wrap cell to understand the clock is being used as a clock. If a direct assign is used, the error goes away." |
| |
| waive -rules CLOCK_USE -location {top_earlgrey.sv} -regexp {'clkmgr_aon_clocks.clk_io_div4_powerup' is connected to 'pwrmgr' port 'clk_lc_i', and used as a clock 'clk_i' at tlul_socket_1n.sv} \ |
| -comment "The tool for reasons unknown is unable to trace through a prim buf wrap cell to understand the clock is being used as a clock. If a direct assign is used, the error goes away." |
| |
| # Most SAME_NAME_TYPE issues have been fixed. There are however some that overlap due to similar terminology. |
| # Since these functions / parameters / signals live in different scopes, this is acceptable, and we can waive them. |
| waive -rules SAME_NAME_TYPE -location {aes_sbox_canright_pkg.sv} -msg {'theta' is used as a reg here, and as a function at} \ |
| -comment {This is acceptable, since these are used in different hierarchies.} |
| waive -rules SAME_NAME_TYPE -location {keccak_round.sv} -msg {'L' is used as a parameter here, and as a reg at} \ |
| -comment {This is acceptable, since these are used in different hierarchies.} |
| waive -rules SAME_NAME_TYPE -location {spi_device.sv} -msg {'spi_device' is used as a module here, and as a reg at } \ |
| -comment {This is acceptable, since these are used in different hierarchies.} |
| waive -rules SAME_NAME_TYPE -location {tlul_socket_m1.sv} -msg {'M' is used as a parameter here, and as a reg at} \ |
| -comment {This is acceptable, since these are used in different hierarchies.} |