From af10d60efacf9b63ecd386c6a94fe12025fe92ab Mon Sep 17 00:00:00 2001 From: iridiumR Date: Tue, 17 May 2022 22:01:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=8E=E7=BA=A7=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Quartus/v7/Waveform.vwf | 279 +++++++++++++++ Quartus/v7/jyh_4490_7.qsf | 1 + Quartus/v7/jyh_4490_7_is.v | 24 +- Quartus/v7/jyh_4490_7_testbench.v | 26 +- Quartus/v7_testbench/jyh_4490_7.cr.mti | 8 + Quartus/v7_testbench/jyh_4490_7.mpf | 469 +++++++++++++++++++++++++ Quartus/v7_testbench/transcript | 13 + Quartus/v7_testbench/work/_info | 57 +++ Quartus/v7_testbench/work/_lib1_0.qpg | Bin 0 -> 24576 bytes Quartus/v7_testbench/work/_vmake | 4 + 10 files changed, 861 insertions(+), 20 deletions(-) create mode 100644 Quartus/v7/Waveform.vwf create mode 100644 Quartus/v7_testbench/jyh_4490_7.cr.mti create mode 100644 Quartus/v7_testbench/jyh_4490_7.mpf create mode 100644 Quartus/v7_testbench/transcript create mode 100644 Quartus/v7_testbench/work/_info create mode 100644 Quartus/v7_testbench/work/_lib1_0.qpg create mode 100644 Quartus/v7_testbench/work/_vmake diff --git a/Quartus/v7/Waveform.vwf b/Quartus/v7/Waveform.vwf new file mode 100644 index 0000000..de57742 --- /dev/null +++ b/Quartus/v7/Waveform.vwf @@ -0,0 +1,279 @@ +/* +quartus_eda --gen_testbench --tool=modelsim_oem --format=verilog --write_settings_files=off jyh_4490_7 -c jyh_4490_7 --vector_source="/home/ir/Documents/codelib/Quartus/v7/Waveform.vwf" --testbench_file="/home/ir/Documents/codelib/Quartus/v7/simulation/qsim/Waveform.vwf.vt" +quartus_eda --gen_testbench --tool=modelsim_oem --format=verilog --write_settings_files=off jyh_4490_7 -c jyh_4490_7 --vector_source="/home/ir/Documents/codelib/Quartus/v7/Waveform.vwf" --testbench_file="/home/ir/Documents/codelib/Quartus/v7/simulation/qsim/Waveform.vwf.vt" +quartus_eda --write_settings_files=off --simulation --functional=on --flatten_buses=off --tool=modelsim_oem --format=verilog --output_directory="/home/ir/Documents/codelib/Quartus/v7/simulation/qsim/" jyh_4490_7 -c jyh_4490_7 +quartus_eda --write_settings_files=off --simulation --functional=off --flatten_buses=off --timescale=1ps --tool=modelsim_oem --format=verilog --output_directory="/home/ir/Documents/codelib/Quartus/v7/simulation/qsim/" jyh_4490_7 -c jyh_4490_7 +onerror {exit -code 1} +vlib work +vlog -work work jyh_4490_7.vo +vlog -work work Waveform.vwf.vt +vsim -c -t 1ps -L cycloneive_ver -L altera_ver -L altera_mf_ver -L 220model_ver -L sgate_ver -L altera_lnsim_ver work.jyh_4490_7_is_vlg_vec_tst +vcd file -direction jyh_4490_7.msim.vcd +vcd add -internal jyh_4490_7_is_vlg_vec_tst/* +vcd add -internal jyh_4490_7_is_vlg_vec_tst/i1/* +proc simTimestamp {} { + echo "Simulation time: $::now ps" + if { [string equal running [runStatus]] } { + after 2500 simTimestamp + } +} +after 2500 simTimestamp +run -all +quit -f + +onerror {exit -code 1} +vlib work +vlog -work work jyh_4490_7.vo +vlog -work work Waveform.vwf.vt +vsim -novopt -c -t 1ps -L cycloneive_ver -L altera_ver -L altera_mf_ver -L 220model_ver -L sgate_ver -L altera_lnsim_ver work.jyh_4490_7_is_vlg_vec_tst +vcd file -direction jyh_4490_7.msim.vcd +vcd add -internal jyh_4490_7_is_vlg_vec_tst/* +vcd add -internal jyh_4490_7_is_vlg_vec_tst/i1/* +proc simTimestamp {} { + echo "Simulation time: $::now ps" + if { [string equal running [runStatus]] } { + after 2500 simTimestamp + } +} +after 2500 simTimestamp +run -all +quit -f + +verilog +*/ +/* +WARNING: Do NOT edit the input and output ports in this file in a text +editor if you plan to continue editing the block that represents it in +the Block Editor! File corruption is VERY likely to occur. +*/ + +/* +Copyright (C) 2021 Intel Corporation. All rights reserved. +Your use of Intel Corporation's design tools, logic functions +and other software and tools, and any partner logic +functions, and any output files from any of the foregoing +(including device programming or simulation files), and any +associated documentation or information are expressly subject +to the terms and conditions of the Intel Program License +Subscription Agreement, the Intel Quartus Prime License Agreement, +the Intel FPGA IP License Agreement, or other applicable license +agreement, including, without limitation, that your use is for +the sole purpose of programming logic devices manufactured by +Intel and sold by Intel or its authorized distributors. Please +refer to the applicable agreement for further details, at +https://fpgasoftware.intel.com/eula. +*/ + +HEADER +{ + VERSION = 1; + TIME_UNIT = ns; + DATA_OFFSET = 0.0; + DATA_DURATION = 1000.0; + SIMULATION_TIME = 0.0; + GRID_PHASE = 0.0; + GRID_PERIOD = 10.0; + GRID_DUTY_CYCLE = 50; +} + +SIGNAL("clk") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = SINGLE_BIT; + WIDTH = 1; + LSB_INDEX = -1; + DIRECTION = INPUT; + PARENT = ""; +} + +SIGNAL("f0") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = SINGLE_BIT; + WIDTH = 1; + LSB_INDEX = -1; + DIRECTION = INPUT; + PARENT = ""; +} + +SIGNAL("f1") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = SINGLE_BIT; + WIDTH = 1; + LSB_INDEX = -1; + DIRECTION = OUTPUT; + PARENT = ""; +} + +SIGNAL("f2") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = SINGLE_BIT; + WIDTH = 1; + LSB_INDEX = -1; + DIRECTION = OUTPUT; + PARENT = ""; +} + +SIGNAL("p") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = SINGLE_BIT; + WIDTH = 1; + LSB_INDEX = -1; + DIRECTION = INPUT; + PARENT = ""; +} + +SIGNAL("sta") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = SINGLE_BIT; + WIDTH = 1; + LSB_INDEX = -1; + DIRECTION = INPUT; + PARENT = ""; +} + +TRANSITION_LIST("clk") +{ + NODE + { + REPEAT = 1; + NODE + { + REPEAT = 1000; + LEVEL 0 FOR 0.5; + LEVEL 1 FOR 0.5; + } + } +} + +TRANSITION_LIST("f0") +{ + NODE + { + REPEAT = 1; + LEVEL 0 FOR 20.0; + LEVEL 1 FOR 40.0; + LEVEL 0 FOR 40.0; + LEVEL 1 FOR 20.0; + LEVEL 0 FOR 60.0; + LEVEL 1 FOR 20.0; + LEVEL 0 FOR 40.0; + LEVEL 1 FOR 10.0; + LEVEL 0 FOR 100.0; + LEVEL 1 FOR 60.0; + LEVEL 0 FOR 30.0; + LEVEL 1 FOR 50.0; + LEVEL 0 FOR 50.0; + LEVEL 1 FOR 30.0; + LEVEL 0 FOR 50.0; + LEVEL 1 FOR 30.0; + LEVEL 0 FOR 50.0; + LEVEL 1 FOR 10.0; + LEVEL 0 FOR 90.0; + LEVEL 1 FOR 30.0; + LEVEL 0 FOR 170.0; + } +} + +TRANSITION_LIST("f1") +{ + NODE + { + REPEAT = 1; + LEVEL X FOR 1000.0; + } +} + +TRANSITION_LIST("f2") +{ + NODE + { + REPEAT = 1; + LEVEL X FOR 1000.0; + } +} + +TRANSITION_LIST("p") +{ + NODE + { + REPEAT = 1; + LEVEL 0 FOR 280.0; + LEVEL 1 FOR 720.0; + } +} + +TRANSITION_LIST("sta") +{ + NODE + { + REPEAT = 1; + LEVEL 0 FOR 660.0; + LEVEL 1 FOR 340.0; + } +} + +DISPLAY_LINE +{ + CHANNEL = "clk"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 0; + TREE_LEVEL = 0; +} + +DISPLAY_LINE +{ + CHANNEL = "f0"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 1; + TREE_LEVEL = 0; +} + +DISPLAY_LINE +{ + CHANNEL = "f1"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 2; + TREE_LEVEL = 0; +} + +DISPLAY_LINE +{ + CHANNEL = "f2"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 3; + TREE_LEVEL = 0; +} + +DISPLAY_LINE +{ + CHANNEL = "p"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 4; + TREE_LEVEL = 0; +} + +DISPLAY_LINE +{ + CHANNEL = "sta"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 5; + TREE_LEVEL = 0; +} + +TIME_BAR +{ + TIME = 0; + MASTER = TRUE; +} +; diff --git a/Quartus/v7/jyh_4490_7.qsf b/Quartus/v7/jyh_4490_7.qsf index 662c659..ebec2f0 100644 --- a/Quartus/v7/jyh_4490_7.qsf +++ b/Quartus/v7/jyh_4490_7.qsf @@ -55,4 +55,5 @@ set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top set_global_assignment -name VERILOG_FILE jyh_4490_7_testbench.v +set_global_assignment -name VECTOR_WAVEFORM_FILE Waveform.vwf set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Quartus/v7/jyh_4490_7_is.v b/Quartus/v7/jyh_4490_7_is.v index 6c30168..de73344 100644 --- a/Quartus/v7/jyh_4490_7_is.v +++ b/Quartus/v7/jyh_4490_7_is.v @@ -38,28 +38,37 @@ begin //shaochong if(p) + begin if(sta) begin - if(count>=5*TARGET2) + if(count2>=5*TARGET2) begin f2<=0; flag2<=0; //end of a circle end - else if(count==4*TARGET2) + else if(count2>=4*TARGET2) f2<=1; + else if(count2>=3*TARGET2) + f2<=0; + else if(count2>=2*TARGET2) + f2<=1; + else if(count2>=TARGET2) + f2<=0; end - if(count>=3*TARGET2) + + + else if(count>=3*TARGET2) begin f2<=0; - if(!sta) - flag2<=0; - //end of a circle + flag2<=0; + //end of a circle end else if(count>=2*TARGET2) f2<=1; else if(count>=TARGET2) f2<=0; + end else f2<=f1; @@ -69,8 +78,9 @@ begin count<=count+1; else count<=0; + if(flag2) - count2<=count+1; + count2<=count2+1; else count2<=0; end diff --git a/Quartus/v7/jyh_4490_7_testbench.v b/Quartus/v7/jyh_4490_7_testbench.v index 82a9105..edc3a19 100644 --- a/Quartus/v7/jyh_4490_7_testbench.v +++ b/Quartus/v7/jyh_4490_7_testbench.v @@ -14,40 +14,40 @@ always #10 clk=~clk; always begin f0=1; -#30000; +#300000; f0=0; -#70000; +#700000; f0=1; -#24000; +#240000; f0=0; -#76000; +#760000; f0=1; -#18000; +#180000; f0=0; -#82000; +#820000; f0=1; -#12000; +#120000; f0=0; -#80000; +#800000; f0=1; -#6000; +#60000; f0=0; -#94000; +#940000; end always begin p=0; sta=0; -#600000; +#6000000; p=1; -#300000; +#3000000; sta=1; -#300000; +#3000000; end jyh_4490_7_is C0( diff --git a/Quartus/v7_testbench/jyh_4490_7.cr.mti b/Quartus/v7_testbench/jyh_4490_7.cr.mti new file mode 100644 index 0000000..044659f --- /dev/null +++ b/Quartus/v7_testbench/jyh_4490_7.cr.mti @@ -0,0 +1,8 @@ +/home/ir/Documents/codelib/Quartus/v7/jyh_4490_7_testbench.v {1 {vlog -work work -stats=none /home/ir/Documents/codelib/Quartus/v7/jyh_4490_7_testbench.v +Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020 +-- Compiling module jyh_4490_7_testbench + +Top level modules: + jyh_4490_7_testbench + +} {} {}} diff --git a/Quartus/v7_testbench/jyh_4490_7.mpf b/Quartus/v7_testbench/jyh_4490_7.mpf new file mode 100644 index 0000000..bb15ccb --- /dev/null +++ b/Quartus/v7_testbench/jyh_4490_7.mpf @@ -0,0 +1,469 @@ +; 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 ns + +; 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] +suppress = 3116 +; Change a message severity or suppress a message. +; The format is: = [,...] +; Examples: +; note = 3009 +; warning = 3033 +; error = 3010,3016 +; fatal = 3016,3033 +; suppress = 3009,3016,3043 +; The command verror 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/ir/Documents/codelib/Quartus/v7/jyh_4490_7_is.v +Project_File_P_0 = cover_toggle 0 file_type verilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat 0 vlog_nodebug 0 folder {Top Level} last_compile 1652793275 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_1 = /home/ir/Documents/codelib/Quartus/v7/jyh_4490_7_testbench.v +Project_File_P_1 = cover_toggle 0 file_type verilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat 0 vlog_nodebug 0 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} last_compile 1652794988 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 = 1 +Project_Sim_0 = Simulation 1 +Project_Sim_P_0 = -L {} -Lf {} -sdf {} selected_du {} additional_dus work.jyh_4490_7_testbench folder {Top Level} ok 1 -t default timing default +plusarg {} -nofileshare 0 -sdfnowarn 0 -wlf {} OtherArgs {} -coverage 0 -sdfnoerror 0 -std_input {} -hazards 0 -noglitch 0 -absentisempty 0 +no_pulse_msg 0 -sc22 0 +pulse_r {} -assertfile {} -multisource_delay {} -vital2.2b 0 +notimingchecks 0 +pulse_e {} -std_output {} vopt_env 1 is_vopt_flow 0 Generics {} +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 diff --git a/Quartus/v7_testbench/transcript b/Quartus/v7_testbench/transcript new file mode 100644 index 0000000..fd3c879 --- /dev/null +++ b/Quartus/v7_testbench/transcript @@ -0,0 +1,13 @@ +# Compile of jyh_4490_7_testbench.v was successful. +vsim work.jyh_4490_7_testbench +# vsim work.jyh_4490_7_testbench +# Start time: 21:43:41 on May 17,2022 +# Loading work.jyh_4490_7_testbench +# Loading work.jyh_4490_7_is +add wave -position end sim:/jyh_4490_7_testbench/clk +add wave -position end sim:/jyh_4490_7_testbench/f0 +add wave -position end sim:/jyh_4490_7_testbench/f1 +add wave -position end sim:/jyh_4490_7_testbench/f2 +add wave -position end sim:/jyh_4490_7_testbench/p +add wave -position end sim:/jyh_4490_7_testbench/sta +run -all diff --git a/Quartus/v7_testbench/work/_info b/Quartus/v7_testbench/work/_info new file mode 100644 index 0000000..9ff3101 --- /dev/null +++ b/Quartus/v7_testbench/work/_info @@ -0,0 +1,57 @@ +m255 +K4 +z2 +!s11f vlog 2020.1 2020.02, Feb 28 2020 +13 +!s112 1.1 +!i10d 8192 +!i10e 25 +!i10f 100 +cModel Technology +d/home/ir +vjyh_4490_7_is +!s110 1652794566 +!i10b 1 +!s100 Ch8NYc=4G@_6A9YaMMBnW2 +Z0 !s11b Dg1SIo80bB@j0V0VzS_@n1 +IBT5^kcKVcE01P1:cX?C;^2 +Z1 VDg1SIo80bB@j0V0VzS_@n1 +Z2 d/home/ir/Documents/codelib/Quartus/v7_testbench +w1652793275 +8/home/ir/Documents/codelib/Quartus/v7/jyh_4490_7_is.v +F/home/ir/Documents/codelib/Quartus/v7/jyh_4490_7_is.v +!i122 0 +L0 1 79 +Z3 OV;L;2020.1;71 +r1 +!s85 0 +31 +!s108 1652794566.000000 +!s107 /home/ir/Documents/codelib/Quartus/v7/jyh_4490_7_is.v| +!s90 -reportprogress|300|-work|work|-stats=none|/home/ir/Documents/codelib/Quartus/v7/jyh_4490_7_is.v| +!i113 1 +Z4 o-work work +Z5 tCvgOpt 0 +vjyh_4490_7_testbench +!s110 1652795018 +!i10b 1 +!s100 GcKJLC2lo5LW?eghjQ?C61 +R0 +Id=?eu$6@YJ#~LpywMr*xtZot8}bkm;l|{@|Iqoirt>+oY|VdQvy) z?|1f``*}eDfd#nD&Ck9KUmU0PK1l$ZPtK6X2sMrK- zLwz%F1lR)n8ZZW~1GXwI0d9lb1_YGWsNAl&6gYtLJAfC!xD)u5#!{&Qd>eR|;xb@k zYpK)$q@ERuD;2vG?*>MwUkls;TnA*kPOV?1xLUDW@gBu{f#fd-vOOZuux0G@$;MK1 zqrYG`{`@xK)RNAW$y`eCsVR1f zn&LiD)D)vz7}utlVl8}ct|M+PEh(}6fk!{_1pJEk9)NWq<61)boA@lN9z*h3>)My3 z{Sf5;o{Q(%qaNC41@Xd%9Ur2!E9z&aXB-&w|Vo5~! zf49hpH#(LV5AqnF%Rt(r%zj%OAWFNb=_BHQQGM6z=sS*q_s6ZM-Z$##Jv#ABke~0= z(RY07?S9^?@i2ra@gp+78dRx{)r<`Gw+=JX7P{n#QZm8 zy+2QyR3274u6^zKd0g!vT({+)={KaFJUe3r?JN=fRX?!2%rUNas9vrs)ZdCv;!>3j zA*S|=)MxoePoLqs8c(CbpJ&!TL%$vKf&)N%v+uK?cdDLjKdt|UzJ1!Ya>HzWR!;jF znEzZKX|D?jp0|F{jz14h9eesX1ihrUANb`W>gJBWb=B?GA zM+MhS&R1elJvKj0?_%}%>mB?1vid{+Lj19H&eo^J>bVTN99PS~#p<#9gRL`*)${-3 zPAF^=t+Z+Z4>@s|ej?+E1IseF4rHGgaQQ;Et!{x2&x2k|?jD2Ts2 z(4Q57`nv-4-yO(b706#5$nOs1uMOn)Mh!vZwLXx)A<&Mm5A1d?7)4kskL;c$tXs=)6XZQ6`dpk6qMc2cff&78M{(PhyOZ+$v2Dy`uepBvAigV15q;&Y!)3`kx5o4+r}5WT5_!D!=Ic>|^SW?t8_$?-lF5SFHP9 zvF>}ty6+Y1zE^z4?R&*%+`d<=`(Cl`d&Ro%73;oN{2cPoe=qs5+s|rw0}GJ7-!M;4 zd|~V`pEvsZAMPU_-g$VOIHm2mPZl>dd>OZImPE@OKEwBzxYRJw4V(eC13NvL<iq*9aFz4ez6oquLCiHn?-Jn zq6x^pezlX#xbk`WFKBsIKig6Nbs+VN4E-=KG5}XO;`mII8cvA#0em2+xEjV?KP##K z9T-T)llK?+xlZdN?sL#DEuSV*W_e?&LHsY5qLu7N%4>{HX`G@pxARs|_U+Fb7pX@+ z0n3e1GOOe6{Ad_=@v9^@&gM6t6X>_rr+#aB>Nn#%3cs;Ujrm^nTX>$|Yf;bsDQ^X3 z`fc{j?{vJSzMKf(^IMAXLAxV4X zPV@gsjT_fn=#9<+nRg}|-{nI&c@_1XFH#TxhaEpT0tc8Eyl+y^i>gOt_+xr(Jj^cF z6Y^hDzRAY7bz>Iwv@7+nyWjCsyZnBKdd|D@%_1*gm;E8194szsR0l zjt}{r2srhOK%(D0Zk&=Kl>xZQ$=5Xxm?zYG1xURjdwQ8)^@{B2WuB0~U-gbTUaI$TmC5q;^1eyESAoOHG6S-#%okf`@BfYd9pryH$JpT%FtMC7_?`tT)}jH{bpl{EfGG4SMN+Yh0Dc{QSVQ2jA| z-Kx*ctNQwEeva1AH=z1nk@`wv@iza=?g8b!T8B5Oycg^6UR2)s8a#VWH2dEIpYg(Q z;wr!VyI4>tGvB_5{Ji4yb#gqBzZ+i%&dpUKu4mw<_amFH!oxa?^kV&O<4eBC9^du1s-NRb{r$=pc>(@9<@YIH%HO1X zkr&|8Kl-yl`67FK7q_ba_bGo+`64gCzhC*glrJ*)jBh*EL*^&fyL0%&{7IjuheeK) zKSq9VTwco5@6Xg<$kZRq)L+ij_vkuz)8${Hzb8rOCDH*`Icdco{yLz)H%aymy86G- z_E=tVm6JbJe?J6?>%?Us`?Yj1lKR)R9zyQLxG)~_{@&d1Tl`&1yZ0V%>k;#o_PTK6 z<9*!LuUVAR-%CJ_t03MdAmS=Vhw+K`eLBPMZ4$VHtDLy^8ax-c{-)1w`h8dO4bSg| z+S&TA-$%}CXK~8fdmLV1{v^ZjjQz>ltJTh)uf{U%eh>Q4|9R{3?`O)}Au}%gWWNwj zT-A7p9;`Rg4mgBb-@nU{Y3Dl7U;n?BDbLzzLA`J1G9=_nBJF@@A^Ub9ihnWx@cgrN zaT2AB-)trhWV2uP{A+Q~KJV%G=kwxj&$rgj@?%Er>G$DjJLVVjSMnD5%im)y_3~F_ zlyknVK)KKn|C{nh`OiF zH*Rf_$ex}1QBONIt~Sop#_^xVr*E&VjdI6Dw)5@1r}j3Xl=fzTb91ec$ez6oD5pJF zU)`^ILHP6IM?UTFi+PR@H*9EM#ueksb+XGF-%jQAC~ih;__O8^5P2JIQCZjRsL#oJ zq#Wz0@PSg^7=2DAEb@l^z<#C^@wZ)@)Q+u}vdrK zj z?dLX>`s2&z3&@XXx$NJ-PPE;XKPKgfC*SK?zQdKTvH0&)*~VwU$$PZi@zMTaEmytr zT*Ld`hh6z&QVv<$M<3C0(Nk?7?NU9`4&}lF?pD6EH$LzYSH4&3AxnEJM}D9hS6T99 zeNKK1)ya>aM{DMXAo4@hL7(N5%4vQKDnB$oq}|UTKlaz@&!g&}V1ayptVVy_dRoo* z$H8O%TYgJBuRm9%K0MzK)#=Y3^-r)se}-!GXF~l4;3{9zbv^BmwDbCN4J@p?HRr3S z@#eG5-?2LV;d2x7O|U?J7ypQny!u54V`_~1D_gOw~6DI|$`*1Db@xJ#Y z%F*BSd9xid*Pma=l-qr#8|A)UX^-bV;R8*ttv77P=Rxx)+ur=s_$6&k&aaO;`+9#Y zPl=3mlIwCMXI*@;&baPVeS#QQh`4I6iyuR6UY^!lN2HxMu2-RFG4t+1o&Nly`X^YR zKfhF?KcnJbHBYniPTG0>d2NyXK{L5He*SX+_b>PywjZU4_Zp55=1KH%l{rr+f5ORo zr5t%6e4vzj_f6i{`*QN*s@nOa>OG)(iL^_7wDZeO=5Yym4;DV`NO{K2rW`xh)y@Xd zS4q|@P72PSe|;I=4c9)geK4C(zXBfT>2=4C+JVg9PvO%quV{Hckn_~+OMA>u;d}Fx z6T#=1Ki2-wbUtS1v-L0A-t1-P^FillI-f;GTzOy5o6p~NaY(=QPq0A# ze_HvW>$J4<^8X6-EM`8xS*Jf-$1#qPV1fP|s?nbb@vl0cv(E+6&g;*$MfQjD4Er%B zIDVYZx3qtjH_=^Zv#AnDsB)-t>rjc+Xv;^M?Bh99J!$5*c~V_+cMW%Uvx$-*a)OnfD{$P@f?3 z#QJUX6VMxRC*>!c)`I+XI$jGl@l-qtO{!FiK zjicpDc3nLNCi6wGz&dnX`JwqG?S2ONwL$yywDV)l0U+<=V=C`gnHy&4*B&WHe1s2_ za&KRT>m|PLoHsA~>%{GZ(;o>Ih}$#D&&F*67NJq_XXENINfou1Njj@~0d5!~QZ)MznvsoW5j0 zk@oV|XKr-mjsLTmavT3a(NjtFN_&jE@V)U**ER6Do|-?|_U2!9T&K{E>mLADc}irA zE8jcv#&x33xK5)T^$8YO7tSa@bX=t!# z{-1oF|7Uwd;DbN^KYeTpzhiEke#-qnfum!a<^KhgfKkBz1NaYo|A6__roYo|`*)T9 zP4P#HKUDlz#eY$JTk)S2f1vn%#s5^irT9;Z-&4%~KZ5UL-17b(L65|>Dc;iuZ}IzW zH({FMPDUHQ^Zo}#((HT!zR!!9FO)X`F+XF!-grfRCvNA#k!HB+pWi2sdig#_yId#y z^R*Dg@9a7DyS2R5{{=9;XTe)YubsEQSM?b}ye&Qmx5(##7N4x2zMTF40H)Wlmj0^+ z^>h99f7fq%4QuJYSx~?IzXa1~SWEA%f_i($Pfqe&!NmAcIbSgS;O7OOJ=VL8<om-2RWgzJ-)Pj2kpF6FSpytZ=8 zPu0`!^o;lJAP+Q&o1Kf@rtOvh=_l)noVQ$uqyT9Aew6z2=dG{0b9rR5o$*Kh$o;>T zZ21g+P~zJ${_F*JemBeS`KCL^IvrE8|s^&l^_=zcrA*MEQ(U5&zrp zO>KxjOUo@`{6?2IMg3VCcLeF@@2*1pzblZxERf$3$X_1FUlGV(8OZMnnaqopK`u)1pGhR98c=6MU z=J?pu^izVTj*j`yPeso4p2hjvcG$=FffL<8%7%AB#(uV(>m}X=c>{2nqVcl00`+(T zlyklKUU-80eMCO*6ITI;fowMotaYxJ`;B;#liy1cMfC6t3ix{pJJ;JLgzC9o+h;P& zwy!7msJ>d~dUc%AbG>{X#lG8S)r+j+Rel-UBE)19KJgxtp7Z@F2AuvQU1h&&49NB( zWB-fsnOI=I7}f9V;<#g+#+}{j?>3h$b$-$QSdM+>1>3QI*k`MG{!{9;AETZgx4&5X z{3quD_wR;*jEBhe&aR9+BaX>0zA7e^SSR<3#>` zAo(U6pU=1CKaWq^mHHgJ%s1*e0Hhv~J-e2V7gP`D2YBi4>A9an8Gx&L{;dTP^&SLL zugIQW%H&_eC;j92`FfYD48T>@%Xm`nAt3dN?CIru7x~}DC-wFKeZ8FTlmWP^dKoY3 z9RX6W$ev!CuWzHCde=K%8i$oC18`OK(jV#_1yZlb&^sn_CHZZ1fb)v|KY+aBy5;A& zU%wyqT+dj49-s8X&Y7)(!_;%LM!D{5&EsFK!M|0b{A`VK>kspnegSaJUk9`0tJQC7 z->ov^fpzx;FUvK9QP2VyMoW+;=xUTzr(JfPXyLTwR zPx&UBU9L;CJEV4{KF2QCQ~KWzq+O90uv=07fbvZ?yNc;KW2w)v%XvY&yHt)n_9dc=$So;ELd9_L=IH@khPrM*LnwyvAq*^FJ*)2?EAUog8; z4!hjMo_+g%;_ldvF z*yT9TuA=@9Hcrg0l*8^0@bc{bz3R)J^Rs!?ni&r}=QpVOzNhVN{@XdfF4S`!dspk< zR_xJs0?1E$J}~6@Vdkrizx_X%L2HK!<}KX9RXtb8b(!`mTF;GL@_I-EPhbIiJ<7N9 zUOm#Fe!D(xw;|Bppz`gUSW$cXwcT)_y%FUf3~V>4{IS4xGs-_3*zP6ep9^evS@{2Tvr6W^KkzQGpI