#!/bin/bash

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

# CDC stands for clock domain crossing. This script uses Meridian CDC,
# which is a CDC linting tool.
#
# Usage: To run cdc_lint on module foo, type
#   cdc_lint foo
#
# Here are three examples:
#   cdc_lint gpio
#   cdc_lint prim_fifo_async
#   cdc_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
#-------------------------------------------------------------------------
mcdc -i cdc_lint.tcl -wait -log cdc.log
