# //////////////////////////////////////////////////////////////////////////////
# // SPDX-FileCopyrightText: 2021, Dinesh Annayya
# // 
# // 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.
# // SPDX-License-Identifier: Apache-2.0
# // SPDX-FileContributor: Dinesh Annayya <dinesha@opencores.org>
# // //////////////////////////////////////////////////////////////////////////

#iverilog without Dump
#
iverilog -g2005-sv -DWFDUMP -DFUNCTIONAL -DSIM -I /home/dinesha/workarea/efabless/MPW-3/pdk/sky130A \
-I /home/dinesha/workarea/opencore/git/riscduino/caravel/verilog/dv/caravel \
-I /home/dinesha/workarea/opencore/git/riscduino/caravel/verilog/rtl \
-I ../    -I ../../../verilog/rtl \
-I ../../../verilog/rtl/mbist/include \
user_mbist_test1_tb.v -o user_mbist_test1.vvp


vvp user_mbist_test1.vvp | tee test.log

\rm -rf user_mbist_test1.vvp
