|  | # Copyright lowRISC contributors. | 
|  | # Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
|  | # SPDX-License-Identifier: Apache-2.0 | 
|  | # | 
|  | # waiver file for prim_fifo | 
|  |  | 
|  | waive -rules {ONE_BIT_MEM_WIDTH} -location {prim_fifo_sync.sv} -msg {Memory 'gen_normal_fifo.storage' has word width which is single bit wide} \ | 
|  | -comment "It is permissible that a FIFO has a wordwidth of 1bit" | 
|  |  | 
|  | waive -rules {INPUT_NOT_READ} -location {prim_fifo_sync.sv} -regexp {Input port '(clk_i|rst_ni)' is not read from, instance.*Depth=0\)} \ | 
|  | -comment "In passthrough mode, clk and reset are not read form within this module" | 
|  |  | 
|  |  | 
|  | waive -rules {ASSIGN_SIGN} -location {prim_fifo_async.sv} -msg {Signed target 'i' assigned unsigned value 'PTR_WIDTH - 3'} \ | 
|  | -comment "Parameter PTR_WIDTH is unsigned, but integer i is signed. This is fine. Changing the integer to unsigned might \ | 
|  | cause issues with the for loop never exiting, because an unsigned integer can never become < 0." | 
|  |  | 
|  | waive -rules NOT_READ             -location {prim_fifo_async.sv} -regexp {Signal 'nc_decval_msb' is not read} \ | 
|  | -comment "Store temporary values. Not used intentionally" | 
|  |  | 
|  |  | 
|  | waive -rules VAR_INDEX_RANGE      -location {prim_fifo_*sync.sv} -regexp {maximum value .* may be too large for 'storage'} \ | 
|  | -comment "index is protected by control logic" | 
|  |  | 
|  | waive -rules EXPLICIT_BITLEN      -location {prim_fifo_*sync.sv} -regexp {Bit length not specified for constant '1'} \ | 
|  | -comment "index is protected by control logic" | 
|  |  | 
|  | ## prim_fifo_async_sram_adapter | 
|  | waive -rules ARITH_CONTEXT -location {prim_fifo_async_sram_adapter.sv} \ | 
|  | -regexp {(r|w)_wptr_v.*_rptr_v} \ | 
|  | -comment "The pointer value width is determined. Remove the casting for readability" |