[LSD] pratica05 part3 added
This commit is contained in:
parent
a3a4e3677d
commit
ba1a9ecd14
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
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) 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.
|
||||
*/
|
||||
(header "symbol" (version "1.1"))
|
||||
(symbol
|
||||
(rect 16 16 160 96)
|
||||
(text "FreqDivider" (rect 5 0 52 12)(font "Arial" ))
|
||||
(text "inst" (rect 8 64 20 76)(font "Arial" ))
|
||||
(port
|
||||
(pt 0 32)
|
||||
(input)
|
||||
(text "clkIn" (rect 0 0 17 12)(font "Arial" ))
|
||||
(text "clkIn" (rect 21 27 38 39)(font "Arial" ))
|
||||
(line (pt 0 32)(pt 16 32)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 144 32)
|
||||
(output)
|
||||
(text "clkOut" (rect 0 0 24 12)(font "Arial" ))
|
||||
(text "clkOut" (rect 99 27 123 39)(font "Arial" ))
|
||||
(line (pt 144 32)(pt 128 32)(line_width 1))
|
||||
)
|
||||
(parameter
|
||||
"divFactor"
|
||||
"10"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(drawing
|
||||
(rectangle (rect 16 16 128 64)(line_width 1))
|
||||
)
|
||||
(annotation_block (parameter)(rect 160 -64 260 16))
|
||||
)
|
|
@ -0,0 +1,33 @@
|
|||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.all;
|
||||
use IEEE.NUMERIC_STD.all;
|
||||
|
||||
entity FreqDivider is
|
||||
generic(divFactor : positive := 10);
|
||||
port
|
||||
(
|
||||
clkIn : in std_logic;
|
||||
clkOut : out std_logic
|
||||
);
|
||||
end FreqDivider;
|
||||
|
||||
architecture Behavioral of FreqDivider is
|
||||
subtype TCounter is natural range 0 to divFactor - 1;
|
||||
signal s_divCounter : TCounter := 0;
|
||||
begin
|
||||
assert(divFactor >= 2);
|
||||
process(clkIn)
|
||||
begin
|
||||
if (rising_edge(clkIn)) then
|
||||
if (s_divCounter >= (divFactor - 1)) then
|
||||
clkOut <= '0';
|
||||
s_divCounter <= 0;
|
||||
else
|
||||
if (s_divCounter = (divFactor / 2 - 1)) then
|
||||
clkOut <= '1';
|
||||
end if;
|
||||
s_divCounter <= s_divCounter + 1;
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
end Behavioral;
|
|
@ -0,0 +1,71 @@
|
|||
/*
|
||||
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) 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.
|
||||
*/
|
||||
(header "symbol" (version "1.1"))
|
||||
(symbol
|
||||
(rect 16 16 176 128)
|
||||
(text "TimerN" (rect 5 0 35 12)(font "Arial" ))
|
||||
(text "inst" (rect 8 96 20 108)(font "Arial" ))
|
||||
(port
|
||||
(pt 0 32)
|
||||
(input)
|
||||
(text "clk" (rect 0 0 10 12)(font "Arial" ))
|
||||
(text "clk" (rect 21 27 31 39)(font "Arial" ))
|
||||
(line (pt 0 32)(pt 16 32)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 48)
|
||||
(input)
|
||||
(text "enable" (rect 0 0 24 12)(font "Arial" ))
|
||||
(text "enable" (rect 21 43 45 55)(font "Arial" ))
|
||||
(line (pt 0 48)(pt 16 48)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 64)
|
||||
(input)
|
||||
(text "start" (rect 0 0 17 12)(font "Arial" ))
|
||||
(text "start" (rect 21 59 38 71)(font "Arial" ))
|
||||
(line (pt 0 64)(pt 16 64)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 0 80)
|
||||
(input)
|
||||
(text "reset" (rect 0 0 20 12)(font "Arial" ))
|
||||
(text "reset" (rect 21 75 41 87)(font "Arial" ))
|
||||
(line (pt 0 80)(pt 16 80)(line_width 1))
|
||||
)
|
||||
(port
|
||||
(pt 160 32)
|
||||
(output)
|
||||
(text "timerOut" (rect 0 0 34 12)(font "Arial" ))
|
||||
(text "timerOut" (rect 105 27 139 39)(font "Arial" ))
|
||||
(line (pt 160 32)(pt 144 32)(line_width 1))
|
||||
)
|
||||
(parameter
|
||||
"N"
|
||||
"6"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(drawing
|
||||
(rectangle (rect 16 16 144 96)(line_width 1))
|
||||
)
|
||||
(annotation_block (parameter)(rect 176 -64 276 16))
|
||||
)
|
|
@ -0,0 +1,40 @@
|
|||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.all;
|
||||
use IEEE.NUMERIC_STD.all;
|
||||
|
||||
entity TimerN is
|
||||
generic (N : positive := 6);
|
||||
port
|
||||
(
|
||||
clk : in std_logic;
|
||||
enable : in std_logic;
|
||||
start : in std_logic;
|
||||
reset : in std_logic;
|
||||
timerOut : out std_logic
|
||||
);
|
||||
end TimerN;
|
||||
|
||||
architecture Behavioral of TimerN is
|
||||
signal s_count : std_logic_vector(31 downto 0);
|
||||
begin
|
||||
process (clk)
|
||||
begin
|
||||
if (rising_edge(clk)) then
|
||||
if (reset = '0' and enable = '1') then
|
||||
if (unsigned(s_count) < N and not (unsigned(s_count) = 0 and start = '0')) then
|
||||
s_count <= std_logic_vector(unsigned(s_count) + 1);
|
||||
else
|
||||
s_count <= (others => '0');
|
||||
end if;
|
||||
elsif (reset = '1') then
|
||||
s_count <= (others => '0');
|
||||
end if;
|
||||
|
||||
if (unsigned(s_count) = 0) then
|
||||
timerOut <= '0';
|
||||
else
|
||||
timerOut <= '1';
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
end Behavioral;
|
|
@ -0,0 +1,228 @@
|
|||
/*
|
||||
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) 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.
|
||||
*/
|
||||
(header "graphic" (version "1.4"))
|
||||
(pin
|
||||
(input)
|
||||
(rect 664 304 680 472)
|
||||
(text "INPUT" (rect 0 14 10 43)(font "Arial" (font_size 6))(vertical))
|
||||
(text "SW[2]" (rect 0 133 11 163)(font "Arial" )(vertical))
|
||||
(pt 8 0)
|
||||
(drawing
|
||||
(line (pt 12 84)(pt 12 59))
|
||||
(line (pt 4 84)(pt 4 59))
|
||||
(line (pt 8 55)(pt 8 0))
|
||||
(line (pt 12 84)(pt 4 84))
|
||||
(line (pt 4 59)(pt 8 55))
|
||||
(line (pt 12 59)(pt 8 55))
|
||||
)
|
||||
(rotate90)
|
||||
(text "VCC" (rect 7 19 17 40)(font "Arial" (font_size 6))(vertical))
|
||||
(annotation_block (location)(rect 600 472 664 488))
|
||||
)
|
||||
(pin
|
||||
(input)
|
||||
(rect 648 304 664 472)
|
||||
(text "INPUT" (rect 0 14 10 43)(font "Arial" (font_size 6))(vertical))
|
||||
(text "SW[1]" (rect 0 129 13 163)(font "Intel Clear" )(vertical))
|
||||
(pt 8 0)
|
||||
(drawing
|
||||
(line (pt 12 84)(pt 12 59))
|
||||
(line (pt 4 84)(pt 4 59))
|
||||
(line (pt 8 55)(pt 8 0))
|
||||
(line (pt 12 84)(pt 4 84))
|
||||
(line (pt 4 59)(pt 8 55))
|
||||
(line (pt 12 59)(pt 8 55))
|
||||
)
|
||||
(rotate90)
|
||||
(text "VCC" (rect 7 19 17 40)(font "Arial" (font_size 6))(vertical))
|
||||
(annotation_block (location)(rect 584 472 648 488))
|
||||
)
|
||||
(pin
|
||||
(input)
|
||||
(rect 632 304 648 472)
|
||||
(text "INPUT" (rect 0 14 10 43)(font "Arial" (font_size 6))(vertical))
|
||||
(text "SW[0]" (rect 0 129 13 163)(font "Intel Clear" )(vertical))
|
||||
(pt 8 0)
|
||||
(drawing
|
||||
(line (pt 12 84)(pt 12 59))
|
||||
(line (pt 4 84)(pt 4 59))
|
||||
(line (pt 8 55)(pt 8 0))
|
||||
(line (pt 12 84)(pt 4 84))
|
||||
(line (pt 4 59)(pt 8 55))
|
||||
(line (pt 12 59)(pt 8 55))
|
||||
)
|
||||
(rotate90)
|
||||
(text "VCC" (rect 7 19 17 40)(font "Arial" (font_size 6))(vertical))
|
||||
(annotation_block (location)(rect 568 472 632 488))
|
||||
)
|
||||
(pin
|
||||
(input)
|
||||
(rect 472 256 488 424)
|
||||
(text "INPUT" (rect 0 14 10 43)(font "Arial" (font_size 6))(vertical))
|
||||
(text "CLOCK_50" (rect 0 105 11 163)(font "Arial" )(vertical))
|
||||
(pt 8 0)
|
||||
(drawing
|
||||
(line (pt 12 84)(pt 12 59))
|
||||
(line (pt 4 84)(pt 4 59))
|
||||
(line (pt 8 55)(pt 8 0))
|
||||
(line (pt 12 84)(pt 4 84))
|
||||
(line (pt 4 59)(pt 8 55))
|
||||
(line (pt 12 59)(pt 8 55))
|
||||
)
|
||||
(rotate90)
|
||||
(text "VCC" (rect 7 19 17 40)(font "Arial" (font_size 6))(vertical))
|
||||
(annotation_block (location)(rect 416 424 472 440))
|
||||
)
|
||||
(pin
|
||||
(output)
|
||||
(rect 848 240 1024 256)
|
||||
(text "OUTPUT" (rect 1 0 41 10)(font "Arial" (font_size 6)))
|
||||
(text "LEDR[0]" (rect 90 0 132 11)(font "Arial" ))
|
||||
(pt 0 8)
|
||||
(drawing
|
||||
(line (pt 0 8)(pt 52 8))
|
||||
(line (pt 52 4)(pt 78 4))
|
||||
(line (pt 52 12)(pt 78 12))
|
||||
(line (pt 52 12)(pt 52 4))
|
||||
(line (pt 78 4)(pt 82 8))
|
||||
(line (pt 82 8)(pt 78 12))
|
||||
(line (pt 78 12)(pt 82 8))
|
||||
)
|
||||
(annotation_block (location)(rect 1024 256 1088 272))
|
||||
)
|
||||
(symbol
|
||||
(rect 680 216 840 328)
|
||||
(text "TimerN" (rect 5 0 41 11)(font "Arial" ))
|
||||
(text "inst1" (rect 8 96 32 109)(font "Intel Clear" ))
|
||||
(port
|
||||
(pt 0 32)
|
||||
(input)
|
||||
(text "clk" (rect 0 0 15 11)(font "Arial" ))
|
||||
(text "clk" (rect 21 27 36 38)(font "Arial" ))
|
||||
(line (pt 0 32)(pt 16 32))
|
||||
)
|
||||
(port
|
||||
(pt 0 48)
|
||||
(input)
|
||||
(text "enable" (rect 0 0 34 11)(font "Arial" ))
|
||||
(text "enable" (rect 21 43 55 54)(font "Arial" ))
|
||||
(line (pt 0 48)(pt 16 48))
|
||||
)
|
||||
(port
|
||||
(pt 0 64)
|
||||
(input)
|
||||
(text "start" (rect 0 0 23 11)(font "Arial" ))
|
||||
(text "start" (rect 21 59 44 70)(font "Arial" ))
|
||||
(line (pt 0 64)(pt 16 64))
|
||||
)
|
||||
(port
|
||||
(pt 0 80)
|
||||
(input)
|
||||
(text "reset" (rect 0 0 25 11)(font "Arial" ))
|
||||
(text "reset" (rect 21 75 46 86)(font "Arial" ))
|
||||
(line (pt 0 80)(pt 16 80))
|
||||
)
|
||||
(port
|
||||
(pt 160 32)
|
||||
(output)
|
||||
(text "timerOut" (rect 0 0 43 11)(font "Arial" ))
|
||||
(text "timerOut" (rect 103 27 146 38)(font "Arial" ))
|
||||
(line (pt 160 32)(pt 144 32))
|
||||
)
|
||||
(parameter
|
||||
"N"
|
||||
"6"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(drawing
|
||||
(rectangle (rect 16 16 144 96))
|
||||
)
|
||||
(annotation_block (parameter)(rect 840 184 1016 216))
|
||||
)
|
||||
(symbol
|
||||
(rect 488 216 632 296)
|
||||
(text "FreqDivider" (rect 5 0 64 11)(font "Arial" ))
|
||||
(text "inst" (rect 8 64 26 75)(font "Arial" ))
|
||||
(port
|
||||
(pt 0 32)
|
||||
(input)
|
||||
(text "clkIn" (rect 0 0 24 11)(font "Arial" ))
|
||||
(text "clkIn" (rect 21 27 45 38)(font "Arial" ))
|
||||
(line (pt 0 32)(pt 16 32))
|
||||
)
|
||||
(port
|
||||
(pt 144 32)
|
||||
(output)
|
||||
(text "clkOut" (rect 0 0 33 11)(font "Arial" ))
|
||||
(text "clkOut" (rect 96 27 129 38)(font "Arial" ))
|
||||
(line (pt 144 32)(pt 128 32))
|
||||
)
|
||||
(parameter
|
||||
"divFactor"
|
||||
"50000000"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(drawing
|
||||
(rectangle (rect 16 16 128 64))
|
||||
)
|
||||
(annotation_block (parameter)(rect 632 184 826 214))
|
||||
)
|
||||
(connector
|
||||
(pt 672 296)
|
||||
(pt 672 304)
|
||||
)
|
||||
(connector
|
||||
(pt 680 296)
|
||||
(pt 672 296)
|
||||
)
|
||||
(connector
|
||||
(pt 656 304)
|
||||
(pt 656 280)
|
||||
)
|
||||
(connector
|
||||
(pt 656 280)
|
||||
(pt 680 280)
|
||||
)
|
||||
(connector
|
||||
(pt 680 264)
|
||||
(pt 640 264)
|
||||
)
|
||||
(connector
|
||||
(pt 640 264)
|
||||
(pt 640 304)
|
||||
)
|
||||
(connector
|
||||
(pt 680 248)
|
||||
(pt 632 248)
|
||||
)
|
||||
(connector
|
||||
(pt 488 248)
|
||||
(pt 480 248)
|
||||
)
|
||||
(connector
|
||||
(pt 480 248)
|
||||
(pt 480 256)
|
||||
)
|
||||
(connector
|
||||
(pt 848 248)
|
||||
(pt 840 248)
|
||||
)
|
Binary file not shown.
Loading…
Reference in New Issue