## 
## -------------------------------------------------------------
##    Copyright 2010 Synopsys, Inc.
##    Copyright 2010 Cadence Design, Inc.
##    All Rights Reserved Worldwide
## 
##    Licensed under the Apache License, Version 2.0 (the
##    "License"); you may not use this file except in
##    compliance with the License.  You may obtain a copy of
##    the License at
## 
##        http://www.apache.org/licenses/LICENSE-2.0
## 
##    Unless required by applicable law or agreed to in
##    writing, software distributed under the License is
##    distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
##    CONDITIONS OF ANY KIND, either express or implied.  See
##    the License for the specific language governing
##    permissions and limitations under the License.
## -------------------------------------------------------------
## 

UVM_HOME	= ../../..

include ../../Makefile.ius


all run: test hw_reset

test:
	$(IUS) -incdir ../apb -incdir vip tb_top.sv test.sv
	$(CHECK)

hw_reset:
	$(IUS) -incdir ../apb -incdir vip tb_top.sv test.sv \
		+UVM_TESTNAME=hw_reset_test
	$(CHECK)
