#!/bin/bash

# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

# RDC stands for reset domain crossing. This script uses Meridian RDC,
# which is an RDC linting tool.
#
# Usage: To run rdc_lint on module foo, type
#   rdc_lint foo
#
# Here are three examples:
#   rdc_lint gpio
#   rdc_lint prim_fifo_async
#   rdc_lint top_earlgrey

#-------------------------------------------------------------------------
# set LINT_TOP env variable
#-------------------------------------------------------------------------
export LINT_TOP=$1

#-------------------------------------------------------------------------
# use fusesoc to generate file list
#-------------------------------------------------------------------------
fusesoc --cores-root .. sim --build-only formal > /dev/null 2>&1

#-------------------------------------------------------------------------
# run meridian CDC lint
#-------------------------------------------------------------------------
mrdc -i rdc_lint.tcl -wait -log rdc.log
