Added all Testbenches to Modelsim and confirmed working operation
This commit is contained in:
1 parent
c4ebde7692
commit
05361dcf70
349 files changed
+15719
-1096
No files matched your search
@@ -0,0 +1,16 @@
|
||||
/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/seven_seg.sv {1 {vlog -work work -sv -stats=none /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/seven_seg.sv
|
||||
Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020
|
||||
-- Compiling module seven_seg
|
||||
|
||||
Top level modules:
|
||||
seven_seg
|
||||
|
||||
} {} {}} /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/seven_seg_tb.sv {1 {vlog -work work -sv -stats=none /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/seven_seg_tb.sv
|
||||
Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020
|
||||
-- Compiling module seven_seg
|
||||
-- Compiling module seven_seg_tb
|
||||
|
||||
Top level modules:
|
||||
seven_seg_tb
|
||||
|
||||
} {} {}}
|
||||
@@ -0,0 +1,466 @@
|
||||
; Copyright 1991-2009 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
|
||||
verilog = $MODEL_TECH/../verilog
|
||||
vital2000 = $MODEL_TECH/../vital2000
|
||||
std_developerskit = $MODEL_TECH/../std_developerskit
|
||||
synopsys = $MODEL_TECH/../synopsys
|
||||
modelsim_lib = $MODEL_TECH/../modelsim_lib
|
||||
sv_std = $MODEL_TECH/../sv_std
|
||||
|
||||
; Altera Primitive libraries
|
||||
;
|
||||
; VHDL Section
|
||||
;
|
||||
altera_mf = $MODEL_TECH/../altera/vhdl/altera_mf
|
||||
altera = $MODEL_TECH/../altera/vhdl/altera
|
||||
altera_lnsim = $MODEL_TECH/../altera/vhdl/altera_lnsim
|
||||
lpm = $MODEL_TECH/../altera/vhdl/220model
|
||||
220model = $MODEL_TECH/../altera/vhdl/220model
|
||||
maxii = $MODEL_TECH/../altera/vhdl/maxii
|
||||
maxv = $MODEL_TECH/../altera/vhdl/maxv
|
||||
fiftyfivenm = $MODEL_TECH/../altera/vhdl/fiftyfivenm
|
||||
sgate = $MODEL_TECH/../altera/vhdl/sgate
|
||||
arriaii = $MODEL_TECH/../altera/vhdl/arriaii
|
||||
arriaii_hssi = $MODEL_TECH/../altera/vhdl/arriaii_hssi
|
||||
arriaii_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaii_pcie_hip
|
||||
arriaiigz = $MODEL_TECH/../altera/vhdl/arriaiigz
|
||||
arriaiigz_hssi = $MODEL_TECH/../altera/vhdl/arriaiigz_hssi
|
||||
arriaiigz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaiigz_pcie_hip
|
||||
stratixiv = $MODEL_TECH/../altera/vhdl/stratixiv
|
||||
stratixiv_hssi = $MODEL_TECH/../altera/vhdl/stratixiv_hssi
|
||||
stratixiv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixiv_pcie_hip
|
||||
cycloneiv = $MODEL_TECH/../altera/vhdl/cycloneiv
|
||||
cycloneiv_hssi = $MODEL_TECH/../altera/vhdl/cycloneiv_hssi
|
||||
cycloneiv_pcie_hip = $MODEL_TECH/../altera/vhdl/cycloneiv_pcie_hip
|
||||
cycloneive = $MODEL_TECH/../altera/vhdl/cycloneive
|
||||
stratixv = $MODEL_TECH/../altera/vhdl/stratixv
|
||||
stratixv_hssi = $MODEL_TECH/../altera/vhdl/stratixv_hssi
|
||||
stratixv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixv_pcie_hip
|
||||
arriavgz = $MODEL_TECH/../altera/vhdl/arriavgz
|
||||
arriavgz_hssi = $MODEL_TECH/../altera/vhdl/arriavgz_hssi
|
||||
arriavgz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriavgz_pcie_hip
|
||||
arriav = $MODEL_TECH/../altera/vhdl/arriav
|
||||
cyclonev = $MODEL_TECH/../altera/vhdl/cyclonev
|
||||
twentynm = $MODEL_TECH/../altera/vhdl/twentynm
|
||||
twentynm_hssi = $MODEL_TECH/../altera/vhdl/twentynm_hssi
|
||||
twentynm_hip = $MODEL_TECH/../altera/vhdl/twentynm_hip
|
||||
cyclone10lp = $MODEL_TECH/../altera/vhdl/cyclone10lp
|
||||
;
|
||||
; Verilog Section
|
||||
;
|
||||
altera_mf_ver = $MODEL_TECH/../altera/verilog/altera_mf
|
||||
altera_ver = $MODEL_TECH/../altera/verilog/altera
|
||||
altera_lnsim_ver = $MODEL_TECH/../altera/verilog/altera_lnsim
|
||||
lpm_ver = $MODEL_TECH/../altera/verilog/220model
|
||||
220model_ver = $MODEL_TECH/../altera/verilog/220model
|
||||
maxii_ver = $MODEL_TECH/../altera/verilog/maxii
|
||||
maxv_ver = $MODEL_TECH/../altera/verilog/maxv
|
||||
fiftyfivenm_ver = $MODEL_TECH/../altera/verilog/fiftyfivenm
|
||||
sgate_ver = $MODEL_TECH/../altera/verilog/sgate
|
||||
arriaii_ver = $MODEL_TECH/../altera/verilog/arriaii
|
||||
arriaii_hssi_ver = $MODEL_TECH/../altera/verilog/arriaii_hssi
|
||||
arriaii_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaii_pcie_hip
|
||||
arriaiigz_ver = $MODEL_TECH/../altera/verilog/arriaiigz
|
||||
arriaiigz_hssi_ver = $MODEL_TECH/../altera/verilog/arriaiigz_hssi
|
||||
arriaiigz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaiigz_pcie_hip
|
||||
stratixiv_ver = $MODEL_TECH/../altera/verilog/stratixiv
|
||||
stratixiv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixiv_hssi
|
||||
stratixiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixiv_pcie_hip
|
||||
stratixv_ver = $MODEL_TECH/../altera/verilog/stratixv
|
||||
stratixv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixv_hssi
|
||||
stratixv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixv_pcie_hip
|
||||
arriavgz_ver = $MODEL_TECH/../altera/verilog/arriavgz
|
||||
arriavgz_hssi_ver = $MODEL_TECH/../altera/verilog/arriavgz_hssi
|
||||
arriavgz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriavgz_pcie_hip
|
||||
arriav_ver = $MODEL_TECH/../altera/verilog/arriav
|
||||
arriav_hssi_ver = $MODEL_TECH/../altera/verilog/arriav_hssi
|
||||
arriav_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriav_pcie_hip
|
||||
cyclonev_ver = $MODEL_TECH/../altera/verilog/cyclonev
|
||||
cyclonev_hssi_ver = $MODEL_TECH/../altera/verilog/cyclonev_hssi
|
||||
cyclonev_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cyclonev_pcie_hip
|
||||
cycloneiv_ver = $MODEL_TECH/../altera/verilog/cycloneiv
|
||||
cycloneiv_hssi_ver = $MODEL_TECH/../altera/verilog/cycloneiv_hssi
|
||||
cycloneiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cycloneiv_pcie_hip
|
||||
cycloneive_ver = $MODEL_TECH/../altera/verilog/cycloneive
|
||||
twentynm_ver = $MODEL_TECH/../altera/verilog/twentynm
|
||||
twentynm_hssi_ver = $MODEL_TECH/../altera/verilog/twentynm_hssi
|
||||
twentynm_hip_ver = $MODEL_TECH/../altera/verilog/twentynm_hip
|
||||
cyclone10lp_ver = $MODEL_TECH/../altera/verilog/cyclone10lp
|
||||
|
||||
work = work
|
||||
[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.
|
||||
; Default or value of 3 or 2008 for VHDL-2008.
|
||||
VHDL93 = 2002
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
[vlog]
|
||||
|
||||
; 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 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
|
||||
|
||||
; Turn on incremental compilation of modules. Default is off.
|
||||
; Incremental = 1
|
||||
|
||||
; Turns on lint-style checking.
|
||||
; Show_Lint = 1
|
||||
|
||||
[vsim]
|
||||
; Simulator resolution
|
||||
; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100.
|
||||
Resolution = ps
|
||||
|
||||
; 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 ps
|
||||
|
||||
; Maximum iterations that can be run without advancing simulation time
|
||||
IterationLimit = 5000
|
||||
|
||||
; Directive to license manager:
|
||||
; vhdl Immediately reserve a VHDL license
|
||||
; vlog Immediately reserve a Verilog license
|
||||
; plus Immediately reserve a VHDL and Verilog license
|
||||
; nomgc Do not look for Mentor Graphics Licenses
|
||||
; nomti Do not look for Model Technology Licenses
|
||||
; noqueue Do not wait in the license queue when a license isn't available
|
||||
; viewsim Try for viewer license but accept simulator license(s) instead
|
||||
; of queuing for viewer license
|
||||
; License = plus
|
||||
|
||||
; Stop the simulator after a VHDL/Verilog assertion message
|
||||
; 0 = Note 1 = Warning 2 = Error 3 = Failure 4 = Fatal
|
||||
BreakOnAssertion = 3
|
||||
|
||||
; Assertion Message Format
|
||||
; %S - Severity Level
|
||||
; %R - Report Message
|
||||
; %T - Time of assertion
|
||||
; %D - Delta
|
||||
; %I - Instance or Region pathname (if available)
|
||||
; %% - print '%' character
|
||||
; AssertionFormat = "** %S: %R\n Time: %T Iteration: %D%I\n"
|
||||
|
||||
; Assertion File - alternate file for storing VHDL/Verilog assertion messages
|
||||
; AssertFile = assert.log
|
||||
|
||||
; Default radix for all windows and commands...
|
||||
; Set to symbolic, ascii, binary, octal, decimal, hex, unsigned
|
||||
DefaultRadix = symbolic
|
||||
|
||||
; VSIM Startup command
|
||||
; Startup = do startup.do
|
||||
|
||||
; File for saving command transcript
|
||||
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 = :
|
||||
|
||||
; Disable VHDL assertion messages
|
||||
; IgnoreNote = 1
|
||||
; IgnoreWarning = 1
|
||||
; IgnoreError = 1
|
||||
; IgnoreFailure = 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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 from the std_logic_arith, std_logic_unsigned
|
||||
; and std_logic_signed packages.
|
||||
; StdArithNoWarnings = 1
|
||||
|
||||
; Turn off warnings from the IEEE numeric_std and numeric_bit packages.
|
||||
; NumericStdNoWarnings = 1
|
||||
|
||||
; Control the format of the (VHDL) FOR generate statement label
|
||||
; for each iteration. Do not quote it.
|
||||
; 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_label; the %d represents the generate parameter value
|
||||
; at a particular generate 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 scope name over all
|
||||
; such names in the design so that name lookup can function properly.
|
||||
; GenerateFormat = %s__%d
|
||||
|
||||
; Specify whether checkpoint files should be compressed.
|
||||
; The default is 1 (compressed).
|
||||
; CheckpointCompressMode = 0
|
||||
|
||||
; List of dynamically loaded objects for Verilog PLI applications
|
||||
; Veriuser = veriuser.sl
|
||||
|
||||
; Specify default options for the restart command. Options can be one
|
||||
; or more of: -force -nobreakpoint -nolist -nolog -nowave
|
||||
; DefaultRestartOptions = -force
|
||||
|
||||
; HP-UX 10.20 ONLY - Enable memory locking to speed up large designs
|
||||
; (> 500 megabyte memory footprint). Default is disabled.
|
||||
; Specify number of megabytes to lock.
|
||||
; LockedMemory = 1000
|
||||
|
||||
; 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
|
||||
|
||||
; Automatic SDF compilation
|
||||
; Disables automatic compilation of SDF files in flows that support it.
|
||||
; Default is on, uncomment to turn off.
|
||||
; NoAutoSDFCompile = 1
|
||||
|
||||
[lmc]
|
||||
|
||||
[msg_system]
|
||||
; Change a message severity or suppress a message.
|
||||
; The format is: <msg directive> = <msg number>[,<msg number>...]
|
||||
; Examples:
|
||||
; note = 3009
|
||||
; warning = 3033
|
||||
; error = 3010,3016
|
||||
; fatal = 3016,3033
|
||||
; suppress = 3009,3016,3043
|
||||
; The command verror <msg number> can be used to get the complete
|
||||
; description of a message.
|
||||
|
||||
; Control transcripting of elaboration/runtime messages.
|
||||
; The default is to have messages appear in the transcript and
|
||||
; recorded in the wlf file (messages that are recorded in the
|
||||
; wlf file can be viewed in the MsgViewer). The other settings
|
||||
; are to send messages only to the transcript or only to the
|
||||
; wlf file. The valid values are
|
||||
; both {default}
|
||||
; tran {transcript only}
|
||||
; wlf {wlf file only}
|
||||
; msgmode = both
|
||||
[Project]
|
||||
** Warning: ; 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 = 2
|
||||
Project_File_0 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/seven_seg.sv
|
||||
Project_File_P_0 = cover_toggle 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} last_compile 1789355084 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 vlog_showsource 0 vlog_hazard 0 cover_optlevel 3 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 0 cover_expr 0 dont_compile 0 cover_stmt 0
|
||||
Project_File_1 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/seven_seg_tb.sv
|
||||
Project_File_P_1 = cover_toggle 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} last_compile 1788418794 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 vlog_showsource 0 vlog_hazard 0 cover_optlevel 3 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_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 = 2020
|
||||
Project_Minor_Version = 1
|
||||
@@ -412,9 +412,9 @@ Project_DefaultLib = work
|
||||
Project_SortMethod = unused
|
||||
Project_Files_Count = 2
|
||||
Project_File_0 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/lu.sv
|
||||
Project_File_P_0 = cover_toggle 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 1788845636 cover_fsm 0 cover_branch 0 vlog_noload 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 vlog_showsource 0 vlog_hazard 0 cover_optlevel 3 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 0 cover_expr 0 dont_compile 0 cover_stmt 0
|
||||
Project_File_P_0 = cover_toggle 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 1789355084 cover_fsm 0 cover_branch 0 vlog_noload 0 vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 cover_optlevel 3 vlog_hazard 0 vlog_showsource 0 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_1 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/lu_tb.sv
|
||||
Project_File_P_1 = cover_toggle 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 folder {Top Level} last_compile 1788926090 cover_fsm 0 cover_branch 0 vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 cover_optlevel 3 vlog_hazard 0 vlog_showsource 0 voptflow 1 ood 0 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 1 dont_compile 0 cover_expr 0 cover_stmt 0
|
||||
Project_File_P_1 = cover_toggle 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 1788926090 cover_fsm 0 cover_branch 0 vlog_noload 0 vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 cover_optlevel 3 vlog_hazard 0 vlog_showsource 0 voptflow 1 ood 0 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 1 dont_compile 0 cover_expr 0 cover_stmt 0
|
||||
Project_Sim_Count = 0
|
||||
Project_Folder_Count = 0
|
||||
Echo_Compile_Output = 0
|
||||
|
||||
@@ -412,9 +412,9 @@ Project_DefaultLib = work
|
||||
Project_SortMethod = unused
|
||||
Project_Files_Count = 2
|
||||
Project_File_0 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu.sv
|
||||
Project_File_P_0 = cover_toggle 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 1788926090 cover_fsm 0 cover_branch 0 vlog_noload 0 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 vlog_showsource 0 vlog_hazard 0 cover_optlevel 3 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 0 cover_expr 0 dont_compile 0 cover_stmt 0
|
||||
Project_File_P_0 = cover_toggle 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 1789355084 cover_fsm 0 cover_branch 0 vlog_noload 0 vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 cover_optlevel 3 vlog_hazard 0 vlog_showsource 0 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_1 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu_tb.sv
|
||||
Project_File_P_1 = cover_toggle 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 folder {Top Level} last_compile 1789017573 cover_fsm 0 cover_branch 0 vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 cover_optlevel 3 vlog_hazard 0 vlog_showsource 0 voptflow 1 ood 0 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 1 dont_compile 0 cover_expr 0 cover_stmt 0
|
||||
Project_File_P_1 = cover_toggle 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 1788926090 cover_fsm 0 cover_branch 0 vlog_noload 0 vlog_enable0In 0 cover_excludedefault 0 vlog_disableopt 0 cover_covercells 0 cover_optlevel 3 vlog_hazard 0 vlog_showsource 0 voptflow 1 ood 0 vlog_0InOptions {} toggle - vlog_options {} compile_to work vlog_upper 0 cover_noshort 0 compile_order 1 dont_compile 0 cover_expr 0 cover_stmt 0
|
||||
Project_Sim_Count = 0
|
||||
Project_Folder_Count = 0
|
||||
Echo_Compile_Output = 0
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/alu.sv {1 {vlog -work work -sv -stats=none /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/alu.sv
|
||||
Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020
|
||||
-- Compiling module asu
|
||||
-- Compiling module lu
|
||||
-- Compiling module alu
|
||||
|
||||
Top level modules:
|
||||
alu
|
||||
|
||||
} {} {}} /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/alu_tb.sv {1 {vlog -work work -sv -stats=none /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/alu_tb.sv
|
||||
Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020
|
||||
-- Compiling module asu
|
||||
-- Compiling module lu
|
||||
-- Compiling module alu
|
||||
-- Compiling module alu_tb
|
||||
|
||||
Top level modules:
|
||||
alu_tb
|
||||
|
||||
} {} {}}
|
||||
@@ -0,0 +1,466 @@
|
||||
; Copyright 1991-2009 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
|
||||
verilog = $MODEL_TECH/../verilog
|
||||
vital2000 = $MODEL_TECH/../vital2000
|
||||
std_developerskit = $MODEL_TECH/../std_developerskit
|
||||
synopsys = $MODEL_TECH/../synopsys
|
||||
modelsim_lib = $MODEL_TECH/../modelsim_lib
|
||||
sv_std = $MODEL_TECH/../sv_std
|
||||
|
||||
; Altera Primitive libraries
|
||||
;
|
||||
; VHDL Section
|
||||
;
|
||||
altera_mf = $MODEL_TECH/../altera/vhdl/altera_mf
|
||||
altera = $MODEL_TECH/../altera/vhdl/altera
|
||||
altera_lnsim = $MODEL_TECH/../altera/vhdl/altera_lnsim
|
||||
lpm = $MODEL_TECH/../altera/vhdl/220model
|
||||
220model = $MODEL_TECH/../altera/vhdl/220model
|
||||
maxii = $MODEL_TECH/../altera/vhdl/maxii
|
||||
maxv = $MODEL_TECH/../altera/vhdl/maxv
|
||||
fiftyfivenm = $MODEL_TECH/../altera/vhdl/fiftyfivenm
|
||||
sgate = $MODEL_TECH/../altera/vhdl/sgate
|
||||
arriaii = $MODEL_TECH/../altera/vhdl/arriaii
|
||||
arriaii_hssi = $MODEL_TECH/../altera/vhdl/arriaii_hssi
|
||||
arriaii_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaii_pcie_hip
|
||||
arriaiigz = $MODEL_TECH/../altera/vhdl/arriaiigz
|
||||
arriaiigz_hssi = $MODEL_TECH/../altera/vhdl/arriaiigz_hssi
|
||||
arriaiigz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaiigz_pcie_hip
|
||||
stratixiv = $MODEL_TECH/../altera/vhdl/stratixiv
|
||||
stratixiv_hssi = $MODEL_TECH/../altera/vhdl/stratixiv_hssi
|
||||
stratixiv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixiv_pcie_hip
|
||||
cycloneiv = $MODEL_TECH/../altera/vhdl/cycloneiv
|
||||
cycloneiv_hssi = $MODEL_TECH/../altera/vhdl/cycloneiv_hssi
|
||||
cycloneiv_pcie_hip = $MODEL_TECH/../altera/vhdl/cycloneiv_pcie_hip
|
||||
cycloneive = $MODEL_TECH/../altera/vhdl/cycloneive
|
||||
stratixv = $MODEL_TECH/../altera/vhdl/stratixv
|
||||
stratixv_hssi = $MODEL_TECH/../altera/vhdl/stratixv_hssi
|
||||
stratixv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixv_pcie_hip
|
||||
arriavgz = $MODEL_TECH/../altera/vhdl/arriavgz
|
||||
arriavgz_hssi = $MODEL_TECH/../altera/vhdl/arriavgz_hssi
|
||||
arriavgz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriavgz_pcie_hip
|
||||
arriav = $MODEL_TECH/../altera/vhdl/arriav
|
||||
cyclonev = $MODEL_TECH/../altera/vhdl/cyclonev
|
||||
twentynm = $MODEL_TECH/../altera/vhdl/twentynm
|
||||
twentynm_hssi = $MODEL_TECH/../altera/vhdl/twentynm_hssi
|
||||
twentynm_hip = $MODEL_TECH/../altera/vhdl/twentynm_hip
|
||||
cyclone10lp = $MODEL_TECH/../altera/vhdl/cyclone10lp
|
||||
;
|
||||
; Verilog Section
|
||||
;
|
||||
altera_mf_ver = $MODEL_TECH/../altera/verilog/altera_mf
|
||||
altera_ver = $MODEL_TECH/../altera/verilog/altera
|
||||
altera_lnsim_ver = $MODEL_TECH/../altera/verilog/altera_lnsim
|
||||
lpm_ver = $MODEL_TECH/../altera/verilog/220model
|
||||
220model_ver = $MODEL_TECH/../altera/verilog/220model
|
||||
maxii_ver = $MODEL_TECH/../altera/verilog/maxii
|
||||
maxv_ver = $MODEL_TECH/../altera/verilog/maxv
|
||||
fiftyfivenm_ver = $MODEL_TECH/../altera/verilog/fiftyfivenm
|
||||
sgate_ver = $MODEL_TECH/../altera/verilog/sgate
|
||||
arriaii_ver = $MODEL_TECH/../altera/verilog/arriaii
|
||||
arriaii_hssi_ver = $MODEL_TECH/../altera/verilog/arriaii_hssi
|
||||
arriaii_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaii_pcie_hip
|
||||
arriaiigz_ver = $MODEL_TECH/../altera/verilog/arriaiigz
|
||||
arriaiigz_hssi_ver = $MODEL_TECH/../altera/verilog/arriaiigz_hssi
|
||||
arriaiigz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaiigz_pcie_hip
|
||||
stratixiv_ver = $MODEL_TECH/../altera/verilog/stratixiv
|
||||
stratixiv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixiv_hssi
|
||||
stratixiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixiv_pcie_hip
|
||||
stratixv_ver = $MODEL_TECH/../altera/verilog/stratixv
|
||||
stratixv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixv_hssi
|
||||
stratixv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixv_pcie_hip
|
||||
arriavgz_ver = $MODEL_TECH/../altera/verilog/arriavgz
|
||||
arriavgz_hssi_ver = $MODEL_TECH/../altera/verilog/arriavgz_hssi
|
||||
arriavgz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriavgz_pcie_hip
|
||||
arriav_ver = $MODEL_TECH/../altera/verilog/arriav
|
||||
arriav_hssi_ver = $MODEL_TECH/../altera/verilog/arriav_hssi
|
||||
arriav_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriav_pcie_hip
|
||||
cyclonev_ver = $MODEL_TECH/../altera/verilog/cyclonev
|
||||
cyclonev_hssi_ver = $MODEL_TECH/../altera/verilog/cyclonev_hssi
|
||||
cyclonev_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cyclonev_pcie_hip
|
||||
cycloneiv_ver = $MODEL_TECH/../altera/verilog/cycloneiv
|
||||
cycloneiv_hssi_ver = $MODEL_TECH/../altera/verilog/cycloneiv_hssi
|
||||
cycloneiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cycloneiv_pcie_hip
|
||||
cycloneive_ver = $MODEL_TECH/../altera/verilog/cycloneive
|
||||
twentynm_ver = $MODEL_TECH/../altera/verilog/twentynm
|
||||
twentynm_hssi_ver = $MODEL_TECH/../altera/verilog/twentynm_hssi
|
||||
twentynm_hip_ver = $MODEL_TECH/../altera/verilog/twentynm_hip
|
||||
cyclone10lp_ver = $MODEL_TECH/../altera/verilog/cyclone10lp
|
||||
|
||||
work = work
|
||||
[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.
|
||||
; Default or value of 3 or 2008 for VHDL-2008.
|
||||
VHDL93 = 2002
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
[vlog]
|
||||
|
||||
; 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 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
|
||||
|
||||
; Turn on incremental compilation of modules. Default is off.
|
||||
; Incremental = 1
|
||||
|
||||
; Turns on lint-style checking.
|
||||
; Show_Lint = 1
|
||||
|
||||
[vsim]
|
||||
; Simulator resolution
|
||||
; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100.
|
||||
Resolution = ps
|
||||
|
||||
; 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 ps
|
||||
|
||||
; Maximum iterations that can be run without advancing simulation time
|
||||
IterationLimit = 5000
|
||||
|
||||
; Directive to license manager:
|
||||
; vhdl Immediately reserve a VHDL license
|
||||
; vlog Immediately reserve a Verilog license
|
||||
; plus Immediately reserve a VHDL and Verilog license
|
||||
; nomgc Do not look for Mentor Graphics Licenses
|
||||
; nomti Do not look for Model Technology Licenses
|
||||
; noqueue Do not wait in the license queue when a license isn't available
|
||||
; viewsim Try for viewer license but accept simulator license(s) instead
|
||||
; of queuing for viewer license
|
||||
; License = plus
|
||||
|
||||
; Stop the simulator after a VHDL/Verilog assertion message
|
||||
; 0 = Note 1 = Warning 2 = Error 3 = Failure 4 = Fatal
|
||||
BreakOnAssertion = 3
|
||||
|
||||
; Assertion Message Format
|
||||
; %S - Severity Level
|
||||
; %R - Report Message
|
||||
; %T - Time of assertion
|
||||
; %D - Delta
|
||||
; %I - Instance or Region pathname (if available)
|
||||
; %% - print '%' character
|
||||
; AssertionFormat = "** %S: %R\n Time: %T Iteration: %D%I\n"
|
||||
|
||||
; Assertion File - alternate file for storing VHDL/Verilog assertion messages
|
||||
; AssertFile = assert.log
|
||||
|
||||
; Default radix for all windows and commands...
|
||||
; Set to symbolic, ascii, binary, octal, decimal, hex, unsigned
|
||||
DefaultRadix = symbolic
|
||||
|
||||
; VSIM Startup command
|
||||
; Startup = do startup.do
|
||||
|
||||
; File for saving command transcript
|
||||
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 = :
|
||||
|
||||
; Disable VHDL assertion messages
|
||||
; IgnoreNote = 1
|
||||
; IgnoreWarning = 1
|
||||
; IgnoreError = 1
|
||||
; IgnoreFailure = 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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 from the std_logic_arith, std_logic_unsigned
|
||||
; and std_logic_signed packages.
|
||||
; StdArithNoWarnings = 1
|
||||
|
||||
; Turn off warnings from the IEEE numeric_std and numeric_bit packages.
|
||||
; NumericStdNoWarnings = 1
|
||||
|
||||
; Control the format of the (VHDL) FOR generate statement label
|
||||
; for each iteration. Do not quote it.
|
||||
; 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_label; the %d represents the generate parameter value
|
||||
; at a particular generate 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 scope name over all
|
||||
; such names in the design so that name lookup can function properly.
|
||||
; GenerateFormat = %s__%d
|
||||
|
||||
; Specify whether checkpoint files should be compressed.
|
||||
; The default is 1 (compressed).
|
||||
; CheckpointCompressMode = 0
|
||||
|
||||
; List of dynamically loaded objects for Verilog PLI applications
|
||||
; Veriuser = veriuser.sl
|
||||
|
||||
; Specify default options for the restart command. Options can be one
|
||||
; or more of: -force -nobreakpoint -nolist -nolog -nowave
|
||||
; DefaultRestartOptions = -force
|
||||
|
||||
; HP-UX 10.20 ONLY - Enable memory locking to speed up large designs
|
||||
; (> 500 megabyte memory footprint). Default is disabled.
|
||||
; Specify number of megabytes to lock.
|
||||
; LockedMemory = 1000
|
||||
|
||||
; 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
|
||||
|
||||
; Automatic SDF compilation
|
||||
; Disables automatic compilation of SDF files in flows that support it.
|
||||
; Default is on, uncomment to turn off.
|
||||
; NoAutoSDFCompile = 1
|
||||
|
||||
[lmc]
|
||||
|
||||
[msg_system]
|
||||
; Change a message severity or suppress a message.
|
||||
; The format is: <msg directive> = <msg number>[,<msg number>...]
|
||||
; Examples:
|
||||
; note = 3009
|
||||
; warning = 3033
|
||||
; error = 3010,3016
|
||||
; fatal = 3016,3033
|
||||
; suppress = 3009,3016,3043
|
||||
; The command verror <msg number> can be used to get the complete
|
||||
; description of a message.
|
||||
|
||||
; Control transcripting of elaboration/runtime messages.
|
||||
; The default is to have messages appear in the transcript and
|
||||
; recorded in the wlf file (messages that are recorded in the
|
||||
; wlf file can be viewed in the MsgViewer). The other settings
|
||||
; are to send messages only to the transcript or only to the
|
||||
; wlf file. The valid values are
|
||||
; both {default}
|
||||
; tran {transcript only}
|
||||
; wlf {wlf file only}
|
||||
; msgmode = both
|
||||
[Project]
|
||||
** Warning: ; 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 = 2
|
||||
Project_File_0 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/alu.sv
|
||||
Project_File_P_0 = cover_toggle 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} last_compile 1789355084 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 vlog_showsource 0 vlog_hazard 0 cover_optlevel 3 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 0 cover_expr 0 dont_compile 0 cover_stmt 0
|
||||
Project_File_1 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/alu_tb.sv
|
||||
Project_File_P_1 = cover_toggle 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} last_compile 1789355084 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 vlog_showsource 0 vlog_hazard 0 cover_optlevel 3 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_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 = 2020
|
||||
Project_Minor_Version = 1
|
||||
@@ -0,0 +1,16 @@
|
||||
/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/shifter.sv {1 {vlog -work work -sv -stats=none /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/shifter.sv
|
||||
Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020
|
||||
-- Compiling module shifter
|
||||
|
||||
Top level modules:
|
||||
shifter
|
||||
|
||||
} {} {}} /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/shifter_tb.sv {1 {vlog -work work -sv -stats=none /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/shifter_tb.sv
|
||||
Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020
|
||||
-- Compiling module shifter
|
||||
-- Compiling module shifter_tb
|
||||
|
||||
Top level modules:
|
||||
shifter_tb
|
||||
|
||||
} {} {}}
|
||||
@@ -0,0 +1,466 @@
|
||||
; Copyright 1991-2009 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
|
||||
verilog = $MODEL_TECH/../verilog
|
||||
vital2000 = $MODEL_TECH/../vital2000
|
||||
std_developerskit = $MODEL_TECH/../std_developerskit
|
||||
synopsys = $MODEL_TECH/../synopsys
|
||||
modelsim_lib = $MODEL_TECH/../modelsim_lib
|
||||
sv_std = $MODEL_TECH/../sv_std
|
||||
|
||||
; Altera Primitive libraries
|
||||
;
|
||||
; VHDL Section
|
||||
;
|
||||
altera_mf = $MODEL_TECH/../altera/vhdl/altera_mf
|
||||
altera = $MODEL_TECH/../altera/vhdl/altera
|
||||
altera_lnsim = $MODEL_TECH/../altera/vhdl/altera_lnsim
|
||||
lpm = $MODEL_TECH/../altera/vhdl/220model
|
||||
220model = $MODEL_TECH/../altera/vhdl/220model
|
||||
maxii = $MODEL_TECH/../altera/vhdl/maxii
|
||||
maxv = $MODEL_TECH/../altera/vhdl/maxv
|
||||
fiftyfivenm = $MODEL_TECH/../altera/vhdl/fiftyfivenm
|
||||
sgate = $MODEL_TECH/../altera/vhdl/sgate
|
||||
arriaii = $MODEL_TECH/../altera/vhdl/arriaii
|
||||
arriaii_hssi = $MODEL_TECH/../altera/vhdl/arriaii_hssi
|
||||
arriaii_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaii_pcie_hip
|
||||
arriaiigz = $MODEL_TECH/../altera/vhdl/arriaiigz
|
||||
arriaiigz_hssi = $MODEL_TECH/../altera/vhdl/arriaiigz_hssi
|
||||
arriaiigz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaiigz_pcie_hip
|
||||
stratixiv = $MODEL_TECH/../altera/vhdl/stratixiv
|
||||
stratixiv_hssi = $MODEL_TECH/../altera/vhdl/stratixiv_hssi
|
||||
stratixiv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixiv_pcie_hip
|
||||
cycloneiv = $MODEL_TECH/../altera/vhdl/cycloneiv
|
||||
cycloneiv_hssi = $MODEL_TECH/../altera/vhdl/cycloneiv_hssi
|
||||
cycloneiv_pcie_hip = $MODEL_TECH/../altera/vhdl/cycloneiv_pcie_hip
|
||||
cycloneive = $MODEL_TECH/../altera/vhdl/cycloneive
|
||||
stratixv = $MODEL_TECH/../altera/vhdl/stratixv
|
||||
stratixv_hssi = $MODEL_TECH/../altera/vhdl/stratixv_hssi
|
||||
stratixv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixv_pcie_hip
|
||||
arriavgz = $MODEL_TECH/../altera/vhdl/arriavgz
|
||||
arriavgz_hssi = $MODEL_TECH/../altera/vhdl/arriavgz_hssi
|
||||
arriavgz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriavgz_pcie_hip
|
||||
arriav = $MODEL_TECH/../altera/vhdl/arriav
|
||||
cyclonev = $MODEL_TECH/../altera/vhdl/cyclonev
|
||||
twentynm = $MODEL_TECH/../altera/vhdl/twentynm
|
||||
twentynm_hssi = $MODEL_TECH/../altera/vhdl/twentynm_hssi
|
||||
twentynm_hip = $MODEL_TECH/../altera/vhdl/twentynm_hip
|
||||
cyclone10lp = $MODEL_TECH/../altera/vhdl/cyclone10lp
|
||||
;
|
||||
; Verilog Section
|
||||
;
|
||||
altera_mf_ver = $MODEL_TECH/../altera/verilog/altera_mf
|
||||
altera_ver = $MODEL_TECH/../altera/verilog/altera
|
||||
altera_lnsim_ver = $MODEL_TECH/../altera/verilog/altera_lnsim
|
||||
lpm_ver = $MODEL_TECH/../altera/verilog/220model
|
||||
220model_ver = $MODEL_TECH/../altera/verilog/220model
|
||||
maxii_ver = $MODEL_TECH/../altera/verilog/maxii
|
||||
maxv_ver = $MODEL_TECH/../altera/verilog/maxv
|
||||
fiftyfivenm_ver = $MODEL_TECH/../altera/verilog/fiftyfivenm
|
||||
sgate_ver = $MODEL_TECH/../altera/verilog/sgate
|
||||
arriaii_ver = $MODEL_TECH/../altera/verilog/arriaii
|
||||
arriaii_hssi_ver = $MODEL_TECH/../altera/verilog/arriaii_hssi
|
||||
arriaii_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaii_pcie_hip
|
||||
arriaiigz_ver = $MODEL_TECH/../altera/verilog/arriaiigz
|
||||
arriaiigz_hssi_ver = $MODEL_TECH/../altera/verilog/arriaiigz_hssi
|
||||
arriaiigz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaiigz_pcie_hip
|
||||
stratixiv_ver = $MODEL_TECH/../altera/verilog/stratixiv
|
||||
stratixiv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixiv_hssi
|
||||
stratixiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixiv_pcie_hip
|
||||
stratixv_ver = $MODEL_TECH/../altera/verilog/stratixv
|
||||
stratixv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixv_hssi
|
||||
stratixv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixv_pcie_hip
|
||||
arriavgz_ver = $MODEL_TECH/../altera/verilog/arriavgz
|
||||
arriavgz_hssi_ver = $MODEL_TECH/../altera/verilog/arriavgz_hssi
|
||||
arriavgz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriavgz_pcie_hip
|
||||
arriav_ver = $MODEL_TECH/../altera/verilog/arriav
|
||||
arriav_hssi_ver = $MODEL_TECH/../altera/verilog/arriav_hssi
|
||||
arriav_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriav_pcie_hip
|
||||
cyclonev_ver = $MODEL_TECH/../altera/verilog/cyclonev
|
||||
cyclonev_hssi_ver = $MODEL_TECH/../altera/verilog/cyclonev_hssi
|
||||
cyclonev_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cyclonev_pcie_hip
|
||||
cycloneiv_ver = $MODEL_TECH/../altera/verilog/cycloneiv
|
||||
cycloneiv_hssi_ver = $MODEL_TECH/../altera/verilog/cycloneiv_hssi
|
||||
cycloneiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cycloneiv_pcie_hip
|
||||
cycloneive_ver = $MODEL_TECH/../altera/verilog/cycloneive
|
||||
twentynm_ver = $MODEL_TECH/../altera/verilog/twentynm
|
||||
twentynm_hssi_ver = $MODEL_TECH/../altera/verilog/twentynm_hssi
|
||||
twentynm_hip_ver = $MODEL_TECH/../altera/verilog/twentynm_hip
|
||||
cyclone10lp_ver = $MODEL_TECH/../altera/verilog/cyclone10lp
|
||||
|
||||
work = work
|
||||
[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.
|
||||
; Default or value of 3 or 2008 for VHDL-2008.
|
||||
VHDL93 = 2002
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
[vlog]
|
||||
|
||||
; 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 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
|
||||
|
||||
; Turn on incremental compilation of modules. Default is off.
|
||||
; Incremental = 1
|
||||
|
||||
; Turns on lint-style checking.
|
||||
; Show_Lint = 1
|
||||
|
||||
[vsim]
|
||||
; Simulator resolution
|
||||
; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100.
|
||||
Resolution = ps
|
||||
|
||||
; 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 ps
|
||||
|
||||
; Maximum iterations that can be run without advancing simulation time
|
||||
IterationLimit = 5000
|
||||
|
||||
; Directive to license manager:
|
||||
; vhdl Immediately reserve a VHDL license
|
||||
; vlog Immediately reserve a Verilog license
|
||||
; plus Immediately reserve a VHDL and Verilog license
|
||||
; nomgc Do not look for Mentor Graphics Licenses
|
||||
; nomti Do not look for Model Technology Licenses
|
||||
; noqueue Do not wait in the license queue when a license isn't available
|
||||
; viewsim Try for viewer license but accept simulator license(s) instead
|
||||
; of queuing for viewer license
|
||||
; License = plus
|
||||
|
||||
; Stop the simulator after a VHDL/Verilog assertion message
|
||||
; 0 = Note 1 = Warning 2 = Error 3 = Failure 4 = Fatal
|
||||
BreakOnAssertion = 3
|
||||
|
||||
; Assertion Message Format
|
||||
; %S - Severity Level
|
||||
; %R - Report Message
|
||||
; %T - Time of assertion
|
||||
; %D - Delta
|
||||
; %I - Instance or Region pathname (if available)
|
||||
; %% - print '%' character
|
||||
; AssertionFormat = "** %S: %R\n Time: %T Iteration: %D%I\n"
|
||||
|
||||
; Assertion File - alternate file for storing VHDL/Verilog assertion messages
|
||||
; AssertFile = assert.log
|
||||
|
||||
; Default radix for all windows and commands...
|
||||
; Set to symbolic, ascii, binary, octal, decimal, hex, unsigned
|
||||
DefaultRadix = symbolic
|
||||
|
||||
; VSIM Startup command
|
||||
; Startup = do startup.do
|
||||
|
||||
; File for saving command transcript
|
||||
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 = :
|
||||
|
||||
; Disable VHDL assertion messages
|
||||
; IgnoreNote = 1
|
||||
; IgnoreWarning = 1
|
||||
; IgnoreError = 1
|
||||
; IgnoreFailure = 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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 from the std_logic_arith, std_logic_unsigned
|
||||
; and std_logic_signed packages.
|
||||
; StdArithNoWarnings = 1
|
||||
|
||||
; Turn off warnings from the IEEE numeric_std and numeric_bit packages.
|
||||
; NumericStdNoWarnings = 1
|
||||
|
||||
; Control the format of the (VHDL) FOR generate statement label
|
||||
; for each iteration. Do not quote it.
|
||||
; 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_label; the %d represents the generate parameter value
|
||||
; at a particular generate 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 scope name over all
|
||||
; such names in the design so that name lookup can function properly.
|
||||
; GenerateFormat = %s__%d
|
||||
|
||||
; Specify whether checkpoint files should be compressed.
|
||||
; The default is 1 (compressed).
|
||||
; CheckpointCompressMode = 0
|
||||
|
||||
; List of dynamically loaded objects for Verilog PLI applications
|
||||
; Veriuser = veriuser.sl
|
||||
|
||||
; Specify default options for the restart command. Options can be one
|
||||
; or more of: -force -nobreakpoint -nolist -nolog -nowave
|
||||
; DefaultRestartOptions = -force
|
||||
|
||||
; HP-UX 10.20 ONLY - Enable memory locking to speed up large designs
|
||||
; (> 500 megabyte memory footprint). Default is disabled.
|
||||
; Specify number of megabytes to lock.
|
||||
; LockedMemory = 1000
|
||||
|
||||
; 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
|
||||
|
||||
; Automatic SDF compilation
|
||||
; Disables automatic compilation of SDF files in flows that support it.
|
||||
; Default is on, uncomment to turn off.
|
||||
; NoAutoSDFCompile = 1
|
||||
|
||||
[lmc]
|
||||
|
||||
[msg_system]
|
||||
; Change a message severity or suppress a message.
|
||||
; The format is: <msg directive> = <msg number>[,<msg number>...]
|
||||
; Examples:
|
||||
; note = 3009
|
||||
; warning = 3033
|
||||
; error = 3010,3016
|
||||
; fatal = 3016,3033
|
||||
; suppress = 3009,3016,3043
|
||||
; The command verror <msg number> can be used to get the complete
|
||||
; description of a message.
|
||||
|
||||
; Control transcripting of elaboration/runtime messages.
|
||||
; The default is to have messages appear in the transcript and
|
||||
; recorded in the wlf file (messages that are recorded in the
|
||||
; wlf file can be viewed in the MsgViewer). The other settings
|
||||
; are to send messages only to the transcript or only to the
|
||||
; wlf file. The valid values are
|
||||
; both {default}
|
||||
; tran {transcript only}
|
||||
; wlf {wlf file only}
|
||||
; msgmode = both
|
||||
[Project]
|
||||
** Warning: ; 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 = 2
|
||||
Project_File_0 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/shifter.sv
|
||||
Project_File_P_0 = cover_toggle 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} last_compile 1789355084 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 vlog_showsource 0 vlog_hazard 0 cover_optlevel 3 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 0 cover_expr 0 dont_compile 0 cover_stmt 0
|
||||
Project_File_1 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/shifter_tb.sv
|
||||
Project_File_P_1 = cover_toggle 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} last_compile 1788926090 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 vlog_showsource 0 vlog_hazard 0 cover_optlevel 3 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_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 = 2020
|
||||
Project_Minor_Version = 1
|
||||
@@ -0,0 +1,16 @@
|
||||
/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/instruction_classifier.sv {1 {vlog -work work -sv -stats=none /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/instruction_classifier.sv
|
||||
Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020
|
||||
-- Compiling module instruction_classifier
|
||||
|
||||
Top level modules:
|
||||
instruction_classifier
|
||||
|
||||
} {} {}} /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/instruction_classifier_tb.sv {1 {vlog -work work -sv -stats=none /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/instruction_classifier_tb.sv
|
||||
Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020
|
||||
-- Compiling module instruction_classifier
|
||||
-- Compiling module instruction_classifier_tb
|
||||
|
||||
Top level modules:
|
||||
instruction_classifier_tb
|
||||
|
||||
} {} {}}
|
||||
@@ -0,0 +1,466 @@
|
||||
; Copyright 1991-2009 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
|
||||
verilog = $MODEL_TECH/../verilog
|
||||
vital2000 = $MODEL_TECH/../vital2000
|
||||
std_developerskit = $MODEL_TECH/../std_developerskit
|
||||
synopsys = $MODEL_TECH/../synopsys
|
||||
modelsim_lib = $MODEL_TECH/../modelsim_lib
|
||||
sv_std = $MODEL_TECH/../sv_std
|
||||
|
||||
; Altera Primitive libraries
|
||||
;
|
||||
; VHDL Section
|
||||
;
|
||||
altera_mf = $MODEL_TECH/../altera/vhdl/altera_mf
|
||||
altera = $MODEL_TECH/../altera/vhdl/altera
|
||||
altera_lnsim = $MODEL_TECH/../altera/vhdl/altera_lnsim
|
||||
lpm = $MODEL_TECH/../altera/vhdl/220model
|
||||
220model = $MODEL_TECH/../altera/vhdl/220model
|
||||
maxii = $MODEL_TECH/../altera/vhdl/maxii
|
||||
maxv = $MODEL_TECH/../altera/vhdl/maxv
|
||||
fiftyfivenm = $MODEL_TECH/../altera/vhdl/fiftyfivenm
|
||||
sgate = $MODEL_TECH/../altera/vhdl/sgate
|
||||
arriaii = $MODEL_TECH/../altera/vhdl/arriaii
|
||||
arriaii_hssi = $MODEL_TECH/../altera/vhdl/arriaii_hssi
|
||||
arriaii_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaii_pcie_hip
|
||||
arriaiigz = $MODEL_TECH/../altera/vhdl/arriaiigz
|
||||
arriaiigz_hssi = $MODEL_TECH/../altera/vhdl/arriaiigz_hssi
|
||||
arriaiigz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaiigz_pcie_hip
|
||||
stratixiv = $MODEL_TECH/../altera/vhdl/stratixiv
|
||||
stratixiv_hssi = $MODEL_TECH/../altera/vhdl/stratixiv_hssi
|
||||
stratixiv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixiv_pcie_hip
|
||||
cycloneiv = $MODEL_TECH/../altera/vhdl/cycloneiv
|
||||
cycloneiv_hssi = $MODEL_TECH/../altera/vhdl/cycloneiv_hssi
|
||||
cycloneiv_pcie_hip = $MODEL_TECH/../altera/vhdl/cycloneiv_pcie_hip
|
||||
cycloneive = $MODEL_TECH/../altera/vhdl/cycloneive
|
||||
stratixv = $MODEL_TECH/../altera/vhdl/stratixv
|
||||
stratixv_hssi = $MODEL_TECH/../altera/vhdl/stratixv_hssi
|
||||
stratixv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixv_pcie_hip
|
||||
arriavgz = $MODEL_TECH/../altera/vhdl/arriavgz
|
||||
arriavgz_hssi = $MODEL_TECH/../altera/vhdl/arriavgz_hssi
|
||||
arriavgz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriavgz_pcie_hip
|
||||
arriav = $MODEL_TECH/../altera/vhdl/arriav
|
||||
cyclonev = $MODEL_TECH/../altera/vhdl/cyclonev
|
||||
twentynm = $MODEL_TECH/../altera/vhdl/twentynm
|
||||
twentynm_hssi = $MODEL_TECH/../altera/vhdl/twentynm_hssi
|
||||
twentynm_hip = $MODEL_TECH/../altera/vhdl/twentynm_hip
|
||||
cyclone10lp = $MODEL_TECH/../altera/vhdl/cyclone10lp
|
||||
;
|
||||
; Verilog Section
|
||||
;
|
||||
altera_mf_ver = $MODEL_TECH/../altera/verilog/altera_mf
|
||||
altera_ver = $MODEL_TECH/../altera/verilog/altera
|
||||
altera_lnsim_ver = $MODEL_TECH/../altera/verilog/altera_lnsim
|
||||
lpm_ver = $MODEL_TECH/../altera/verilog/220model
|
||||
220model_ver = $MODEL_TECH/../altera/verilog/220model
|
||||
maxii_ver = $MODEL_TECH/../altera/verilog/maxii
|
||||
maxv_ver = $MODEL_TECH/../altera/verilog/maxv
|
||||
fiftyfivenm_ver = $MODEL_TECH/../altera/verilog/fiftyfivenm
|
||||
sgate_ver = $MODEL_TECH/../altera/verilog/sgate
|
||||
arriaii_ver = $MODEL_TECH/../altera/verilog/arriaii
|
||||
arriaii_hssi_ver = $MODEL_TECH/../altera/verilog/arriaii_hssi
|
||||
arriaii_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaii_pcie_hip
|
||||
arriaiigz_ver = $MODEL_TECH/../altera/verilog/arriaiigz
|
||||
arriaiigz_hssi_ver = $MODEL_TECH/../altera/verilog/arriaiigz_hssi
|
||||
arriaiigz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaiigz_pcie_hip
|
||||
stratixiv_ver = $MODEL_TECH/../altera/verilog/stratixiv
|
||||
stratixiv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixiv_hssi
|
||||
stratixiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixiv_pcie_hip
|
||||
stratixv_ver = $MODEL_TECH/../altera/verilog/stratixv
|
||||
stratixv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixv_hssi
|
||||
stratixv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixv_pcie_hip
|
||||
arriavgz_ver = $MODEL_TECH/../altera/verilog/arriavgz
|
||||
arriavgz_hssi_ver = $MODEL_TECH/../altera/verilog/arriavgz_hssi
|
||||
arriavgz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriavgz_pcie_hip
|
||||
arriav_ver = $MODEL_TECH/../altera/verilog/arriav
|
||||
arriav_hssi_ver = $MODEL_TECH/../altera/verilog/arriav_hssi
|
||||
arriav_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriav_pcie_hip
|
||||
cyclonev_ver = $MODEL_TECH/../altera/verilog/cyclonev
|
||||
cyclonev_hssi_ver = $MODEL_TECH/../altera/verilog/cyclonev_hssi
|
||||
cyclonev_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cyclonev_pcie_hip
|
||||
cycloneiv_ver = $MODEL_TECH/../altera/verilog/cycloneiv
|
||||
cycloneiv_hssi_ver = $MODEL_TECH/../altera/verilog/cycloneiv_hssi
|
||||
cycloneiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cycloneiv_pcie_hip
|
||||
cycloneive_ver = $MODEL_TECH/../altera/verilog/cycloneive
|
||||
twentynm_ver = $MODEL_TECH/../altera/verilog/twentynm
|
||||
twentynm_hssi_ver = $MODEL_TECH/../altera/verilog/twentynm_hssi
|
||||
twentynm_hip_ver = $MODEL_TECH/../altera/verilog/twentynm_hip
|
||||
cyclone10lp_ver = $MODEL_TECH/../altera/verilog/cyclone10lp
|
||||
|
||||
work = work
|
||||
[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.
|
||||
; Default or value of 3 or 2008 for VHDL-2008.
|
||||
VHDL93 = 2002
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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
|
||||
|
||||
[vlog]
|
||||
|
||||
; 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 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
|
||||
|
||||
; Turn on incremental compilation of modules. Default is off.
|
||||
; Incremental = 1
|
||||
|
||||
; Turns on lint-style checking.
|
||||
; Show_Lint = 1
|
||||
|
||||
[vsim]
|
||||
; Simulator resolution
|
||||
; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100.
|
||||
Resolution = ps
|
||||
|
||||
; 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 ps
|
||||
|
||||
; Maximum iterations that can be run without advancing simulation time
|
||||
IterationLimit = 5000
|
||||
|
||||
; Directive to license manager:
|
||||
; vhdl Immediately reserve a VHDL license
|
||||
; vlog Immediately reserve a Verilog license
|
||||
; plus Immediately reserve a VHDL and Verilog license
|
||||
; nomgc Do not look for Mentor Graphics Licenses
|
||||
; nomti Do not look for Model Technology Licenses
|
||||
; noqueue Do not wait in the license queue when a license isn't available
|
||||
; viewsim Try for viewer license but accept simulator license(s) instead
|
||||
; of queuing for viewer license
|
||||
; License = plus
|
||||
|
||||
; Stop the simulator after a VHDL/Verilog assertion message
|
||||
; 0 = Note 1 = Warning 2 = Error 3 = Failure 4 = Fatal
|
||||
BreakOnAssertion = 3
|
||||
|
||||
; Assertion Message Format
|
||||
; %S - Severity Level
|
||||
; %R - Report Message
|
||||
; %T - Time of assertion
|
||||
; %D - Delta
|
||||
; %I - Instance or Region pathname (if available)
|
||||
; %% - print '%' character
|
||||
; AssertionFormat = "** %S: %R\n Time: %T Iteration: %D%I\n"
|
||||
|
||||
; Assertion File - alternate file for storing VHDL/Verilog assertion messages
|
||||
; AssertFile = assert.log
|
||||
|
||||
; Default radix for all windows and commands...
|
||||
; Set to symbolic, ascii, binary, octal, decimal, hex, unsigned
|
||||
DefaultRadix = symbolic
|
||||
|
||||
; VSIM Startup command
|
||||
; Startup = do startup.do
|
||||
|
||||
; File for saving command transcript
|
||||
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 = :
|
||||
|
||||
; Disable VHDL assertion messages
|
||||
; IgnoreNote = 1
|
||||
; IgnoreWarning = 1
|
||||
; IgnoreError = 1
|
||||
; IgnoreFailure = 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
|
||||
|
||||
; 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
|
||||
|
||||
; 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 from the std_logic_arith, std_logic_unsigned
|
||||
; and std_logic_signed packages.
|
||||
; StdArithNoWarnings = 1
|
||||
|
||||
; Turn off warnings from the IEEE numeric_std and numeric_bit packages.
|
||||
; NumericStdNoWarnings = 1
|
||||
|
||||
; Control the format of the (VHDL) FOR generate statement label
|
||||
; for each iteration. Do not quote it.
|
||||
; 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_label; the %d represents the generate parameter value
|
||||
; at a particular generate 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 scope name over all
|
||||
; such names in the design so that name lookup can function properly.
|
||||
; GenerateFormat = %s__%d
|
||||
|
||||
; Specify whether checkpoint files should be compressed.
|
||||
; The default is 1 (compressed).
|
||||
; CheckpointCompressMode = 0
|
||||
|
||||
; List of dynamically loaded objects for Verilog PLI applications
|
||||
; Veriuser = veriuser.sl
|
||||
|
||||
; Specify default options for the restart command. Options can be one
|
||||
; or more of: -force -nobreakpoint -nolist -nolog -nowave
|
||||
; DefaultRestartOptions = -force
|
||||
|
||||
; HP-UX 10.20 ONLY - Enable memory locking to speed up large designs
|
||||
; (> 500 megabyte memory footprint). Default is disabled.
|
||||
; Specify number of megabytes to lock.
|
||||
; LockedMemory = 1000
|
||||
|
||||
; 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
|
||||
|
||||
; Automatic SDF compilation
|
||||
; Disables automatic compilation of SDF files in flows that support it.
|
||||
; Default is on, uncomment to turn off.
|
||||
; NoAutoSDFCompile = 1
|
||||
|
||||
[lmc]
|
||||
|
||||
[msg_system]
|
||||
; Change a message severity or suppress a message.
|
||||
; The format is: <msg directive> = <msg number>[,<msg number>...]
|
||||
; Examples:
|
||||
; note = 3009
|
||||
; warning = 3033
|
||||
; error = 3010,3016
|
||||
; fatal = 3016,3033
|
||||
; suppress = 3009,3016,3043
|
||||
; The command verror <msg number> can be used to get the complete
|
||||
; description of a message.
|
||||
|
||||
; Control transcripting of elaboration/runtime messages.
|
||||
; The default is to have messages appear in the transcript and
|
||||
; recorded in the wlf file (messages that are recorded in the
|
||||
; wlf file can be viewed in the MsgViewer). The other settings
|
||||
; are to send messages only to the transcript or only to the
|
||||
; wlf file. The valid values are
|
||||
; both {default}
|
||||
; tran {transcript only}
|
||||
; wlf {wlf file only}
|
||||
; msgmode = both
|
||||
[Project]
|
||||
** Warning: ; 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 = 2
|
||||
Project_File_0 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/instruction_classifier.sv
|
||||
Project_File_P_0 = cover_toggle 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} last_compile 1789355084 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 vlog_showsource 0 vlog_hazard 0 cover_optlevel 3 toggle - vlog_0InOptions {} ood 0 cover_noshort 0 vlog_upper 0 compile_to work vlog_options {} compile_order 0 cover_expr 0 dont_compile 0 cover_stmt 0
|
||||
Project_File_1 = /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/instruction_classifier_tb.sv
|
||||
Project_File_P_1 = cover_toggle 0 file_type systemverilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat SV vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} last_compile 1789355084 cover_excludedefault 0 vlog_enable0In 0 vlog_disableopt 0 cover_covercells 0 voptflow 1 vlog_showsource 0 vlog_hazard 0 cover_optlevel 3 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_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 = 2020
|
||||
Project_Minor_Version = 1
|
||||
@@ -0,0 +1,37 @@
|
||||
`ifndef ALU_H_SV
|
||||
`define ALU_H_SV
|
||||
|
||||
`include "asu.sv"
|
||||
`include "lu.sv"
|
||||
|
||||
// flags[0:0] = Cout
|
||||
// flags[1:1] = Overflow
|
||||
module alu #(parameter width=2)(input logic [3:0] op,
|
||||
input logic [2**width-1:0] A, input logic [2**width-1:0] B,
|
||||
output logic [2**width-1:0] OUT_1, output logic[1:0] flags);
|
||||
|
||||
logic [0:0] asu_op;
|
||||
logic [2**width-1:0] asu_out;
|
||||
logic [1:0] asu_flags;
|
||||
asu #(width) adder_unit(asu_op[op[1]], A, B, asu_out, asu_flags[0], asu_flags[1]);
|
||||
|
||||
logic [2**width-1:0] lu_out;
|
||||
lu #(width) logic_unit(op[1:0], A, B, lu_out);
|
||||
|
||||
always_comb begin
|
||||
case (op)
|
||||
4'b0000: begin OUT_1 = asu_out; flags = asu_flags; end
|
||||
4'b0001: begin OUT_1 = asu_out; flags = asu_flags; end
|
||||
4'b0010: begin OUT_1 = asu_out; flags = asu_flags; end
|
||||
4'b0011: begin OUT_1 = asu_out; flags = asu_flags; end
|
||||
4'b0100: begin OUT_1 = lu_out; flags = asu_flags; end
|
||||
4'b0101: begin OUT_1 = lu_out; flags = asu_flags; end
|
||||
4'b0110: begin OUT_1 = lu_out; flags = asu_flags; end
|
||||
4'b0111: begin OUT_1 = lu_out; flags = asu_flags; end
|
||||
4'b1010: begin OUT_1 = (asu_out[2**width-1] ^ asu_flags[1]) & {{(width-1){1'b0}}, 1'b1}; flags = asu_flags; end
|
||||
4'b1011: begin OUT_1 = ~asu_flags[0] & {{(width-1){1'b0}}, 1'b1}; flags = asu_flags; end
|
||||
default: begin OUT_1 = {(2**width){1'b0}}; flags = asu_flags; end
|
||||
endcase
|
||||
end
|
||||
endmodule
|
||||
`endif
|
||||
@@ -0,0 +1,216 @@
|
||||
`include "alu.sv"
|
||||
|
||||
module alu_tb #(width=2)();
|
||||
localparam bitwidth = 2**width;
|
||||
|
||||
// Guard against future me by testing the tests
|
||||
generate
|
||||
if (bitwidth < 4) begin : param_asserts
|
||||
initial begin
|
||||
$fatal(1, "Can not instantiate an ALU testbench with less than 4 bits (n=2)");
|
||||
end
|
||||
end
|
||||
endgenerate
|
||||
|
||||
logic [3:0] op_in;
|
||||
logic [2**width-1:0] A_in;
|
||||
logic [2**width-1:0] B_in;
|
||||
logic [2**width-1:0] Y_out;
|
||||
logic [1:0] flags_out;
|
||||
|
||||
localparam int NUM_TESTS = 28;
|
||||
logic [3:0] ops[NUM_TESTS];
|
||||
logic [2**width-1:0] A_cases[NUM_TESTS];
|
||||
logic [2**width-1:0] B_cases[NUM_TESTS];
|
||||
logic [2**width-1:0] Y_exp[NUM_TESTS];
|
||||
logic [1:0] flags_exp[NUM_TESTS];
|
||||
|
||||
alu #(width) dut (op_in, A_in, B_in, Y_out, flags_out);
|
||||
|
||||
integer error_count;
|
||||
initial begin
|
||||
ops[0] = 4'b0000; // sadd
|
||||
A_in[0] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
B_in[0] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[0] = {{(bitwidth-2){1'b0}}, 2'b10}; // 0
|
||||
flags_exp[0] = {2'b00}; // ~Cout, ~Overflow
|
||||
|
||||
ops[1] = 4'b0000; // sadd
|
||||
A_in[1] = {bitwidth{1'b1}}; // UINTMAX
|
||||
B_in[1] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[1] = {bitwidth{1'b0}}; // 0
|
||||
flags_exp[1] = {2'b01}; // Cout, ~Overflow
|
||||
|
||||
ops[2] = 4'b0000; // sadd
|
||||
A_in[2] = {{1'b0}, {(bitwidth-1){1'b1}}}; // INTMAX
|
||||
B_in[2] = {{(bitwidth-1){1'b0}} , {1'b1}}; // 1
|
||||
Y_exp[2] = {{1'b1}, {(bitwidth-1){1'b0}} };// -INTMAX
|
||||
flags_exp[2] = {2'b10}; // ~Cout, Overflow
|
||||
|
||||
ops[3] = 4'b0000; // sadd
|
||||
A_in[3] = {{1'b1}, {(bitwidth-1){1'b0}}}; // -INTMAX
|
||||
B_in[3] = {{1'b1}, {(bitwidth-1){1'b0}}}; // -INTMAX
|
||||
Y_exp[3] = {bitwidth{1'b0}}; // 0
|
||||
flags_exp[3] = {2'b11}; // Cout, Overflow
|
||||
|
||||
ops[4] = 4'b0001; // uadd
|
||||
A_in[4] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
B_in[4] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[4] = {{(bitwidth-2){1'b0}}, 2'b10}; // 0
|
||||
flags_exp[4] = {2'b00}; // ~Cout, ~Overflow
|
||||
|
||||
ops[5] = 4'b0001; // uadd
|
||||
A_in[5] = {bitwidth{1'b1}}; // UINTMAX
|
||||
B_in[5] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[5] = {bitwidth{1'b0}}; // 0
|
||||
flags_exp[5] = {2'b01}; // Cout, ~Overflow
|
||||
|
||||
ops[6] = 4'b0001; // uadd
|
||||
A_in[6] = {{1'b0}, {(bitwidth-1){1'b1}}}; // INTMAX
|
||||
B_in[6] = {{(bitwidth-1){1'b0}} , {1'b1}}; // 1
|
||||
Y_exp[6] = {{1'b1}, {(bitwidth-1){1'b0}} };// -INTMAX
|
||||
flags_exp[6] = {2'b10}; // ~Cout, Overflow
|
||||
|
||||
ops[7] = 4'b0001; // uadd
|
||||
A_in[7] = {{1'b1}, {(bitwidth-1){1'b0}}}; // -INTMAX
|
||||
B_in[7] = {{1'b1}, {(bitwidth-1){1'b0}}}; // -INTMAX
|
||||
Y_exp[7] = {bitwidth{1'b0}}; // 0
|
||||
flags_exp[7] = {2'b11}; // Cout, Overflow
|
||||
|
||||
ops[8] = 4'b0010; // ssub
|
||||
A_in[8] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
B_in[8] = {{(bitwidth-2){1'b0}}, 2'b10}; // 2
|
||||
Y_exp[8] = {bitwidth{1'b1}}; // -1
|
||||
flags_exp[8] = {2'b00}; // ~Cout, ~Overflow
|
||||
|
||||
ops[9] = 4'b0010; // ssub
|
||||
A_in[9] = {1'b0, {(bitwidth-1){1'b1}}}; // INTMAX
|
||||
B_in[9] = {{(bitwidth-1){1'b0}}, 1'b1}; // -1
|
||||
Y_exp[9] = {1'b1, {(bitwidth-1){1'b0}}}; // -INTMAX
|
||||
flags_exp[9] = {2'b10}; // ~Cout, Overflow
|
||||
|
||||
ops[10] = 4'b0010; // ssub
|
||||
A_in[10] = {{(bitwidth-2){1'b0}}, 2'b10}; // 2
|
||||
B_in[10] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[10] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
flags_exp[10] = {2'b01}; // Cout, ~Overflow
|
||||
|
||||
ops[11] = 4'b0010; // ssub
|
||||
A_in[11] = {1'b1, {(bitwidth-1){1'b0}}}; // -INTMAX
|
||||
B_in[11] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[11] = {1'b0, {(bitwidth-1){1'b1}}}; // INTMAX
|
||||
flags_exp[11] = {2'b11}; // Cout, Overflow
|
||||
|
||||
ops[12] = 4'b0011; // ssub
|
||||
A_in[12] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
B_in[12] = {{(bitwidth-2){1'b0}}, 2'b10}; // 2
|
||||
Y_exp[12] = {bitwidth{1'b1}}; // -1
|
||||
flags_exp[12] = {2'b00}; // ~Cout, ~Overflow
|
||||
|
||||
ops[13] = 4'b0011; // ssub
|
||||
A_in[13] = {1'b0, {(bitwidth-1){1'b1}}}; // INTMAX
|
||||
B_in[13] = {{(bitwidth-1){1'b0}}, 1'b1}; // -1
|
||||
Y_exp[13] = {1'b1, {(bitwidth-1){1'b0}}}; // -INTMAX
|
||||
flags_exp[13] = {2'b10}; // ~Cout, Overflow
|
||||
|
||||
ops[14] = 4'b0011; // ssub
|
||||
A_in[14] = {{(bitwidth-2){1'b0}}, 2'b10}; // 2
|
||||
B_in[14] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[14] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
flags_exp[14] = {2'b01}; // Cout, ~Overflow
|
||||
|
||||
ops[15] = 4'b0011; // ssub
|
||||
A_in[15] = {1'b1, {(bitwidth-1){1'b0}}}; // -INTMAX
|
||||
B_in[15] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[15] = {1'b0, {(bitwidth-1){1'b1}}}; // INTMAX
|
||||
flags_exp[15] = {2'b11}; // Cout, Overflow
|
||||
|
||||
ops[16] = 4'b0100; // and
|
||||
A_in[16] = {{(bitwidth-4){1'b0}}, 4'b1100}; // c
|
||||
B_in[16] = {{(bitwidth-4){1'b0}}, 4'b1010}; // a
|
||||
Y_exp[16] = {{(bitwidth-4){1'b0}}, 4'b1000}; // 8
|
||||
flags_exp[16] = {2'bxx}; // Don't care
|
||||
|
||||
ops[17] = 4'b0101; // or
|
||||
A_in[17] = {{(bitwidth-4){1'b0}}, 4'b1100}; // c
|
||||
B_in[17] = {{(bitwidth-4){1'b0}}, 4'b1010}; // a
|
||||
Y_exp[17] = {{(bitwidth-4){1'b0}}, 4'b1110}; // e
|
||||
flags_exp[17] = {2'bxx}; // Don't care
|
||||
|
||||
ops[18] = 4'b0110; // xor
|
||||
A_in[18] = {{(bitwidth-4){1'b0}}, 4'b1100}; // c
|
||||
B_in[18] = {{(bitwidth-4){1'b0}}, 4'b1010}; // a
|
||||
Y_exp[18] = {{(bitwidth-4){1'b0}}, 4'b0110}; // 6
|
||||
flags_exp[18] = {2'bxx}; // Don't care
|
||||
|
||||
ops[19] = 4'b0111; // nor
|
||||
A_in[19] = {{(bitwidth-4){1'b0}}, 4'b1100}; // c
|
||||
B_in[19] = {{(bitwidth-4){1'b0}}, 4'b1010}; // a
|
||||
Y_exp[19] = {{(bitwidth-4){1'b0}}, 4'b0001}; // 1
|
||||
flags_exp[19] = {2'bxx}; // Don't care
|
||||
|
||||
ops[20] = 4'b1010; // sslt: 1 < 2 (No overflow)
|
||||
A_in[20] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
B_in[20] = {{(bitwidth-2){1'b0}}, 2'b10}; // 2
|
||||
Y_exp[20] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1 (True)
|
||||
flags_exp[20] = {2'b00}; // ~Cout, ~Overflow
|
||||
|
||||
ops[21] = 4'b1010; // sslt: 2 < 1 (No overflow)
|
||||
A_in[21] = {{(bitwidth-2){1'b0}}, 2'b10}; // 2
|
||||
B_in[21] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[21] = {bitwidth{1'b0}}; // 0 (False)
|
||||
flags_exp[21] = {2'b10}; // Cout, ~Overflow
|
||||
|
||||
ops[22] = 4'b1010; // sslt: -INTMAX < 1 (Overflow test)
|
||||
A_in[22] = {1'b1, {(bitwidth-1){1'b0}}}; // -INTMAX
|
||||
B_in[22] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[22] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1 (True)
|
||||
flags_exp[22] = {2'b11}; // Cout, Overflow
|
||||
|
||||
ops[23] = 4'b1010; // sslt: INTMAX < -1 (Overflow test)
|
||||
A_in[23] = {1'b0, {(bitwidth-1){1'b1}}}; // INTMAX
|
||||
B_in[23] = {bitwidth{1'b1}}; // -1
|
||||
Y_exp[23] = {bitwidth{1'b0}}; // 0 (False)
|
||||
flags_exp[23] = {2'b01}; // ~Cout, Overflow
|
||||
|
||||
ops[24] = 4'b1011; // uslt: 1 < 2
|
||||
A_in[24] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
B_in[24] = {{(bitwidth-2){1'b0}}, 2'b10}; // 2
|
||||
Y_exp[24] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1 (True)
|
||||
flags_exp[24] = {2'b00}; // ~Cout, ~Overflow
|
||||
|
||||
ops[25] = 4'b1011; // uslt: 2 < 1
|
||||
A_in[25] = {{(bitwidth-2){1'b0}}, 2'b10}; // 2
|
||||
B_in[25] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[25] = {bitwidth{1'b0}}; // 0 (False)
|
||||
flags_exp[25] = {2'b10}; // Cout, ~Overflow
|
||||
|
||||
ops[26] = 4'b1011; // uslt: 1 < UINTMAX
|
||||
A_in[26] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
B_in[26] = {bitwidth{1'b1}}; // UINTMAX
|
||||
Y_exp[26] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1 (True)
|
||||
flags_exp[26] = {2'b00}; // ~Cout, ~Overflow
|
||||
|
||||
ops[27] = 4'b1011; // uslt: UINTMAX < 1
|
||||
A_in[27] = {bitwidth{1'b1}}; // UINTMAX
|
||||
B_in[27] = {{(bitwidth-1){1'b0}}, 1'b1}; // 1
|
||||
Y_exp[27] = {bitwidth{1'b0}}; // 0 (False)
|
||||
flags_exp[27] = {2'b10}; // Cout, ~Overflow
|
||||
|
||||
error_count = 0;
|
||||
$display("Beginning ALU tests");
|
||||
for (integer N = 0; N < $size(ops); ++N) begin
|
||||
op_in = ops[N];
|
||||
A_in = A_cases[N];
|
||||
B_in = B_cases[N];
|
||||
#1;
|
||||
if (Y_out != Y_exp[N]) begin
|
||||
$display("\t\x1b[38;5;9m[%0d] ALU Instruction 0b%b produced 0b%b_%b but 0b%b_%b was expected\x1b[m", N, op_in, flags_out, Y_out, flags_exp[N], Y_exp[N]);
|
||||
error_count = error_count + 1;
|
||||
end
|
||||
end
|
||||
|
||||
if (error_count == 0) $display("\x1b[38;5;10mAll ALU tests passing\x1b[m");
|
||||
else $display("\x1b[38;5;9m%0d ALU test(s) failing\x1b[m", error_count);
|
||||
end
|
||||
endmodule
|
||||
+6
-1
@@ -1,3 +1,6 @@
|
||||
`ifndef ASU_H_SV
|
||||
`define ASU_H_SV
|
||||
|
||||
module asu #(parameter width = 2)(
|
||||
input logic [0:0] op,
|
||||
input logic[2**width-1:0] A, input logic[2**width-1:0] B,
|
||||
@@ -7,7 +10,8 @@ module asu #(parameter width = 2)(
|
||||
always_comb begin
|
||||
// A + (sub) ? B : -B
|
||||
// Adds an extra bit to all operands to calculate the carry bit. Not optimal for hardware synthesis
|
||||
operand = (B ^ {(2**width){op}});
|
||||
//operand = (B ^ {(2**width){op}});
|
||||
operand = op == 1'b0 ? B : ~B;
|
||||
{COUT, OUT_1} = A + operand + {{(2**width-1){1'b0}}, op};
|
||||
end
|
||||
|
||||
@@ -15,3 +19,4 @@ module asu #(parameter width = 2)(
|
||||
// Cin for final bit in adder to later be xor'ed with COUT to determine if a signed overflow occured for the MIPS architecture
|
||||
assign OUT_CIN = A[2**width-1] ^ operand[2**width-1] ^ OUT_1[2**width-1];
|
||||
endmodule
|
||||
`endif
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
`include "asu.sv"
|
||||
|
||||
module asu_tb #(width=4)();
|
||||
module asu_tb #(width=8)();
|
||||
logic [0:0] op;
|
||||
logic [width-1:0] A;
|
||||
logic [width-1:0] B;
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
`ifndef INSTRUCTION_CLASSIFIER_H_SV
|
||||
`define INSTRUCTION_CLASSIFIER_H_SV
|
||||
module instruction_classifier(input logic[5:0] op,
|
||||
output logic[0:0] R, output logic[0:0] B1, output logic[0:0] J,
|
||||
output logic[0:0] B2, output logic[0:0] I, output logic[0:0] F,
|
||||
output logic[0:0] M);
|
||||
|
||||
always_comb begin
|
||||
// Performs a rolling equals check
|
||||
// Uses an AND mask to mask off bits we don't care about
|
||||
// And a equals operator to perform a bitwise XNOR followed by a horizontal AND
|
||||
R = ( (op & 6'b111111) == 6'b000000);
|
||||
B1= ( (op & 6'b111111) == 6'b000001);
|
||||
J = ( (op & 6'b111110) == 6'b000010);
|
||||
B2= ( (op & 6'b111100) == 6'b000100);
|
||||
I = ( (op & 6'b111000) == 6'b001000);
|
||||
F = ( (op & 6'b110000) == 6'b010000);
|
||||
M = ( (op & 6'b100000) == 6'b100000);
|
||||
end
|
||||
endmodule
|
||||
`endif
|
||||
@@ -0,0 +1,52 @@
|
||||
`include "instruction_classifier.sv"
|
||||
module instruction_classifier_tb();
|
||||
logic [5:0] op;
|
||||
logic [6:0] C;
|
||||
logic [5:0] ops[12];
|
||||
logic [6:0] C_exp[12];
|
||||
|
||||
instruction_classifier dut(op, C[0:0], C[1:1], C[2:2], C[3:3], C[4:4], C[5:5], C[6:6]);
|
||||
|
||||
integer error_count;
|
||||
initial begin
|
||||
ops[0] = 6'b000000;
|
||||
C_exp[0] = 7'b0000001;
|
||||
ops[1] = 6'b000001;
|
||||
C_exp[1] = 7'b0000010;
|
||||
ops[2] = 6'b000010;
|
||||
C_exp[2] = 7'b0000100;
|
||||
ops[3] = 6'b000100;
|
||||
C_exp[3] = 7'b0001000;
|
||||
ops[4] = 6'b001000;
|
||||
C_exp[4] = 7'b0010000;
|
||||
ops[5] = 6'b010000;
|
||||
C_exp[5] = 7'b0100000;
|
||||
ops[6] = 6'b100000;
|
||||
C_exp[6] = 7'b1000000;
|
||||
|
||||
ops[7] = 6'b000011;
|
||||
C_exp[7] = 7'b0000100;
|
||||
ops[8] = 6'b000101;
|
||||
C_exp[8] = 7'b0001000;
|
||||
ops[9] = 6'b001001;
|
||||
C_exp[9] = 7'b0010000;
|
||||
ops[10] = 6'b010001;
|
||||
C_exp[10] = 7'b0100000;
|
||||
ops[11] = 6'b100001;
|
||||
C_exp[11] = 7'b1000000;
|
||||
|
||||
error_count = 0;
|
||||
$display("Beginning Instruction Classifier tests");
|
||||
for (integer N = 0; N < $size(ops); ++N) begin
|
||||
op = ops[N];
|
||||
#1;
|
||||
if (C != C_exp[N]) begin
|
||||
$display("\t\x1b[38;5;9mInstruction 0b%b produced 0b%b but 0b%b was expected\x1b[m", op, C, C_exp[N]);
|
||||
error_count = error_count + 1;
|
||||
end
|
||||
end
|
||||
if (error_count == 0) $display("\x1b[38;5;10mAll Instruction Classifier tests passing\x1b[m");
|
||||
else $display("\x1b[38;5;9m%0d Instruction Classifier test(s) failing\x1b[m", error_count);
|
||||
end
|
||||
|
||||
endmodule
|
||||
+5
-2
@@ -1,3 +1,5 @@
|
||||
`ifndef LU_H_SV
|
||||
`define LU_H_SV
|
||||
module lu #(parameter width = 2) (
|
||||
input logic [1:0] op,
|
||||
input logic [2**width-1:0] A,
|
||||
@@ -10,7 +12,8 @@ module lu #(parameter width = 2) (
|
||||
2'b01: Y = A | B;
|
||||
2'b10: Y = A ^ B;
|
||||
2'b11: Y = ~(A | B);
|
||||
default: Y = '0;
|
||||
default:Y = '0;
|
||||
endcase
|
||||
end
|
||||
endmodule
|
||||
endmodule
|
||||
`endif
|
||||
@@ -0,0 +1,26 @@
|
||||
`ifndef SEVEN_SEG_H_SV
|
||||
`define SEVEN_SEG_H_SV
|
||||
module seven_seg(input logic [3:0] num, input logic [0:0] rbi_inv, output logic [7:0] segments);
|
||||
always_comb begin
|
||||
case (num)
|
||||
4'b0000: segments = (rbi_inv) ? ~(8'b01111111) : ~(8'b00000000);
|
||||
4'b0001: segments = ~(8'b00001101);
|
||||
4'b0010: segments = ~(8'b10110111);
|
||||
4'b0011: segments = ~(8'b10011111);
|
||||
4'b0100: segments = ~(8'b11001101);
|
||||
4'b0101: segments = ~(8'b11011011);
|
||||
4'b0110: segments = ~(8'b11111011);
|
||||
4'b0111: segments = ~(8'b00001111);
|
||||
4'b1000: segments = ~(8'b11111111);
|
||||
4'b1001: segments = ~(8'b11001111);
|
||||
4'b1010: segments = ~(8'b11101111);
|
||||
4'b1011: segments = ~(8'b11111001);
|
||||
4'b1100: segments = ~(8'b01110011);
|
||||
4'b1101: segments = ~(8'b10111101);
|
||||
4'b1110: segments = ~(8'b11110011);
|
||||
4'b1111: segments = ~(8'b11100011);
|
||||
default: segments = ~(8'bxxxxxxxx);
|
||||
endcase
|
||||
end
|
||||
endmodule
|
||||
`endif
|
||||
@@ -0,0 +1,68 @@
|
||||
`include "seven_seg.sv"
|
||||
|
||||
module seven_seg_tb();
|
||||
logic [3:0] in_num;
|
||||
logic [0:0] in_rbi_inv;
|
||||
logic [7:0] out_segments;
|
||||
logic [7:0] true_segments[17];
|
||||
|
||||
seven_seg dut(in_num, in_rbi_inv, out_segments);
|
||||
|
||||
integer N;
|
||||
integer i;
|
||||
integer error_count;
|
||||
initial begin
|
||||
|
||||
// Initialise truth table
|
||||
true_segments[0 ] = ~(8'b01111111);
|
||||
true_segments[1 ] = ~(8'b00001101);
|
||||
true_segments[2 ] = ~(8'b10110111);
|
||||
true_segments[3 ] = ~(8'b10011111);
|
||||
true_segments[4 ] = ~(8'b11001101);
|
||||
true_segments[5 ] = ~(8'b11011011);
|
||||
true_segments[6 ] = ~(8'b11111011);
|
||||
true_segments[7 ] = ~(8'b00001111);
|
||||
true_segments[8 ] = ~(8'b11111111);
|
||||
true_segments[9 ] = ~(8'b11001111);
|
||||
true_segments[10] = ~(8'b11101111);
|
||||
true_segments[11] = ~(8'b11111001);
|
||||
true_segments[12] = ~(8'b01110011);
|
||||
true_segments[13] = ~(8'b10111101);
|
||||
true_segments[14] = ~(8'b11110011);
|
||||
true_segments[15] = ~(8'b11100011);
|
||||
true_segments[16] = ~(8'b00000000); // Special case for RBI
|
||||
|
||||
$display("Beginning seven-segment tests");
|
||||
|
||||
in_num = 4'd0;
|
||||
in_rbi_inv = 1'b0;
|
||||
error_count = 0;
|
||||
#1;
|
||||
if (out_segments !== true_segments[16]) begin
|
||||
$display("\t\x1b[38;5;9mNumber 0b%b failed to decode to 0b%b, producing 0b%b\x1b[m", in_num, true_segments[16], out_segments);
|
||||
error_count = error_count + 1;
|
||||
end
|
||||
for (N=1; N < 15; ++N) begin
|
||||
in_num = in_num + 1;
|
||||
#1;
|
||||
if (out_segments !== true_segments[N]) begin
|
||||
$display("\t\x1b[38;5;9mNumber 0b%b failed to decode to 0b%b, producing 0b%b\x1b[m", in_num, true_segments[N], out_segments);
|
||||
error_count = error_count + 1;
|
||||
end
|
||||
end
|
||||
|
||||
in_num = 4'd0;
|
||||
in_rbi_inv = 1'b1;
|
||||
for (N=0; N < 15; ++N) begin
|
||||
#1;
|
||||
if (out_segments !== true_segments[N]) begin
|
||||
$display("\t\x1b[38;5;9mNumber 0b%b failed to decode to 0b%b, producing 0b%b\x1b[m", in_num, true_segments[N], out_segments);
|
||||
error_count = error_count + 1;
|
||||
end
|
||||
in_num = in_num + 1;
|
||||
end
|
||||
|
||||
if (error_count == 0) $display("\x1b[38;5;10mAll seven-segment tests passing\x1b[m");
|
||||
else $display("\x1b[38;5;9m%0d seven-segment test(s) failing\x1b[m", error_count);
|
||||
end
|
||||
endmodule
|
||||
@@ -0,0 +1,19 @@
|
||||
`ifndef SHIFTER_H_SV
|
||||
`define SHIFTER_H_SV
|
||||
module shifter #(width=8)(input logic [2:0] op,
|
||||
input logic[width-1:0] A, input logic[width-1:0] C, input logic[$clog2(width)-1:0] B,
|
||||
output logic[width-1:0] OUT_1);
|
||||
|
||||
always_comb begin
|
||||
case (op)
|
||||
3'b000: OUT_1 = A << C;
|
||||
3'b001: OUT_1 = A >> C;
|
||||
3'b011: OUT_1 = $signed(A) >>> C;
|
||||
3'b100: OUT_1 = A << B;
|
||||
3'b101: OUT_1 = A >> B;
|
||||
3'b111: OUT_1 = $signed(A) >>> B;
|
||||
default:OUT_1 = A;
|
||||
endcase
|
||||
end
|
||||
endmodule
|
||||
`endif
|
||||
@@ -0,0 +1,77 @@
|
||||
`include "shifter.sv"
|
||||
module shifter_tb #(width=8)();
|
||||
logic [2:0] op;
|
||||
logic [width-1:0] Y;
|
||||
logic [width-1:0] A_in;
|
||||
logic [$clog2(width)-1:0] B_in;
|
||||
logic [width-1:0] C_in;
|
||||
|
||||
logic [2:0] ops[6];
|
||||
logic [width-1:0] A[6];
|
||||
logic [$clog2(width)-1:0] B[6];
|
||||
logic [width-1:0] C[6];
|
||||
logic [width-1:0] Y_exp[6];
|
||||
|
||||
shifter #(width) dut(op, A_in,C_in,B_in,Y);
|
||||
|
||||
integer error_count;
|
||||
initial begin
|
||||
// Test left shift by C
|
||||
ops[0] = 3'b000;
|
||||
A[0] = {{(width-1){1'b0}}, {1'b1}};
|
||||
C[0] = {{(width-1){1'b0}}, {1'b1}};
|
||||
B[0] = {width{1'b0}};
|
||||
Y_exp[0] = {{(width-2){1'b0}}, {2'b10}};
|
||||
|
||||
// Test left shift by B
|
||||
ops[1] = 3'b100;
|
||||
A[1] = {{(width-1){1'b0}}, {1'b1}};
|
||||
C[1] = {{(width-1){1'b0}}, {1'b1}};
|
||||
B[1] = {{($clog2(width)-2){1'b0}}, 2'b10};
|
||||
Y_exp[1] = {{(width-3){1'b0}}, {3'b100}};
|
||||
|
||||
// Test Logical right shift by C
|
||||
ops[2] = 3'b001;
|
||||
A[2] = {{(width-2){1'b0}}, {2'b10}};
|
||||
C[2] = {{(width-1){1'b0}}, {1'b1}};
|
||||
B[2] = {width{1'b0}};
|
||||
Y_exp[2] = {{(width-1){1'b0}}, {1'b1}};
|
||||
|
||||
// Test Logical right shift by B
|
||||
ops[3] = 3'b101;
|
||||
A[3] = {{(width-1){1'b0}}, {2'b10}};
|
||||
C[3] = {{(width-1){1'b0}}, {1'b1}};
|
||||
B[3] = {{($clog2(width)-2){1'b0}}, 2'b10};
|
||||
Y_exp[3] = {{(width-1){1'b0}}, {1'b0}};
|
||||
|
||||
// Test arithmetic shift right by C
|
||||
ops[4] = 3'b011;
|
||||
A[4] = {{(width-1){1'b1}}, 1'b0}; // -2
|
||||
C[4] = {{(width-1){1'b0}}, 1'b1}; // 1
|
||||
B[4] = {{(width-2){1'b0}}, 2'b10}; // 2
|
||||
Y_exp[4] = {width{1'b1}}; // -1
|
||||
|
||||
// Test arithmetic shift right by B
|
||||
ops[5] = 3'b111;
|
||||
A[5] = {{(width-2){1'b1}}, 2'b00}; // -4
|
||||
C[5] = {{(width-1){1'b0}}, 1'b1}; // 1
|
||||
B[5] = {{(width-2){1'b0}}, 2'b10}; // 2
|
||||
Y_exp[5] = {width{1'b1}}; // -1
|
||||
|
||||
error_count = 0;
|
||||
$display("Beginning Shifter tests");
|
||||
for (integer N = 0; N < $size(ops); ++N) begin
|
||||
op = ops[N];
|
||||
A_in = A[N];
|
||||
B_in = B[N];
|
||||
C_in = C[N];
|
||||
#1;
|
||||
if (Y != Y_exp[N]) begin
|
||||
$display("\t\x1b[38;5;9mShifter(%0d) Op 0b%b(0b%b, 0b%b, 0b%b) produced 0b%b but 0b%b was expected\x1b[m", N, op, A_in, B_in, C_in, Y, Y_exp[N]);
|
||||
error_count = error_count + 1;
|
||||
end
|
||||
end
|
||||
if (error_count == 0) $display("\x1b[38;5;10mAll Shifter tests passing\x1b[m");
|
||||
else $display("\x1b[38;5;9m%0d Shifter test(s) failing\x1b[m", error_count);
|
||||
end
|
||||
endmodule
|
||||
@@ -0,0 +1,6 @@
|
||||
`include "tests/seven_seg_tb.sv"
|
||||
`include "tests/lu_tb.sv"
|
||||
`include "tests/asu_tb.sv"
|
||||
`include "tests/instruction_classifier_tb.sv"
|
||||
`include "tests/shifter_tb.sv"
|
||||
`include "tests/alu_tb.sv"
|
||||
+118
-22
@@ -1,15 +1,14 @@
|
||||
# Loading project Assignment_1_Q2
|
||||
# reading /home/oliver/intelFPGA/20.1/modelsim_ase/linuxaloem/../modelsim.ini
|
||||
# Loading project Assignment_1_Q3
|
||||
# Compile of asu.sv was successful.
|
||||
# Compile of asu_tb.sv was successful.
|
||||
# 2 compiles, 0 failed with no errors.
|
||||
vsim work.asu_tb
|
||||
# vsim work.asu_tb
|
||||
# Start time: 15:16:49 on Sep 10,2026
|
||||
# Start time: 15:01:26 on Sep 15,2026
|
||||
# Loading sv_std.std
|
||||
# Loading work.asu_tb
|
||||
# Loading work.asu
|
||||
add wave -position end sim:/asu_tb/op
|
||||
add wave -position end sim:/asu_tb/A
|
||||
add wave -position end sim:/asu_tb/B
|
||||
add wave -position end sim:/asu_tb/C
|
||||
@@ -18,28 +17,125 @@ add wave -position end sim:/asu_tb/Cin
|
||||
run
|
||||
# Beginning ASU tests
|
||||
# [38;5;10mAll ASU tests passing[m
|
||||
add wave -position end sim:/asu_tb/op
|
||||
quit -sim
|
||||
# End time: 15:03:03 on Sep 15,2026, Elapsed time: 0:01:37
|
||||
# Errors: 0, Warnings: 2
|
||||
# reading /home/oliver/intelFPGA/20.1/modelsim_ase/linuxaloem/../modelsim.ini
|
||||
# Loading project Assignment_1_Q4
|
||||
# Compile of alu.sv was successful.
|
||||
# Compile of alu_tb.sv was successful.
|
||||
# 2 compiles, 0 failed with no errors.
|
||||
vsim work.alu_tb
|
||||
# vsim work.alu_tb
|
||||
# Start time: 15:04:11 on Sep 15,2026
|
||||
# Loading sv_std.std
|
||||
# Loading work.alu_tb
|
||||
# Loading work.alu
|
||||
# Loading work.asu
|
||||
# Loading work.lu
|
||||
add wave -position end sim:/alu_tb/op_in
|
||||
add wave -position end sim:/alu_tb/A_in
|
||||
add wave -position end sim:/alu_tb/B_in
|
||||
add wave -position end sim:/alu_tb/Y_out
|
||||
add wave -position end sim:/alu_tb/flags_out
|
||||
add wave -position end sim:/alu_tb/ops
|
||||
run
|
||||
# Beginning ALU tests
|
||||
# [38;5;10mAll ALU tests passing[m
|
||||
add wave -position end sim:/alu_tb/error_count
|
||||
run
|
||||
quit -sim
|
||||
# End time: 15:19:15 on Sep 10,2026, Elapsed time: 0:02:26
|
||||
# End time: 15:05:53 on Sep 15,2026, Elapsed time: 0:01:42
|
||||
# Errors: 0, Warnings: 5
|
||||
# Compile of asu.sv was successful.
|
||||
# Compile of asu_tb.sv was successful.
|
||||
# reading /home/oliver/intelFPGA/20.1/modelsim_ase/linuxaloem/../modelsim.ini
|
||||
# Loading project Assignment_1_Q5
|
||||
# Compile of shifter.sv was successful.
|
||||
# Compile of shifter_tb.sv was successful.
|
||||
# 2 compiles, 0 failed with no errors.
|
||||
vsim work.asu_tb
|
||||
# vsim work.asu_tb
|
||||
# Start time: 15:20:10 on Sep 10,2026
|
||||
vsim work.shifter_tb
|
||||
# vsim work.shifter_tb
|
||||
# Start time: 15:06:46 on Sep 15,2026
|
||||
# Loading sv_std.std
|
||||
# Loading work.asu_tb
|
||||
# Loading work.asu
|
||||
add wave -position end sim:/asu_tb/A
|
||||
add wave -position end sim:/asu_tb/B
|
||||
add wave -position end sim:/asu_tb/C
|
||||
add wave -position end sim:/asu_tb/Cout
|
||||
add wave -position end sim:/asu_tb/Cin
|
||||
add wave -position end sim:/asu_tb/op
|
||||
# Loading work.shifter_tb
|
||||
# Loading work.shifter
|
||||
add wave -position end sim:/shifter_tb/op
|
||||
add wave -position end sim:/shifter_tb/Y
|
||||
add wave -position end sim:/shifter_tb/A_in
|
||||
add wave -position end sim:/shifter_tb/B_in
|
||||
add wave -position end sim:/shifter_tb/C_in
|
||||
add wave -position end sim:/shifter_tb/A
|
||||
add wave -position end sim:/shifter_tb/B
|
||||
add wave -position end sim:/shifter_tb/C
|
||||
add wave -position end sim:/shifter_tb/Y
|
||||
add wave -position end sim:/shifter_tb/op
|
||||
run
|
||||
# Beginning ASU tests
|
||||
# [38;5;10mAll ASU tests passing[m
|
||||
# End time: 15:24:25 on Sep 10,2026, Elapsed time: 0:04:15
|
||||
# Errors: 0, Warnings: 2
|
||||
# Beginning Shifter tests
|
||||
# [38;5;10mAll Shifter tests passing[m
|
||||
quit -sim
|
||||
# End time: 15:07:54 on Sep 15,2026, Elapsed time: 0:01:08
|
||||
# Errors: 0, Warnings: 5
|
||||
# reading /home/oliver/intelFPGA/20.1/modelsim_ase/linuxaloem/../modelsim.ini
|
||||
# Loading project Assignment_1_Q6
|
||||
# Compile of instruction_classifier.sv was successful.
|
||||
# Compile of instruction_classifier_tb.sv was successful.
|
||||
# 2 compiles, 0 failed with no errors.
|
||||
vsim work.instruction_classifier_tb
|
||||
# vsim work.instruction_classifier_tb
|
||||
# Start time: 15:08:34 on Sep 15,2026
|
||||
# Loading sv_std.std
|
||||
# Loading work.instruction_classifier_tb
|
||||
# Loading work.instruction_classifier
|
||||
add wave -position end sim:/instruction_classifier_tb/op
|
||||
add wave -position end sim:/instruction_classifier_tb/C
|
||||
add wave -position end sim:/instruction_classifier_tb/ops
|
||||
run
|
||||
# Beginning Instruction Classifier tests
|
||||
# [38;5;10mAll Instruction Classifier tests passing[m
|
||||
quit -sim
|
||||
# End time: 15:09:45 on Sep 15,2026, Elapsed time: 0:01:11
|
||||
# Errors: 0, Warnings: 5
|
||||
# reading /home/oliver/intelFPGA/20.1/modelsim_ase/linuxaloem/../modelsim.ini
|
||||
# Loading project Assignment_1_Q1
|
||||
# Compile of seven_seg.sv was successful.
|
||||
# Compile of seven_seg_tb.sv was successful.
|
||||
# 2 compiles, 0 failed with no errors.
|
||||
vsim work.seven_seg_tb
|
||||
# vsim work.seven_seg_tb
|
||||
# Start time: 15:10:28 on Sep 15,2026
|
||||
# Loading sv_std.std
|
||||
# Loading work.seven_seg_tb
|
||||
# Loading work.seven_seg
|
||||
add wave -position end sim:/seven_seg_tb/in_rbi_inv
|
||||
add wave -position end sim:/seven_seg_tb/out_segments
|
||||
add wave -position end sim:/seven_seg_tb/true_segments
|
||||
add wave -position end sim:/seven_seg_tb/N
|
||||
add wave -position end sim:/seven_seg_tb/i
|
||||
add wave -position 1 sim:/seven_seg_tb/in_num
|
||||
run
|
||||
# Beginning seven-segment tests
|
||||
# [38;5;10mAll seven-segment tests passing[m
|
||||
quit -sim
|
||||
# End time: 15:12:28 on Sep 15,2026, Elapsed time: 0:02:00
|
||||
# Errors: 0, Warnings: 5
|
||||
project open /home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/Assignment_1_Q2
|
||||
# reading /home/oliver/intelFPGA/20.1/modelsim_ase/linuxaloem/../modelsim.ini
|
||||
# Loading project Assignment_1_Q2
|
||||
# Compile of lu.sv was successful.
|
||||
# Compile of lu_tb.sv was successful.
|
||||
# 2 compiles, 0 failed with no errors.
|
||||
vsim work.lu_tb
|
||||
# vsim work.lu_tb
|
||||
# Start time: 15:13:40 on Sep 15,2026
|
||||
# Loading sv_std.std
|
||||
# Loading work.lu_tb
|
||||
# Loading work.lu
|
||||
add wave -position end sim:/lu_tb/op
|
||||
add wave -position end sim:/lu_tb/A
|
||||
add wave -position end sim:/lu_tb/B
|
||||
add wave -position end sim:/lu_tb/C
|
||||
run
|
||||
# Beginning LU tests
|
||||
# [38;5;10mAll LU tests passing[m
|
||||
quit -sim
|
||||
# End time: 15:14:33 on Sep 15,2026, Elapsed time: 0:00:53
|
||||
# Errors: 0, Warnings: 3
|
||||
Binary file not shown.
+244
-44
@@ -9,84 +9,184 @@ z2
|
||||
!i10f 100
|
||||
cModel Technology
|
||||
d/home/oliver/intelFPGA/20.1/modelsim_ase/bin
|
||||
vasu
|
||||
valu
|
||||
Z0 DXx6 sv_std 3 std 0 22 VYECXdT12H8WgbUP_5Y6:3
|
||||
Z1 !s110 1789017577
|
||||
Z1 !s110 1789448641
|
||||
!i10b 1
|
||||
!s100 7ffgJO49=l5BT:aebMX3F1
|
||||
!s100 Kh9ZlG?nRa:nnklUM3MaM0
|
||||
Z2 !s11b Dg1SIo80bB@j0V0VzS_@n1
|
||||
IM`6LR=<^Jm_aekUe6^m;b0
|
||||
IlI`[:Ol82B@F8AM_FVkV41
|
||||
Z3 VDg1SIo80bB@j0V0VzS_@n1
|
||||
S1
|
||||
Z4 d/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim
|
||||
Z5 w1788926090
|
||||
8asu.sv
|
||||
Fasu.sv
|
||||
!i122 14
|
||||
L0 1 17
|
||||
Z5 w1789355084
|
||||
8alu.sv
|
||||
Falu.sv
|
||||
!i122 18
|
||||
L0 9 28
|
||||
Z6 OV;L;2020.1;71
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
Z7 !s108 1789017577.000000
|
||||
!s107 asu.sv|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu_tb.sv|
|
||||
Z8 !s90 -reportprogress|300|-work|work|-sv|-stats=none|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu_tb.sv|
|
||||
Z7 !s108 1789448641.000000
|
||||
Z8 !s107 lu.sv|asu.sv|alu.sv|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/alu_tb.sv|
|
||||
Z9 !s90 -reportprogress|300|-work|work|-sv|-stats=none|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/alu_tb.sv|
|
||||
!i113 1
|
||||
Z9 o-work work -sv
|
||||
Z10 tCvgOpt 0
|
||||
vasu_tb
|
||||
Z10 o-work work -sv
|
||||
Z11 tCvgOpt 0
|
||||
valu_tb
|
||||
R0
|
||||
R1
|
||||
!i10b 1
|
||||
!s100 ?AMT1ejDgW=83T_P=nh4G1
|
||||
!s100 8=>8o`KV]hRM]V8AV?S[C1
|
||||
R2
|
||||
IcS>Hk9oO:RGFmfdUY9[i90
|
||||
Iz[VXe9HJ@koSDFNR185;i1
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
w1789017573
|
||||
8/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu_tb.sv
|
||||
F/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu_tb.sv
|
||||
!i122 14
|
||||
L0 3 120
|
||||
R5
|
||||
8/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/alu_tb.sv
|
||||
F/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/alu_tb.sv
|
||||
!i122 18
|
||||
L0 3 214
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
R7
|
||||
Z11 !s107 asu.sv|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu_tb.sv|
|
||||
R8
|
||||
!i113 1
|
||||
R9
|
||||
!i113 1
|
||||
R10
|
||||
vlu
|
||||
R11
|
||||
vasu
|
||||
R0
|
||||
Z12 !s110 1789014325
|
||||
R1
|
||||
!i10b 1
|
||||
!s100 nmDP9zlMCJDa@W3_FY5m[2
|
||||
!s100 MiS^hmH6XEfHgJYg=7c;32
|
||||
R2
|
||||
Il^hWCV0VAo9mz6NG=G9=51
|
||||
I<<aDiX=d[PVLMK[L<GAWJ3
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
w1788845636
|
||||
8lu.sv
|
||||
Flu.sv
|
||||
!i122 10
|
||||
L0 1 16
|
||||
R5
|
||||
8asu.sv
|
||||
Fasu.sv
|
||||
!i122 18
|
||||
L0 4 18
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
Z13 !s108 1789014325.000000
|
||||
Z14 !s107 lu.sv|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/lu_tb.sv|
|
||||
Z15 !s90 -reportprogress|300|-work|work|-sv|-stats=none|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/lu_tb.sv|
|
||||
!i113 1
|
||||
R7
|
||||
R8
|
||||
R9
|
||||
!i113 1
|
||||
R10
|
||||
R11
|
||||
vasu_tb
|
||||
R0
|
||||
!s110 1789448473
|
||||
!i10b 1
|
||||
!s100 6Mz=>S]N8CcV@e24ZMO?A3
|
||||
R2
|
||||
INFK7`kK]UQzEBD`:U7gC70
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
Z12 w1788926090
|
||||
8/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu_tb.sv
|
||||
F/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu_tb.sv
|
||||
!i122 16
|
||||
L0 3 120
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
!s108 1789448473.000000
|
||||
!s107 asu.sv|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu_tb.sv|
|
||||
!s90 -reportprogress|300|-work|work|-sv|-stats=none|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/asu_tb.sv|
|
||||
!i113 1
|
||||
R10
|
||||
R11
|
||||
vinstruction_classifier
|
||||
R0
|
||||
Z13 !s110 1789448904
|
||||
!i10b 1
|
||||
!s100 LBO=Ba0m3b@J?;=_fd^7P3
|
||||
R2
|
||||
I[MC9A^:kRAc`nk8<MdaKg2
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
R5
|
||||
8instruction_classifier.sv
|
||||
Finstruction_classifier.sv
|
||||
!i122 22
|
||||
L0 3 18
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
Z14 !s108 1789448904.000000
|
||||
Z15 !s107 instruction_classifier.sv|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/instruction_classifier_tb.sv|
|
||||
Z16 !s90 -reportprogress|300|-work|work|-sv|-stats=none|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/instruction_classifier_tb.sv|
|
||||
!i113 1
|
||||
R10
|
||||
R11
|
||||
vinstruction_classifier_tb
|
||||
R0
|
||||
R13
|
||||
!i10b 1
|
||||
!s100 UcoUK1il@9RM[8`l`mYQh2
|
||||
R2
|
||||
I;:>eJ6i8o;@kY_?aVJn:d3
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
R5
|
||||
8/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/instruction_classifier_tb.sv
|
||||
F/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/instruction_classifier_tb.sv
|
||||
!i122 22
|
||||
L0 2 51
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
R14
|
||||
R15
|
||||
R16
|
||||
!i113 1
|
||||
R10
|
||||
R11
|
||||
vlu
|
||||
R0
|
||||
Z17 !s110 1789449208
|
||||
!i10b 1
|
||||
!s100 H5AG9eSQKJkS4F`0;5hWl0
|
||||
R2
|
||||
IObN^<8?MCaP;K@UKCVaP^1
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
R5
|
||||
8lu.sv
|
||||
Flu.sv
|
||||
!i122 26
|
||||
Z18 L0 3 16
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
Z19 !s108 1789449208.000000
|
||||
!s107 lu.sv|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/lu_tb.sv|
|
||||
Z20 !s90 -reportprogress|300|-work|work|-sv|-stats=none|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/lu_tb.sv|
|
||||
!i113 1
|
||||
R10
|
||||
R11
|
||||
vlu_tb
|
||||
R0
|
||||
R12
|
||||
R17
|
||||
!i10b 1
|
||||
!s100 AE_liX6DCD[3>b;K6Wgf72
|
||||
R2
|
||||
@@ -94,18 +194,118 @@ IC?h=m;SY77_D:GA0FR<P^2
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
R5
|
||||
R12
|
||||
8/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/lu_tb.sv
|
||||
F/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/lu_tb.sv
|
||||
!i122 10
|
||||
!i122 26
|
||||
L0 3 58
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
R13
|
||||
R14
|
||||
R15
|
||||
R19
|
||||
Z21 !s107 lu.sv|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/lu_tb.sv|
|
||||
R20
|
||||
!i113 1
|
||||
R9
|
||||
R10
|
||||
R11
|
||||
vseven_seg
|
||||
R0
|
||||
Z22 !s110 1789449021
|
||||
!i10b 1
|
||||
!s100 ^3LXNA>i`]oD>7BNB:Rd?3
|
||||
R2
|
||||
IedFU7?nB5ZOibY?bC8=L41
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
R5
|
||||
8seven_seg.sv
|
||||
Fseven_seg.sv
|
||||
!i122 24
|
||||
L0 3 23
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
Z23 !s108 1789449021.000000
|
||||
Z24 !s107 seven_seg.sv|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/seven_seg_tb.sv|
|
||||
Z25 !s90 -reportprogress|300|-work|work|-sv|-stats=none|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/seven_seg_tb.sv|
|
||||
!i113 1
|
||||
R10
|
||||
R11
|
||||
vseven_seg_tb
|
||||
R0
|
||||
R22
|
||||
!i10b 1
|
||||
!s100 jPijM2]zTRBV8TFdD?Q`I1
|
||||
R2
|
||||
I_mSF@Md^k^GhHm5;W4U_=0
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
w1788418794
|
||||
8/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/seven_seg_tb.sv
|
||||
F/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/seven_seg_tb.sv
|
||||
!i122 24
|
||||
L0 3 66
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
R23
|
||||
R24
|
||||
R25
|
||||
!i113 1
|
||||
R10
|
||||
R11
|
||||
vshifter
|
||||
R0
|
||||
Z26 !s110 1789448794
|
||||
!i10b 1
|
||||
!s100 <fMP57@WI80oPG2Je:5ab2
|
||||
R2
|
||||
IX2;A_nH1:dH8`jIjb?8m:1
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
R5
|
||||
8shifter.sv
|
||||
Fshifter.sv
|
||||
!i122 20
|
||||
R18
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
Z27 !s108 1789448794.000000
|
||||
Z28 !s107 shifter.sv|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/shifter_tb.sv|
|
||||
Z29 !s90 -reportprogress|300|-work|work|-sv|-stats=none|/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/shifter_tb.sv|
|
||||
!i113 1
|
||||
R10
|
||||
R11
|
||||
vshifter_tb
|
||||
R0
|
||||
R26
|
||||
!i10b 1
|
||||
!s100 B34`X2Q:D=<a_YU@D_zb`0
|
||||
R2
|
||||
IP0?XY582]2;G`Y8WME:7Q2
|
||||
R3
|
||||
S1
|
||||
R4
|
||||
R12
|
||||
8/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/shifter_tb.sv
|
||||
F/home/oliver/Documents/FPGA_Dev/FPGA_Uni/ModelSim/shifter_tb.sv
|
||||
!i122 20
|
||||
L0 2 76
|
||||
R6
|
||||
r1
|
||||
!s85 0
|
||||
31
|
||||
R27
|
||||
R28
|
||||
R29
|
||||
!i113 1
|
||||
R10
|
||||
R11
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in new issue
Block a user