| # Copyright lowRISC contributors. |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| # SPDX-License-Identifier: Apache-2.0 |
| # |
| # waiver file for ast |
| |
| waive -rules CONST_FF -location {ast_clks_byp.sv} \ |
| -msg {Flip-flop 'sw_clk_byp_en' is driven by constant one} \ |
| -comment {This flip flop is supposed to change to 1 on the first clock cycle and remain there afterwards.} |
| |
| waive -rules IFDEF_CODE -location {ast.sv} \ |
| -msg {Assignment to 'ast2pad_t0_ao' contained within `else block at ast.sv} \ |
| -comment {This ifdef statement is used for analog simulations and is OK.} |
| |
| waive -rules IFDEF_CODE -location {ast.sv} \ |
| -msg {Assignment to 'unused_analog_sigs' contained within `ifndef 'ANALOGSIM' block at} \ |
| -comment {This ifdef statement is used for assigning "unused" signals and is OK.} |
| |
| waive -rules IFDEF_CODE -location {ast.sv} \ |
| -regexp {Assignment to 'clk_(sys|usb|aon|io)_ext' contained within `ifdef 'AST_BYPASS_CLK' block at} \ |
| -comment {This ifdef statement is fine as it is part of the FPGA/Verilator clock bypass mechanism.} |
| |
| waive -rules IFDEF_CODE -location {aon_osc.sv io_osc.sv sys_osc.sv usb_osc.sv} \ |
| -regexp {Assignment to '(sys|usb|aon|io)_clk_dly' contained within `else block at} \ |
| -comment {This ifdef statement is fine as it is part of the FPGA/Verilator clock bypass mechanism.} |
| |
| waive -rules IFDEF_CODE -location {aon_osc.sv io_osc.sv sys_osc.sv usb_osc.sv} \ |
| -regexp {Assignment to 'en_osc_re' contained within} \ |
| -comment {This ifdef statement is fine as it is part of the FPGA/Verilator clock bypass mechanism.} |
| |
| waive -rules IFDEF_CODE -location {aon_osc.sv} \ |
| -regexp {Assignment to 'clk' contained within} \ |
| -comment {This ifdef statement is fine as it is part of the FPGA/Verilator clock bypass mechanism.} |
| |
| waive -rules CLOCK_EDGE -location {aon_osc.sv io_osc.sv sys_osc.sv usb_osc.sv} \ |
| -msg {Falling edge of clock 'clk' used here, should use rising edge} \ |
| -comment {This negedge trigger is done on purpose.} |
| |
| waive -rules CLOCK_EDGE -location {ast_clks_byp.sv} \ |
| -msg {Falling edge of clock 'clk_ast_ext_scn' used here, should use rising edge} \ |
| -comment {This negedge trigger is done on purpose.} |
| |
| waive -rules CLOCK_DRIVER -location {ast.sv} \ |
| -regexp {'clk_src_(aon|io|sys)' is driven by instance 'u_ast_clks_byp' of module 'ast_clks_byp', and used as a clock 'clk_i' at} \ |
| -comment {This is clock generation logic, hence it needs to drive this clock signal.} |
| |
| waive -rules CLOCK_DRIVER -location {ast.sv} \ |
| -regexp {'clk_src_(aon|io|sys)' in module 'ast_clks_byp' by port} \ |
| -comment {This is clock generation logic, hence it needs to drive this clock signal.} |
| |
| waive -rules CLOCK_DRIVER -location {ast.sv} \ |
| -msg {'clk_o' driven in module 'gfr_clk_mux2' at} \ |
| -comment {This is clock generation logic, hence it needs to drive this clock signal.} |
| |
| waive -rules CLOCK_DRIVER -location {ast_clks_byp.sv} \ |
| -regexp {'clk_src_(aon|io)_o' is driven by instance 'u_clk_src_(aon|io)_sel' of module 'gfr_clk_mux2', and used as a clock 'clk_i' at} \ |
| -comment {This is clock generation logic, hence it needs to drive this clock signal.} |
| |
| waive -rules CLOCK_DRIVER -location {ast_clks_byp.sv} \ |
| -regexp {'clk_ext_scn' is driven here, and used as a clock 'clk_i' at} \ |
| -comment {This is clock generation logic, hence it needs to drive this clock signal.} |
| |
| waive -rules CLOCK_MUX -location {ast_clks_byp.sv} \ |
| -regexp {Clock '(clk_ast_ext_scn|clk_ext_scn|clk_src_ext_usb|clk_ext_aon)' is driven by a multiplexer here, used as a clock} \ |
| -comment {This is clock generation logic, hence it needs to drive this clock signal.} |
| |
| waive -rules CLOCK_MUX -location {ast.sv} \ |
| -regexp {Clock 'clk_aon_n' is driven by a multiplexer here, used as a clock} \ |
| -comment {This clock inverter has a DFT mux.} |
| |
| waive -rules CLOCK_MUX -location {rglts_pdm_3p3v.sv} \ |
| -regexp {Clock 'clk_src_aon_h_n' is driven by a multiplexer here, used as a clock at } \ |
| -comment {This signal has a DFT mux.} |
| |
| waive -rules CLOCK_USE -location {gfr_clk_mux2.sv} \ |
| -regexp {('clk_ext'|'clk_osc') is used for some other purpose, and as clock ('clk_ext_i'|'clk_osc_i') at gfr_clk_mux2.sv} \ |
| -comment {This message pops up due to a clock OR operation.} |
| |
| waive -rules CLOCK_USE -location {ast.sv} \ |
| -regexp {'clk_ast_tlul_i' is connected to 'ast_dft' port 'clk_i', and used as a clock 'clk_i' at prim_lfsr} \ |
| -comment {This is a valid clock signal and the LFSR runs on the bus clock here.} |
| |
| waive -rules CLOCK_USE -location {ast.sv} \ |
| -regexp {'clk_aon' is connected to 'rglts_pdm_3p3v' port 'clk_src_aon_h_i', and used as a clock} \ |
| -comment {This is a valid clock signal and the connection is ok here.} |
| |
| waive -rules CLOCK_USE -location {ast.sv} \ |
| -regexp {'clk_ast_usb_i' is used for some other purpose, and as clock 'clk_i' at prim_generic_flop.sv} \ |
| -comment {This is a valid clock signal and the connection is ok here.} |
| |
| waive -rules INV_CLOCK -location {ast.sv rglts_pdm_3p3v.sv} \ |
| -regexp {'(clk_aon|clk_src_aon_h_i)' is inverted, used as clock} \ |
| -comment {These clocks are inverted.} |
| |
| waive -rules RESET_DRIVER -location {aon_clk.sv io_clk.sv sys_clk.sv usb_clk.sv} \ |
| -msg {'rst_val_n' is driven here, and used as an asynchronous reset} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {aon_clk.sv io_clk.sv sys_clk.sv usb_clk.sv} \ |
| -regexp {'(aon|io|sys|usb)_clk_en' is driven here, and used as an asynchronous reset} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {rng.sv} \ |
| -msg {'rst_n' is driven here, and used as an asynchronous reset at rng.sv} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -regexp {'(vcaon_pok_h|por_rst_n|vcmain_pok_por|vcmain_pok_por_src)' is driven here, and used as an asynchronous reset} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -msg {'clk_io_osc_val' is driven by instance 'u_io_clk' of module 'io_clk', and used as an asynchronous reset 'rst_clk_osc_n' at ast_dft.sv} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -msg {'clk_src_io_val_o' driven in module 'io_clk' by port 'u_val_sync.q_o[0]' at io_clk.sv} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv dev_entropy.sv ast_clks_byp.sv} \ |
| -regexp {'q_o[0]' driven in module 'prim_flop_2sync' by port .* at prim_flop_2sync.sv} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -msg {'vcmain_pok_por_sys' is driven by instance 'u_rst_sys_dasrt' of module 'prim_flop_2sync', and used as an asynchronous reset 'rst_dev_ni' at dev_entropy.sv} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {dev_entropy.sv} \ |
| -msg {'rst_es_dev_nd' is driven by instance 'u_rst_es_n_da' of module 'prim_flop_2sync', and used as an asynchronous reset 'rst_es_dev_n'} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {dev_entropy.sv} \ |
| -msg {'rst_es_dev_nd' is driven by instance 'u_rst_es_n_da' of module 'prim_flop_2sync', and used as an asynchronous reset 'rst_es_dev_n'} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {dev_entropy.sv} \ |
| -msg {'rst_es_dev_da_n' is driven by instance 'u_rst_es_n_da' of module 'prim_flop_2sync', and used as an asynchronous reset 'rst_es_dev_n' at} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {dev_entropy.sv} \ |
| -msg {'rst_es_dev_in_n' is driven here, and used as an asynchronous reset 'rst_ni' at} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast_pulse_sync.sv} \ |
| -regexp {'(rst_src_n|rst_dst_n)' is driven here, and used as an asynchronous reset at} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast_clks_byp.sv} \ |
| -regexp {'rst_aon_n_(ioda|exda)' is driven by instance 'u_rst_aon_n_(ioda|exda)_sync' of module} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast_clks_byp.sv} \ |
| -regexp {'rst_sw_clk_byp_en' is driven here, and used as an asynchronous reset 'rst_sw_ckbpe_n'} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -regexp {'(vcc_pok|rst_poks_n|rst_poks_por_n|vcaon_pok_por_lat)' is driven here, and used as an asynchronous reset} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -msg {'vcmain_pok_por_sys' is driven by instance 'u_rst_sys_dasrt' of module} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -msg {'rst_aon_clk_n' is driven here, and used as an asynchronous reset 'rst_ni' at} \ |
| -comment {This is reset generation logic, hence it needs to drive this reset signal.} |
| |
| waive -rules RESET_DRIVER -location {rglts_pdm_3p3v.sv} \ |
| -regexp {'(vcc_pok_rst_h_n|vcc_pok_set_h|vcc_pok_str_.*|)' is driven here, and used as an asynchronous reset} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -regexp {'(vcaon_pok|vcaon_pok_h)' is driven by instance 'u_rglts_pdm_3p3v'} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -regexp {'(vcaon_pok_1p1_h_o|vcaon_pok_h_o)' driven in module 'rglts_pdm_3p3v'} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -regexp {'rst_sys_clk_n' is driven here, and used as an asynchronous reset 'rst_ni' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -regexp {'rst_usb_clk_n' is driven here, and used as an asynchronous reset 'rst_ni' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {ast.sv} \ |
| -regexp {'rst_io_clk_n' is driven here, and used as an asynchronous reset 'rst_ni' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'rst_da_n' is driven by instance 'u_rst_da' of module 'prim_flop_2sync', and used as an asynchronous reset 'rst_ni' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'q_o[0]' driven in module 'prim_flop_2sync' by port 'u_sync_2.q_o[0]' at prim_flop_2sync.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'q_o[0]' driven in module 'prim_flop' by port 'gen_generic.u_impl_generic.q_o[0]' at prim_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'q_o[0]' driven in module 'prim_generic_flop' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'rst_n' is driven here, and used as an asynchronous reset 'rst_ni' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'rst_n' driven in module 'usb_clk' by 'rst_da_n' at usb_clk.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'q_o[0]' driven in module 'prim_flop_2sync' by port 'u_sync_2.q_o[0]' at prim_flop_2sync.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'q_o[0]' driven in module 'prim_flop' by port 'gen_generic.u_impl_generic.q_o[0]' at prim_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'q_o[0]' driven in module 'prim_generic_flop' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'rst_usb_n' is driven by instance 'u_rst_ast_usb_da' of module 'prim_flop_2sync', and used as an asynchronous reset 'rst_ni' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'q_o[0]' driven in module 'prim_flop_2sync' by port 'u_sync_2.q_o[0]' at prim_flop_2sync.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'q_o[0]' driven in module 'prim_flop' by port 'gen_generic.u_impl_generic.q_o[0]' at prim_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_DRIVER -location {usb_clk.sv} \ |
| -regexp {'q_o[0]' driven in module 'prim_generic_flop' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_MUX -location {aon_clk.sv io_clk.sv sys_clk.sv usb_clk.sv} \ |
| -msg {Asynchronous reset 'rst_val_n' is driven by a multiplexer here, used as a reset} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_MUX -location {ast.sv} \ |
| -regexp {Asynchronous reset '(rst_poks_n|rst_poks_por_n|vcmain_pok_por|rst_src_sys_n|vcaon_pok_por)' is driven by a multiplexer here, used as a reset} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_MUX -location {rng.sv} \ |
| -msg {Asynchronous reset 'rst_n' is driven by a multiplexer here, used as a reset at rng.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_MUX -location {ast_clks_byp.sv} \ |
| -regexp {Asynchronous reset '(rst_aon_n|rst_aon_exda_n|rst_aon_ioda_n|rst_sw_ckbpe_n)' is driven by a multiplexer here, used as a reset} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_MUX -location {ast_pulse_sync.sv} \ |
| -regexp {Asynchronous reset '(rst_src_n|rst_dst_n)' is driven by a multiplexer here, used as a reset} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_MUX -location {rglts_pdm_3p3v.sv} \ |
| -msg {Asynchronous reset 'vcc_pok_rst_h_n' is driven by a multiplexer here, used as a reset} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_MUX -location {usb_clk.sv} \ |
| -regexp {Asynchronous reset 'rst_n' is driven by a multiplexer here, used as a reset 'rst_ni' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_USE -location {ast.sv} \ |
| -regexp {('vcore_pok_h_i'|'vcaon_pok') is used for some other purpose, and as asynchronous reset} \ |
| -comment {This is reset / clock generation logic, hence special reset usage is allowed.} |
| |
| waive -rules RESET_USE -location {ast.sv} \ |
| -regexp {'(vcmain_pok_por|vcmain_pok_por_src)' is connected to 'rglts_pdm_3p3v' port 'vcmain_pok_por_h_i', and used as an asynchronous reset or set} \ |
| -comment {This is reset / clock generation logic, hence special reset usage is allowed.} |
| |
| waive -rules RESET_USE -location {ast.sv} \ |
| -msg {'vcaon_pok_por' is connected to 'rglts_pdm_3p3v' port 'vcaon_pok_por_h_i', and used as an asynchronous reset or set} \ |
| -comment {This is reset / clock generation logic, hence special reset usage is allowed.} |
| |
| waive -rules RESET_USE -location {ast.sv} \ |
| -regexp {'(vcc_pok|vcmain_pok_por)' is used for some other purpose, and as asynchronous reset} \ |
| -comment {This is reset / clock generation logic, hence special reset usage is allowed.} |
| |
| waive -rules RESET_USE -location {ast.sv} \ |
| -regexp {'rst_(usb|aon|io|sys)_clk_n' is connected to '(usb|aon|io|sys)_clk' port 'rst_(usb|aon|io|sys)_clk_ni', and used as an asynchronous reset or set ('rst_ni'|'vcore_pok_h_i'|'rst_clk_byp_n')} \ |
| -comment {This is reset / clock generation logic, hence special reset usage is allowed.} |
| |
| waive -rules RESET_USE -location {io_osc.sv sys_osc.sv usb_osc.sv aon_osc.sv} \ |
| -msg {'vcore_pok_h_i' is used for some other purpose, and as asynchronous reset at} \ |
| -comment {This is reset / clock generation logic, hence special reset usage is allowed.} |
| |
| waive -rules RESET_USE -location {ast_dft.sv} \ |
| -msg {'clk_io_osc_val_i' is used for some other purpose, and as asynchronous reset 'rst_clk_osc_n' at ast_dft.sv} \ |
| -comment {This is reset / clock generation logic, hence special reset usage is allowed.} |
| |
| waive -rules RESET_USE -location {ast.sv} \ |
| -msg {'rst_ast_tlul_ni' is connected to 'ast_dft' port 'rst_ni', and used as an asynchronous reset or set 'rst_n' at rng} \ |
| -comment {This is a valid reset connection.} |
| |
| waive -rules RESET_USE -location {ast.sv} \ |
| -regexp {('rst_sys_clk_n'|'rst_usb_clk_n') is connected to ('sys_clk'|'usb_clk') port ('rst_sys_clk_ni'|'rst_usb_clk_ni'), and used as an asynchronous reset or set} \ |
| -comment {This is a valid reset connection.} |
| |
| waive -rules RESET_USE -location {aon_clk.sv io_clk.sv sys_clk.sv usb_clk.sv} \ |
| -regexp {'(aon|io|sys|usb)_clk_en' is connected to '(aon|io|sys|usb)_osc' port '(aon|io|sys|usb)_en_i', and used as an asynchronous reset or set} \ |
| -comment {This is reset / clock generation logic, hence special reset usage is allowed.} |
| |
| waive -rules RESET_USE -location {ast.sv} \ |
| -regexp {'rst_ast_usb_ni' is used for some other purpose, and as asynchronous reset 'rst_ni' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules RESET_USE -location {usb_clk.sv} \ |
| -regexp {'rst_usb_clk_ni' is used for some other purpose, and as asynchronous reset 'rst_ni' at prim_generic_flop.sv} \ |
| -comment {This is reset generation logic, hence reset muxes are allowed.} |
| |
| waive -rules TRI_DRIVER -location {ast.sv} \ |
| -regexp {'ast2pad_(t0|t1)_ao' is driven by a tristate driver} \ |
| -comment {This part models a tristate driver.} |
| |
| waive -rules TERMINAL_STATE -location {rglts_pdm_3p3v.sv} \ |
| -msg {Terminal state 'RGLS_BROUT' is detected. State register 'rgls_sm' is not assigned to another state.} \ |
| -comment {The brownout state is terminal.} |
| |
| waive -rules Z_USE -location {ast.sv} \ |
| -msg {Constant with 'Z literal value '1'bz' encountered} \ |
| -comment {This part models a tristate driver.} |
| |
| waive -rules MULTI_RESET -location {rglts_pdm_3p3v.sv} \ |
| -msg {Found 2 asynchronous resets for this block: 'vcc_pok_rst_h_n', 'vcc_pok_set_h'} \ |
| -comment {This code is only a model and hence this is allowed.} |
| |
| waive -rules NOT_READ -location {aon_osc.sv io_osc.sv sys_osc.sv usb_osc.sv} \ |
| -msg {Signal 'en_osc' is not read from in module} \ |
| -comment {Signal 'en_osc' is not read when SYNTHESIS is defined, and AST_BYPASS_CLK is not defined.} |