From 071e18c0deca1dc41d0e8da11f96a895922aee0d Mon Sep 17 00:00:00 2001 From: iridiumR Date: Mon, 13 Jun 2022 17:46:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(Quartus):=20=E6=9C=80=E5=90=8E=E7=9A=84?= =?UTF-8?q?=E6=B3=A2=E7=BA=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Quartus/final/Waveform.vwf | 263 ++++++++++ Quartus/final/jyh_4490_7.qpf | 31 ++ Quartus/final/jyh_4490_7.qsf | 64 +++ Quartus/final/mstate.v | 29 ++ Quartus/final/tb.v | 26 + Quartus/final_testbench/f.cr.mti | 15 + Quartus/final_testbench/f.mpf | 469 ++++++++++++++++++ Quartus/final_testbench/transcript | 23 + Quartus/final_testbench/work/_info | 57 +++ Quartus/final_testbench/work/_lib1_0.qpg | Bin 0 -> 8192 bytes Quartus/final_testbench/work/_lib1_0.qtl | Bin 0 -> 57476 bytes Quartus/final_testbench/work/_vmake | 4 + Quartus/v6_testbench/jyh_4490_6.cr.mti | 7 - Quartus/v6_testbench/jyh_4490_6.mpf | 4 +- Quartus/v6_testbench/transcript | 10 +- Quartus/v6_testbench_top/v7/Waveform.vwf | 279 +++++++++++ Quartus/v6_testbench_top/v7/jyh_4490_7.qpf | 31 ++ Quartus/v6_testbench_top/v7/jyh_4490_7.qsf | 65 +++ Quartus/v6_testbench_top/v7/jyh_4490_7_is.v | 89 ++++ .../v7/jyh_4490_7_testbench.v | 61 +++ 20 files changed, 1512 insertions(+), 15 deletions(-) create mode 100644 Quartus/final/Waveform.vwf create mode 100644 Quartus/final/jyh_4490_7.qpf create mode 100644 Quartus/final/jyh_4490_7.qsf create mode 100644 Quartus/final/mstate.v create mode 100644 Quartus/final/tb.v create mode 100644 Quartus/final_testbench/f.cr.mti create mode 100644 Quartus/final_testbench/f.mpf create mode 100644 Quartus/final_testbench/transcript create mode 100644 Quartus/final_testbench/work/_info create mode 100644 Quartus/final_testbench/work/_lib1_0.qpg create mode 100644 Quartus/final_testbench/work/_lib1_0.qtl create mode 100644 Quartus/final_testbench/work/_vmake create mode 100644 Quartus/v6_testbench_top/v7/Waveform.vwf create mode 100644 Quartus/v6_testbench_top/v7/jyh_4490_7.qpf create mode 100644 Quartus/v6_testbench_top/v7/jyh_4490_7.qsf create mode 100644 Quartus/v6_testbench_top/v7/jyh_4490_7_is.v create mode 100644 Quartus/v6_testbench_top/v7/jyh_4490_7_testbench.v diff --git a/Quartus/final/Waveform.vwf b/Quartus/final/Waveform.vwf new file mode 100644 index 0000000..eeb9717 --- /dev/null +++ b/Quartus/final/Waveform.vwf @@ -0,0 +1,263 @@ +/* +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("key") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = SINGLE_BIT; + WIDTH = 1; + LSB_INDEX = -1; + DIRECTION = INPUT; + PARENT = ""; +} + +SIGNAL("out") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = BUS; + WIDTH = 3; + LSB_INDEX = 0; + DIRECTION = OUTPUT; + PARENT = ""; +} + +SIGNAL("out[2]") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = SINGLE_BIT; + WIDTH = 1; + LSB_INDEX = -1; + DIRECTION = OUTPUT; + PARENT = "out"; +} + +SIGNAL("out[1]") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = SINGLE_BIT; + WIDTH = 1; + LSB_INDEX = -1; + DIRECTION = OUTPUT; + PARENT = "out"; +} + +SIGNAL("out[0]") +{ + VALUE_TYPE = NINE_LEVEL_BIT; + SIGNAL_TYPE = SINGLE_BIT; + WIDTH = 1; + LSB_INDEX = -1; + DIRECTION = OUTPUT; + PARENT = "out"; +} + +TRANSITION_LIST("clk") +{ + NODE + { + REPEAT = 1; + NODE + { + REPEAT = 66; + LEVEL 0 FOR 7.5; + LEVEL 1 FOR 7.5; + } + LEVEL 0 FOR 7.5; + LEVEL 1 FOR 2.5; + } +} + +TRANSITION_LIST("key") +{ + NODE + { + REPEAT = 1; + NODE + { + REPEAT = 50; + LEVEL 0 FOR 10.0; + LEVEL 1 FOR 10.0; + } + } +} + +TRANSITION_LIST("out[2]") +{ + NODE + { + REPEAT = 1; + LEVEL X FOR 1000.0; + } +} + +TRANSITION_LIST("out[1]") +{ + NODE + { + REPEAT = 1; + LEVEL X FOR 1000.0; + } +} + +TRANSITION_LIST("out[0]") +{ + NODE + { + REPEAT = 1; + LEVEL X FOR 1000.0; + } +} + +DISPLAY_LINE +{ + CHANNEL = "clk"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 0; + TREE_LEVEL = 0; +} + +DISPLAY_LINE +{ + CHANNEL = "key"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 1; + TREE_LEVEL = 0; +} + +DISPLAY_LINE +{ + CHANNEL = "out"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 2; + TREE_LEVEL = 0; + CHILDREN = 3, 4, 5; +} + +DISPLAY_LINE +{ + CHANNEL = "out[2]"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 3; + TREE_LEVEL = 1; + PARENT = 2; +} + +DISPLAY_LINE +{ + CHANNEL = "out[1]"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 4; + TREE_LEVEL = 1; + PARENT = 2; +} + +DISPLAY_LINE +{ + CHANNEL = "out[0]"; + EXPAND_STATUS = COLLAPSED; + RADIX = Binary; + TREE_INDEX = 5; + TREE_LEVEL = 1; + PARENT = 2; +} + +TIME_BAR +{ + TIME = 0; + MASTER = TRUE; +} +; diff --git a/Quartus/final/jyh_4490_7.qpf b/Quartus/final/jyh_4490_7.qpf new file mode 100644 index 0000000..bc6b6b8 --- /dev/null +++ b/Quartus/final/jyh_4490_7.qpf @@ -0,0 +1,31 @@ +# -------------------------------------------------------------------------- # +# +# 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. +# +# -------------------------------------------------------------------------- # +# +# Quartus Prime +# Version 21.1.0 Build 842 10/21/2021 SJ Lite Edition +# Date created = 19:22:48 五月 17, 2022 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "21.1" +DATE = "19:22:48 五月 17, 2022" + +# Revisions + +PROJECT_REVISION = "jyh_4490_7" diff --git a/Quartus/final/jyh_4490_7.qsf b/Quartus/final/jyh_4490_7.qsf new file mode 100644 index 0000000..650b270 --- /dev/null +++ b/Quartus/final/jyh_4490_7.qsf @@ -0,0 +1,64 @@ +# -------------------------------------------------------------------------- # +# +# 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. +# +# -------------------------------------------------------------------------- # +# +# Quartus Prime +# Version 21.1.0 Build 842 10/21/2021 SJ Lite Edition +# Date created = 19:22:48 五月 17, 2022 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# jyh_4490_7_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Intel recommends that you do not modify this file. This +# file is updated automatically by the Quartus Prime software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + +set_global_assignment -name FAMILY "Cyclone IV E" +set_global_assignment -name DEVICE EP4CE6E22C8 +set_global_assignment -name TOP_LEVEL_ENTITY mstate +set_global_assignment -name ORIGINAL_QUARTUS_VERSION 21.1.0 +set_global_assignment -name PROJECT_CREATION_TIME_DATE "19:22:48 五月 17, 2022" +set_global_assignment -name LAST_QUARTUS_VERSION "21.1.0 Lite Edition" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 +set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" +set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" +set_global_assignment -name VECTOR_WAVEFORM_FILE Waveform.vwf +set_location_assignment PIN_89 -to clk +set_global_assignment -name VERILOG_FILE mstate.v +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 tb.v +set_location_assignment PIN_24 -to key +set_location_assignment PIN_52 -to out[2] +set_location_assignment PIN_50 -to out[1] +set_location_assignment PIN_46 -to out[0] +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Quartus/final/mstate.v b/Quartus/final/mstate.v new file mode 100644 index 0000000..898f8c2 --- /dev/null +++ b/Quartus/final/mstate.v @@ -0,0 +1,29 @@ +module mstate(clk,key,out); +input clk,key; +output reg[2:0] out; +reg[1:0] state; +parameter s0=0,s1=1,s2=2; +initial begin +state=s0; +end +always @(posedge clk) +case (state) + s0:if(key) state=s0; + else state=s1; + s1:if(key) state=s1; + else state=s2; + s2:if(key) state=s2; + else state=s0; + default: state=s0; +endcase + +always +case (state) + s0:out<=3'b001; + s1:out<=3'b010; + s2:out<=3'b100; +default:out<=3'b001; +endcase + + +endmodule diff --git a/Quartus/final/tb.v b/Quartus/final/tb.v new file mode 100644 index 0000000..a51e8fe --- /dev/null +++ b/Quartus/final/tb.v @@ -0,0 +1,26 @@ +`timescale 1ns/1ns +module tb; +reg clk; +reg key; +wire [3:0] out; + +initial begin + clk=0; + key=0; +end + +always#10 clk=~clk; +always begin +repeat(10) +#15 key=~key; + +repeat(10) +#15 key=0; +end + +mstate M1( +.clk(clk), +.key(key), +.out(out)); + +endmodule \ No newline at end of file diff --git a/Quartus/final_testbench/f.cr.mti b/Quartus/final_testbench/f.cr.mti new file mode 100644 index 0000000..8b9a40a --- /dev/null +++ b/Quartus/final_testbench/f.cr.mti @@ -0,0 +1,15 @@ +/home/ir/Documents/codelib/Quartus/v7/mstate.v {1 {vlog -work work -stats=none /home/ir/Documents/codelib/Quartus/v7/mstate.v +Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020 +-- Compiling module mstate + +Top level modules: + mstate + +} {} {}} /home/ir/Documents/codelib/Quartus/v7/tb.v {1 {vlog -work work -stats=none /home/ir/Documents/codelib/Quartus/v7/tb.v +Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020 +-- Compiling module tb + +Top level modules: + tb + +} {} {}} diff --git a/Quartus/final_testbench/f.mpf b/Quartus/final_testbench/f.mpf new file mode 100644 index 0000000..f31d9f0 --- /dev/null +++ b/Quartus/final_testbench/f.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/tb.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 vlog_noload 0 folder {Top Level} last_compile 1654669507 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_1 = /home/ir/Documents/codelib/Quartus/v7/mstate.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 vlog_noload 0 folder {Top Level} last_compile 1654669642 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 0 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.tb 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/final_testbench/transcript b/Quartus/final_testbench/transcript new file mode 100644 index 0000000..66f6c35 --- /dev/null +++ b/Quartus/final_testbench/transcript @@ -0,0 +1,23 @@ +# Compile of tb.v failed with 4 errors. +# Compile of tb.v failed with 2 errors. +# Compile of tb.v was successful. +vsim work.tb +# vsim work.tb +# Start time: 14:25:26 on Jun 08,2022 +# Loading work.tb +# Loading work.mstate +# ** Warning: (vsim-3015) [PCDPC] - Port size (3) does not match connection size (4) for port 'out'. The port definition is at: /home/ir/Documents/codelib/Quartus/v7/mstate.v(1). +# Time: 0 ns Iteration: 0 Instance: /tb/M1 File: /home/ir/Documents/codelib/Quartus/v7/tb.v Line: 21 +add wave -position end sim:/tb/clk +add wave -position end sim:/tb/key +add wave -position end sim:/tb/out +run +run +run +run +run +run +run +# Compile of mstate.v was successful. +# End time: 16:19:51 on Jun 13,2022, Elapsed time: 121:54:25 +# Errors: 0, Warnings: 6 diff --git a/Quartus/final_testbench/work/_info b/Quartus/final_testbench/work/_info new file mode 100644 index 0000000..7d4869f --- /dev/null +++ b/Quartus/final_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 +vmstate +!s110 1654669707 +!i10b 1 +!s100 bJ[2:DCLnjci1MRoWIG5c2 +Z0 !s11b Dg1SIo80bB@j0V0VzS_@n1 +IEZ8>W_cT?Ee1dN:k@1]zm3 +Z1 VDg1SIo80bB@j0V0VzS_@n1 +Z2 d/home/ir/Documents/codelib/Quartus/ftb +w1654669642 +8/home/ir/Documents/codelib/Quartus/v7/mstate.v +F/home/ir/Documents/codelib/Quartus/v7/mstate.v +!i122 8 +L0 1 29 +Z3 OV;L;2020.1;71 +r1 +!s85 0 +31 +!s108 1654669707.000000 +!s107 /home/ir/Documents/codelib/Quartus/v7/mstate.v| +!s90 -reportprogress|300|-work|work|-stats=none|/home/ir/Documents/codelib/Quartus/v7/mstate.v| +!i113 1 +Z4 o-work work +Z5 tCvgOpt 0 +vtb +!s110 1654669516 +!i10b 1 +!s100 IFd?^70ke*#Q(v>jeA#q#IN!9JNKN|%j*oxGjZWt%&+I;p7Xoso_pV& z>2&$QMif<&2u}>$0!&mcDV7y`fK}Lgfk%K9;H$tCxD(i?xDI#+-k#jT3l z6mL+x5lH_{K#oTRO7*$3i{+@dJX@cCmRLV{_9St6arS9qbEz)!*;BI%l;@wUKPvVU z&o%{@>dz7P)fbnD%@fU8;@;NKwW z%TZ721NNjf3D}eN0b}SXcEUefLupU6F5>v5DP)g&Q`Rwp{5?Js9dAfKTK%|4#_fXq zM=M>EhjEyf21CYOLSy`!Jcql?!@R~*=5^=4%eT;FJ~n2U@8rT6$i3-i=vlWi2(_!9 zjr&0JP-dO1ZV+YMnb{W$#k+K!cn5 z5+L)k-)(+|)LQ*GPwrdFN0F%AKB9j(-wDX9+wY3Bhw+TB^_AJr!(e?#>^6?|lf~^6 zhwEhV+wq~D^RxBfxlezta}hrOw|RAY4p;D2W!<{z-&?xvw~cZ8{ne=-HWlojk%ILZ zE$Ba1(0_9&EwmrEXnpkFo9ewc)q8KM_uf?Ry{X=NQ@!`5%l_V*F8h0Ls`uVh@4YGR zy;t4)e)jj+$_!or_TJ<9v4|Hb&z~kDNO)34IN?r;XkGh^N#}9Dxi53#0hl4;%v?0Pe#>Ieo-p?>^XK3S!;!hWQP@>hmKM3EU6gH}oF~>}nEL|$=l%DJ#7%mA#`|#`l<;>A)yJ|xiNlv1i9_*?D2`77v4VR=F2^|a z`6TD@b&Kd`@QHkD;&L4I`M4aE8w^RHQFu_sRAmScBW`^fVs&HHt!Io+?$cynFITkRQd)n~lN z;YU6dV8~ni0^U2W_8Xy0-j?5Zvrf`SVo#jJ4S0`>zBKRGz2>wo8SfN!@>YAsTlE=l z_QgT)=KUe$Eq(#-3D`M5^&6o~-j?5ZzXNT^Tl@pwG7KNg+i25|Jogxv=MeZm!1Zsn zYQF8YU)a}TN1rne&b6$sd0uk7)`Qo6Jc)Zq*Bi$bU#xXhXe*t#RL+s!W5l`Z9 z$V)$0Au-MoAmfM}?B{%5Yys{SThUPbpg?93~6Q^C5y-1gynjO%Ih`d0ZiHSc!69&SM2Lmza|UsAo*!Ti}jc)yf3RIHvQn_p{~yPU~xZ`QZl74-mbo#t(M#qSzPTfA6mb-+L?{ z`-6Gj1P{K4?A*BwEziH_fvmS6?i~>EB=IBotl{24iRXpY$KTtM?A&X>jy`kxd!4(e z^R;nSCmUz`;C>yazhh?OUVt8a)|_uI=JZu208f6BpViOuNF3}l83$y4bN93bZ;vl|^10K%hc}3$b0C}IX^P2w$V}8?LFOS4Qd>IGixNtsPFZP4<0s4Xe z_ZbNKL1gIJ_ao4YJL-2%{zyK0+kap9*z2R{i0{i`)-7BQ<9Sm~Z}al!PR+6JxIbk) z_=-QUf`(weJ6h4 z!}TIh03O`Sd>vNk&w3u$I;?14OZ`wso(p3^9p}`qsW^_&jLUsWw7fQ7sPQE3K8<@T zq;_?_EvL6SlV2EL#$!I>4}=-dYWzKr7+?9w_do6*(52t`aeOkK#T9?Vc}n@+4m-xj zf@N(RjGu&_=fqxb&-Rn`Nj<0U#9ziEpZK@oKc#WHg5RuAIITe;JQ_;@^h$T p9!Qw?_5(ni)A2r)_p3~V{gCLff5aas`f~gX%y^QR>w@=h{10juv4{Ww literal 0 HcmV?d00001 diff --git a/Quartus/final_testbench/work/_lib1_0.qtl b/Quartus/final_testbench/work/_lib1_0.qtl new file mode 100644 index 0000000000000000000000000000000000000000..6b18113ff0b7fb1ea8b0375e2f5bbaa2e35b0afd GIT binary patch literal 57476 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 bj~8s7@M?!m0}E$O-B|MPAAGR>lz09=teXJJ literal 0 HcmV?d00001 diff --git a/Quartus/final_testbench/work/_vmake b/Quartus/final_testbench/work/_vmake new file mode 100644 index 0000000..37aa36a --- /dev/null +++ b/Quartus/final_testbench/work/_vmake @@ -0,0 +1,4 @@ +m255 +K4 +z0 +cModel Technology diff --git a/Quartus/v6_testbench/jyh_4490_6.cr.mti b/Quartus/v6_testbench/jyh_4490_6.cr.mti index db15be1..ff4d069 100644 --- a/Quartus/v6_testbench/jyh_4490_6.cr.mti +++ b/Quartus/v6_testbench/jyh_4490_6.cr.mti @@ -5,11 +5,4 @@ Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb Top level modules: jyh_4490_6_testbench -} {} {}} /home/ir/Documents/codelib/Quartus/v6/jyh_4490_mstate.v {1 {vlog -work work -stats=none /home/ir/Documents/codelib/Quartus/v6/jyh_4490_mstate.v -Model Technology ModelSim - Intel FPGA Edition vlog 2020.1 Compiler 2020.02 Feb 28 2020 --- Compiling module jyh_4490_mstate - -Top level modules: - jyh_4490_mstate - } {} {}} diff --git a/Quartus/v6_testbench/jyh_4490_6.mpf b/Quartus/v6_testbench/jyh_4490_6.mpf index 4340c2c..8d20bbf 100644 --- a/Quartus/v6_testbench/jyh_4490_6.mpf +++ b/Quartus/v6_testbench/jyh_4490_6.mpf @@ -413,9 +413,9 @@ Project_DefaultLib = work Project_SortMethod = unused Project_Files_Count = 2 Project_File_0 = /home/ir/Documents/codelib/Quartus/v6/jyh_4490_6_testbench.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 cover_branch 0 vlog_noload 0 folder {Top Level} last_compile 1652177049 cover_fsm 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_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 last_compile 1652177049 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} 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/ir/Documents/codelib/Quartus/v6/jyh_4490_mstate.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 vlog_noload 0 folder {Top Level} last_compile 1652112350 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 verilog group_id 0 cover_exttoggle 0 cover_nofec 0 cover_cond 0 vlog_1995compat 0 vlog_nodebug 0 last_compile 1652112350 cover_fsm 0 cover_branch 0 vlog_noload 0 folder {Top Level} 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 1 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 = 1 Project_Sim_0 = Simulation 1 Project_Sim_P_0 = -L {} -Lf {} -sdf {} selected_du {} additional_dus work.jyh_4490_6_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 {} diff --git a/Quartus/v6_testbench/transcript b/Quartus/v6_testbench/transcript index aeb82df..1e585db 100644 --- a/Quartus/v6_testbench/transcript +++ b/Quartus/v6_testbench/transcript @@ -1,7 +1,6 @@ -# Compile of jyh_4490_6_testbench.v was successful. vsim work.jyh_4490_6_testbench # vsim work.jyh_4490_6_testbench -# Start time: 18:05:59 on May 10,2022 +# Start time: 13:05:56 on Jun 08,2022 # Loading work.jyh_4490_6_testbench # Loading work.jyh_4490_mstate # ** Warning: (vsim-2685) [TFMPC] - Too few port connections for 'M1'. Expected 5, found 4. @@ -11,10 +10,9 @@ add wave -position end sim:/jyh_4490_6_testbench/clk add wave -position end sim:/jyh_4490_6_testbench/in add wave -position end sim:/jyh_4490_6_testbench/en add wave -position end sim:/jyh_4490_6_testbench/out -add wave -position end sim:/jyh_4490_6_testbench/cnt run -continue run -all # Break key hit -# Simulation stop requested. -# End time: 18:28:16 on May 10,2022, Elapsed time: 0:22:17 -# Errors: 0, Warnings: 6 +# Break in Module jyh_4490_6_testbench at /home/ir/Documents/codelib/Quartus/v6/jyh_4490_6_testbench.v line 15 +# End time: 13:06:58 on Jun 08,2022, Elapsed time: 0:01:02 +# Errors: 0, Warnings: 4 diff --git a/Quartus/v6_testbench_top/v7/Waveform.vwf b/Quartus/v6_testbench_top/v7/Waveform.vwf new file mode 100644 index 0000000..de57742 --- /dev/null +++ b/Quartus/v6_testbench_top/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/v6_testbench_top/v7/jyh_4490_7.qpf b/Quartus/v6_testbench_top/v7/jyh_4490_7.qpf new file mode 100644 index 0000000..bc6b6b8 --- /dev/null +++ b/Quartus/v6_testbench_top/v7/jyh_4490_7.qpf @@ -0,0 +1,31 @@ +# -------------------------------------------------------------------------- # +# +# 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. +# +# -------------------------------------------------------------------------- # +# +# Quartus Prime +# Version 21.1.0 Build 842 10/21/2021 SJ Lite Edition +# Date created = 19:22:48 五月 17, 2022 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "21.1" +DATE = "19:22:48 五月 17, 2022" + +# Revisions + +PROJECT_REVISION = "jyh_4490_7" diff --git a/Quartus/v6_testbench_top/v7/jyh_4490_7.qsf b/Quartus/v6_testbench_top/v7/jyh_4490_7.qsf new file mode 100644 index 0000000..a010112 --- /dev/null +++ b/Quartus/v6_testbench_top/v7/jyh_4490_7.qsf @@ -0,0 +1,65 @@ +# -------------------------------------------------------------------------- # +# +# 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. +# +# -------------------------------------------------------------------------- # +# +# Quartus Prime +# Version 21.1.0 Build 842 10/21/2021 SJ Lite Edition +# Date created = 19:22:48 五月 17, 2022 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# jyh_4490_7_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Intel recommends that you do not modify this file. This +# file is updated automatically by the Quartus Prime software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + +set_global_assignment -name FAMILY "Cyclone IV E" +set_global_assignment -name DEVICE EP4CE6E22C8 +set_global_assignment -name TOP_LEVEL_ENTITY jyh_4490_7_is +set_global_assignment -name ORIGINAL_QUARTUS_VERSION 21.1.0 +set_global_assignment -name PROJECT_CREATION_TIME_DATE "19:22:48 五月 17, 2022" +set_global_assignment -name LAST_QUARTUS_VERSION "21.1.0 Lite Edition" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 +set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" +set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" +set_global_assignment -name VERILOG_FILE jyh_4490_7_is.v +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_location_assignment PIN_90 -to clk +set_location_assignment PIN_23 -to f0 +set_location_assignment PIN_46 -to f1 +set_location_assignment PIN_50 -to f2 +set_location_assignment PIN_24 -to p +set_location_assignment PIN_31 -to sta +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Quartus/v6_testbench_top/v7/jyh_4490_7_is.v b/Quartus/v6_testbench_top/v7/jyh_4490_7_is.v new file mode 100644 index 0000000..de73344 --- /dev/null +++ b/Quartus/v6_testbench_top/v7/jyh_4490_7_is.v @@ -0,0 +1,89 @@ +module jyh_4490_7_is(f2,f1,f0,clk,p,sta); +input p,sta,f0,clk; +output reg f2,f1; + +reg flag,flag2;//counter enable flag +parameter TARGET=15000; //0.3ms +parameter TARGET2=5000; //0.1ms +reg [13:0] count;//2^14=16384 +reg [14:0] count2;//2^15=32768 +reg negf0; //whether f0 enter low level +initial begin +flag=0; +flag2=0; +count=0; +negf0=0; +end + +always@(posedge clk) +begin + if(!f0) + negf0<=1; + if(f0&&negf0) + begin + negf0<=0; + flag<=1; + flag2<=1; + f1<=1; + f2<=1; + end + else + begin + //xinchong + if(count>=TARGET) + begin + flag<=0; + f1<=0; + end + + //shaochong + if(p) + begin + if(sta) + begin + if(count2>=5*TARGET2) + begin + f2<=0; + flag2<=0; + //end of a circle + end + 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 + + + else if(count>=3*TARGET2) + begin + f2<=0; + flag2<=0; + //end of a circle + end + else if(count>=2*TARGET2) + f2<=1; + else if(count>=TARGET2) + f2<=0; + end + else + f2<=f1; + + + //whether to add counter + if(flag) + count<=count+1; + else + count<=0; + + if(flag2) + count2<=count2+1; + else + count2<=0; + end +end + +endmodule \ No newline at end of file diff --git a/Quartus/v6_testbench_top/v7/jyh_4490_7_testbench.v b/Quartus/v6_testbench_top/v7/jyh_4490_7_testbench.v new file mode 100644 index 0000000..edc3a19 --- /dev/null +++ b/Quartus/v6_testbench_top/v7/jyh_4490_7_testbench.v @@ -0,0 +1,61 @@ +`timescale 1ns/1ns +module jyh_4490_7_testbench; +wire f1,f2; +reg clk,f0,p,sta; + +initial begin +clk=0; +f0=0; +p=0; +sta=0; +end + +always #10 clk=~clk; +always begin + +f0=1; +#300000; +f0=0; +#700000; + +f0=1; +#240000; +f0=0; +#760000; + +f0=1; +#180000; +f0=0; +#820000; + +f0=1; +#120000; +f0=0; +#800000; + +f0=1; +#60000; +f0=0; +#940000; + +end + +always begin +p=0; +sta=0; +#6000000; +p=1; +#3000000; +sta=1; +#3000000; +end + +jyh_4490_7_is C0( +.clk(clk), +.p(p), +.f1(f1), +.f0(f0), +.sta(sta), +.f2(f2)); + +endmodule