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

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