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

#Setup the clock and reset the design 
clock -infer
reset ~dut.rst_ni
get_reset_info

set_prove_time_limit 5m
check_unr -prove
check_unr -list -type unreachable
database -export_unicov
report -detailed
