source: firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board_struct.vhd @ 10172

Last change on this file since 10172 was 10172, checked in by neise, 9 years ago
still unstable
File size: 11.3 KB
Line 
1-- VHDL Entity FACT_FAD_lib.FAD_Board.symbol
2--
3-- Created:
4--          by - dneise.UNKNOWN (E5B-LABOR6)
5--          at - 14:09:41 23.02.2011
6--
7-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
8--
9LIBRARY ieee;
10USE ieee.std_logic_1164.all;
11USE ieee.std_logic_arith.all;
12
13ENTITY FAD_Board IS
14   PORT( 
15      A0_D       : IN     std_logic_vector (11 DOWNTO 0);
16      A1_D       : IN     std_logic_vector (11 DOWNTO 0);
17      A2_D       : IN     std_logic_vector (11 DOWNTO 0);
18      A3_D       : IN     std_logic_vector (11 DOWNTO 0);
19      A_OTR      : IN     std_logic_vector (3 DOWNTO 0);
20      D0_SROUT   : IN     std_logic;
21      D1_SROUT   : IN     std_logic;
22      D2_SROUT   : IN     std_logic;
23      D3_SROUT   : IN     std_logic;
24      D_PLLLCK   : IN     std_logic_vector (3 DOWNTO 0);
25      D_T_in     : IN     std_logic_vector (1 DOWNTO 0);
26      LINE       : IN     std_logic_vector ( 5 DOWNTO 0 );
27      REFCLK     : IN     std_logic;
28      RS485_C_DI : IN     std_logic;
29      RS485_E_DI : IN     std_logic;
30      TRG        : IN     STD_LOGIC;
31      W_INT      : IN     std_logic;
32      X_50M      : IN     STD_LOGIC;
33      A0_T       : OUT    std_logic_vector (7 DOWNTO 0) := (others => '0');
34      A1_T       : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
35      AMBER_LED  : OUT    std_logic;
36      A_CLK      : OUT    std_logic_vector (3 DOWNTO 0);
37      DAC_CS     : OUT    std_logic;
38      DENABLE    : OUT    std_logic                     := '0';
39      DSRCLK     : OUT    std_logic_vector (3 DOWNTO 0) := (others => '0');
40      DWRITE     : OUT    std_logic                     := '0';
41      D_A        : OUT    std_logic_vector (3 DOWNTO 0) := (others => '0');
42      D_T        : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
43      D_T2       : OUT    std_logic_vector (1 DOWNTO 0) := (others => '0');
44      EE_CS      : OUT    std_logic;
45      GREEN_LED  : OUT    std_logic;
46      MOSI       : OUT    std_logic                     := '0';
47      OE_ADC     : OUT    STD_LOGIC;
48      RED_LED    : OUT    std_logic;
49      RS485_C_DE : OUT    std_logic;
50      RS485_C_DO : OUT    std_logic;
51      RS485_C_RE : OUT    std_logic;
52      RS485_E_DE : OUT    std_logic;
53      RS485_E_DO : OUT    std_logic;
54      RS485_E_RE : OUT    std_logic;
55      RSRLOAD    : OUT    std_logic                     := '0';
56      SRIN       : OUT    std_logic                     := '0';
57      S_CLK      : OUT    std_logic;
58      TCS        : OUT    std_logic_vector (3 DOWNTO 0);
59      TRG_V      : OUT    std_logic;
60      W_A        : OUT    std_logic_vector (9 DOWNTO 0);
61      W_CS       : OUT    std_logic                     := '1';
62      W_RD       : OUT    std_logic                     := '1';
63      W_RES      : OUT    std_logic                     := '1';
64      W_WR       : OUT    std_logic                     := '1';
65      MISO       : INOUT  std_logic;
66      W_D        : INOUT  std_logic_vector (15 DOWNTO 0)
67   );
68
69-- Declarations
70
71END FAD_Board ;
72
73--
74-- VHDL Architecture FACT_FAD_lib.FAD_Board.struct
75--
76-- Created:
77--          by - dneise.UNKNOWN (E5B-LABOR6)
78--          at - 14:09:41 23.02.2011
79--
80-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
81--
82LIBRARY ieee;
83USE ieee.std_logic_1164.all;
84USE ieee.std_logic_arith.all;
85USE IEEE.NUMERIC_STD.all;
86USE ieee.std_logic_unsigned.all;
87
88LIBRARY FACT_FAD_lib;
89USE FACT_FAD_lib.fad_definitions.all;
90
91LIBRARY FACT_FAD_lib;
92
93ARCHITECTURE struct OF FAD_Board IS
94
95   -- Architecture declarations
96
97   -- Internal signal declarations
98   SIGNAL CLK_25_PS             : std_logic;
99   SIGNAL CLK_25_PS1            : std_logic;
100   SIGNAL CLK_50                : std_logic;
101   SIGNAL SRCLK                 : std_logic                     := '0';
102   SIGNAL adc_clk_en            : std_logic                     := '0';
103   SIGNAL adc_data_array        : adc_data_array_type;
104   SIGNAL alarm_refclk_too_high : std_logic                     := '0';
105   SIGNAL alarm_refclk_too_low  : std_logic                     := '0';
106   SIGNAL board_id              : std_logic_vector(3 DOWNTO 0);
107   SIGNAL counter_result        : std_logic_vector(11 DOWNTO 0) := (others => '0');
108   SIGNAL crate_id              : std_logic_vector(1 DOWNTO 0);
109   SIGNAL led                   : std_logic_vector(7 DOWNTO 0)  := (OTHERS => '0');
110
111
112   -- Component Declarations
113   COMPONENT FAD_main
114   GENERIC (
115      RAMADDRWIDTH64b : integer := 12
116   );
117   PORT (
118      CLK                    : IN     std_logic ;
119      D_T_in                 : IN     std_logic_vector (1 DOWNTO 0);
120      SROUT_in_0             : IN     std_logic ;
121      SROUT_in_1             : IN     std_logic ;
122      SROUT_in_2             : IN     std_logic ;
123      SROUT_in_3             : IN     std_logic ;
124      adc_data_array         : IN     adc_data_array_type ;
125      adc_otr_array          : IN     std_logic_vector (3 DOWNTO 0);
126      board_id               : IN     std_logic_vector (3 DOWNTO 0);
127      crate_id               : IN     std_logic_vector (1 DOWNTO 0);
128      drs_refclk_in          : IN     std_logic ;                                     -- used TO check if DRS REFCLK exsists, if not DENABLE inhibit
129      plllock_in             : IN     std_logic_vector (3 DOWNTO 0);                  -- high level, if dominowave is running and DRS PLL locked
130      trigger                : IN     std_logic ;
131      wiz_int                : IN     std_logic ;
132      CLK_25_PS              : OUT    std_logic ;
133      CLK_50                 : OUT    std_logic ;
134      RSRLOAD                : OUT    std_logic                     := '0';
135      SRCLK                  : OUT    std_logic                     := '0';
136      SRIN_out               : OUT    std_logic                     := '0';
137      adc_clk_en             : OUT    std_logic                     := '0';
138      adc_oeb                : OUT    std_logic                     := '1';
139      additional_flasher_out : OUT    std_logic ;
140      alarm_refclk_too_high  : OUT    std_logic ;
141      alarm_refclk_too_low   : OUT    std_logic ;
142      amber                  : OUT    std_logic ;
143      counter_result         : OUT    std_logic_vector (11 DOWNTO 0);
144      dac_cs                 : OUT    std_logic ;
145      denable                : OUT    std_logic                     := '0';           -- default domino wave off
146      drs_channel_id         : OUT    std_logic_vector (3 DOWNTO 0) := (others => '0');
147      drs_dwrite             : OUT    std_logic                     := '1';
148      green                  : OUT    std_logic ;
149      led                    : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
150      mosi                   : OUT    std_logic                     := '0';
151      red                    : OUT    std_logic ;
152      sclk                   : OUT    std_logic ;
153      sensor_cs              : OUT    std_logic_vector (3 DOWNTO 0);
154      wiz_addr               : OUT    std_logic_vector (9 DOWNTO 0);
155      wiz_cs                 : OUT    std_logic                     := '1';
156      wiz_rd                 : OUT    std_logic                     := '1';
157      wiz_reset              : OUT    std_logic                     := '1';
158      wiz_wr                 : OUT    std_logic                     := '1';
159      sio                    : INOUT  std_logic ;
160      wiz_data               : INOUT  std_logic_vector (15 DOWNTO 0)
161   );
162   END COMPONENT;
163
164   -- Optional embedded configurations
165   -- pragma synthesis_off
166   FOR ALL : FAD_main USE ENTITY FACT_FAD_lib.FAD_main;
167   -- pragma synthesis_on
168
169
170BEGIN
171   -- Architecture concurrent statements
172   -- HDL Embedded Text Block 1 SRCLK
173   DSRCLK <= ( SRCLK, SRCLK,SRCLK,SRCLK);
174
175   -- HDL Embedded Text Block 2 ADC_CLK
176   A_CLK <= (CLK_25_PS, CLK_25_PS, CLK_25_PS, CLK_25_PS);
177
178   -- HDL Embedded Text Block 3 ADC_DATA
179   adc_data_array <= ( A0_D, A1_D, A2_D, A3_D );
180
181   -- HDL Embedded Text Block 4 eb_ID
182   -- hard-wired IDs
183   board_id <= LINE(5 downto 2);
184   crate_id <= LINE(1 downto 0);
185
186   -- HDL Embedded Text Block 9 eb3
187   -- testpins D_T2 are used as MAX3485 outputs.
188   
189   --D_T <= (others => '0');
190   --D_T2 <= ( others => '0' );
191   -- A0_T(7 downto 0) <= (others => '0');
192   --A1_T(7 downto 0) <= (others => '0');
193   
194   A1_T <= counter_result ( 7 downto 0);
195   D_T(3 downto 0) <=  counter_result ( 11 downto 8);
196   D_T(4) <= alarm_refclk_too_low;
197   D_T(5) <= alarm_refclk_too_high;
198   D_T(6) <= '0';
199   D_T(7) <= '0';
200   
201   -- led output is driven by w5300 modul
202   -- for debugging only.
203   A0_T <= led;
204   
205   -- MAX3485 for FTM trigger ID is switched into receive mode
206   RS485_E_RE <= '0';
207   RS485_E_DE <= '0';
208   -- in receive mode, the DI input of this MAX is in 'don't care' state
209   RS485_E_DO <= '0';
210   -- the receive pin is fed out as well
211   D_T2(1) <= RS485_E_DI; 
212   
213   -- additional MAX3485 is switched to shutdown mode
214   RS485_C_RE <= '1';  --inverted logic
215   RS485_C_DE <= '0';   
216   RS485_C_DO <= '0';
217   -- MAX3485 receiver out pit is fed out... should be HIGH-Z
218   D_T2(0) <= RS485_C_DI; 
219   
220   -- EEPROM is not used on FAD. CS is always high.
221   EE_CS <= '1';
222
223
224   -- ModuleWare code(v1.9) for instance 'I0' of 'and'
225   CLK_25_PS <= adc_clk_en AND CLK_25_PS1;
226
227   -- Instance port mappings.
228   I_board_main : FAD_main
229      GENERIC MAP (
230         RAMADDRWIDTH64b => LOG2_OF_RAM_SIZE_64B
231      )
232      PORT MAP (
233         CLK                    => X_50M,
234         D_T_in                 => D_T_in,
235         SROUT_in_0             => D0_SROUT,
236         SROUT_in_1             => D1_SROUT,
237         SROUT_in_2             => D2_SROUT,
238         SROUT_in_3             => D3_SROUT,
239         adc_data_array         => adc_data_array,
240         adc_otr_array          => A_OTR,
241         board_id               => board_id,
242         crate_id               => crate_id,
243         drs_refclk_in          => REFCLK,
244         plllock_in             => D_PLLLCK,
245         trigger                => TRG,
246         wiz_int                => W_INT,
247         CLK_25_PS              => CLK_25_PS1,
248         CLK_50                 => CLK_50,
249         RSRLOAD                => RSRLOAD,
250         SRCLK                  => SRCLK,
251         SRIN_out               => SRIN,
252         adc_clk_en             => adc_clk_en,
253         adc_oeb                => OE_ADC,
254         additional_flasher_out => TRG_V,
255         alarm_refclk_too_high  => alarm_refclk_too_high,
256         alarm_refclk_too_low   => alarm_refclk_too_low,
257         amber                  => AMBER_LED,
258         counter_result         => counter_result,
259         dac_cs                 => DAC_CS,
260         denable                => DENABLE,
261         drs_channel_id         => D_A,
262         drs_dwrite             => DWRITE,
263         green                  => RED_LED,
264         led                    => led,
265         mosi                   => MOSI,
266         red                    => GREEN_LED,
267         sclk                   => S_CLK,
268         sensor_cs              => TCS,
269         wiz_addr               => W_A,
270         wiz_cs                 => W_CS,
271         wiz_rd                 => W_RD,
272         wiz_reset              => W_RES,
273         wiz_wr                 => W_WR,
274         sio                    => MISO,
275         wiz_data               => W_D
276      );
277
278END struct;
Note: See TracBrowser for help on using the repository browser.