blob: 8176322929ad24147ab7206c513ee495d3a67777 [file] [log] [blame]
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
#
# waiver file for SPI Device
waive -rules HIER_NET_NOT_READ -location {spi_device.sv} -regexp {[nN]et.*a_(address|param|user).*not read from} \
-comment "several TLUL signals are not used by register file"
waive -rules HIER_NET_NOT_READ -location {spi_device.sv} -regexp {Net .reg2hw.*.qe. is not read from} \
-comment "registers with multiple fields often have unused qe's since they are duplicative"
waive -rules NOT_READ -location {spi_device.sv} -regexp {Signal 'reg2hw.*.qe' is not read from} \
-comment "registers with multiple fields often have unused qe's since they are duplicative"
waive -rules HIER_NET_NOT_READ -location {spi_device.sv} -regexp {[nN]et.*tl_h_i.[ad]_(ready|param|sink|size|source|user)} \
-comment "TL-UL converter doesn't use the signals"
waive -rules HIER_NET_NOT_READ -location {spi_device.sv} -regexp {[nN]et.*[tr]xf_addr\.(base|limit)\.q.*' is not read} \
-comment "Only lower 9bits are used for sram_addr but leaving the register fields flexible"
waive -rules HIER_NET_NOT_READ -location {spi_device.sv} -regexp {[nN]et.*sram_base_addr.*' is not read} \
-comment "Sram base address is given by parameter. Didn't decided if this field is used."
waive -rules HIER_NET_NOT_READ -location {spi_device.sv} -regexp {[nN]et.*[rt]xf_ptr.*' is not read} \
-comment "Only lower bits are used for sram_addr but leaving the register fields flexible"
waive -rules NOT_READ -location {spi_device.sv} -regexp {Signal.*[tr]xf_addr\.(base|limit)\.q.*' is not read} \
-comment "Only lower 9bits are used for sram_addr but leaving the register fields flexible"
waive -rules NOT_READ -location {spi_device.sv} -regexp {Signal.*sram_base_addr.*' is not read} \
-comment "Sram base address is given by parameter. Didn't decided if this field is used."
waive -rules NOT_READ -location {spi_device.sv} -regexp {Signal.*[rt]xf_ptr.*' is not read} \
-comment "Only lower bits are used for sram_addr but leaving the register fields flexible"
waive -rules HIER_NET_NOT_READ -location {spi_device.sv} -regexp {[nN]et.*spi_mode.* is not read} \
-comment "FwMode is used. This field is used when EEPROM is implemented"
waive -rules HIER_NET_NOT_READ -location {spi_device.sv} -regexp {[nN]et.*fwm_sram_error.* is not read} \
-comment "SRAM error correction code is not implemented"
waive -rules HIER_NET_NOT_READ NOT_READ -location {spi_device.sv} -regexp {.*fifo_level\..xlvl\.q} \
-comment "RXLevel and TXLevel is used only for pointer width."
waive -rules HIER_NET_NOT_READ -location {spi_device.sv} -regexp {(tl_sram_h2d|tl_i).*a_mask} \
-comment "TL SRAM adapter does not use mask"
waive -rules HIER_NET_NOT_READ NOT_READ -location {spi_device.sv} -regexp {mem_(a|b)_(rerror|addr)} \
-comment "Only portion of Memory address is used depending on SramAw parameter"
waive -rules NOT_READ -location {spi_fwm_rxf_ctrl.sv} -regexp {Signal 'ptr_cmp\[1:0\]' is not read} \
-comment "Only upper bits are used to compare FIFO full condition to avoid partial write"
waive -rules CONST_OUTPUT -location {spi_fwm_txf_ctrl.sv} -regexp {Output 'sram_w.*' is driven} \
-comment "always read operation from TX FIFO CTRL"
waive -rules CONST_OUTPUT -location {spi_fwm_*xf_ctrl.sv} -regexp {Output 'depth.*} \
-comment "Based on the SRAM size 2kB, it cannot hit the case"
waive -rules CONST_FF -location {spi_fwmode.sv} -regexp {Flip-flop 'miso_shift\[0\]' is driven} \
-comment "Intended behavior"
waive -rules CONST_FF -location {spi_device.sv} -regexp {fwm_rerr_q} \
-comment "Will implement the interrupt later. Waive for now"
waive -rules CONST_FF -location {spi_fwmode.sv} -regexp {'tx_state' is driven by constant one} \
-comment "Intentionally reset to TxIdle and assign TxActive else. For CPHA=1 mode"
waive -rules TWO_STATE_TYPE -location {spi_device.sv} -regexp {'fwm_fifo_e' is of} \
-comment "Intended declaration"
waive -rules ONE_BIT_MEM_WIDTH -location {spi_device.sv} -regexp {Memory 'fwm_sram_.*' has word} \
-comment "Intended implementation to make it consistent with other signals"
waive -rules EXPLICIT_BITLEN -location {spi_*} -regexp {for constant '1'} \
-comment "Parameter subtract is fine"
waive -rules INPUT_NOT_READ -location {spi_fwm_*xf_ctrl.sv} -regexp {Input port 'sram_error' is not read} \
-comment "Sram error protection is not yet implemented"
waive -rules INPUT_NOT_READ -location {spi_fwmode.sv} -regexp {Input port 'mode_i' is not read} \
-comment "Only FwMode is used at this moment"
waive -rules CONST_FF -location {spi_device.sv} -msg {Flip-flop 'fwm_rxerr_q' is driven by constant zero} \
-comment "This is an unimplemented error signal which is currently tied to 0."
# async resets
waive -rules RESET_DRIVER -location {spi_device.sv} -regexp {'rst_(spi|txfifo|rxfifo)_n' is driven here, and used as an asynchronous reset} \
-comment "Async reset generation is required here"
waive -rules RESET_MUX -location {spi_device.sv} -regexp {Asynchronous reset 'rst_(spi|txfifo|rxfifo)_n' is driven by a multiplexer} \
-comment "The MUX is needed to control the reset during scanmode (scanmode_i == 1)"
# clock inverter and muxes
waive -rules CLOCK_MUX -location {spi_device.sv} -regexp {Clock 'sck_n' is driven by a multiplexer here, used as a clock 'clk_(out|src)_i'} \
-comment "The multiplexer is needed to bypass the clock inverter during testing"
waive -rules CLOCK_MUX -location {spi_device.sv} -regexp {Clock 'clk_spi_(in|out)' is driven by a multiplexer here, used as a clock 'clk_(in|out|src)_i'} \
-comment "Thes multiplexers are needed to select between inverted and non-inverted clock based on configuration"
#### INFO
waive -rules VAR_INDEX -location {spi_fwm_rxf_ctrl.sv} -regexp {'byte_enable\[pos\]'} \
-comment "Flip-flop implemented"
waive -rules VAR_INDEX -location {spi_fwm_rxf_ctrl.sv} -regexp {'sram_[wr]data.*'} \
-comment "Flip-flop implemented"
waive -rules VAR_INDEX -location {spi_fwm_txf_ctrl.sv} -regexp {'fifo_wdata_d.*'} \
-comment "fifo_data_d is latched to fifo_data[7:0]"
waive -rules CASE_INC -location {spi_fwm_*xf_ctrl.sv} -regexp {Case statement tag not} \
-comment "Enum type is used for state machine"