summaryrefslogtreecommitdiff
path: root/pb_logique_seq.srcs/sources_1/imports/new/strb_gen_v3.vhd
blob: 49d6e562c45c2552f56588ad7f0bffbafc044070 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---------------------------------------------------------------------------------------------
--	str_gen_v3_v3.vhd 
---------------------------------------------------------------------------------------------
--	Generation d'horloge et de signaux de synchronisation
---------------------------------------------------------------------------------------------
--	Université de Sherbrooke - Département de GEGI
--	
--	Version 		: 3.0						révision de la nomenclature
--	Nomenclature	: ref GRAMS
--	Date			: 26 mai 2016, 19 juillet 2016, 31 août 2018, 11 septembre 2018, 31 octobre 2018
--	Auteur(s)		: Daniel Dalle
--  Technologie     : ZYNQ 7000 PYNQ-Z1 (xc7z020clg400-1) antérieurement sur Artix 7 ( xc7a35tcpg236-1 ) 
--  Outils          : vivado 2018.2 64 bits
--	
--------------------------------
--	Description
--------------------------------
-- Génération de signaux de synchronisation, incluant des "strobes"
-- 11 septembre 2018: élimination des horloges internes pour réduire le nombre d signaux d'horloges
--------------------------------
--	À FAIRE:
--------------------------------
--
--
---------------------------------------------------------------------------------------------

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity strb_gen is

    Port ( 
           CLK      : in STD_LOGIC;    -- Entrée  horloge maitre 
           i_don    : in  STD_LOGIC;   -- signal pour generer strobe au front montant          
           o_stb    : out  STD_LOGIC   -- strobe synchrone 
           );    
                  
end strb_gen;

architecture Behavioral of strb_gen is

 signal qstrobe : std_logic := '0';
 signal q_don : std_logic:= '0';

begin

process(CLK, i_don)   -- bascule synchro de l entree
begin
	if(CLK'event and CLK = '1') then
		q_don <= i_don;
	end if;
end process;

process(i_don, q_don)   -- sortie impulsion synchrone
begin
		o_stb <= i_don and not(q_don);
end process;

-- autres version pour synchroniser l'entree si necessaire
--process(CLK, i_don)   -- bascule second niveau
--begin
--	if(CLK'event and CLK = '1') then
--		qq_don <= q_don;
--	end if;
--end process;

--process(i_don, q_don, qq_don)   -- sortie impulsion synchrone
--begin
--		qstrobe <= q_don and not(qq_don);
--end process;

end Behavioral;