From 11e594f03ea0286512238e06132d86c386bb390a Mon Sep 17 00:00:00 2001
From: XiaoanHe <118478606+XiaoanHe@users.noreply.github.com>
Date: Mon, 21 Nov 2022 19:30:52 +0000
Subject: [PATCH] Data Extraction Debugged

---
 .../Data Extraction/Data_Extraction.cr.mti    |   16 +
 .../Data Extraction/Data_Extraction.mpf       | 2092 +++++++++++++++++
 .../Data Extraction/Leading_Bit_Detector.sv   |   60 +
 .../Data Extraction/Posit_Extraction.sv       |   69 +
 .../Data Extraction/Test_Data_Extraction.sv   |   49 +
 Individual_Project/Data Extraction/log_2.sv   |   29 +
 Individual_Project/Data Extraction/work/_info |  132 ++
 .../Data Extraction/work/_lib.qdb             |  Bin 0 -> 49152 bytes
 .../Data Extraction/work/_lib1_2.qdb          |  Bin 0 -> 32768 bytes
 .../Data Extraction/work/_lib1_2.qpg          |  Bin 0 -> 122880 bytes
 .../Data Extraction/work/_lib1_2.qtl          |  Bin 0 -> 65972 bytes
 .../Data Extraction/work/_vmake               |    4 +
 Individual_Project/Posit_Extraction.sv        |   69 +-
 Individual_Project/testExtract.sv             |   51 +
 posit_adder_sv/data_extract.sv                |    3 +-
 15 files changed, 2541 insertions(+), 33 deletions(-)
 create mode 100644 Individual_Project/Data Extraction/Data_Extraction.cr.mti
 create mode 100644 Individual_Project/Data Extraction/Data_Extraction.mpf
 create mode 100644 Individual_Project/Data Extraction/Leading_Bit_Detector.sv
 create mode 100644 Individual_Project/Data Extraction/Posit_Extraction.sv
 create mode 100644 Individual_Project/Data Extraction/Test_Data_Extraction.sv
 create mode 100644 Individual_Project/Data Extraction/log_2.sv
 create mode 100644 Individual_Project/Data Extraction/work/_info
 create mode 100644 Individual_Project/Data Extraction/work/_lib.qdb
 create mode 100644 Individual_Project/Data Extraction/work/_lib1_2.qdb
 create mode 100644 Individual_Project/Data Extraction/work/_lib1_2.qpg
 create mode 100644 Individual_Project/Data Extraction/work/_lib1_2.qtl
 create mode 100644 Individual_Project/Data Extraction/work/_vmake
 create mode 100644 Individual_Project/testExtract.sv

