View difference between Paste ID: wdRr0LeK and s5aBLMVd
SHOW: | | - or go back to the newest paste.
1
-------------------------------------------
2
-- KHBO Dept.IW&T
3
-- DS2 Ontdendercode
4
-- Maxim Lambert
5
-------------------------------------------
6
7
library IEEE;
8
use IEEE.STD_LOGIC_1164.ALL;
9
use ieee.numeric_std.all;
10
11
12
entity ontdenderCircuit is
13
	port	( knop : in STD_LOGIC;
14-
		  clock: in STD_LOGIC
14+
		  clock: in STD_LOGIC;
15
		uitgang: out STD_LOGIC
16
		);
17
end ontdenderCircuit;
18
19
20
architecture Behavioral of ontdenderCircuit is
21
begin
22
23-
	signal uitgang : std_logic;
23+
24
25
	ontdenderen: process(clock, knop)
26
		variable counter : INTEGER range 0 to 1000000;
27
	begin
28
	
29
	        	-- Knop gedrukt? begin met ontdenderen!
30
	        	if rising_edge(clock) then
31
	        	        if (knop = '1') then
32
	        	                ontdenderen <= '1';
33
				end if;
34
	        	end if;
35
		
36
		
37
			-- Terug op oorspronkelijke waarde plaatsen
38
		        if (counter = "0") then
39
		                counter := 1000000;
40
		                ontdenderen <= '0';
41
		                uitgang <= '0';
42
		        end if;
43
		
44
		
45
		        -- Aantal keren aftellen en signaal hoog zetten/houden
46
		        if (ontdenderen = '1') then
47
		                counter := counter - 1;
48
		                uitgang <= '1';
49
		        end if;
50
	 
51
	
52
		-- Bovenstaande if's van plaats verwisselen zorgt ervoor dat niet telkens
53
		-- na 100000 clock pulsen uitgang 1 clockpuls op "0" komt wanneer de knop hoog blijft.
54
	
55
		-- Het "nadeel" nu is dat mogelijk 1 clockpuls later de uitgang op 1 komt,
56
		-- daar gecontrolleerd wordt op ontdenderen, die pas NA de cyclus te doorlopen hoog komt
57
		-- en dus de laatste if niet triggert. Dit is echter te verwaarlozen.
58
		
59
		-- Als maar 20ns op de knop gedrukt wordt zal de uitgang ook nooit hoog komen,
60
		-- de kans op die situatie is nihil en wordt dus ook verwaarloost.
61
	
62
	        
63
	end process;
64
65
end Behavioral;