249 lines
5.8 KiB
VHDL
249 lines
5.8 KiB
VHDL
-- Copyright (C) 2020 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.
|
|
|
|
-- VENDOR "Altera"
|
|
-- PROGRAM "Quartus Prime"
|
|
-- VERSION "Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition"
|
|
|
|
-- DATE "03/16/2023 16:48:05"
|
|
|
|
--
|
|
-- Device: Altera EP4CE115F29C7 Package FBGA780
|
|
--
|
|
|
|
--
|
|
-- This VHDL file should be used for ModelSim-Altera (VHDL) only
|
|
--
|
|
|
|
LIBRARY ALTERA;
|
|
LIBRARY CYCLONEIVE;
|
|
LIBRARY IEEE;
|
|
USE ALTERA.ALTERA_PRIMITIVES_COMPONENTS.ALL;
|
|
USE CYCLONEIVE.CYCLONEIVE_COMPONENTS.ALL;
|
|
USE IEEE.STD_LOGIC_1164.ALL;
|
|
|
|
ENTITY CounterDown4 IS
|
|
PORT (
|
|
clk : IN std_logic;
|
|
count : OUT std_logic_vector(3 DOWNTO 0)
|
|
);
|
|
END CounterDown4;
|
|
|
|
ARCHITECTURE structure OF CounterDown4 IS
|
|
SIGNAL gnd : std_logic := '0';
|
|
SIGNAL vcc : std_logic := '1';
|
|
SIGNAL unknown : std_logic := 'X';
|
|
SIGNAL devoe : std_logic := '1';
|
|
SIGNAL devclrn : std_logic := '1';
|
|
SIGNAL devpor : std_logic := '1';
|
|
SIGNAL ww_devoe : std_logic;
|
|
SIGNAL ww_devclrn : std_logic;
|
|
SIGNAL ww_devpor : std_logic;
|
|
SIGNAL ww_clk : std_logic;
|
|
SIGNAL ww_count : std_logic_vector(3 DOWNTO 0);
|
|
SIGNAL \count[0]~output_o\ : std_logic;
|
|
SIGNAL \count[1]~output_o\ : std_logic;
|
|
SIGNAL \count[2]~output_o\ : std_logic;
|
|
SIGNAL \count[3]~output_o\ : std_logic;
|
|
SIGNAL \clk~input_o\ : std_logic;
|
|
SIGNAL \s_count[0]~0_combout\ : std_logic;
|
|
SIGNAL \Add0~0_combout\ : std_logic;
|
|
SIGNAL \Add0~1_combout\ : std_logic;
|
|
SIGNAL \Add0~2_combout\ : std_logic;
|
|
SIGNAL s_count : std_logic_vector(3 DOWNTO 0);
|
|
|
|
BEGIN
|
|
|
|
ww_clk <= clk;
|
|
count <= ww_count;
|
|
ww_devoe <= devoe;
|
|
ww_devclrn <= devclrn;
|
|
ww_devpor <= devpor;
|
|
|
|
\count[0]~output\ : cycloneive_io_obuf
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
bus_hold => "false",
|
|
open_drain_output => "false")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
i => s_count(0),
|
|
devoe => ww_devoe,
|
|
o => \count[0]~output_o\);
|
|
|
|
\count[1]~output\ : cycloneive_io_obuf
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
bus_hold => "false",
|
|
open_drain_output => "false")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
i => s_count(1),
|
|
devoe => ww_devoe,
|
|
o => \count[1]~output_o\);
|
|
|
|
\count[2]~output\ : cycloneive_io_obuf
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
bus_hold => "false",
|
|
open_drain_output => "false")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
i => s_count(2),
|
|
devoe => ww_devoe,
|
|
o => \count[2]~output_o\);
|
|
|
|
\count[3]~output\ : cycloneive_io_obuf
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
bus_hold => "false",
|
|
open_drain_output => "false")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
i => s_count(3),
|
|
devoe => ww_devoe,
|
|
o => \count[3]~output_o\);
|
|
|
|
\clk~input\ : cycloneive_io_ibuf
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
bus_hold => "false",
|
|
simulate_z_as => "z")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
i => ww_clk,
|
|
o => \clk~input_o\);
|
|
|
|
\s_count[0]~0\ : cycloneive_lcell_comb
|
|
-- Equation(s):
|
|
-- \s_count[0]~0_combout\ = !s_count(0)
|
|
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
lut_mask => "0101010101010101",
|
|
sum_lutc_input => "datac")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
dataa => s_count(0),
|
|
combout => \s_count[0]~0_combout\);
|
|
|
|
\s_count[0]\ : dffeas
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
is_wysiwyg => "true",
|
|
power_up => "low")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
clk => \clk~input_o\,
|
|
d => \s_count[0]~0_combout\,
|
|
devclrn => ww_devclrn,
|
|
devpor => ww_devpor,
|
|
q => s_count(0));
|
|
|
|
\Add0~0\ : cycloneive_lcell_comb
|
|
-- Equation(s):
|
|
-- \Add0~0_combout\ = s_count(0) $ (!s_count(1))
|
|
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
lut_mask => "1111000000001111",
|
|
sum_lutc_input => "datac")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
datac => s_count(0),
|
|
datad => s_count(1),
|
|
combout => \Add0~0_combout\);
|
|
|
|
\s_count[1]\ : dffeas
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
is_wysiwyg => "true",
|
|
power_up => "low")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
clk => \clk~input_o\,
|
|
d => \Add0~0_combout\,
|
|
devclrn => ww_devclrn,
|
|
devpor => ww_devpor,
|
|
q => s_count(1));
|
|
|
|
\Add0~1\ : cycloneive_lcell_comb
|
|
-- Equation(s):
|
|
-- \Add0~1_combout\ = s_count(2) $ (((!s_count(0) & !s_count(1))))
|
|
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
lut_mask => "1111110000000011",
|
|
sum_lutc_input => "datac")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
datab => s_count(0),
|
|
datac => s_count(1),
|
|
datad => s_count(2),
|
|
combout => \Add0~1_combout\);
|
|
|
|
\s_count[2]\ : dffeas
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
is_wysiwyg => "true",
|
|
power_up => "low")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
clk => \clk~input_o\,
|
|
d => \Add0~1_combout\,
|
|
devclrn => ww_devclrn,
|
|
devpor => ww_devpor,
|
|
q => s_count(2));
|
|
|
|
\Add0~2\ : cycloneive_lcell_comb
|
|
-- Equation(s):
|
|
-- \Add0~2_combout\ = s_count(3) $ (((!s_count(0) & (!s_count(1) & !s_count(2)))))
|
|
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
lut_mask => "1111111000000001",
|
|
sum_lutc_input => "datac")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
dataa => s_count(0),
|
|
datab => s_count(1),
|
|
datac => s_count(2),
|
|
datad => s_count(3),
|
|
combout => \Add0~2_combout\);
|
|
|
|
\s_count[3]\ : dffeas
|
|
-- pragma translate_off
|
|
GENERIC MAP (
|
|
is_wysiwyg => "true",
|
|
power_up => "low")
|
|
-- pragma translate_on
|
|
PORT MAP (
|
|
clk => \clk~input_o\,
|
|
d => \Add0~2_combout\,
|
|
devclrn => ww_devclrn,
|
|
devpor => ww_devpor,
|
|
q => s_count(3));
|
|
|
|
ww_count(0) <= \count[0]~output_o\;
|
|
|
|
ww_count(1) <= \count[1]~output_o\;
|
|
|
|
ww_count(2) <= \count[2]~output_o\;
|
|
|
|
ww_count(3) <= \count[3]~output_o\;
|
|
END structure;
|
|
|
|
|