source: firmware/FTM/Lightpulser_interface/single_LP.vhd@ 11696

Last change on this file since 11696 was 10847, checked in by weitzel, 14 years ago
FTM LP corrections
File size: 3.1 KB
Line 
1----------------------------------------------------------------------------------
2-- Company: ETH Zurich, Institute for Particle Physics
3-- Engineer: Patrick Vogler
4--
5-- Create Date: March 2 2010
6-- Design Name:
7-- Module Name: FTM Lightpulser interface: single lightpulser
8-- Project Name:
9-- Target Devices:
10-- Tool versions:
11-- Description: generates the signals to control a single lightpulser
12--
13-- Dependencies:
14--
15-- Revision:
16-- Revision 0.01 - File Created
17-- Additional Comments:
18--
19--
20-- modifications:
21----------------------------------------------------------------------------------
22
23library IEEE;
24use IEEE.STD_LOGIC_1164.ALL;
25use IEEE.STD_LOGIC_ARITH.ALL;
26use IEEE.STD_LOGIC_UNSIGNED.ALL;
27
28
29library ftm_definitions;
30USE ftm_definitions.ftm_array_types.all;
31USE ftm_definitions.ftm_constants.all;
32
33
34
35entity single_LP is
36 port(
37
38-- Clock
39-------------------------------------------------------------------------------
40-- clk_50 : IN STD_LOGIC; -- 50 MHz system clock
41 clk_250 : IN STD_LOGIC; -- 250 MHz system clock
42
43-- Lightpulser
44-------------------------------------------------------------------------------
45 LP_Pulse_out : out STD_LOGIC; --
46
47
48-- FPGA intern signals: Lightpulser brightness
49-------------------------------------------------------------------------------
50-- int_LP : in std_logic_vector (1 downto 0); -- Intensity Light
51
52 LP_pulse_in : in std_logic; -- trigger lightpulse
53
54 LP_delay : in std_logic_vector (15 downto 0)
55
56 );
57end single_LP;
58
59
60
61architecture Behavioral of single_LP is
62
63
64-- type TYPE_LightPulser_STATE is (IDLE, PULSE, BLOCKED);
65-- signal LightPulser_state : TYPE_LightPulser_STATE := IDLE;
66-- signal LP_Pulse_sig : std_logic;
67
68
69-- Component Declarations
70component delayed_pulse is
71 generic(pulse_width : integer range 0 to 15);
72 port(clk_250MHz : in std_logic;
73 delay : in std_logic_vector(9 downto 0);
74 input : in std_logic;
75 output : out std_logic);
76end component;
77
78
79
80
81
82
83
84begin
85
86
87
88-- pulse_witdh_LP : process(clk_50, LP_pulse_in)
89-- begin
90-- begin
91-- if rising_edge(clk_50) then
92-- case LightPulser_state is
93-- when IDLE =>
94-- LP_Pulse_sig <= '0';
95-- if LP_pulse_in = '1' then
96-- LightPulser_state <= PULSE;
97-- end if
98-- when PULSE =>
99-- LP_Pulse_sig <= '1';
100-- LightPulser_state <= BLOCKED;
101-- when BLOCKED =>
102-- LP_Pulse_sig <= '0';
103-- if LP_pulse_in = '0' then
104-- LightPulser_state <= IDLE;
105-- end if
106-- end case;
107-- end if;
108-- end process pulse_witdh_LP;
109
110
111
112inst_LP_delay: delayed_pulse
113 generic map(pulse_width => FLD_PULSE_LENGTH)
114 port map(clk_250MHz => clk_250,
115 delay => LP_delay(9 downto 0),
116 input => LP_pulse_in,
117 output => LP_Pulse_out);
118
119
120
121
122
123end Behavioral;
Note: See TracBrowser for help on using the repository browser.