| # Copyright lowRISC contributors. |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| # Commonly used globals & procs. This file must be sourced first. |
| set simulator "" |
| if {[info exists ::env(SIMULATOR)]} { |
| set simulator "$::env(SIMULATOR)" |
| } else { |
| puts "ERROR: tool script run without SIMULATOR environment variable." |
| quit |
| } |
| |
| set waves "none" |
| if {[info exists ::env(WAVES)]} { |
| set waves "$::env(WAVES)" |
| } |
| |
| set gui 0 |
| if {[info exists ::env(GUI)]} { |
| set gui "$::env(GUI)" |
| } |
| |
| set tb_top "tb" |
| if {[info exists ::env(TB_TOP)]} { |
| set tb_top "$::env(TB_TOP)" |
| } else { |
| puts "WARNING: TB_TOP environment variable not set - using \"tb\" as the |
| top level testbench hierarchy." |
| } |
| |
| # Checks if variable is defined, else throw an error and exit. |
| proc checkVarExists {var} { |
| upvar $var var_ |
| if {![info exists var_]} { |
| puts "ERROR: Variable \"$var\" not found." |
| quit |
| } |
| } |
| |
| # If variable is defined, then use it, else set the default value. |
| proc setDefault {var value} { |
| upvar $var var_ |
| if {[info exists var_]} { |
| puts "INFO: \"$var\" is already set to \"$var_\"." |
| } else { |
| puts "INFO: Setting \"$var\" to \"$value\"." |
| set var_ $value |
| } |
| return $var_ |
| } |
| |
| proc checkEq {var value} { |
| upvar $var var_ |
| if {$var_ != $value} { |
| puts "ERROR: Check failed \"$var\" == \"$value\"!. Actual: \"$var_\"." |
| quit |
| } |
| } |
| |
| proc checkNe {var value} { |
| upvar $var var_ |
| if {$var_ == $value} { |
| puts "ERROR: Check failed \"$var\" != \"$value\"!. Actual: \"$var_\"." |
| quit |
| } |
| } |