diff --git a/Individual_Project/Data Extraction/Data_Extraction.cr.mti b/Individual_Project/Data Extraction/Data_Extraction.cr.mti
new file mode 100644
index 0000000..fc33e39
--- /dev/null
+++ b/Individual_Project/Data Extraction/Data_Extraction.cr.mti	
@@ -0,0 +1,16 @@
+{H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Posit_Extraction.sv} {1 {vlog -work work -sv -stats=none {H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Posit_Extraction.sv}
+Model Technology ModelSim PE Student Edition vlog 10.4a Compiler 2015.03 Apr  7 2015
+-- Compiling package Posit_Extraction_sv_unit
+-- Compiling module Data_Extraction
+
+Top level modules:
+	Data_Extraction
+
+} {} {}} {H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Leading_Bit_Detector.sv} {1 {vlog -work work -sv -stats=none {H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Leading_Bit_Detector.sv}
+Model Technology ModelSim PE Student Edition vlog 10.4a Compiler 2015.03 Apr  7 2015
+-- Compiling module Leading_Bit_Detector
+
+Top level modules:
+	Leading_Bit_Detector
+
+} {} {}}
diff --git a/Individual_Project/Data Extraction/Data_Extraction.mpf b/Individual_Project/Data Extraction/Data_Extraction.mpf
new file mode 100644
index 0000000..72d4221
--- /dev/null
+++ b/Individual_Project/Data Extraction/Data_Extraction.mpf	
@@ -0,0 +1,2092 @@
+; vsim modelsim.ini file, version 10.4
+[Version]
+INIVersion = "10.4a"
+
+; Copyright 1991-2015 Mentor Graphics Corporation
+;
+; All Rights Reserved.
+;
+; THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS THE PROPERTY OF 
+; MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
+;   
+
+[Library]
+std = $MODEL_TECH/../std
+ieee = $MODEL_TECH/../ieee
+vital2000 = $MODEL_TECH/../vital2000
+;
+; VITAL concerns:
+;
+; The library ieee contains (among other packages) the packages of the
+; VITAL 2000 standard.  When a design uses VITAL 2000 exclusively, it should use
+; the physical library ieee (recommended), or use the physical library
+; vital2000, but not both.  The design can use logical library ieee and/or
+; vital2000 as long as each of these maps to the same physical library, either
+; ieee or vital2000.
+;
+; A design using the 1995 version of the VITAL packages, whether or not
+; it also uses the 2000 version of the VITAL packages, must have logical library
+; name ieee mapped to physical library vital1995.  (A design cannot use library
+; vital1995 directly because some packages in this library use logical name ieee
+; when referring to the other packages in the library.)  The design source
+; should use logical name ieee when referring to any packages there except the
+; VITAL 2000 packages.  Any VITAL 2000 present in the design must use logical
+; name vital2000 (mapped to physical library vital2000) to refer to those
+; packages.
+; ieee = $MODEL_TECH/../vital1995
+;
+; For compatiblity with previous releases, logical library name vital2000 maps
+; to library vital2000 (a different library than library ieee, containing the
+; same packages).
+; A design should not reference VITAL from both the ieee library and the
+; vital2000 library because the vital packages are effectively different.
+; A design that references both the ieee and vital2000 libraries must have
+; both logical names ieee and vital2000 mapped to the same library, either of
+; these:
+;   $MODEL_TECH/../ieee
+;   $MODEL_TECH/../vital2000
+;
+verilog = $MODEL_TECH/../verilog
+std_developerskit = $MODEL_TECH/../std_developerskit
+synopsys = $MODEL_TECH/../synopsys
+modelsim_lib = $MODEL_TECH/../modelsim_lib
+sv_std = $MODEL_TECH/../sv_std
+mtiAvm = $MODEL_TECH/../avm
+mtiRnm = $MODEL_TECH/../rnm
+mtiOvm = $MODEL_TECH/../ovm-2.1.2
+mtiUvm = $MODEL_TECH/../uvm-1.1d
+mtiUPF = $MODEL_TECH/../upf_lib
+mtiPA  = $MODEL_TECH/../pa_lib
+floatfixlib = $MODEL_TECH/../floatfixlib
+mc2_lib = $MODEL_TECH/../mc2_lib
+osvvm = $MODEL_TECH/../osvvm
+
+; added mapping for ADMS
+mgc_ams = $MODEL_TECH/../mgc_ams
+ieee_env = $MODEL_TECH/../ieee_env
+
+;vhdl_psl_checkers = $MODEL_TECH/../vhdl_psl_checkers       // Source files only for this release
+;verilog_psl_checkers = $MODEL_TECH/../verilog_psl_checkers // Source files only for this release
+;mvc_lib = $MODEL_TECH/../mvc_lib
+infact = $MODEL_TECH/../infact
+
+
+vhdlopt_lib = $MODEL_TECH/../vhdlopt_lib
+work = work
+[DefineOptionset]
+; Define optionset entries for the various compilers, vmake, and vsim.
+; These option sets can be used with the "-optionset <optionsetname>" syntax.
+; i.e.
+;  vlog -optionset COMPILEDEBUG top.sv
+;  vsim -optionset UVMDEBUG my_top
+;
+; Following are some useful examples.
+
+; define a vsim optionset for uvm debugging
+UVMDEBUG = -uvmcontrol=all -msgmode both -displaymsgmode both -classdebug -onfinish stop
+
+; define a vopt optionset for debugging
+VOPTDEBUG = +acc -debugdb
+
+
+[vcom]
+; VHDL93 variable selects language version as the default. 
+; Default is VHDL-2002.
+; Value of 0 or 1987 for VHDL-1987.
+; Value of 1 or 1993 for VHDL-1993.
+; Default or value of 2 or 2002 for VHDL-2002.
+; Value of 3 or 2008 for VHDL-2008
+; Value of 4 or ams99 for VHDL-AMS-1999
+; Value of 5 or ams07 for VHDL-AMS-2007
+VHDL93 = 2002
+
+; Ignore VHDL-2008 declaration of REAL_VECTOR in package STANDARD. Default is off.
+; ignoreStandardRealVector = 1
+
+; Show source line containing error. Default is off.
+; Show_source = 1
+
+; Turn off unbound-component warnings. Default is on.
+; Show_Warning1 = 0
+
+; Turn off process-without-a-wait-statement warnings. Default is on.
+; Show_Warning2 = 0
+
+; Turn off null-range warnings. Default is on.
+; Show_Warning3 = 0
+
+; Turn off no-space-in-time-literal warnings. Default is on.
+; Show_Warning4 = 0
+
+; Turn off multiple-drivers-on-unresolved-signal warnings. Default is on.
+; Show_Warning5 = 0
+
+; Turn off optimization for IEEE std_logic_1164 package. Default is on.
+; Optimize_1164 = 0
+
+; Enable compiler statistics. Specify one or more arguments: 
+;                   [all,none,time,cmd,msg,perf,verbose,list]
+; Add '-' to disable specific statistics. Default is [time,cmd,msg].
+; Stats = time,cmd,msg
+
+; Turn on resolving of ambiguous function overloading in favor of the
+; "explicit" function declaration (not the one automatically created by
+; the compiler for each type declaration). Default is off.
+; The .ini file has Explicit enabled so that std_logic_signed/unsigned
+; will match the behavior of synthesis tools.
+Explicit = 1
+
+; Turn off acceleration of the VITAL packages. Default is to accelerate.
+; NoVital = 1
+
+; Turn off VITAL compliance checking. Default is checking on.
+; NoVitalCheck = 1
+
+; Ignore VITAL compliance checking errors. Default is to not ignore.
+; IgnoreVitalErrors = 1
+
+; Turn off VITAL compliance checking warnings. Default is to show warnings.
+; Show_VitalChecksWarnings = 0
+
+; Turn off PSL assertion warning messages. Default is to show warnings.
+; Show_PslChecksWarnings = 0
+
+; Enable parsing of embedded PSL assertions. Default is enabled.
+; EmbeddedPsl = 0
+
+; Keep silent about case statement static warnings.
+; Default is to give a warning.
+; NoCaseStaticError = 1
+
+; Keep silent about warnings caused by aggregates that are not locally static.
+; Default is to give a warning.
+; NoOthersStaticError = 1
+
+; Treat as errors:
+;   case statement static warnings
+;   warnings caused by aggregates that are not locally static
+; Overrides NoCaseStaticError, NoOthersStaticError settings.
+; PedanticErrors = 1
+
+; Turn off inclusion of debugging info within design units.
+; Default is to include debugging info.
+; NoDebug = 1
+
+; Turn off "Loading..." messages. Default is messages on.
+; Quiet = 1
+
+; Turn on some limited synthesis rule compliance checking. Checks only:
+;    -- signals used (read) by a process must be in the sensitivity list
+; CheckSynthesis = 1
+
+; Activate optimizations on expressions that do not involve signals,
+; waits, or function/procedure/task invocations. Default is off.
+; ScalarOpts = 1
+
+; Turns on lint-style checking.
+; Show_Lint = 1
+
+; Require the user to specify a configuration for all bindings,
+; and do not generate a compile time default binding for the
+; component. This will result in an elaboration error of
+; 'component not bound' if the user fails to do so. Avoids the rare
+; issue of a false dependency upon the unused default binding.
+; RequireConfigForAllDefaultBinding = 1
+
+; Perform default binding at compile time.
+; Default is to do default binding at load time.
+; BindAtCompile = 1;
+
+; Inhibit range checking on subscripts of arrays. Range checking on
+; scalars defined with subtypes is inhibited by default.
+; NoIndexCheck = 1
+
+; Inhibit range checks on all (implicit and explicit) assignments to
+; scalar objects defined with subtypes.
+; NoRangeCheck = 1
+
+; Set the prefix to be honored for synthesis/coverage pragma recognition.
+; Default is "".
+; AddPragmaPrefix = ""
+
+; Ignore synthesis and coverage pragmas with this prefix.
+; Default is "".
+; IgnorePragmaPrefix = ""
+
+; Turn on code coverage in VHDL design units. Default is off.
+; Coverage = sbceft
+
+; Turn off code coverage in VHDL subprograms. Default is on.
+; CoverSub = 0
+
+; Automatically exclude VHDL case statement OTHERS choice branches.
+; This includes OTHERS choices in selected signal assigment statements.
+; Default is to not exclude.
+; CoverExcludeDefault = 1
+
+; Control compiler and VOPT optimizations that are allowed when
+; code coverage is on.  Refer to the comment for this in the [vlog] area. 
+; CoverOpt = 3
+
+; Turn on or off clkOpt optimization for code coverage. Default is on.
+; CoverClkOpt = 1
+
+; Turn on or off clkOpt optimization builtins for code coverage. Default is on.
+; CoverClkOptBuiltins = 0
+
+; Inform code coverage optimizations to respect VHDL 'H' and 'L'
+; values on signals in conditions and expressions, and to not automatically
+; convert them to '1' and '0'. Default is to not convert.
+; CoverRespectHandL = 0
+
+; Increase or decrease the maximum number of rows allowed in a UDP table
+; implementing a VHDL condition coverage or expression coverage expression.
+; More rows leads to a longer compile time, but more expressions covered.
+; CoverMaxUDPRows = 192
+
+; Increase or decrease the maximum number of input patterns that are present
+; in FEC table. This leads to a longer compile time with more expressions
+; covered with FEC metric.
+; CoverMaxFECRows = 192
+
+; Increase or decrease the limit on the size of expressions and conditions
+; considered for expression and condition coverages. Higher FecUdpEffort leads 
+; to higher compile, optimize and simulation time, but more expressions and 
+; conditions are considered for coverage in the design. FecUdpEffort can
+; be set to a number ranging from 1 (low) to 3 (high), defined as:
+;   1 - (low) Only small expressions and conditions considered for coverage.
+;   2 - (medium) Bigger expressions and conditions considered for coverage.
+;   3 - (high) Very large expressions and conditions considered for coverage.
+; The default setting is 1 (low).
+; FecUdpEffort = 1
+
+; Enable or disable Focused Expression Coverage analysis for conditions and
+; expressions. Focused Expression Coverage data is provided by default when
+; expression and/or condition coverage is active.
+; CoverFEC = 0
+
+; Enable or disable UDP Coverage analysis for conditions and expressions.
+; UDP Coverage data is disabled by default when expression and/or condition
+; coverage is active.
+; CoverUDP = 1
+
+; Enable or disable Rapid Expression Coverage mode for conditions and expressions.
+; Disabling this would convert non-masking conditions in FEC tables to matching
+; input patterns. 
+; CoverREC = 1
+
+; Enable or disable bit-blasting multi-bit operands of reduction prefix expressions
+; for expression/condition coverage.
+; NOTE: Enabling this may have a negative impact on simulation performance.
+; CoverExpandReductionPrefix = 0
+
+; Enable or disable short circuit evaluation of conditions and expressions when
+; condition or expression coverage is active. Short circuit evaluation is enabled
+; by default.
+; CoverShortCircuit = 0
+
+; Enable code coverage reporting of code that has been optimized away.
+; The default is not to report.
+; CoverReportCancelled = 1
+
+; Enable deglitching of code coverage in combinatorial, non-clocked, processes.
+; Default is no deglitching.
+; CoverDeglitchOn = 1
+
+; Control the code coverage deglitching period. A period of 0, eliminates delta
+; cycle glitches. The value of CoverDeglitchPeriod needs to be either be 0 or a
+; time string that includes time units. Examples: 0 or 10.0ps or "10.0 ps".
+; CoverDeglitchPeriod = 0
+
+; Use this directory for compiler temporary files instead of "work/_temp"
+; CompilerTempDir = /tmp
+
+; Set this to cause the compilers to force data to be committed to disk
+; when the files are closed.
+; SyncCompilerFiles = 1
+
+; Add VHDL-AMS declarations to package STANDARD
+; Default is not to add
+; AmsStandard = 1
+
+; Range and length checking will be performed on array indices and discrete
+; ranges, and when violations are found within subprograms, errors will be
+; reported. Default is to issue warnings for violations, because subprograms
+; may not be invoked.
+; NoDeferSubpgmCheck = 0
+
+; Turn ON detection of FSMs having single bit current state variable.
+; FsmSingle = 1
+
+; Turn off reset state transitions in FSM.
+; FsmResetTrans = 0
+
+; Turn ON detection of FSM Implicit Transitions.
+; FsmImplicitTrans = 1
+
+; Controls whether or not to show immediate assertions with constant expressions
+; in GUI/report/UCDB etc. By default, immediate assertions with constant
+; expressions are shown in GUI/report/UCDB etc. This does not affect
+; evaluation of immediate assertions.
+; ShowConstantImmediateAsserts = 0
+
+; Controls how VHDL basic identifiers are stored with the design unit.
+; Does not make the language case-sensitive, affects only how declarations
+; declared with basic identifiers have their names stored and printed
+; (in the GUI, examine, etc.).
+; Default is to preserve the case as originally depicted in the VHDL source.
+; Value of 0 indicates to change all basic identifiers to lower case.
+; PreserveCase = 0
+
+; For Configuration Declarations, controls the effect that USE clauses have
+; on visibility inside the configuration items being configured.  If 1
+; (the default), then use pre-10.0 behavior. If 0, then for stricter LRM-compliance,
+; extend the visibility of objects made visible through USE clauses into nested
+; component configurations.
+; OldVHDLConfigurationVisibility = 0
+
+; Allows VHDL configuration declarations to be in a different library from
+; the corresponding configured entity. Default is to not allow this for
+; stricter LRM-compliance.
+; SeparateConfigLibrary = 1;
+
+; Determine how mode OUT subprogram parameters of type array and record are treated.
+; If 0 (the default), then only VHDL 2008 will do this initialization.
+; If 1, always initialize the mode OUT parameter to its default value.
+; If 2, do not initialize the mode OUT out parameter.
+; Note that prior to release 10.1, all language versions did not initialize mode
+; OUT array and record type parameters, unless overridden here via this mechanism.
+; In release 10.1 and later, only files compiled with VHDL 2008 will cause this
+; initialization, unless overridden here.
+; InitOutCompositeParam = 0
+
+; Generate symbols debugging database in only some special cases to save on
+; the number of files in the library. For other design-units, this database is
+; generated on-demand in vsim. 
+; Default is to to generate debugging database for all design-units.
+; SmartDbgSym = 1
+
+; Enable or disable automatic creation of missing libraries.
+; Default is 1 (enabled)  
+; CreateLib = 1
+
+[vlog]
+; Turn off inclusion of debugging info within design units.
+; Default is to include debugging info.
+; NoDebug = 1
+
+; Turn on `protect compiler directive processing.
+; Default is to ignore `protect directives.
+; Protect = 1
+
+; Turn off "Loading..." messages. Default is messages on.
+; Quiet = 1
+
+; Turn on Verilog hazard checking (order-dependent accessing of global vars).
+; Default is off.
+; Hazard = 1
+
+; Turn on converting regular Verilog identifiers to uppercase. Allows case
+; insensitivity for module names. Default is no conversion.
+; UpCase = 1
+
+; Activate optimizations on expressions that do not involve signals,
+; waits, or function/procedure/task invocations. Default is off.
+; ScalarOpts = 1
+
+; Turns on lint-style checking.
+; Show_Lint = 1
+
+; Show source line containing error. Default is off.
+; Show_source = 1
+
+; Turn on bad option warning. Default is off.
+; Show_BadOptionWarning = 1
+
+; Revert back to IEEE 1364-1995 syntax, default is 0 (off).
+; vlog95compat = 1
+
+; Turn off PSL warning messages. Default is to show warnings.
+; Show_PslChecksWarnings = 0
+
+; Enable parsing of embedded PSL assertions. Default is enabled.
+; EmbeddedPsl = 0
+
+; Enable compiler statistics. Specify one or more arguments: 
+;                   [all,none,time,cmd,msg,perf,verbose,list,kb]
+; Add '-' to disable specific statistics. Default is [time,cmd,msg].
+; Stats = time,cmd,msg
+
+; Set the threshold for automatically identifying sparse Verilog memories.
+; A memory with depth equal to or more than the sparse memory threshold gets
+; marked as sparse automatically, unless specified otherwise in source code
+; or by +nosparse commandline option of vlog or vopt.
+; The default is 1M.  (i.e. memories with depth equal
+; to or greater than 1M are marked as sparse)
+; SparseMemThreshold = 1048576 
+
+; Set the prefix to be honored for synthesis and coverage pragma recognition.
+; Default is "".
+; AddPragmaPrefix = ""
+
+; Ignore synthesis and coverage pragmas with this prefix.
+; Default is "".
+; IgnorePragmaPrefix = ""
+
+; Set the option to treat all files specified in a vlog invocation as a
+; single compilation unit. The default value is set to 0 which will treat
+; each file as a separate compilation unit as specified in the P1800 draft standard.
+; MultiFileCompilationUnit = 1
+
+; Turn on code coverage in Verilog design units. Default is off.
+; Coverage = sbceft
+
+; Automatically exclude Verilog case statement default branches. 
+; Default is to not automatically exclude defaults.
+; CoverExcludeDefault = 1
+
+; Increase or decrease the maximum number of rows allowed in a UDP table
+; implementing a VHDL condition coverage or expression coverage expression.
+; More rows leads to a longer compile time, but more expressions covered.
+; CoverMaxUDPRows = 192
+
+; Increase or decrease the maximum number of input patterns that are present
+; in FEC table. This leads to a longer compile time with more expressions
+; covered with FEC metric.
+; CoverMaxFECRows = 192
+
+; Increase or decrease the limit on the size of expressions and conditions
+; considered for expression and condition coverages. Higher FecUdpEffort leads 
+; to higher compile, optimize and simulation time, but more expressions and 
+; conditions are considered for coverage in the design. FecUdpEffort can
+; be set to a number ranging from 1 (low) to 3 (high), defined as:
+;   1 - (low) Only small expressions and conditions considered for coverage.
+;   2 - (medium) Bigger expressions and conditions considered for coverage.
+;   3 - (high) Very large expressions and conditions considered for coverage.
+; The default setting is 1 (low).
+; FecUdpEffort = 1
+
+; Enable or disable Focused Expression Coverage analysis for conditions and
+; expressions. Focused Expression Coverage data is provided by default when
+; expression and/or condition coverage is active.
+; CoverFEC = 0
+
+; Enable or disable UDP Coverage analysis for conditions and expressions.
+; UDP Coverage data is disabled by default when expression and/or condition
+; coverage is active.
+; CoverUDP = 1
+
+; Enable or disable Rapid Expression Coverage mode for conditions and expressions.
+; Disabling this would convert non-masking conditions in FEC tables to matching
+; input patterns. 
+; CoverREC = 1
+
+; Enable or disable bit-blasting multi-bit operands of reduction prefix expressions
+; for expression/condition coverage.
+; NOTE: Enabling this may have a negative impact on simulation performance.
+; CoverExpandReductionPrefix = 0
+
+; Enable or disable short circuit evaluation of conditions and expressions when
+; condition or expression coverage is active. Short circuit evaluation is enabled
+; by default.
+; CoverShortCircuit = 0
+
+; Enable deglitching of code coverage in combinatorial, non-clocked, processes.
+; Default is no deglitching.
+; CoverDeglitchOn = 1
+
+; Control the code coverage deglitching period. A period of 0, eliminates delta
+; cycle glitches. The value of CoverDeglitchPeriod needs to be either be 0 or a
+; time string that includes time units. Examples: 0 or 10.0ps or "10.0 ps".
+; CoverDeglitchPeriod = 0
+
+; Turn on code coverage in VLOG `celldefine modules, modules containing
+; specify blocks, and modules included using vlog -v and -y. Default is off.
+; CoverCells = 1
+
+; Enable code coverage reporting of code that has been optimized away.
+; The default is not to report.
+; CoverReportCancelled = 1
+
+; Control compiler and VOPT optimizations that are allowed when
+; code coverage is on. This is a number from 0 to 5, with the following
+; meanings (the default is 3):
+;    5 -- All allowable optimizations are on.
+;    4 -- Turn off removing unreferenced code.
+;    3 -- Turn off process, always block and if statement merging.
+;    2 -- Turn off expression optimization, converting primitives
+;         to continuous assignments, VHDL subprogram inlining.
+;         and VHDL clkOpt (converting FF's to builtins).
+;    1 -- Turn off continuous assignment optimizations and clock suppression.
+;    0 -- Turn off Verilog module inlining and VHDL arch inlining.
+; HOWEVER, if fsm coverage is turned on, optimizations will be forced to
+; level 3, with also turning off converting primitives to continuous assigns.
+; CoverOpt = 3
+
+; Specify the override for the default value of "cross_num_print_missing"
+; option for the Cross in Covergroups. If not specified then LRM default
+; value of 0 (zero) is used. This is a compile time option.
+; SVCrossNumPrintMissingDefault = 0
+
+; Setting following to 1 would cause creation of variables which
+; would represent the value of Coverpoint expressions. This is used
+; in conjunction with "SVCoverpointExprVariablePrefix" option
+; in the modelsim.ini
+; EnableSVCoverpointExprVariable = 0
+
+; Specify the override for the prefix used in forming the variable names
+; which represent the Coverpoint expressions. This is used in conjunction with 
+; "EnableSVCoverpointExprVariable" option of the modelsim.ini
+; The default prefix is "expr".
+; The variable name is
+;    variable name => <prefix>_<coverpoint name>
+; SVCoverpointExprVariablePrefix = expr
+
+; Override for the default value of the SystemVerilog covergroup,
+; coverpoint, and cross option.goal (defined to be 100 in the LRM).
+; NOTE: It does not override specific assignments in SystemVerilog
+; source code. NOTE: The modelsim.ini variable "SVCovergroupGoal"
+; in the [vsim] section can override this value.
+; SVCovergroupGoalDefault = 100
+
+; Override for the default value of the SystemVerilog covergroup,
+; coverpoint, and cross type_option.goal (defined to be 100 in the LRM)
+; NOTE: It does not override specific assignments in SystemVerilog
+; source code. NOTE: The modelsim.ini variable "SVCovergroupTypeGoal"
+; in the [vsim] section can override this value.
+; SVCovergroupTypeGoalDefault = 100
+
+; Specify the override for the default value of "strobe" option for the
+; Covergroup Type. This is a compile time option which forces "strobe" to
+; a user specified default value and supersedes SystemVerilog specified
+; default value of '0'(zero). NOTE: This can be overriden by a runtime
+; modelsim.ini variable "SVCovergroupStrobe" in the [vsim] section.
+; SVCovergroupStrobeDefault = 0
+
+; Specify the override for the default value of "per_instance" option for the
+; Covergroup variables. This is a compile time option which forces "per_instance"
+; to a user specified default value and supersedes SystemVerilog specified
+; default value of '0'(zero).
+; SVCovergroupPerInstanceDefault = 0
+
+; Specify the override for the default value of "get_inst_coverage" option for the
+; Covergroup variables. This is a compile time option which forces 
+; "get_inst_coverage" to a user specified default value and supersedes 
+; SystemVerilog specified default value of '0'(zero).
+; SVCovergroupGetInstCoverageDefault = 0
+
+;
+; A space separated list of resource libraries that contain precompiled
+; packages.  The behavior is identical to using the "-L" switch.
+; 
+; LibrarySearchPath = <path/lib> [<path/lib> ...]
+LibrarySearchPath = mtiAvm mtiRnm mtiOvm mtiUvm mtiUPF infact
+
+; The behavior is identical to the "-mixedansiports" switch.  Default is off.
+; MixedAnsiPorts = 1
+
+; Enable SystemVerilog 3.1a $typeof() function. Default is off.
+; EnableTypeOf = 1
+
+; Only allow lower case pragmas. Default is disabled.
+; AcceptLowerCasePragmaOnly = 1
+
+; Set the maximum depth permitted for a recursive include file nesting.
+; IncludeRecursionDepthMax = 5
+
+; Turn ON detection of FSMs having single bit current state variable.
+; FsmSingle = 1
+
+; Turn off reset state transitions in FSM.
+; FsmResetTrans = 0
+
+; Turn off detections of FSMs having x-assignment.
+; FsmXAssign = 0
+
+; Turn ON detection of FSM Implicit Transitions.
+; FsmImplicitTrans = 1
+
+; List of file suffixes which will be read as SystemVerilog.  White space
+; in extensions can be specified with a back-slash: "\ ".  Back-slashes
+; can be specified with two consecutive back-slashes: "\\";
+; SvFileSuffixes = sv svp svh
+
+; This setting is the same as the vlog -sv command line switch.
+; Enables SystemVerilog features and keywords when true (1).
+; When false (0), the rules of IEEE Std 1364-2001 are followed and 
+; SystemVerilog keywords are ignored. 
+; Svlog = 0
+
+; Prints attribute placed upon SV packages during package import
+; when true (1).  The attribute will be ignored when this
+; entry is false (0). The attribute name is "package_load_message".
+; The value of this attribute is a string literal.
+; Default is true (1).
+; PrintSVPackageLoadingAttribute = 1
+
+; Do not show immediate assertions with constant expressions in 
+; GUI/reports/UCDB etc. By default immediate assertions with constant 
+; expressions are shown in GUI/reports/UCDB etc. This does not affect 
+; evaluation of immediate assertions.
+; ShowConstantImmediateAsserts = 0
+
+; Controls if untyped parameters that are initialized with values greater
+; than 2147483647 are mapped to generics of type INTEGER or ignored.
+; If mapped to VHDL Integers, values greater than 2147483647
+; are mapped to negative values.
+; Default is to map these parameter to generic of type INTEGER
+; ForceUnsignedToVHDLInteger = 1
+
+; Enable AMS wreal (wired real) extensions.  Default is 0.
+; WrealType = 1
+
+; Controls SystemVerilog Language Extensions.  These options enable
+; some non-LRM compliant behavior.  Valid extensions are:
+; "acum", "atpi", "catx", "daoa", "feci", "fin0", "idcl",
+; "iddp", "pae", "sccts", "spsl", "stop0", "udm0", and "uslt".
+; SvExtensions = uslt,spsl,sccts
+
+; Generate symbols debugging database in only some special cases to save on
+; the number of files in the library. For other design-units, this database is
+; generated on-demand in vsim. 
+; Default is to to generate debugging database for all design-units.
+; SmartDbgSym = 1
+
+; Controls how $unit library entries are named.  Valid options are:
+; "file" (generate name based on the first file on the command line)
+; "du" (generate name based on first design unit following an item
+; found in $unit scope)
+; CUAutoName = file
+
+; Enable or disable automatic creation of missing libraries.
+; Default is 1 (enabled)  
+; CreateLib = 1
+
+[sccom]
+; Enable use of SCV include files and library.  Default is off.
+; UseScv = 1
+
+; Add C++ compiler options to the sccom command line by using this variable.
+; CppOptions = -g
+
+; Use custom C++ compiler located at this path rather than the default path.
+; The path should point directly at a compiler executable.
+; CppPath = /usr/bin/g++
+
+; Specify the compiler version from the list of support GNU compilers.
+; examples 4.3.3, 4.5.0
+; CppInstall = 4.5.0
+
+; Enable verbose messages from sccom.  Default is off.
+; SccomVerbose = 1
+
+; sccom logfile.  Default is no logfile.
+; SccomLogfile = sccom.log
+
+; Enable use of SC_MS include files and library.  Default is off.
+; UseScMs = 1
+
+; Use SystemC-2.2 instead of the default SystemC-2.3. Default is off.
+; Sc22Mode = 1
+
+; Enable compiler statistics. Specify one or more arguments: 
+;                   [all,none,time,cmd,msg,perf,verbose,list,kb]
+; Add '-' to disable specific statistics. Default is [time,cmd,msg].
+; Stats = time,cmd,msg
+
+; Enable or disable automatic creation of missing libraries.
+; Default is 1 (enabled)  
+; CreateLib = 1
+
+[vopt]
+; Turn on code coverage in vopt.  Default is off. 
+; Coverage = sbceft
+
+; Control compiler optimizations that are allowed when
+; code coverage is on.  Refer to the comment for this in the [vlog] area. 
+; CoverOpt = 3
+
+; Increase or decrease the maximum number of rows allowed in a UDP table
+; implementing a VHDL condition coverage or expression coverage expression.
+; More rows leads to a longer compile time, but more expressions covered.
+; CoverMaxUDPRows = 192
+
+; Increase or decrease the maximum number of input patterns that are present
+; in FEC table. This leads to a longer compile time with more expressions
+; covered with FEC metric.
+; CoverMaxFECRows = 192
+
+; Increase or decrease the limit on the size of expressions and conditions
+; considered for expression and condition coverages. Higher FecUdpEffort leads 
+; to higher compile, optimize and simulation time, but more expressions and 
+; conditions are considered for coverage in the design. FecUdpEffort can
+; be set to a number ranging from 1 (low) to 3 (high), defined as:
+;   1 - (low) Only small expressions and conditions considered for coverage.
+;   2 - (medium) Bigger expressions and conditions considered for coverage.
+;   3 - (high) Very large expressions and conditions considered for coverage.
+; The default setting is 1 (low).
+; FecUdpEffort = 1
+
+; Enable code coverage reporting of code that has been optimized away.
+; The default is not to report.
+; CoverReportCancelled = 1
+
+; Enable deglitching of code coverage in combinatorial, non-clocked, processes.
+; Default is no deglitching.
+; CoverDeglitchOn = 1
+
+; Enable compiler statistics. Specify one or more arguments: 
+;                   [all,none,time,cmd,msg,perf,verbose,list,kb]
+; Add '-' to disable specific statistics. Default is [time,cmd,msg].
+; Stats = time,cmd,msg
+
+; Control the code coverage deglitching period. A period of 0, eliminates delta
+; cycle glitches. The value of CoverDeglitchPeriod needs to be either be 0 or a
+; time string that includes time units. Examples: 0 or 10.0ps or "10.0 ps".
+; CoverDeglitchPeriod = 0
+
+; Do not show immediate assertions with constant expressions in 
+; GUI/reports/UCDB etc. By default immediate assertions with constant 
+; expressions are shown in GUI/reports/UCDB etc. This does not affect 
+; evaluation of immediate assertions.
+; ShowConstantImmediateAsserts = 0
+
+; Set the maximum number of iterations permitted for a generate loop.
+; Restricting this permits the implementation to recognize infinite
+; generate loops.
+; GenerateLoopIterationMax = 100000
+
+; Set the maximum depth permitted for a recursive generate instantiation.
+; Restricting this permits the implementation to recognize infinite
+; recursions.
+; GenerateRecursionDepthMax = 200
+
+; Set the number of processes created during the code generation phase.
+; By default a heuristic is used to set this value.  This may be set to 0
+; to disable this feature completely.
+; ParallelJobs = 0 
+
+; Controls SystemVerilog Language Extensions.  These options enable
+; some non-LRM compliant behavior.  Valid extensions are "feci",
+; "pae", "uslt", "spsl", "fin0" and "sccts".
+; SvExtensions = uslt,spsl,sccts
+
+; Load the specified shared objects with the RTLD_GLOBAL flag.
+; This gives global visibility to all symbols in the shared objects,
+; meaning that subsequently loaded shared objects can bind to symbols
+; in the global shared objects.  The list of shared objects should
+; be whitespace delimited.  This option is not supported on the
+; Windows or AIX platforms.
+; GlobalSharedObjectList = example1.so example2.so example3.so
+
+; Disable SystemVerilog elaboration system task messages
+; IgnoreSVAInfo = 1 
+; IgnoreSVAWarning = 1
+; IgnoreSVAError = 1
+; IgnoreSVAFatal = 1
+
+; Enable or disable automatic creation of missing libraries.
+; Default is 1 (enabled)  
+; CreateLib = 1
+
+
+[vsim]
+; vopt flow
+; Set to turn on automatic optimization of a design.
+; Default is on
+VoptFlow = 1
+
+; Simulator resolution
+; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100.
+Resolution = ns
+
+; Disable certain code coverage exclusions automatically. 
+; Assertions and FSM are exluded from the code coverage by default
+; Set AutoExclusionsDisable = fsm to enable code coverage for fsm
+; Set AutoExclusionsDisable = assertions to enable code coverage for assertions
+; Set AutoExclusionsDisable = all to enable code coverage for all the automatic exclusions
+; Or specify comma or space separated list
+;AutoExclusionsDisable = fsm,assertions
+
+; User time unit for run commands
+; Set to default, fs, ps, ns, us, ms, or sec. The default is to use the
+; unit specified for Resolution. For example, if Resolution is 100ps,
+; then UserTimeUnit defaults to ps.
+; Should generally be set to default.
+UserTimeUnit = default
+
+; Default run length
+RunLength = 100 ns
+
+; Maximum iterations that can be run without advancing simulation time
+IterationLimit = 10000000
+
+; Specify libraries to be searched for precompiled modules
+; LibrarySearchPath = <path/lib> [<path/lib> ...]
+
+; Set XPROP assertion fail limit. Default is 5.
+; Any positive integer, -1 for infinity.
+; XpropAssertionLimit = 5
+
+; Control PSL and Verilog Assume directives during simulation
+; Set SimulateAssumeDirectives = 0 to disable assume being simulated as asserts
+; Set SimulateAssumeDirectives = 1 to enable assume simulation as asserts
+; SimulateAssumeDirectives = 1 
+
+; Control the simulation of PSL and SVA
+; These switches can be overridden by the vsim command line switches:
+;    -psl, -nopsl, -sva, -nosva.
+; Set SimulatePSL = 0 to disable PSL simulation
+; Set SimulatePSL = 1 to enable PSL simulation (default)
+; SimulatePSL = 1 
+; Set SimulateSVA = 0 to disable SVA simulation
+; Set SimulateSVA = 1 to enable concurrent SVA simulation (default)
+; SimulateSVA = 1 
+
+; Control SVA and VHDL immediate assertion directives during simulation
+; Set SimulateImmedAsserts = 0 to disable simulation of immediate asserts 
+; Set SimulateImmedAsserts = 1 to enable simulation of immediate asserts
+; SimulateImmedAsserts = 1 
+
+; License feature mappings for Verilog and VHDL
+; qhsimvh       Single language VHDL license
+; qhsimvl       Single language Verilog license
+; msimhdlsim    Language neutral license for either Verilog or VHDL
+; msimhdlmix    Second language only, language neutral license for either 
+;               Verilog or VHDL
+;
+; Directives to license manager can be set either as single value or as
+; space separated multi-values:
+; vhdl          Immediately checkout and hold a VHDL license (i.e., one of
+;               qhsimvh, msimhdlsim, or msimhdlmix)
+; vlog          Immediately checkout and hold a Verilog license (i.e., one of
+;               qhsimvl, msimhdlsim, or msimhdlmix)
+; plus          Immediately checkout and hold a VHDL license and a Verilog license
+; noqueue       Do not wait in the license queue when a license is not available
+; viewsim       Try for viewer license but accept simulator license(s) instead
+;               of queuing for viewer license (PE ONLY)
+; noviewer      Disable checkout of msimviewer license feature (PE ONLY)
+; noslvhdl      Disable checkout of qhsimvh license feature
+; noslvlog      Disable checkout of qhsimvl license feature
+; nomix         Disable checkout of msimhdlmix license feature
+; nolnl         Disable checkout of msimhdlsim license feature
+; mixedonly     Disable checkout of qhsimvh and qhsimvl license features
+; lnlonly       Disable checkout of qhsimvh,qhsimvl, and msimhdlmix license features
+;
+; Examples (remove ";" comment character to activate licensing directives):
+; Single directive:
+; License = plus
+; Multi-directive (Note: space delimited directives):
+; License = noqueue plus
+
+; Severity level of a VHDL assertion message or of a SystemVerilog severity system task
+; which will cause a running simulation to stop.
+; VHDL assertions and SystemVerilog severity system task that occur with the
+; given severity or higher will cause a running simulation to stop.
+; This value is ignored during elaboration.
+; 0 = Note  1 = Warning  2 = Error  3 = Failure  4 = Fatal
+BreakOnAssertion = 3
+
+; Severity level of a tool message which will cause a running simulation to 
+; stop. This value is ignored during elaboration. Default is to not break.
+; 0 = Note  1 = Warning  2 = Error  3 = Fatal
+;BreakOnMessage = 2
+
+; The class debug feature enables more visibility and tracking of class instances
+; during simulation.  By default this feature is disabled (0).  To enable this 
+; feature set ClassDebug to 1.
+; ClassDebug = 1
+
+; Message Format conversion specifications:
+; %S - Severity Level of message/assertion
+; %R - Text of message
+; %T - Time of message
+; %D - Delta value (iteration number) of Time
+; %K - Kind of path: Instance/Region/Signal/Process/Foreign Process/Unknown/Protected
+; %i - Instance/Region/Signal pathname with Process name (if available)
+; %I - shorthand for one of these:
+;      "  %K: %i"
+;      "  %K: %i File: %F" (when path is not Process or Signal)
+;      except that the %i in this case does not report the Process name
+; %O - Process name
+; %P - Instance/Region path without leaf process
+; %F - File name
+; %L - Line number; if assertion message, then line number of assertion or, if
+;      assertion is in a subprogram, line from which the call is made
+; %u - Design unit name in form library.primary
+; %U - Design unit name in form library.primary(secondary)
+; %% - The '%' character itself
+;
+; If specific format for Severity Level is defined, use that format.
+; Else, for a message that occurs during elaboration:
+;   -- Failure/Fatal message in VHDL region that is not a Process, and in
+;      certain non-VHDL regions, uses MessageFormatBreakLine;
+;   -- Failure/Fatal message otherwise uses MessageFormatBreak;
+;   -- Note/Warning/Error message uses MessageFormat.
+; Else, for a message that occurs during runtime and triggers a breakpoint because
+; of the BreakOnAssertion setting:
+;   -- if in a VHDL region that is not a Process, uses MessageFormatBreakLine;
+;   -- otherwise uses MessageFormatBreak.
+; Else (a runtime message that does not trigger a breakpoint) uses MessageFormat.
+;
+; MessageFormatNote      = "** %S: %R\n   Time: %T  Iteration: %D%I\n"
+; MessageFormatWarning   = "** %S: %R\n   Time: %T  Iteration: %D%I\n"
+; MessageFormatError     = "** %S: %R\n   Time: %T  Iteration: %D  %K: %i File: %F\n"
+; MessageFormatFail      = "** %S: %R\n   Time: %T  Iteration: %D  %K: %i File: %F\n"
+; MessageFormatFatal     = "** %S: %R\n   Time: %T  Iteration: %D  %K: %i File: %F\n"
+; MessageFormatBreakLine = "** %S: %R\n   Time: %T  Iteration: %D  %K: %i File: %F Line: %L\n"
+; MessageFormatBreak     = "** %S: %R\n   Time: %T  Iteration: %D  %K: %i File: %F\n"
+; MessageFormat          = "** %S: %R\n   Time: %T  Iteration: %D%I\n"
+
+; Error File - alternate file for storing error messages
+; ErrorFile = error.log
+
+; Simulation Breakpoint messages
+; This flag controls the display of function names when reporting the location
+; where the simulator stops because of a breakpoint or fatal error.
+; Example with function name:    # Break in Process ctr at counter.vhd line 44
+; Example without function name: # Break at counter.vhd line 44
+; Default value is 1.
+ShowFunctions = 1
+
+; Default radix for all windows and commands.
+; Radix may be one of: symbolic, ascii, binary, octal, decimal, hex, unsigned
+; Flags may be one of: enumnumeric, showbase
+DefaultRadix = hexadecimal
+DefaultRadixFlags = showbase
+; Set to 1 for make the signal_force VHDL and Verilog functions use the 
+; default radix when processing the force value. Prior to 10.2 signal_force
+; used the default radix, now it always uses symbolic unless value explicitly indicates base
+;SignalForceFunctionUseDefaultRadix = 0
+
+; VSIM Startup command
+; Startup = do startup.do
+
+; VSIM Shutdown file
+; Filename to save u/i formats and configurations.
+; ShutdownFile = restart.do
+; To explicitly disable auto save:
+; ShutdownFile = --disable-auto-save
+
+; Run simulator in batch mode as if -batch were specified on the command line if none of -c, -gui, or -i specified.
+; Simulator runs in interactive mode as if -i were specified if this option is 0. Default is 0.
+; BatchMode = 1
+
+; File for saving command transcript when -batch option used
+; This option is ignored when -c, -gui, or -i options are used or if BatchMode above is zero
+; default is unset so command transcript only goes to stdout for better performance
+; BatchTranscriptFile = transcript
+
+; File for saving command transcript, this option is ignored when -batch option is used
+TranscriptFile = transcript
+
+; File for saving command history
+; CommandHistory = cmdhist.log
+
+; Specify whether paths in simulator commands should be described
+; in VHDL or Verilog format.
+; For VHDL, PathSeparator = /
+; For Verilog, PathSeparator = .
+; Must not be the same character as DatasetSeparator.
+PathSeparator = /
+
+; Specify the dataset separator for fully rooted contexts.
+; The default is ':'. For example: sim:/top
+; Must not be the same character as PathSeparator.
+DatasetSeparator = :
+
+; Specify a unique path separator for the Signal Spy set of functions. 
+; The default will be to use the PathSeparator variable.
+; Must not be the same character as DatasetSeparator.
+; SignalSpyPathSeparator = /
+
+; Used to control parsing of HDL identifiers input to the tool.
+; This includes CLI commands, vsim/vopt/vlog/vcom options,
+; string arguments to FLI/VPI/DPI calls, etc.
+; If set to 1, accept either Verilog escaped Id syntax or
+; VHDL extended id syntax, regardless of source language.
+; If set to 0, the syntax of the source language must be used.
+; Each identifier in a hierarchical name may need different syntax,
+; e.g. "/top/\vhdl*ext*id\/middle/\vlog*ext*id /bottom" or
+;       "top.\vhdl*ext*id\.middle.\vlog*ext*id .bottom"
+; GenerousIdentifierParsing = 1
+
+; Disable VHDL assertion messages
+; IgnoreNote = 1
+; IgnoreWarning = 1
+; IgnoreError = 1
+; IgnoreFailure = 1
+
+; Disable SystemVerilog assertion messages
+; IgnoreSVAInfo = 1 
+; IgnoreSVAWarning = 1
+; IgnoreSVAError = 1
+; IgnoreSVAFatal = 1
+
+; Do not print any additional information from Severity System tasks.
+; Only the message provided by the user is printed along with severity
+; information.
+; SVAPrintOnlyUserMessage = 1;
+
+; Default force kind. May be freeze, drive, deposit, or default
+; or in other terms, fixed, wired, or charged.
+; A value of "default" will use the signal kind to determine the
+; force kind, drive for resolved signals, freeze for unresolved signals
+; DefaultForceKind = freeze
+
+; Control the iteration of events when a VHDL signal is forced to a value
+; This flag can be set to honour the signal update event in next iteration,
+; the default is to update and propagate in the same iteration.
+; ForceSigNextIter = 1
+
+; Enable simulation statistics. Specify one or more arguments: 
+;                   [all,none,time,cmd,msg,perf,verbose,list,kb,eor]
+; Add '-' to disable specific statistics. Default is [time,cmd,msg].
+; Stats = time,cmd,msg
+
+; If zero, open files when elaborated; otherwise, open files on
+; first read or write.  Default is 0.
+; DelayFileOpen = 1
+
+; Control VHDL files opened for write.
+;   0 = Buffered, 1 = Unbuffered
+UnbufferedOutput = 0
+
+; Control the number of VHDL files open concurrently.
+; This number should always be less than the current ulimit
+; setting for max file descriptors.
+;   0 = unlimited
+ConcurrentFileLimit = 40
+
+; If nonzero, close files as soon as there is either an explicit call to
+; file_close, or when the file variable's scope is closed. When zero, a
+; file opened in append mode is not closed in case it is immediately
+; reopened in append mode; otherwise, the file will be closed at the
+; point it is reopened.
+; AppendClose = 1
+
+; Control the number of hierarchical regions displayed as
+; part of a signal name shown in the Wave window.
+; A value of zero tells VSIM to display the full name.
+; The default is 0.
+; WaveSignalNameWidth = 0
+
+; Turn off warnings when changing VHDL constants and generics
+; Default is 1 to generate warning messages
+; WarnConstantChange = 0
+
+; Turn off warnings from accelerated versions of the std_logic_arith,
+; std_logic_unsigned, and std_logic_signed packages.
+; StdArithNoWarnings = 1
+
+; Turn off warnings from accelerated versions of the IEEE numeric_std
+; and numeric_bit packages.
+; NumericStdNoWarnings = 1
+
+; Use old-style (pre-6.6) VHDL FOR GENERATE statement iteration names
+; in the design hierarchy.
+; This style is controlled by the value of the GenerateFormat
+; value described next.  Default is to use new-style names, which
+; comprise the generate statement label, '(', the value of the generate
+; parameter, and a closing ')'.
+; Set this to 1 to use old-style names.
+; OldVhdlForGenNames = 1
+
+; Control the format of the old-style VHDL FOR generate statement region
+; name for each iteration.  Do not quote the value.
+; The format string here must contain the conversion codes %s and %d,
+; in that order, and no other conversion codes.  The %s represents
+; the generate statement label; the %d represents the generate parameter value
+; at a particular iteration (this is the position number if the generate parameter
+; is of an enumeration type).  Embedded whitespace is allowed (but discouraged);
+; leading and trailing whitespace is ignored.
+; Application of the format must result in a unique region name over all
+; loop iterations for a particular immediately enclosing scope so that name
+; lookup can function properly.  The default is %s__%d.
+; GenerateFormat = %s__%d
+
+; Enable more efficient logging of VHDL Variables.
+; Logging VHDL variables without this enabled, while possible, is very
+; inefficient.  Enabling this will provide a more efficient logging methodology
+; at the expense of more memory usage.  By default this feature is disabled (0).
+; To enabled this feature, set this variable to 1.
+; VhdlVariableLogging = 1
+
+; Enable logging of VHDL access type variables and their designated objects.
+; This setting will allow both variables of an access type ("access variables")
+; and their designated objects ("access objects") to be logged.  Logging a
+; variable of an access type will automatically also cause the designated
+; object(s) of that variable to be logged as the simulation progresses.
+; Further, enabling this allows access objects to be logged by name.  By default
+; this feature is disabled (0).  To enable this feature, set this variable to 1.
+; Enabling this will automatically enable the VhdlVariableLogging feature also.
+; AccessObjDebug = 1
+
+; Make each VHDL package in a PDU has its own separate copy of the package instead
+; of sharing the package between PDUs. The default is to share packages.
+; To ensure that each PDU has its own set of packages, set this variable to 1.
+; VhdlSeparatePduPackage = 1
+
+; Specify whether checkpoint files should be compressed.
+; The default is 1 (compressed).
+; CheckpointCompressMode = 0
+
+; Specify gcc compiler used in the compilation of automatically generated DPI exportwrapper.
+; Use custom gcc compiler located at this path rather than the default path.
+; The path should point directly at a compiler executable.
+; DpiCppPath = <your-gcc-installation>/bin/gcc
+
+; Specify whether to enable SystemVerilog DPI "out-of-the-blue" calls.
+; The term "out-of-the-blue" refers to SystemVerilog export function calls
+; made from C functions that don't have the proper context setup
+; (as is the case when running under "DPI-C" import functions).
+; When this is enabled, one can call a DPI export function
+; (but not task) from any C code.
+; the setting of this variable can be one of the following values:
+; 0 : dpioutoftheblue call is disabled (default)
+; 1 : dpioutoftheblue call is enabled, but export call debug support is not available.
+; 2 : dpioutoftheblue call is enabled, and limited export call debug support is available.
+; DpiOutOfTheBlue = 1
+
+; Specify whether continuous assignments are run before other normal priority
+; processes scheduled in the same iteration. This event ordering minimizes race
+; differences between optimized and non-optimized designs, and is the default
+; behavior beginning with the 6.5 release. For pre-6.5 event ordering, set
+; ImmediateContinuousAssign to 0.
+; The default is 1 (enabled).
+; ImmediateContinuousAssign = 0
+
+; List of dynamically loaded objects for Verilog PLI applications
+; Veriuser = veriuser.sl
+
+; Which default VPI object model should the tool conform to?
+; The 1364 modes are Verilog-only, for backwards compatibility with older
+; libraries, and SystemVerilog objects are not available in these modes.
+; 
+; In the absence of a user-specified default, the tool default is the
+; latest available LRM behavior.
+; Options for PliCompatDefault are:
+;  VPI_COMPATIBILITY_VERSION_1364v1995
+;  VPI_COMPATIBILITY_VERSION_1364v2001
+;  VPI_COMPATIBILITY_VERSION_1364v2005
+;  VPI_COMPATIBILITY_VERSION_1800v2005
+;  VPI_COMPATIBILITY_VERSION_1800v2008
+;
+; Synonyms for each string are also recognized:
+;  VPI_COMPATIBILITY_VERSION_1364v1995 (1995, 95, 1364v1995, 1364V1995, VL1995)
+;  VPI_COMPATIBILITY_VERSION_1364v2001 (2001, 01, 1364v2001, 1364V2001, VL2001)
+;  VPI_COMPATIBILITY_VERSION_1364v2005 (1364v2005, 1364V2005, VL2005)
+;  VPI_COMPATIBILITY_VERSION_1800v2005 (2005, 05, 1800v2005, 1800V2005, SV2005)
+;  VPI_COMPATIBILITY_VERSION_1800v2008 (2008, 08, 1800v2008, 1800V2008, SV2008)
+
+
+; PliCompatDefault = VPI_COMPATIBILITY_VERSION_1800v2005
+
+; Specify whether the Verilog system task $fopen or vpi_mcd_open()
+; will create directories that do not exist when opening the file
+; in "a" or "w" mode.
+; The default is 0 (do not create non-existent directories)
+; CreateDirForFileAccess = 1
+
+; Specify default options for the restart command. Options can be one
+; or more of: -force -nobreakpoint -nolist -nolog -nowave -noassertions
+; DefaultRestartOptions = -force
+
+
+; Specify default UVM-aware debug options if the vsim -uvmcontrol switch is not used.
+; Valid options include: all, none, verbose, disable, struct, msglog, trlog, certe.
+; Options can be enabled by just adding the name, or disabled by prefixing the option with a "-".
+; The list of options must be delimited by commas, without spaces or tabs.
+; The default is UVMControl = struct
+
+; Some examples
+; To turn on all available UVM-aware debug features:
+; UVMControl = all
+; To turn on the struct window, mesage logging, and transaction logging:
+; UVMControl = struct,msglog,trlog
+; To turn on all options except certe:
+; UVMControl = all,-certe
+; To completely disable all UVM-aware debug functionality:
+; UVMControl = disable
+
+; Specify the WildcardFilter setting.
+; A space separated list of object types to be excluded when performing
+; wildcard matches with log, wave, etc commands.  The default value for this variable is:
+;   "Variable Constant Generic Parameter SpecParam Memory Assertion Cover Endpoint ScVariable CellInternal ImmediateAssert VHDLFile"
+; See "Using the WildcardFilter Preference Variable" in the documentation for
+; details on how to use this variable and for descriptions of the filter types.
+WildcardFilter = Variable Constant Generic Parameter SpecParam Memory Assertion Cover Endpoint ScVariable CellInternal ImmediateAssert VHDLFile
+
+; Specify the WildcardSizeThreshold setting.
+; This integer setting specifies the size at which objects will be excluded when 
+; performing wildcard matches with log, wave, etc commands.  Objects of size equal
+; to or greater than the WildcardSizeThreshold will be filtered out from the wildcard
+; matches.  The size is a simple calculation of number of bits or items in the object.  
+; The default value is 8k (8192).  Setting this value to 0 will disable the checking 
+; of object size against this threshold and allow all objects of any size to be logged.
+WildcardSizeThreshold = 8192
+
+; Specify whether warning messages are output when objects are filtered out due to the
+; WildcardSizeThreshold.  The default is 0 (no messages generated).
+WildcardSizeThresholdVerbose = 0
+
+; Turn on (1) or off (0) WLF file compression.
+; The default is 1 (compress WLF file).
+; WLFCompress = 0
+
+; Specify whether to save all design hierarchy (1) in the WLF file
+; or only regions containing logged signals (0).
+; The default is 0 (save only regions with logged signals).
+; WLFSaveAllRegions = 1
+
+; WLF file time limit.  Limit WLF file by time, as closely as possible,
+; to the specified amount of simulation time.  When the limit is exceeded
+; the earliest times get truncated from the file.
+; If both time and size limits are specified the most restrictive is used.
+; UserTimeUnits are used if time units are not specified.
+; The default is 0 (no limit).  Example: WLFTimeLimit = {100 ms}
+; WLFTimeLimit = 0
+
+; WLF file size limit.  Limit WLF file size, as closely as possible,
+; to the specified number of megabytes.  If both time and size limits
+; are specified then the most restrictive is used.
+; The default is 0 (no limit).
+; WLFSizeLimit = 1000
+
+; Specify whether or not a WLF file should be deleted when the
+; simulation ends.  A value of 1 will cause the WLF file to be deleted.
+; The default is 0 (do not delete WLF file when simulation ends).
+; WLFDeleteOnQuit = 1
+
+; Specify whether or not a WLF file should be optimized during 
+; simulation.  If set to 0, the WLF file will not be optimized.
+; The default is 1, optimize the WLF file.
+; WLFOptimize = 0
+
+; Specify the name of the WLF file.
+; The default is vsim.wlf
+; WLFFilename = vsim.wlf
+
+; Specify whether to lock the WLF file.
+; Locking the file prevents other invocations of ModelSim/Questa tools from
+; inadvertently overwriting the WLF file.
+; The default is 1, lock the WLF file.
+; WLFFileLock = 0
+
+; Specify the update interval for the WLF file in live simulation.
+; The interval is given in seconds.
+; The value is the smallest interval between WLF file updates.  The WLF file
+; will be flushed (updated) after (at least) the interval has elapsed, ensuring
+; that the data is correct when viewed from a separate viewer.
+; A value of 0 means that no updating will occur.
+; The default value is 10 seconds.
+; WLFUpdateInterval = 10
+
+; Specify the WLF cache size limit for WLF files.
+; The value is given in megabytes.  A value of 0 turns off the cache.
+; On non-Windows platforms the default WLFCacheSize setting is 2000 (megabytes).
+; On Windows, the default value is 1000 (megabytes) to help to avoid filling
+; process memory.
+; WLFSimCacheSize allows a different cache size to be set for a live simulation
+; WLF file, independent of post-simulation WLF file viewing.  If WLFSimCacheSize
+; is not set, it defaults to the WLFCacheSize value.
+; WLFCacheSize = 2000
+; WLFSimCacheSize = 500
+
+; Specify the WLF file event collapse mode.
+; 0 = Preserve all events and event order. (same as -wlfnocollapse)
+; 1 = Only record values of logged objects at the end of a simulator iteration. 
+;     (same as -wlfcollapsedelta)
+; 2 = Only record values of logged objects at the end of a simulator time step. 
+;     (same as -wlfcollapsetime)
+; The default is 1.
+; WLFCollapseMode = 0
+
+; Specify whether WLF file logging can use threads on multi-processor machines.
+; If 0, no threads will be used; if 1, threads will be used if the system has
+; more than one processor.
+; WLFUseThreads = 1
+
+; Specify the size of objects that will trigger "large object" messages
+; at log/wave/list time.  The size calculation of the object is the same as that
+; used by the WildcardSizeThreshold. The default LargeObjectSize size is 500,000.
+; Setting LargeObjectSize to 0 will disable these messages.
+; LargeObjectSize = 500000
+
+; Specify the depth of stack frames returned by $stacktrace([level]).
+; This depth will be picked up when the optional 'level' argument
+; is not specified or its value is not a positive integer. 
+; StackTraceDepth = 100
+
+; Turn on/off undebuggable SystemC type warnings. Default is on.
+; ShowUndebuggableScTypeWarning = 0
+
+; Turn on/off unassociated SystemC name warnings. Default is off.
+; ShowUnassociatedScNameWarning = 1
+
+; Turn on/off SystemC IEEE 1666 deprecation warnings. Default is off.
+; ScShowIeeeDeprecationWarnings = 1
+
+; Turn on/off the check for multiple drivers on a SystemC sc_signal. Default is off.
+; ScEnableScSignalWriteCheck = 1
+
+; Set SystemC default time unit.
+; Set to fs, ps, ns, us, ms, or sec with optional 
+; prefix of 1, 10, or 100.  The default is 1 ns.
+; The ScTimeUnit value is honored if it is coarser than Resolution.
+; If ScTimeUnit is finer than Resolution, it is set to the value
+; of Resolution. For example, if Resolution is 100ps and ScTimeUnit is ns,
+; then the default time unit will be 1 ns.  However if Resolution 
+; is 10 ns and ScTimeUnit is ns, then the default time unit will be 10 ns.
+ScTimeUnit = ns
+
+; Set SystemC sc_main stack size. The stack size is set as an integer
+; number followed by the unit which can be Kb(Kilo-byte), Mb(Mega-byte) or
+; Gb(Giga-byte). Default is 10 Mb. The stack size for sc_main depends
+; on the amount of data on the sc_main() stack and the memory required
+; to succesfully execute the longest function call chain of sc_main().
+ScMainStackSize = 10 Mb
+
+; Set SystemC thread stack size. The stack size is set as an integer
+; number followed by the unit which can be Kb(Kilo-byte), Mb(Mega-byte) or
+; Gb(Giga-byte). The stack size for sc_thread depends
+; on the amount of data on the sc_thread stack and the memory required
+; to succesfully execute the thread.
+; ScStackSize = 1 Mb
+
+; Turn on/off execution of remainder of sc_main upon quitting the current
+; simulation session. If the cumulative length of sc_main() in terms of 
+; simulation time units is less than the length of the current simulation
+; run upon quit or restart, sc_main() will be in the middle of execution.
+; This switch gives the option to execute the remainder of sc_main upon
+; quitting simulation. The drawback of not running sc_main till the end
+; is memory leaks for objects created by sc_main. If on, the remainder of
+; sc_main will be executed ignoring all delays. This may cause the simulator
+; to crash if the code in sc_main is dependent on some simulation state.
+; Default is on.
+ScMainFinishOnQuit = 1
+
+; Set the SCV relationship name that will be used to identify phase
+; relations.  If the name given to a transactor relation matches this
+; name, the transactions involved will be treated as phase transactions
+ScvPhaseRelationName = mti_phase
+
+; Customize the vsim kernel shutdown behavior at the end of the simulation.
+; Some common causes of the end of simulation are $finish (implicit or explicit), 
+; sc_stop(), tf_dofinish(), and assertion failures. 
+; This should be set to "ask", "exit", or "stop". The default is "ask".
+; "ask"   -- In batch mode, the vsim kernel will abruptly exit.  
+;            In GUI mode, a dialog box will pop up and ask for user confirmation 
+;            whether or not to quit the simulation.
+; "stop"  -- Cause the simulation to stay loaded in memory. This can make some 
+;            post-simulation tasks easier.
+; "exit"  -- The simulation will abruptly exit without asking for any confirmation.
+; "final" -- Run SystemVerilog final blocks then behave as "stop".
+; Note: This variable can be overridden with the vsim "-onfinish" command line switch.
+OnFinish = ask
+
+; Print pending deferred assertion messages. 
+; Deferred assertion messages may be scheduled after the $finish in the same 
+; time step. Deferred assertions scheduled to print after the $finish are 
+; printed before exiting with severity level NOTE since it's not known whether
+; the assertion is still valid due to being printed in the active region
+; instead of the reactive region where they are normally printed.
+; OnFinishPendingAssert = 1;
+
+; Print "simstats" result. Default is 0.
+; 0 == do not print simstats
+; 1 == print at end of simulation
+; 2 == print at end of each run command and end of simulation
+; PrintSimStats = 1
+
+; Assertion File - alternate file for storing VHDL/PSL/Verilog assertion messages
+; AssertFile = assert.log
+
+; Enable assertion counts. Default is off.
+; AssertionCover = 1
+
+; Run simulator in assertion debug mode. Default is off.
+; AssertionDebug = 1
+
+; Turn on/off PSL/SVA/VHDL assertion enable. Default is on.
+; AssertionEnable = 0
+
+; Set PSL/SVA/VHDL concurrent assertion fail limit. Default is -1.
+; Any positive integer, -1 for infinity.
+; AssertionLimit = 1
+
+; Turn on/off concurrent assertion pass log. Default is off. 
+; Assertion pass logging is only enabled when assertion is browseable 
+; and assertion debug is enabled.
+; AssertionPassLog = 1
+
+; Turn on/off PSL concurrent assertion fail log. Default is on.
+; The flag does not affect SVA
+; AssertionFailLog = 0
+
+; Turn on/off SVA concurrent assertion local var printing in -assertdebug mode.  Default is on.
+; AssertionFailLocalVarLog = 0
+
+; Set action type for PSL/SVA concurrent assertion fail action. Default is continue.
+; 0 = Continue  1 = Break  2 = Exit
+; AssertionFailAction = 1
+
+; Enable the active thread monitor in the waveform display when assertion debug is enabled.
+; AssertionActiveThreadMonitor = 1
+
+; Control how many waveform rows will be used for displaying the active threads.  Default is 5.
+; AssertionActiveThreadMonitorLimit = 5
+
+; Assertion thread limit after which assertion would be killed/switched off. 
+; The default is -1 (unlimited). If the number of threads for an assertion go 
+; beyond this limit, the assertion would be either switched off or killed. This
+; limit applies to only assert directives.
+;AssertionThreadLimit = -1
+
+; Action to be taken once the assertion thread limit is reached. Default 
+; is kill. It can have a value of off or kill. In case of kill, all the existing
+; threads are terminated and no new attempts are started. In case of off, the 
+; existing attempts keep on evaluating but no new attempts are started. This 
+; variable applies to only assert directives.
+;AssertionThreadLimitAction = kill
+
+; Cover thread limit after which cover would be killed/switched off. 
+; The default is -1 (unlimited). If the number of threads for a cover go 
+; beyond this limit, the cover would be either switched off or killed. This
+; limit applies to only cover directives.
+;CoverThreadLimit = -1
+
+; Action to be taken once the cover thread limit is reached. Default 
+; is kill. It can have a value of off or kill. In case of kill, all the existing
+; threads are terminated and no new attempts are started. In case of off, the 
+; existing attempts keep on evaluating but no new attempts are started. This 
+; variable applies to only cover directives.
+;CoverThreadLimitAction = kill
+
+
+; By default immediate assertions do not participate in Assertion Coverage calculations
+; unless they are executed.  This switch causes all immediate assertions in the design
+; to participate in Assertion Coverage calculations, whether attempted or not.
+; UnattemptedImmediateAssertions = 0
+
+; By default immediate covers participate in Coverage calculations 
+; whether they are attempted or not. This switch causes all unattempted 
+; immediate covers in the design to stop participating in Coverage 
+; calculations.
+; UnattemptedImmediateCovers = 0
+
+; By default pass action block is not executed for assertions on vacuous 
+; success. The following variable is provided to enable execution of 
+; pass action block on vacuous success. The following variable is only effective
+; if the user does not disable pass action block execution by using either 
+; system tasks or CLI. Also there is a performance penalty for enabling 
+; the following variable. 
+;AssertionEnableVacuousPassActionBlock = 1
+
+; As per strict 1850-2005 PSL LRM, an always property can either pass
+; or fail. However, by default, Questa reports multiple passes and
+; multiple fails on top always/never property (always/never operator
+; is the top operator under Verification Directive). The reason
+; being that Questa reports passes and fails on per attempt of the
+; top always/never property. Use the following flag to instruct
+; Questa to strictly follow LRM. With this flag, all assert/never
+; directives will start an attempt once at start of simulation.
+; The attempt can either fail, match or match vacuously.
+; For e.g. if always is the top operator under assert, the always will
+; keep on checking the property at every clock. If the property under
+; always fails, the directive will be considered failed and no more 
+; checking will be done for that directive. A top always property,
+; if it does not fail, will show a pass at end of simulation.
+; The default value is '0' (i.e. zero is off). For example:
+; PslOneAttempt = 1
+
+; Specify the number of clock ticks to represent infinite clock ticks.
+; This affects eventually!, until! and until_!. If at End of Simulation
+; (EOS) an active strong-property has not clocked this number of
+; clock ticks then neither pass or fail (vacuous match) is returned
+; else respective fail/pass is returned. The default value is '0' (zero)
+; which effectively does not check for clock tick condition. For example:
+; PslInfinityThreshold = 5000
+
+; Control how many thread start times will be preserved for ATV viewing for a given assertion
+; instance.  Default is -1 (ALL).
+; ATVStartTimeKeepCount = -1
+
+; Turn on/off code coverage
+; CodeCoverage = 0
+
+; This option applies to condition and expression coverage UDP tables. It
+; has no effect unless UDP is enabled for coverage with vcom/vlog/vopt -coverudp.
+; If this option is used and a match occurs in more than one row in the UDP table,
+; none of the counts for all matching rows is incremented. By default, counts are
+; incremented for all matching rows.
+; CoverCountAll = 1
+
+; Turn off automatic inclusion of VHDL integers in toggle coverage. Default
+; is to include them.
+; ToggleNoIntegers = 1
+
+; Set the maximum number of values that are collected for toggle coverage of
+; VHDL integers. Default is 100;
+; ToggleMaxIntValues = 100
+
+; Set the maximum number of values that are collected for toggle coverage of
+; Verilog real. Default is 100;
+; ToggleMaxRealValues = 100
+
+; Turn on automatic inclusion of Verilog integers in toggle coverage, except
+; for enumeration types. Default is to include them.
+; ToggleVlogIntegers = 0
+
+; Turn on automatic inclusion of Verilog real type in toggle coverage, except
+; for shortreal types. Default is to not include them.
+; ToggleVlogReal = 1
+
+; Turn on automatic inclusion of Verilog fixed-size unpacked arrays, VHDL multi-d arrays
+; and VHDL arrays-of-arrays in toggle coverage.
+; Default is to not include them.
+; ToggleFixedSizeArray = 1
+
+; Increase or decrease the maximum size of Verilog unpacked fixed-size arrays,
+; VHDL multi-d arrays and VHDL arrays-of-arrays that are included for toggle coverage.
+; This leads to a longer simulation time with bigger arrays covered with toggle coverage.
+; Default is 1024.
+; ToggleMaxFixedSizeArray = 1024
+
+; Treat Verilog multi-dimensional packed vectors and packed structures as equivalently sized
+; one-dimensional packed vectors for toggle coverage. Default is 0.
+; TogglePackedAsVec = 0
+
+; Treat Verilog enumerated types as equivalently sized one-dimensional packed vectors for
+; toggle coverage. Default is 0.
+; ToggleVlogEnumBits = 0
+
+; Turn off automatic inclusion of VHDL records in toggle coverage.
+; Default is to include them.
+; ToggleVHDLRecords = 0
+
+; Limit the widths of registers automatically tracked for toggle coverage. Default is 128.
+; For unlimited width, set to 0.
+; ToggleWidthLimit = 128
+
+; Limit the counts that are tracked for toggle coverage. When all edges for a bit have
+; reached this count, further activity on the bit is ignored. Default is 1.
+; For unlimited counts, set to 0.
+; ToggleCountLimit = 1
+
+; Change the mode of extended toggle coverage. Default is 3. Valid modes are 1, 2 and 3.
+; Following is the toggle coverage calculation criteria based on extended toggle mode:
+; Mode 1: 0L->1H & 1H->0L & any one 'Z' transition (to/from 'Z').
+; Mode 2: 0L->1H & 1H->0L & one transition to 'Z' & one transition from 'Z'.
+; Mode 3: 0L->1H & 1H->0L & all 'Z' transitions.
+; ExtendedToggleMode = 3
+
+; Enable toggle statistics collection only for ports. Default is 0.
+; TogglePortsOnly = 1
+
+; Limit the counts that are tracked for Focussed Expression Coverage. When a bin has
+; reached this count, further tracking of the input patterns linked to it is ignored.
+; Default is 1. For unlimited counts, set to 0.
+; NOTE: Changing this value from its default value may affect simulation performance.
+; FecCountLimit = 1
+
+; Limit the counts that are tracked for UDP Coverage. When a bin has
+; reached this count, further tracking of the input patterns linked to it is ignored.
+; Default is 1. For unlimited counts, set to 0.
+; NOTE: Changing this value from its default value may affect simulation performance.
+; UdpCountLimit = 1
+
+; Control toggle coverage deglitching period. A period of 0, eliminates delta
+; cycle glitches. This is the default. The value of ToggleDeglitchPeriod needs to be either 
+; 0 or a time string that includes time units. Examples: 0 or 10.0ps or "10.0 ps".
+; ToggleDeglitchPeriod = 10.0ps
+
+; Turn on/off all PSL/SVA cover directive enables.  Default is on.
+; CoverEnable = 0
+
+; Turn on/off PSL/SVA cover log.  Default is off "0".
+; CoverLog = 1
+
+; Set "at_least" value for all PSL/SVA cover directives.  Default is 1.
+; CoverAtLeast = 2
+
+; Set "limit" value for all PSL/SVA cover directives.  Default is -1.
+; Any positive integer, -1 for infinity.
+; CoverLimit = 1
+
+; Specify the coverage database filename.
+; Default is "" (i.e. database is NOT automatically saved on close). 
+; UCDBFilename = vsim.ucdb
+
+; Specify the maximum limit for the number of Cross (bin) products reported
+; in XML and UCDB report against a Cross. A warning is issued if the limit
+; is crossed. Default is zero. vsim switch -cvgmaxrptrhscross can override this
+; setting.
+; MaxReportRhsSVCrossProducts = 1000
+
+; Specify the override for the "auto_bin_max" option for the Covergroups.
+; If not specified then value from Covergroup "option" is used.
+; SVCoverpointAutoBinMax = 64
+
+; Specify the override for the value of "cross_num_print_missing"
+; option for the Cross in Covergroups. If not specified then value
+; specified in the "option.cross_num_print_missing" is used. This
+; is a runtime option. NOTE: This overrides any "cross_num_print_missing"
+; value specified by user in source file and any SVCrossNumPrintMissingDefault
+; specified in modelsim.ini.
+; SVCrossNumPrintMissing = 0
+
+; Specify whether to use the value of "cross_num_print_missing"
+; option in report and GUI for the Cross in Covergroups. If not specified then 
+; cross_num_print_missing is ignored for creating reports and displaying 
+; covergroups in GUI. Default is 0, which means ignore "cross_num_print_missing".
+; UseSVCrossNumPrintMissing = 0
+
+; Specify the threshold of Coverpoint wildcard bin value range size, above which 
+; a warning will be triggered. The default is 4K -- 12 wildcard bits.
+; SVCoverpointWildCardBinValueSizeWarn = 4096
+
+; Specify the override for the value of "strobe" option for the
+; Covergroup Type. If not specified then value in "type_option.strobe"
+; will be used. This is runtime option which forces "strobe" to
+; user specified value and supersedes user specified values in the
+; SystemVerilog Code. NOTE: This also overrides the compile time
+; default value override specified using "SVCovergroupStrobeDefault"
+; SVCovergroupStrobe = 0
+
+; Override for explicit assignments in source code to "option.goal" of
+; SystemVerilog covergroup, coverpoint, and cross. It also overrides the
+; default value of "option.goal" (defined to be 100 in the SystemVerilog
+; LRM) and the value of modelsim.ini variable "SVCovergroupGoalDefault".
+; SVCovergroupGoal = 100
+
+; Override for explicit assignments in source code to "type_option.goal" of
+; SystemVerilog covergroup, coverpoint, and cross. It also overrides the
+; default value of "type_option.goal" (defined to be 100 in the SystemVerilog
+; LRM) and the value of modelsim.ini variable "SVCovergroupTypeGoalDefault".
+; SVCovergroupTypeGoal = 100
+
+; Enforce the 6.3 behavior of covergroup get_coverage() and get_inst_coverage()
+; builtin functions, and report. This setting changes the default values of
+; option.get_inst_coverage and type_option.merge_instances to ensure the 6.3
+; behavior if explicit assignments are not made on option.get_inst_coverage and
+; type_option.merge_instances by the user. There are two vsim command line
+; options, -cvg63 and -nocvg63 to override this setting from vsim command line.
+; The default value of this variable from release 6.6 onwards is 0. This default
+; drives compliance with the clarified behavior in the IEEE 1800-2009 standard.
+; SVCovergroup63Compatibility = 0
+
+; Enforce the default behavior of covergroup get_coverage() builtin function, GUI
+; and report. This variable sets the default value of type_option.merge_instances.
+; There are two vsim command line options, -cvgmergeinstances and 
+; -nocvgmergeinstances to override this setting from vsim command line.
+; The default value of this variable is 0. This default
+; drives compliance with the clarified behavior in the IEEE 1800-2009 standard.
+; SVCovergroupMergeInstancesDefault = 0
+
+; Enable or disable generation of more detailed information about the sampling
+; of covergroup, cross, and coverpoints. It provides the details of the number
+; of times the covergroup instance and type were sampled, as well as details
+; about why covergroup, cross and coverpoint were not covered. A non-zero value
+; is to enable this feature. 0 is to disable this feature. Default is 0
+; SVCovergroupSampleInfo = 0
+
+; Specify the maximum number of Coverpoint bins in whole design for
+; all Covergroups.
+; MaxSVCoverpointBinsDesign = 2147483648 
+
+; Specify maximum number of Coverpoint bins in any instance of a Covergroup, default is 2^10 bins
+; MaxSVCoverpointBinsInst = 1048576
+
+; Specify the maximum number of Cross bins in whole design for
+; all Covergroups.
+; MaxSVCrossBinsDesign = 2147483648 
+
+; Specify maximum number of Cross bins in any instance of a Covergroup, default is 2^16 bins
+; MaxSVCrossBinsInst = 67108864
+
+; Specify whether vsim will collect the coverage data of zero-weight coverage items or not.
+; By default, this variable is set 0, in which case option.no_collect setting will take effect.
+; If this variable is set to 1, all zero-weight coverage items will not be saved.
+; Note that the usage of vsim switch -cvgzwnocollect, if present, will override the setting 
+; of this variable.
+; CvgZWNoCollect = 1
+
+; Specify a space delimited list of double quoted TCL style
+; regular expressions which will be matched against the text of all messages.
+; If any regular expression is found to be contained within any message, the 
+; status for that message will not be propagated to the UCDB TESTSTATUS. 
+; If no match is detected, then the status will be propagated to the
+; UCDB TESTSTATUS. More than one such regular expression text is allowed, 
+; and each message text is compared for each regular expression in the list.
+; UCDBTestStatusMessageFilter = "Done with Test Bench" "Ignore .* message" 
+
+; Set weight for all PSL/SVA cover directives.  Default is 1.
+; CoverWeight = 2
+
+; Check vsim plusargs.  Default is 0 (off).
+; 0 = Don't check plusargs
+; 1 = Warning on unrecognized plusarg
+; 2 = Error and exit on unrecognized plusarg
+; CheckPlusargs = 1
+
+; Load the specified shared objects with the RTLD_GLOBAL flag.
+; This gives global visibility to all symbols in the shared objects,
+; meaning that subsequently loaded shared objects can bind to symbols
+; in the global shared objects.  The list of shared objects should
+; be whitespace delimited.  This option is not supported on the
+; Windows or AIX platforms.
+; GlobalSharedObjectList = example1.so example2.so example3.so
+
+; Generate the stub definitions for the undefined symbols in the shared libraries being
+; loaded in the simulation. When this flow is turned on, the undefined symbols will not
+; prevent vsim from loading. Calling undefined symbols at runtime will cause fatal error.
+; The valid arguments are: on, off, verbose. 
+;     on : turn on the automatic generation of stub definitions.
+;     off: turn off the flow. The undefined symbols will trigger an immediate load failure.
+;     verbose: Turn on the flow and report the undefined symbols for each shared library.
+; NOTE: This variable can be overriden with vsim switch "-undefsyms".
+; The default is off.
+;
+; UndefSyms = on
+
+; Initial seed for the random number generator of the root thread (SystemVerilog).
+; NOTE: This variable can be overridden with the vsim "-sv_seed" command line switch.
+; The default value is 0.
+; Sv_Seed = 0
+
+; Specify the solver "engine" that vsim will select for constrained random
+; generation.
+; Valid values are:
+;    "auto" - automatically select the best engine for the current
+;             constraint scenario
+;    "bdd"  - evaluate all constraint scenarios using the BDD solver engine
+;    "act"  - evaluate all constraint scenarios using the ACT solver engine
+; While the BDD solver engine is generally efficient with constraint scenarios
+; involving bitwise logical relationships, the ACT solver engine can exhibit
+; superior performance with constraint scenarios involving large numbers of
+; random variables related via arithmetic operators (+, *, etc).
+; NOTE: This variable can be overridden with the vsim "-solveengine" command
+; line switch.
+; The default value is "auto".
+; SolveEngine = auto
+
+; Specify if the solver should attempt to ignore overflow/underflow semantics
+; for arithmetic constraints (multiply, addition, subtraction) in order to
+; improve performance. The "solveignoreoverflow" attribute can be specified on
+; a per-call basis to randomize() to override this setting.
+; The default value is 0 (overflow/underflow is not ignored). Set to 1 to
+; ignore overflow/underflow.
+; SolveIgnoreOverflow = 0
+
+; Specifies the maximum size that a dynamic array may be resized to by the
+; solver. If the solver attempts to resize a dynamic array to a size greater
+; than the specified limit, the solver will abort with an error.
+; The default value is 10000. A value of 0 indicates no limit.
+; SolveArrayResizeMax = 10000
+
+; Error message severity when randomize() failure is detected (SystemVerilog).
+; 0 = No error  1 = Warning  2 = Error  3 = Failure  4 = Fatal
+; The default is 0 (no error).
+; SolveFailSeverity = 0
+
+; Error message severity for suppressible errors that are detected in a
+; solve/before constraint.
+; NOTE: This variable can be overridden with the vsim "-solvebeforeerrorseverity"
+; command line switch.
+; 0 = No error  1 = Warning  2 = Error  3 = Failure  4 = Fatal
+; The default is 3 (failure).
+; SolveBeforeErrorSeverity = 3
+
+; Enable/disable debug information for randomize() failures.
+; NOTE: This variable can be overridden with the vsim "-solvefaildebug" command
+; line switch.
+; The default is 0 (disabled). Set to 1 to enable basic debug (with no
+; performance penalty). Set to 2 for enhanced debug (will result in slower
+; runtime performance).
+; SolveFailDebug = 0
+
+; Upon encountering a randomize() failure, generate a simplified testcase that
+; will reproduce the failure. Optionally output the testcase to a file.
+; Testcases for 'no-solution' failures will only be produced if SolveFailDebug
+; is enabled (see above).
+; NOTE: This variable can be overridden with the vsim "-solvefailtestcase"
+; command line switch.
+; The default is OFF (do not generate a testcase). To enable testcase
+; generation, uncomment this variable. To redirect testcase generation to a
+; file, specify the name of the output file.
+; SolveFailTestcase = 
+
+; Specify solver timeout threshold (in seconds). randomize() will fail if the
+; CPU time required to evaluate any randset exceeds the specified timeout.
+; The default value is 500. A value of 0 will disable timeout failures. 
+; SolveTimeout = 500
+
+; Specify the maximum size of the solution graph generated by the BDD solver.
+; This value can be used to force the BDD solver to abort the evaluation of a
+; complex constraint scenario that cannot be evaluated with finite memory.
+; This value is specified in 1000s of nodes.
+; The default value is 10000. A value of 0 indicates no limit.
+; SolveGraphMaxSize = 10000
+
+; Specify the maximum number of evaluations that may be performed on the
+; solution graph by the BDD solver. This value can be used to force the BDD
+; solver to abort the evaluation of a complex constraint scenario that cannot
+; be evaluated in finite time. This value is specified in 10000s of evaluations.
+; The default value is 10000. A value of 0 indicates no limit.
+; SolveGraphMaxEval = 10000
+
+; Specify the maximum number of tests that the ACT solver may evaluate before
+; abandoning an attempt to solve a particular constraint scenario.
+; The default value is 2000000.  A value of 0 indicates no limit.
+; SolveACTMaxTests = 2000000
+
+; Specify the maximum number of operations that the ACT solver may perform 
+; before abandoning an attempt to solve a particular constraint scenario.  The 
+; value is specified in 1000000s of operations.
+; The default value is 10000. A value of 0 indicates no limit.
+; SolveACTMaxOps = 10000
+
+; Specify the number of times the ACT solver will retry to evaluate a constraint
+; scenario that fails due to the SolveACTMax[Tests|Ops] threshold.
+; The default value is 0 (no retry).
+; SolveACTRetryCount = 0
+
+; Specify random sequence compatiblity with a prior letter release. This 
+; option is used to get the same random sequences during simulation as
+; as a prior letter release. Only prior letter releases (of the current
+; number release) are allowed.
+; NOTE: Only those random sequence changes due to solver optimizations are
+; reverted by this variable. Random sequence changes due to solver bugfixes
+; cannot be un-done.
+; NOTE: This variable can be overridden with the vsim "-solverev" command
+; line switch.
+; Default value set to "" (no compatibility).
+; SolveRev =
+
+; Environment variable expansion of command line arguments has been depricated 
+; in favor shell level expansion.  Universal environment variable expansion 
+; inside -f files is support and continued support for MGC Location Maps provide
+; alternative methods for handling flexible pathnames.
+; The following line may be uncommented and the value set to 1 to re-enable this 
+; deprecated behavior.  The default value is 0.
+; DeprecatedEnvironmentVariableExpansion = 0
+
+; Specify the memory threshold for the System Verilog garbage collector.
+; The value is the number of megabytes of class objects that must accumulate
+; before the garbage collector is run.
+; The GCThreshold setting is used when class debug mode is disabled to allow
+; less frequent garbage collection and better simulation performance.
+; The GCThresholdClassDebug setting is used when class debug mode is enabled
+; to allow for more frequent garbage collection.
+; GCThreshold = 100
+; GCThresholdClassDebug = 5
+
+; Turn on/off collapsing of bus ports in VCD dumpports output
+DumpportsCollapse = 1
+
+; Location of Multi-Level Verification Component (MVC) installation. 
+; The default location is the product installation directory.
+MvcHome = $MODEL_TECH/..
+
+; Location of InFact installation. The default is $MODEL_TECH/../../infact
+;
+; InFactHome = $MODEL_TECH/../../infact
+
+; Initialize SystemVerilog enums using the base type's default value
+; instead of the leftmost value.
+; EnumBaseInit = 1
+
+; Suppress file type registration.  
+; SuppressFileTypeReg = 1
+
+; Controls SystemVerilog Language Extensions.  These options enable
+; some non-LRM compliant behavior.  Valid extensions are "cfce",
+; SvExtensions = cfce
+
+; Controls the formatting of '%p' and '%P' conversion specification, used in $display
+; and similar system tasks.
+; 1. SVPrettyPrintFlags=I<n><S|T> use <n> spaces(S) or tabs(T) per indentation level. 
+;    The 'I' flag when present causes relevant data types to be expanded and indented into
+;    a more readable format.
+;    (e.g. SVPrettyPrintFlags=I4S will cause 4 spaces to be used per indentation level).
+; 2. SVPrettyPrintFlags=L<numLines> limits the output to <numLines> lines.
+;    (e.g. SVPrettyPrintFlags=L20 will limit the output to 20 lines).
+; 3. SVPrettyPrintFlags=C<numChars> limits the output to <numChars> characters.
+;    (e.g. SVPrettyPrintFlags=C256 will limit the output to 256 characters).
+; 4. SVPrettyPrintFlags=F<numFields> limits the output to <numFields> of relevant datatypes
+;    (e.g. SVPrettyPrintFlags=F4 will limit the output to 4 fields of a structure).
+; 5. SVPrettyPrintFlags=E<numElements> limits the output to <numElements> of relevant datatypes
+;    (e.g. SVPrettyPrintFlags=E50 will limit the output to 50 elements of an array).
+; 6. SVPrettyPrintFlags=D<depth> suppresses the output of sub-elements below <depth>.
+;    (e.g. SVPrettyPrintFlags=D5 will suppresses the output of sub elements below a depth of 5).
+; 7. Items 1-6 above can be combined as a comma separated list.
+;    (e.g. SVPrettyPrintFlags=I4S,L20,C256,F4,E50,D5)
+; SVPrettyPrintFlags=I4S
+
+[lmc]
+; The simulator's interface to Logic Modeling's SmartModel SWIFT software
+libsm = $MODEL_TECH/libsm.sl
+; The simulator's interface to Logic Modeling's SmartModel SWIFT software (Windows NT)
+; libsm = $MODEL_TECH/libsm.dll
+;  Logic Modeling's SmartModel SWIFT software (HP 9000 Series 700)
+; libswift = $LMC_HOME/lib/hp700.lib/libswift.sl
+;  Logic Modeling's SmartModel SWIFT software (IBM RISC System/6000)
+; libswift = $LMC_HOME/lib/ibmrs.lib/swift.o
+;  Logic Modeling's SmartModel SWIFT software (Sun4 Solaris)
+; libswift = $LMC_HOME/lib/sun4Solaris.lib/libswift.so
+;  Logic Modeling's SmartModel SWIFT software (Windows NT)
+; libswift = $LMC_HOME/lib/pcnt.lib/libswift.dll
+;  Logic Modeling's SmartModel SWIFT software (non-Enterprise versions of Linux)
+; libswift = $LMC_HOME/lib/x86_linux.lib/libswift.so
+;  Logic Modeling's SmartModel SWIFT software (Enterprise versions of Linux)
+; libswift = $LMC_HOME/lib/linux.lib/libswift.so
+
+; The simulator's interface to Logic Modeling's hardware modeler SFI software
+libhm = $MODEL_TECH/libhm.sl
+; The simulator's interface to Logic Modeling's hardware modeler SFI software (Windows NT)
+; libhm = $MODEL_TECH/libhm.dll
+;  Logic Modeling's hardware modeler SFI software (HP 9000 Series 700)
+; libsfi = <sfi_dir>/lib/hp700/libsfi.sl
+;  Logic Modeling's hardware modeler SFI software (IBM RISC System/6000)
+; libsfi = <sfi_dir>/lib/rs6000/libsfi.a
+;  Logic Modeling's hardware modeler SFI software (Sun4 Solaris)
+; libsfi = <sfi_dir>/lib/sun4.solaris/libsfi.so
+;  Logic Modeling's hardware modeler SFI software (Windows NT)
+; libsfi = <sfi_dir>/lib/pcnt/lm_sfi.dll
+;  Logic Modeling's hardware modeler SFI software (Linux)
+; libsfi = <sfi_dir>/lib/linux/libsfi.so
+
+[msg_system]
+; Change a message severity or suppress a message.
+; The format is: <msg directive> = <msg number>[,<msg number>...]
+; suppress can be used to achieve +nowarn<CODE> functionality
+; The format is: suppress = <CODE>,<msg number>,[<CODE>,<msg number>,...]
+; Examples:
+suppress = 8780 ;an explanation can be had by running: verror 8780 
+;   note = 3009
+;   warning = 3033
+;   error = 3010,3016
+;   fatal = 3016,3033
+;   suppress = 3009,3016,3601
+;   suppress = 3009,CNNODP,3601,TFMPC
+;   suppress = 8683,8684
+; The command verror <msg number> can be used to get the complete
+; description of a message.
+
+; Control transcripting of Verilog display system task messages and
+; PLI/FLI print function call messages.  The system tasks include
+; $display[bho], $strobe[bho], $monitor[bho], and $write[bho].  They
+; also include the analogous file I/O tasks that write to STDOUT 
+; (i.e. $fwrite or $fdisplay).  The PLI/FLI calls include io_printf,
+; vpi_printf, mti_PrintMessage, and mti_PrintFormatted.  The default
+; is to have messages appear only in the transcript.  The other 
+; settings are to send messages to the wlf file only (messages that
+; are recorded in the wlf file can be viewed in the MsgViewer) or 
+; to both the transcript and the wlf file.  The valid values are
+;    tran  {transcript only (default)}
+;    wlf   {wlf file only}
+;    both  {transcript and wlf file}
+; displaymsgmode = tran
+
+; Control transcripting of elaboration/runtime messages not
+; addressed by the displaymsgmode setting.  The default is to 
+; have messages appear only in the transcript.  The other settings
+; are to send messages to the wlf file only (messages that are
+; recorded in the wlf file can be viewed in the MsgViewer) or to both
+; the transcript and the wlf file. The valid values are
+;    tran  {transcript only (default)}
+;    wlf   {wlf file only}
+;    both  {transcript and wlf file}
+; msgmode = tran
+
+; Controls number of displays of a particluar message
+; default value is 5
+; MsgLimitCount = 5
+
+[utils]
+; Default Library Type (while creating a library with "vlib")
+;  0 - legacy library using subdirectories for design units
+;  2 - flat library
+; DefaultLibType = 2
+
+; Flat Library Page Size (while creating a library with "vlib")
+; Set the size in bytes for flat library file pages.  Libraries containing
+; very large files may benefit from a larger value.
+; FlatLibPageSize = 8192
+
+; Flat Library Page Cleanup Percentage (while creating a library with "vlib")
+; Set the percentage of total pages deleted before library cleanup can occur.
+; This setting is applied together with FlatLibPageDeleteThreshold.
+; FlatLibPageDeletePercentage = 50
+
+; Flat Library Page Cleanup Threshold (while creating a library with "vlib")
+; Set the number of pages deleted before library cleanup can occur.
+; This setting is applied together with FlatLibPageDeletePercentage.
+; FlatLibPageDeleteThreshold = 1000
+
+[Project]
+; Warning -- Do not edit the project properties directly.
+;            Property names are dynamic in nature and property
+;            values have special syntax.  Changing property data directly
+;            can result in a corrupt MPF file.  All project properties
+;            can be modified through project window dialogs.
+Project_Version = 6
+Project_DefaultLib = work
+Project_SortMethod = unused
+Project_Files_Count = 3
+Project_File_0 = H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Leading_Bit_Detector.sv
+Project_File_P_0 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 vlog_noload 0 cover_branch 0 folder {Top Level} last_compile 1669057534 cover_fsm 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 cover_optlevel 3 vlog_showsource 0 vlog_hazard 0 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 1 cover_expr 0 dont_compile 0 cover_stmt 0
+Project_File_1 = H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Posit_Extraction.sv
+Project_File_P_1 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 folder {Top Level} last_compile 1669058108 cover_fsm 0 cover_branch 0 vlog_noload 0 vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 vlog_hazard 0 vlog_showsource 0 cover_optlevel 3 voptflow 1 ood 0 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 0 dont_compile 0 cover_expr 0 cover_stmt 0
+Project_File_2 = H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Test_Data_Extraction.sv
+Project_File_P_2 = cover_toggle 0 vlog_protect 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 folder {Top Level} last_compile 1669058862 cover_fsm 0 cover_branch 0 vlog_noload 0 vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 vlog_hazard 0 vlog_showsource 0 cover_optlevel 3 voptflow 1 ood 0 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 2 dont_compile 0 cover_expr 0 cover_stmt 0
+Project_Sim_Count = 0
+Project_Folder_Count = 0
+Echo_Compile_Output = 0
+Save_Compile_Report = 1
+Project_Opt_Count = 0
+ForceSoftPaths = 0
+ProjectStatusDelay = 5000
+VERILOG_DoubleClick = Edit
+VERILOG_CustomDoubleClick = 
+SYSTEMVERILOG_DoubleClick = Edit
+SYSTEMVERILOG_CustomDoubleClick = 
+VHDL_DoubleClick = Edit
+VHDL_CustomDoubleClick = 
+PSL_DoubleClick = Edit
+PSL_CustomDoubleClick = 
+TEXT_DoubleClick = Edit
+TEXT_CustomDoubleClick = 
+SYSTEMC_DoubleClick = Edit
+SYSTEMC_CustomDoubleClick = 
+TCL_DoubleClick = Edit
+TCL_CustomDoubleClick = 
+MACRO_DoubleClick = Edit
+MACRO_CustomDoubleClick = 
+VCD_DoubleClick = Edit
+VCD_CustomDoubleClick = 
+SDF_DoubleClick = Edit
+SDF_CustomDoubleClick = 
+XML_DoubleClick = Edit
+XML_CustomDoubleClick = 
+LOGFILE_DoubleClick = Edit
+LOGFILE_CustomDoubleClick = 
+UCDB_DoubleClick = Edit
+UCDB_CustomDoubleClick = 
+TDB_DoubleClick = Edit
+TDB_CustomDoubleClick = 
+UPF_DoubleClick = Edit
+UPF_CustomDoubleClick = 
+PCF_DoubleClick = Edit
+PCF_CustomDoubleClick = 
+PROJECT_DoubleClick = Edit
+PROJECT_CustomDoubleClick = 
+VRM_DoubleClick = Edit
+VRM_CustomDoubleClick = 
+DEBUGDATABASE_DoubleClick = Edit
+DEBUGDATABASE_CustomDoubleClick = 
+DEBUGARCHIVE_DoubleClick = Edit
+DEBUGARCHIVE_CustomDoubleClick = 
+Project_Major_Version = 10
+Project_Minor_Version = 4
diff --git a/Individual_Project/Data Extraction/Leading_Bit_Detector.sv b/Individual_Project/Data Extraction/Leading_Bit_Detector.sv
new file mode 100644
index 0000000..807a5d0
--- /dev/null
+++ b/Individual_Project/Data Extraction/Leading_Bit_Detector.sv	
@@ -0,0 +1,60 @@
+/////////////////////////////////////////////////////////////////////
+// Design unit: Leading Bit Detector
+//            :
+// File name  : Leading_Bit_Detector.sv
+//            :
+// Description: Given the first bit of the regime bit
+//              find the first bit different from it
+//            :
+// Limitations: None
+//            : 
+// System     : SystemVerilog IEEE 1800-2005
+//            :
+// Author     : Xiaoan He (Jasper)
+//            : xh2g20@ecs.soton.ac.uk
+//
+// Revision   : Version 1.0 21/11/2022
+/////////////////////////////////////////////////////////////////////
+
+module Leading_Bit_Detector #( parameter N = 8, parameter ES = 3, parameter RS = log2(N))
+(
+    input logic signed [N-2:0] InRemain,
+    output logic signed [RS:0] EndPosition,
+    output logic RegimeCheck
+);
+
+function [31:0] log2;
+input reg [31:0] value;
+	begin
+	value = value-1;
+	for (log2=0; value>0; log2=log2+1)
+        	value = value>>1;
+      	end
+endfunction
+
+//logic RegimeCheck; 
+int i;
+
+always_comb
+begin
+    RegimeCheck = InRemain[N-2]; //the MSB of InRemain (In[6])is the number to be checked
+    
+    EndPosition = '0;
+    EndPosition = EndPosition + 1'b1; // initial EP starts from InRemain[1] as InRemain[0] is RC
+
+    for(i = 1; i < (N-2); i++) 
+        begin
+            /* 
+            compareing MSB of InRemain to the follwing bits
+            until the different bit turns up    
+            */
+            if (RegimeCheck == InRemain[((N-2)-i)])
+                //begin
+                EndPosition = EndPosition + 1'b1;
+                //end
+            else 
+                break;
+        end
+
+end
+endmodule
\ No newline at end of file
diff --git a/Individual_Project/Data Extraction/Posit_Extraction.sv b/Individual_Project/Data Extraction/Posit_Extraction.sv
new file mode 100644
index 0000000..f6bf858
--- /dev/null
+++ b/Individual_Project/Data Extraction/Posit_Extraction.sv	
@@ -0,0 +1,69 @@
+/////////////////////////////////////////////////////////////////////
+// Design unit: DataExtraction
+//            :
+// File name  : Posit_Extraction.sv
+//            :
+// Description: Extracting posit element from n bits binary number
+//            :
+// Limitations: None
+//            : 
+// System     : SystemVerilog IEEE 1800-2005
+//            :
+// Author     : Xiaoan He (Jasper)
+//            : xh2g20@ecs.soton.ac.uk
+//
+// Revision   : Version 1.0 19/11/2022
+/////////////////////////////////////////////////////////////////////
+
+// `ifndef log_2
+// `define log_2
+// `include "log_2.sv"
+
+function [31:0] log2;
+    input reg [31:0] value;
+        begin
+            value = value-1;
+            for (log2=0; value>0; log2=log2+1)
+                value = value>>1;
+        end
+endfunction
+
+module Data_Extraction #( parameter N = 8, parameter ES = 3, parameter RS = log2(N))
+(
+    input logic signed [N-1:0] In,
+    output logic Sign,
+    output logic signed [RS-1:0] RegimeValue,
+    output logic [ES-1:0] Exponent,
+    output logic [N-ES+2:0] Mantissa
+);
+
+logic signed [N-2:0] InRemain;
+logic RegimeCheck; 
+logic [RS:0] EndPosition;
+logic signed [N-2:0] ShiftedRemain;
+int i;
+Leading_Bit_Detector #(.N(N), .ES(ES)) LBD1 (.*);
+
+always_comb
+begin
+    // Sign Bit Extraction
+    Sign = In[N-1];
+    // if sign bit is true, then 2's compliment
+    InRemain = Sign ? (~In[N-2:0] + 1'b1) : In[N-2:0];
+
+    // Regime Bits Extraction
+    
+
+    if(RegimeCheck == 1'b1)
+        RegimeValue = EndPosition - 1;
+    else if (RegimeCheck == 0)
+        RegimeValue = -EndPosition;
+
+    //Exponent Bits Extraction
+    ShiftedRemain = InRemain << (EndPosition + 1 );
+    Exponent = ShiftedRemain[N-1:((N-1)-ES)];
+
+    //Mantissa Bits Extraction
+    Mantissa = {1'b1, ShiftedRemain[N-ES-2]};
+end
+endmodule
\ No newline at end of file
diff --git a/Individual_Project/Data Extraction/Test_Data_Extraction.sv b/Individual_Project/Data Extraction/Test_Data_Extraction.sv
new file mode 100644
index 0000000..685d46e
--- /dev/null
+++ b/Individual_Project/Data Extraction/Test_Data_Extraction.sv	
@@ -0,0 +1,49 @@
+/////////////////////////////////////////////////////////////////////
+// Design unit: TestDataExtraction
+//            :
+// File name  : testExtract.sv
+//            :
+// Description: Testbench for extracting posit element 
+//              from n bits binary number
+//            :
+// Limitations: None
+//            : 
+// System     : SystemVerilog IEEE 1800-2005
+//            :
+// Author     : Xiaoan He (Jasper)
+//            : xh2g20@ecs.soton.ac.uk
+//
+// Revision   : Version 1.0 21/11/2022
+/////////////////////////////////////////////////////////////////////
+function [31:0] log2;
+input reg [31:0] value;
+	begin
+	value = value-1;
+	for (log2=0; value>0; log2=log2+1)
+        	value = value>>1;
+      	end
+endfunction
+
+module Test_Data_Extraction;
+parameter N = 8, RS = log2(N), ES = 3;
+
+//input logic
+logic signed [N-1:0]In;
+
+//output logic
+logic Sign;
+logic signed [RS:0] RegimeValue;
+logic [ES-1:0] Exponent;
+logic [N-ES+2:0] Mantissa;
+
+Data_Extraction #(.N(N), .ES(ES)) extract1 (.*);
+
+initial
+    begin
+        // initial input is nothing
+        #10ns In = 8'b0_0000000;
+        // sign=0 regime=10 exponent=1001,mant=1    
+        #50ns In = 8'b1_01_1000_0;  
+        // 0_10_1000_0
+    end
+endmodule
\ No newline at end of file
diff --git a/Individual_Project/Data Extraction/log_2.sv b/Individual_Project/Data Extraction/log_2.sv
new file mode 100644
index 0000000..7aed6e3
--- /dev/null
+++ b/Individual_Project/Data Extraction/log_2.sv	
@@ -0,0 +1,29 @@
+/////////////////////////////////////////////////////////////////////
+// Design unit: Logarithm Base 2
+//            :
+// File name  : log_2.sv
+//            :
+// Description: Just be used to compute the Regime Size (RS)
+//            : which is equal to log2(the number of total bits)
+//            :
+// Limitations: None
+//            : 
+// System     : SystemVerilog IEEE 1800-2005
+//            :
+// Author     : Xiaoan He (Jasper)
+//            : xh2g20@ecs.soton.ac.uk
+//
+// Revision   : Version 1.0 19/11/2022
+/////////////////////////////////////////////////////////////////////
+
+#ifndef log_2
+#define log_2
+
+function [31:0] log2;
+input logic [31:0] value;
+	begin
+	value = value-1;
+	for (log2=0; value>0; log2=log2+1)
+        	value = value>>1;
+      	end
+endfunction
\ No newline at end of file
diff --git a/Individual_Project/Data Extraction/work/_info b/Individual_Project/Data Extraction/work/_info
new file mode 100644
index 0000000..1737cce
--- /dev/null
+++ b/Individual_Project/Data Extraction/work/_info	
@@ -0,0 +1,132 @@
+m255
+K4
+z2
+13
+!s112 1.1
+!i10d 8192
+!i10e 25
+!i10f 100
+cModel Technology
+dd:/modelsim/examples
+vData_Extraction
+Z0 DXx6 sv_std 3 std 0 22 WmjPaeP=7F5?QFXzJ>D[Q2
+DXx4 work 24 Posit_Extraction_sv_unit 0 22 Ik5d90Sbo;Z_5B[6;nN?c3
+!i10b 1
+Z1 VDg1SIo80bB@j0V0VzS_@n1
+r1
+!s85 0
+31
+!s100 :9jDL8fgjON>>ZZzI=UH]1
+IX?9gdS@<E5GRYXNjTL2OY0
+!s105 Posit_Extraction_sv_unit
+S1
+Z2 dH:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction
+Z3 w1669058108
+Z4 8H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Posit_Extraction.sv
+Z5 FH:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Posit_Extraction.sv
+L0 31
+Z6 OP;L;10.4a;61
+Z7 !s108 1669058622.000000
+Z8 !s107 H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Posit_Extraction.sv|
+Z9 !s90 -reportprogress|300|-work|work|-sv|-stats=none|H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Posit_Extraction.sv|
+!s101 -O0
+!i113 1
+Z10 o-work work -sv -L mtiAvm -L mtiRnm -L mtiOvm -L mtiUvm -L mtiUPF -L infact -O0
+n@data_@extraction
+vLeading_Bit_Detector
+R0
+!i10b 1
+R1
+r1
+!s85 0
+31
+!s100 RGaB4Z:d;NgXmE1MinB4=3
+I6CV7iYKKRNiPVe<:Jd7OZ3
+!s105 Leading_Bit_Detector_sv_unit
+S1
+R2
+w1669057534
+8H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Leading_Bit_Detector.sv
+FH:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Leading_Bit_Detector.sv
+L0 19
+R6
+R7
+!s107 H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Leading_Bit_Detector.sv|
+!s90 -reportprogress|300|-work|work|-sv|-stats=none|H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Leading_Bit_Detector.sv|
+!s101 -O0
+!i113 1
+R10
+n@leading_@bit_@detector
+XPosit_Extraction_sv_unit
+R0
+!i10b 1
+VIk5d90Sbo;Z_5B[6;nN?c3
+r1
+!s85 0
+31
+!s100 6V1A`S@cEfY:22eJ`[9ie0
+IIk5d90Sbo;Z_5B[6;nN?c3
+!i103 1
+S1
+R2
+R3
+R4
+R5
+L0 22
+R6
+R7
+R8
+R9
+!s101 -O0
+!i113 1
+R10
+n@posit_@extraction_sv_unit
+vTest_Data_Extraction
+R0
+DXx4 work 28 Test_Data_Extraction_sv_unit 0 22 eO`G7lR:hj`hW^[elH1aV3
+R1
+r1
+!s85 0
+31
+!i10b 1
+!s100 3RPk2ZiH_2bbhhGLnk:DO1
+I63^h:jSFcYooFdfcf]]f60
+!s105 Test_Data_Extraction_sv_unit
+S1
+R2
+Z11 w1669058862
+Z12 8H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Test_Data_Extraction.sv
+Z13 FH:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Test_Data_Extraction.sv
+L0 27
+R6
+Z14 !s108 1669058866.000000
+Z15 !s107 H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Test_Data_Extraction.sv|
+Z16 !s90 -reportprogress|300|-work|work|-sv|-stats=none|H:/INDIVIDUAL PROJECT/Posit/Individual_Project/Data Extraction/Test_Data_Extraction.sv|
+!s101 -O0
+!i113 1
+R10
+n@test_@data_@extraction
+XTest_Data_Extraction_sv_unit
+R0
+VeO`G7lR:hj`hW^[elH1aV3
+r1
+!s85 0
+31
+!i10b 1
+!s100 DNiobLRHe5470J9VAIX`k1
+IeO`G7lR:hj`hW^[elH1aV3
+!i103 1
+S1
+R2
+R11
+R12
+R13
+L0 18
+R6
+R14
+R15
+R16
+!s101 -O0
+!i113 1
+R10
+n@test_@data_@extraction_sv_unit
diff --git a/Individual_Project/Data Extraction/work/_lib.qdb b/Individual_Project/Data Extraction/work/_lib.qdb
new file mode 100644
index 0000000000000000000000000000000000000000..ccfd7f544ec102bce0cd40551f084b9f18fd5348
GIT binary patch
literal 49152
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
D@{~N0

literal 0
HcmV?d00001

diff --git a/Individual_Project/Data Extraction/work/_lib1_2.qdb b/Individual_Project/Data Extraction/work/_lib1_2.qdb
new file mode 100644
index 0000000000000000000000000000000000000000..8accc9680f9e8a77a18e04dce56d174649a861fa
GIT binary patch
literal 32768
zcmeaxPf5)w&dgOvNlI5RRA5kGU}R))P*7lCU|?fF1xySK42(!Z$ZRBGOeU}VTn1*j
zXAJTS<(|psV9Jk*jE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeD
zjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mk0C6GE$jrnpE-TB}7+I2-l#`lR
zT9K5KpPUV&nVo}N9Yb6dLL8lZToquV3L0sdIjNZ`3Z8x;uI{cuIts<9g-D#ts#F9o
zKP{~|wFJQr_45o2b%mM$)~Ttf&&($7EX&A{nU|7UQCyglS&|x`SXz<~=EuXVjW>j`
zSQr=>SYjF3#igYg8wFu52RSOSv;ssip}QL-i0*8KfFMs_$Dl|BZ`Vj2h181F+=7z4
z#N1Sc5Z8zhO<o2D1_}8J9{FGLU*zA(zmR_{e^<U;{<{1n`Lpsz<qyd3mY*oUR(^&2
zLisuJJ@V7#H_JE4*UDEA7w)5~MnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ON
zU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONV0ecBb0ISW19Jh0
z$OjRzAR-4uq%$)x$TR1HnAspAiy0IW%$Xo|28hj^2O=35n3F+5NgyH-Dv|)=#Dj=9
zkO*@On2cs-U|{iLX5cqqaRZZfVA2Le^2%Lfke7>PlK&$AT>h5)S@}cq+vV5D&zGMh
zw^+VizD7PzK0$7(e2~10yqVl-xxMmI@;q|?<UYtflGl)Hm#dW9B$q803v%Ho9u0xf
z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c
z4S~@R7!85Z5Eu=C(GVE6A;4qB%E-vXT*$yMmyuDN#}dpdVC0*@@Ts219L&pSV7SKc
zaV3u#n3u;O<iT)1kw*>8OJHEW#n2MOtq9^V#WFAl)HTXo<FsI9WMpJ4U|`_q(Fe&e
zr!z_@Fzj5)sRx!wXJFuCU|`^3WMWQbV0gp8V**x`!@#(m;r4kRV=yn9fjNNTMm>)a
zn3u)C)WUG}H;*Bhm&w4K#BgaQj{%sM!N72Z;o?yqQ!p==f$=uO-8LRgFfW;baTCLA
zDIN_lFNuNS9K$Rh9(6D;kwHj-p+kp970iogU@T;4ddQ;!=EX5F3NSQY<WvSbIF6Bl
zhf@i{WMJUtRsgACieX^9QnQv@9?XemW<OB!mQxO_D4L0Zi&GZDWMtsvlz}iA7&y3D
zz^c6%SX{Wbb2EcEZVW68?Ay7Sz#KaU#>=cvxEMhkMjHm!Ck$K+3=Hz}91QY5<Uh#2
zkbfY5L;iyN3Hbx^JLDDQH^{G$Um!n2eu8|5e1m+2yn%d%e1d$0e1N=%yoS7kyoG#$
zyo9`fJjbw2!J{4<4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c
z4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Ex=1z|O+R$XLi=1*QuaEg>|61(=Ry
zPz2LC3?^VYok0&w=P{Up>0Aa=FrCd{45qUfjKFjzgCUsCU@!pF>5TedI-kKDOeZsF
zg6Sj%4KSU^pbn-J7}UUYJcBBjj$=}R(2U9unn4Ln$1o^>>1bwo2+br1p&4Z%G=mJ7
W_F`ZG({2pRVA_s>2~68CFaiKR|NKM%

literal 0
HcmV?d00001

diff --git a/Individual_Project/Data Extraction/work/_lib1_2.qpg b/Individual_Project/Data Extraction/work/_lib1_2.qpg
new file mode 100644
index 0000000000000000000000000000000000000000..aa5a29235c6cf9d7baef30e99d3fff7e70817671
GIT binary patch
literal 122880
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
PNig?0gVujAFfsxFIP?lD

literal 0
HcmV?d00001

diff --git a/Individual_Project/Data Extraction/work/_lib1_2.qtl b/Individual_Project/Data Extraction/work/_lib1_2.qtl
new file mode 100644
index 0000000000000000000000000000000000000000..97c913c8c629a0c63a89a452a45b7cbdf3636e5f
GIT binary patch
literal 65972
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%0D<A;<^N!%0DfJ*a|_1RqYy2s=Ga3Vb*z3n&YNLjrujD9l=L
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

literal 0
HcmV?d00001

diff --git a/Individual_Project/Data Extraction/work/_vmake b/Individual_Project/Data Extraction/work/_vmake
new file mode 100644
index 0000000..37aa36a
--- /dev/null
+++ b/Individual_Project/Data Extraction/work/_vmake	
@@ -0,0 +1,4 @@
+m255
+K4
+z0
+cModel Technology
diff --git a/Individual_Project/Posit_Extraction.sv b/Individual_Project/Posit_Extraction.sv
index 5be9b0b..f7f4864 100644
--- a/Individual_Project/Posit_Extraction.sv
+++ b/Individual_Project/Posit_Extraction.sv
@@ -28,49 +28,54 @@ function [31:0] log2;
         end
 endfunction
 
-Module Data_Extraction #( parameter N = 8, parameter ES = 3, parameter RS = log2(N))
+module Data_Extraction #( parameter N = 8, parameter ES = 3, parameter RS = log2(N))
 (
     input logic signed [N-1:0] In,
     output logic Sign,
-    output logic signed [RS-1:0] Regime,
+    output logic signed [RS-1:0] RegimeValue,
     output logic [ES-1:0] Exponent,
     output logic [N-ES+2:0] Mantissa
-)
+);
 
-// Sign Bit Extraction
-logic signed [N-2:0] InRemain;
+always_comb
+begin
+    // Sign Bit Extraction
+    logic signed [N-2:0] InRemain;
 
-Sign = In[N-1];
-if(Sign = 1)    // if sign bit is 1, then 2's compliment
-    InRemain = ~In[N-2:0] + 1'b1;
-else
-    InRemain = In[N-2:0];
+    Sign = In[N-1];
+    if(Sign = 1)    // if sign bit is 1, then 2's compliment
+        InRemain = ~In[N-2:0] + 1'b1;
+    else
+        InRemain = In[N-2:0];
 
-// Regime Bits Extraction
-logic RegimeCheck = InRemain{N-2}; //the MSB of InRemain is the number to be checked
+    // Regime Bits Extraction
+    logic RegimeCheck = InRemain[N-2]; //the MSB of InRemain (In[6])is the number to be checked
 
-logic [RS-1:0] EndPosition = 1; // initial EP starts from 2nd element
+    logic [RS-1:0] EndPosition = 1; // initial EP starts from InRemain[1] as InRemain[0] is RC
 
-for(int i = 1; i < N-2; i++)
-    begin
-        /* 
-        compareing MSB of InRemain to the follwing bits
-        until the different bit turns up    
-        */
-        if(RegimeCheck == InRemain[((N-2)-i)])
-            EndPosition = EndPositon + 1;
-        else 
-            break;
-    end
+    for(int i = 1; i < N-2; i++)
+        begin
+            /* 
+            compareing MSB of InRemain to the follwing bits
+            until the different bit turns up    
+            */
+            if(RegimeCheck == InRemain[((N-2)-i)])
+                EndPosition = EndPositon + 1;
+            else 
+                break;
+        end
 
-// logic RegimeValue;
+    if(RegimeCheck == 1)
+        RegimeValue = EndPosition - 1;
+    else if (RegimeCheck == 0)
+        RegimeValue = -EndPositon;
 
-// if(RegimeCheck = 1)
-//     RegimeValue = EndPosition - 1;
-// else
-//     RegimeValue = -EndPositon;
+    //Exponent Bits Extraction
+    logic signed [N-2:0] ShiftedRemain;
+    ShiftedRemain = InRemain << (EndPosition + 1 );
+    Exponent = ShiftedRemain[N-1:((N-1)-ES)];
 
-// Exponent Bits Extraction
-logic signed [N-2:0] ShiftedRemain;
-ShiftedRemain = InRemain << (EndPosition + )
+    //Mantissa Bits Extraction
+    Mantissa = {1'b1, ShiftedRemain[N-ES-2]};
+end
 endmodule
\ No newline at end of file
diff --git a/Individual_Project/testExtract.sv b/Individual_Project/testExtract.sv
new file mode 100644
index 0000000..b8a8491
--- /dev/null
+++ b/Individual_Project/testExtract.sv
@@ -0,0 +1,51 @@
+/////////////////////////////////////////////////////////////////////
+// Design unit: TestDataExtraction
+//            :
+// File name  : testExtract.sv
+//            :
+// Description: Testbench for extracting posit element 
+//              from n bits binary number
+//            :
+// Limitations: None
+//            : 
+// System     : SystemVerilog IEEE 1800-2005
+//            :
+// Author     : Xiaoan He (Jasper)
+//            : xh2g20@ecs.soton.ac.uk
+//
+// Revision   : Version 1.0 14/11/2022
+/////////////////////////////////////////////////////////////////////
+
+module testExtract;
+
+function [31:0] log2;
+input reg [31:0] value;
+	begin
+	value = value-1;
+	for (log2=0; value>0; log2=log2+1)
+        	value = value>>1;
+      	end
+endfunction
+
+parameter N = 8, Bs = log2(N), es = 3;
+
+//input logic
+logic signed [N-1:0]In;
+//output logic
+logic Sign;
+logic [ES-1:0]Exponent;
+logic signed [Es-1:0]Regime;
+logic [N-ES+2:0]Mantissa;
+
+Data_Extraction extract1 (.*);
+
+initial
+    begin
+        // initial input is nothing
+        #10ns in = 8'b0_0000000;
+        // sign=0 regime=10 exponent=1001,mant=1    
+        #50ns in = 8'b1_01_1000_0;  
+        // 0_10_1000_0
+    end
+
+endmodule
\ No newline at end of file
diff --git a/posit_adder_sv/data_extract.sv b/posit_adder_sv/data_extract.sv
index 8e0bb18..00b9c3f 100644
--- a/posit_adder_sv/data_extract.sv
+++ b/posit_adder_sv/data_extract.sv
@@ -1,4 +1,5 @@
-module data_extract #(parameter N=8, parameter Bs=log2(N), parameter es=4, parameter Rmax = N-1, parameter Rmin = -(N-1))
+module data_extract #(parameter N=8, parameter Bs=log2(N), 
+parameter es=4, parameter Rmax = N-1, parameter Rmin = -(N-1))
 (input logic signed [N-1:0] in,
 output logic Sin,
 output logic [es-1:0] exp,
-- 
GitLab