From e0e42781410c1dc0afd65a96e51e08877f976043 Mon Sep 17 00:00:00 2001 From: irobo Date: Tue, 28 Apr 2026 17:54:48 +0300 Subject: [PATCH] added files --- .gitignore | 27 ++++++++ .idea/.gitignore | 10 +++ .idea/Quartus_blink.iml | 8 +++ .../inspectionProfiles/profiles_settings.xml | 6 ++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 6 ++ blink.qar | Bin 0 -> 24130 bytes blink.qarlog | 23 +++++++ blink.qpf | 30 ++++++++ blink.qsf | 64 ++++++++++++++++++ blink.sdc | 3 + blink.v | 21 ++++++ blink_description.txt | 0 output_file.cof | 22 ++++++ output_file.map | 11 +++ signalprobe_qsf.tcl | 29 ++++++++ tb_blink.v | 44 ++++++++++++ 17 files changed, 312 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/Quartus_blink.iml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 blink.qar create mode 100644 blink.qarlog create mode 100644 blink.qpf create mode 100644 blink.qsf create mode 100644 blink.sdc create mode 100644 blink.v create mode 100644 blink_description.txt create mode 100644 output_file.cof create mode 100644 output_file.map create mode 100644 signalprobe_qsf.tcl create mode 100644 tb_blink.v diff --git a/.gitignore b/.gitignore index 0a945a5..5d57660 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,30 @@ hw_handoff ipshared +# Временные папки Quartus +db/ +incremental_db/ +greybox_tmp/ +hc_output/ +hps_isw_software/ +simulation/ +output_files/ + +# Промежуточные файлы +*.bak +*.orig +*.rpt +*.summary +*.qws +*.jdi +*.pin +*.done +*.qdf +*.sld + +# Прошивки (если не нужны в репозитории) +*.sof +*.pof +*.jic + + diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..30cf57e --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/Quartus_blink.iml b/.idea/Quartus_blink.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/.idea/Quartus_blink.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..3bda435 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/blink.qar b/blink.qar new file mode 100644 index 0000000000000000000000000000000000000000..ad7211b386f429d87230fcb51ce6de43b0cc649f GIT binary patch literal 24130 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 literal 0 HcmV?d00001 diff --git a/blink.qarlog b/blink.qarlog new file mode 100644 index 0000000..7df8268 --- /dev/null +++ b/blink.qarlog @@ -0,0 +1,23 @@ +Quartus II Archive log -- C:/altera/13.1/workflow/blink.qarlog + +Archive: C:/altera/13.1/workflow/blink.qar +Date: Tue Apr 28 17:50:03 2026 +Quartus II 64-Bit 13.1.0 Build 162 10/23/2013 SJ Web Edition + + =========== Files Selected: =========== +C:/altera/13.1/workflow/blink.qpf +C:/altera/13.1/workflow/blink.qsf +C:/altera/13.1/workflow/blink.sdc +C:/altera/13.1/workflow/blink.v +C:/altera/13.1/workflow/db/blink.cmp.hdb +C:/altera/13.1/workflow/db/blink.db_info +C:/altera/13.1/workflow/incremental_db/compiled_partitions/blink.db_info +C:/altera/13.1/workflow/output_file.cof +C:/altera/13.1/workflow/output_files/Chain1.cdf +C:/altera/13.1/workflow/signalprobe_qsf.tcl +C:/altera/13.1/workflow/tb_blink.v +c:/altera/13.1/quartus/bin64/assignment_defaults.qdf + ======= Total: 12 files to archive ======= + + ================ Status: =============== +All files archived successfully. diff --git a/blink.qpf b/blink.qpf new file mode 100644 index 0000000..869a07d --- /dev/null +++ b/blink.qpf @@ -0,0 +1,30 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP 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 Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 64-Bit +# Version 13.1.0 Build 162 10/23/2013 SJ Web Edition +# Date created = 23:43:14 March 05, 2026 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "13.1" +DATE = "23:43:14 March 05, 2026" + +# Revisions + +PROJECT_REVISION = "blink" diff --git a/blink.qsf b/blink.qsf new file mode 100644 index 0000000..ca0e31f --- /dev/null +++ b/blink.qsf @@ -0,0 +1,64 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP 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 Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 64-Bit +# Version 13.1.0 Build 162 10/23/2013 SJ Web Edition +# Date created = 23:43:14 March 05, 2026 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# blink_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus II 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 blink +set_global_assignment -name ORIGINAL_QUARTUS_VERSION 13.1 +set_global_assignment -name PROJECT_CREATION_TIME_DATE "23:43:14 MARCH 05, 2026" +set_global_assignment -name LAST_QUARTUS_VERSION 13.1 +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 EDA_SIMULATION_TOOL "ModelSim-Altera (Verilog)" +set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_simulation +set_global_assignment -name VERILOG_FILE blink.v +set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "2.5 V" +set_location_assignment PIN_23 -to clk +set_location_assignment PIN_87 -to led +set_global_assignment -name SDC_FILE blink.sdc +set_global_assignment -name CDF_FILE output_files/Chain1.cdf +set_global_assignment -name VERILOG_FILE tb_blink.v +set_global_assignment -name EDA_TIME_SCALE "1 ps" -section_id eda_simulation +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 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_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/blink.sdc b/blink.sdc new file mode 100644 index 0000000..29cb6da --- /dev/null +++ b/blink.sdc @@ -0,0 +1,3 @@ +create_clock -period 20 -name clk [get_ports clk] + + diff --git a/blink.v b/blink.v new file mode 100644 index 0000000..3818e5f --- /dev/null +++ b/blink.v @@ -0,0 +1,21 @@ +module blink( + input clk, + output reg led +); + +localparam MAX_COUNT = 50_000_000 - 1; // для 50 MHz → ~1 секунда + +reg [26:0] cnt;// 2^26 = 67_108_864 + +always @(posedge clk) +begin + if(cnt >= MAX_COUNT) + begin + cnt <= 0; + led <= ~led; // переключение LED + end + else + cnt <= cnt + 1; +end + +endmodule diff --git a/blink_description.txt b/blink_description.txt new file mode 100644 index 0000000..e69de29 diff --git a/output_file.cof b/output_file.cof new file mode 100644 index 0000000..7953721 --- /dev/null +++ b/output_file.cof @@ -0,0 +1,22 @@ + + + EPCS64 + EP4CE6 + output_file.jic + 1 + 1 + 7 + + Page_0 + 1 + + C:/altera/13.1/workflow/output_files/blink.sof + + + 5 + 0 + 0 + + 1 + + \ No newline at end of file diff --git a/output_file.map b/output_file.map new file mode 100644 index 0000000..ed66271 --- /dev/null +++ b/output_file.map @@ -0,0 +1,11 @@ +BLOCK START ADDRESS END ADDRESS + +Page_0 0x00000000 0x00059D8A + + + +Notes: + +- Data checksum for this conversion is 0x1A5EA7E1 + +- All the addresses in this file are byte addresses \ No newline at end of file diff --git a/signalprobe_qsf.tcl b/signalprobe_qsf.tcl new file mode 100644 index 0000000..3b3577b --- /dev/null +++ b/signalprobe_qsf.tcl @@ -0,0 +1,29 @@ +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP 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 Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. + + +# Quartus II 64-Bit Version 13.1.0 Build 162 10/23/2013 SJ Web Edition +# File: signalprobe_qsf.tcl +# Generated on: Mon Mar 09 21:03:20 2026 + +# Note: This file contains a Tcl script generated from the SignalProbe Gui. +# You can use this script to restore SignalProbes after deleting the DB +# folder; at the command line use "quartus_cdb -t signalprobe_qsf.tcl". + +package require ::quartus::chip_planner +package require ::quartus::project +project_open blink -revision blink +read_netlist +set had_failure 0 + diff --git a/tb_blink.v b/tb_blink.v new file mode 100644 index 0000000..95cb0bf --- /dev/null +++ b/tb_blink.v @@ -0,0 +1,44 @@ +`timescale 1ns/1ps + +module tb_blink; + +reg clk; +wire led; + +blink DUT( + .clk(clk), + .led(led) +); + +// Clock generator (50 MHz) +always #10 clk = ~clk; + +// Self checking logic +integer error_count = 0; +reg led_prev; + +initial begin + clk = 0; + led_prev = 0; + + #100000; // simulate time + + if(error_count == 0) + $display("SELF CHECK PASSED"); + else + $display("SELF CHECK FAILED, errors = %d", error_count); + + $stop; +end + +// Check LED toggle behavior +always @(posedge clk) +begin + #1; + if(led == led_prev) + error_count = error_count + 1; + + led_prev = led; +end + +endmodule \ No newline at end of file