source: firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_main_struct.vhd @ 11173

Last change on this file since 11173 was 11173, checked in by neise, 8 years ago
this is v0206 --- v0205 had a bug: when sending 'enable busy' this was not even parsed in firmware. now enable/disable busy is being parsed. NEW BASE PORT = 31919 (this ist 0x7CAF :-)
File size: 49.9 KB
Line 
1-- VHDL Entity FACT_FAD_lib.FAD_main.symbol
2--
3-- Created:
4--          by - daqct3.UNKNOWN (IHP110)
5--          at - 15:01:18 24.06.2011
6--
7-- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
8--
9LIBRARY ieee;
10USE ieee.std_logic_1164.all;
11USE ieee.std_logic_arith.all;
12LIBRARY FACT_FAD_lib;
13USE FACT_FAD_lib.fad_definitions.all;
14
15ENTITY FAD_main IS
16   GENERIC( 
17      RAMADDRWIDTH64b : integer := 12
18   );
19   PORT( 
20      CLK                   : IN     std_logic;
21      D_T_in                : IN     std_logic_vector (1 DOWNTO 0);
22      FTM_RS485_rx_d        : IN     std_logic;
23      SROUT_in_0            : IN     std_logic;
24      SROUT_in_1            : IN     std_logic;
25      SROUT_in_2            : IN     std_logic;
26      SROUT_in_3            : IN     std_logic;
27      adc_data_array        : IN     adc_data_array_type;
28      adc_otr_array         : IN     std_logic_vector (3 DOWNTO 0);
29      board_id              : IN     std_logic_vector (3 DOWNTO 0);
30      crate_id              : IN     std_logic_vector (1 DOWNTO 0);
31      drs_refclk_in         : IN     std_logic;                                         -- used to check if DRS REFCLK exsists, if not DENABLE inhibit
32      plllock_in            : IN     std_logic_vector (3 DOWNTO 0);                     -- high level, if dominowave is running and DRS PLL locked
33      trigger               : IN     std_logic;
34      wiz_int               : IN     std_logic;
35      ADC_CLK               : OUT    std_logic;
36      CLK_25_PS             : OUT    std_logic;
37      CLK_50                : OUT    std_logic;
38      -- for debugging
39      DG_state              : OUT    std_logic_vector (7 DOWNTO 0);
40      FTM_RS485_rx_en       : OUT    std_logic;
41      FTM_RS485_tx_d        : OUT    std_logic;
42      FTM_RS485_tx_en       : OUT    std_logic;
43      RSRLOAD               : OUT    std_logic                     := '0';
44      SRCLK                 : OUT    std_logic                     := '0';
45      SRIN_out              : OUT    std_logic                     := '0';
46      adc_oeb               : OUT    std_logic                     := '1';
47      alarm_refclk_too_high : OUT    std_logic;
48      alarm_refclk_too_low  : OUT    std_logic;
49      amber                 : OUT    std_logic;
50      counter_result        : OUT    std_logic_vector (11 DOWNTO 0);
51      dac_cs                : OUT    std_logic;
52      debug_data_ram_empty  : OUT    std_logic;
53      debug_data_valid      : OUT    std_logic;
54      denable               : OUT    std_logic                     := '0';              -- default domino wave off
55      drs_channel_id        : OUT    std_logic_vector (3 DOWNTO 0) := (others => '0');
56      drs_dwrite            : OUT    std_logic                     := '1';
57      green                 : OUT    std_logic;
58      led                   : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
59      mem_manager_state     : OUT    std_logic_vector (3 DOWNTO 0);                     -- state is encoded here ... useful for debugging.
60      mosi                  : OUT    std_logic                     := '0';
61      red                   : OUT    std_logic;
62      sclk                  : OUT    std_logic;
63      sensor_cs             : OUT    std_logic_vector (3 DOWNTO 0);
64      socket_tx_free_out    : OUT    std_logic_vector (16 DOWNTO 0);                    -- 17bit value .. that's true
65      trigger_veto          : OUT    std_logic                     := '1';
66      w5300_state           : OUT    std_logic_vector (7 DOWNTO 0);                     -- state is encoded here ... useful for debugging.
67      wiz_addr              : OUT    std_logic_vector (9 DOWNTO 0);
68      wiz_cs                : OUT    std_logic                     := '1';
69      wiz_rd                : OUT    std_logic                     := '1';
70      wiz_reset             : OUT    std_logic                     := '1';
71      wiz_wr                : OUT    std_logic                     := '1';
72      sio                   : INOUT  std_logic;
73      wiz_data              : INOUT  std_logic_vector (15 DOWNTO 0)
74   );
75
76-- Declarations
77
78END FAD_main ;
79
80--
81-- VHDL Architecture FACT_FAD_lib.FAD_main.struct
82--
83-- Created:
84--          by - daqct3.UNKNOWN (IHP110)
85--          at - 15:01:19 24.06.2011
86--
87-- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
88--
89library ieee;
90use ieee.std_logic_1164.all;
91use IEEE.STD_LOGIC_ARITH.all;
92use ieee.STD_LOGIC_UNSIGNED.all;
93
94library fact_fad_lib;
95use fact_fad_lib.fad_definitions.all;
96
97library UNISIM;
98--use UNISIM.VComponents.all;
99USE IEEE.NUMERIC_STD.all;
100USE IEEE.std_logic_signed.all;
101USE fact_fad_lib.fad_rs485_constants.all;
102LIBRARY hds_package_library;
103USE hds_package_library.random_generators.all;
104
105LIBRARY FACT_FAD_lib;
106
107ARCHITECTURE struct OF FAD_main IS
108
109   -- Architecture declarations
110
111   -- Internal signal declarations
112   SIGNAL CLK_25                       : std_logic;
113   SIGNAL DCM_PS_status                : std_logic_vector(7 DOWNTO 0)                 := (OTHERS => '0');
114   SIGNAL DCM_locked_status            : std_logic;
115   SIGNAL DCM_ready_status             : std_logic;
116   --
117
118-- EVT HEADER - part 2  --> FTM trigger informaton, comes in late ...
119-- during EVT header wrinting, this field is left out ... and only written into event header,
120-- when the DRS chip were read out already.
121   SIGNAL FTM_RS485_ready              : std_logic;
122   SIGNAL I_really_want_dwrite         : STD_LOGIC;
123   SIGNAL SRCLK1                       : std_logic                                    := '0';
124   SIGNAL adc_clk_en                   : std_logic;
125   SIGNAL adc_data_array_int           : adc_data_array_type;
126   SIGNAL adc_otr                      : std_logic_vector(3 DOWNTO 0);
127   SIGNAL addr_out                     : std_logic_vector(RAMADDRWIDTH64b-1 DOWNTO 0);
128   SIGNAL busy_enable                  : std_logic                                    := '1';
129   SIGNAL c_trigger_enable             : std_logic                                    := '0';
130   SIGNAL c_trigger_mult               : std_logic_vector(15 DOWNTO 0);
131   SIGNAL cont_trigger                 : std_logic;
132   SIGNAL current_dac_array            : dac_array_type                               := ( others => 0);
133   SIGNAL dac_setting                  : dac_array_type                               := DEFAULT_DAC;        --<<-- default defined in fad_definitions.vhd
134   SIGNAL data_out                     : std_logic_vector(63 DOWNTO 0);
135   SIGNAL data_ram_empty               : std_logic;
136   SIGNAL data_valid_ack               : std_logic                                    := '0';
137   SIGNAL denable_prim                 : std_logic                                    := '0';                -- default domino wave off
138   SIGNAL denable_sig                  : std_logic                                    := '0';                -- default domino wave off
139   SIGNAL dg_config_done               : std_logic;
140   SIGNAL dg_start_config              : std_logic                                    := '0';
141   SIGNAL din1                         : std_logic                                    := '0';                -- default domino wave off
142   SIGNAL dna                          : STD_LOGIC_VECTOR(63 DOWNTO 0)                := (others => '0');
143   SIGNAL dout                         : STD_LOGIC;
144   SIGNAL dout0                        : STD_LOGIC;
145   SIGNAL dout1                        : STD_LOGIC;
146   SIGNAL dout2                        : STD_LOGIC;
147   SIGNAL dout3                        : STD_LOGIC;
148   SIGNAL dout4                        : STD_LOGIC;
149   SIGNAL dout5                        : std_logic;
150   SIGNAL dout6                        : std_logic;
151   SIGNAL dout7                        : std_logic;
152   SIGNAL drs_clk_en                   : std_logic                                    := '0';
153   SIGNAL drs_read_s_cell              : std_logic                                    := '0';
154   SIGNAL drs_read_s_cell_ready        : std_logic;
155   -- --
156--      drs_dwrite : out std_logic := '1';
157   SIGNAL drs_readout_ready            : std_logic                                    := '0';
158   SIGNAL drs_readout_ready_ack        : std_logic;
159   SIGNAL drs_readout_started          : std_logic;
160   SIGNAL drs_s_cell_array             : drs_s_cell_array_type;
161   SIGNAL drs_srin_data                : std_logic_vector(7 DOWNTO 0)                 := (others => '0');
162   SIGNAL dwrite_enable_w5300          : std_logic                                    := '1';
163   SIGNAL dwrite_global_enable         : std_logic                                    := '1';
164   SIGNAL dwrite_trigger_manager       : std_logic                                    := '1';
165   SIGNAL enable_i                     : std_logic;
166   SIGNAL enabled_trigger_or_s_trigger : std_logic;
167   SIGNAL is_idle                      : std_logic;
168   SIGNAL memory_manager_config_start  : std_logic                                    := '0';
169   SIGNAL memory_manager_config_valid  : std_logic;
170   SIGNAL package_length               : std_logic_vector(15 DOWNTO 0);
171   SIGNAL ps_direction                 : std_logic                                    := '1';                -- default phase shift upwards
172   SIGNAL ps_do_phase_shift            : std_logic                                    := '0';                --pulse this to phase shift once
173   SIGNAL ps_reset                     : std_logic                                    := '0';                -- pulse this to reset the variable phase shift
174   SIGNAL ram_addr                     : std_logic_vector(RAMADDRWIDTH64b+1 DOWNTO 0);
175   SIGNAL ram_data                     : std_logic_vector(15 DOWNTO 0);
176   SIGNAL ram_start_addr               : std_logic_vector(RAMADDRWIDTH64b-1 DOWNTO 0);
177   SIGNAL ram_write_ea                 : std_logic;
178   SIGNAL ram_write_ready              : std_logic                                    := '0';
179   SIGNAL ready                        : STD_LOGIC                                    := '0';
180   SIGNAL rec_timeout_occured          : std_logic                                    := '0';
181   SIGNAL reset_synch_i                : std_logic;
182   SIGNAL reset_trigger_id             : std_logic                                    := '0';
183   SIGNAL roi_max                      : roi_max_type;
184   SIGNAL roi_setting                  : roi_array_type;
185   SIGNAL rs465_data                   : std_logic_vector(55 DOWNTO 0);                                      --7 byte
186   -- EVT HEADER - part 6
187   SIGNAL runnumber                    : std_logic_vector(31 DOWNTO 0);
188   SIGNAL s_trigger                    : std_logic;
189   SIGNAL sclk_enable                  : std_logic;
190   SIGNAL sensor_array                 : sensor_array_type;
191   SIGNAL sensor_ready                 : std_logic;
192   SIGNAL socket_send_mode             : std_logic;
193   SIGNAL socks_connected              : std_logic;
194   SIGNAL socks_waiting                : std_logic;
195   SIGNAL software_trigger_in          : std_logic;
196   SIGNAL spi_interface_config_start   : std_logic                                    := '0';
197   SIGNAL spi_interface_config_valid   : std_logic;
198   SIGNAL srclk_enable                 : std_logic                                    := '0';
199   SIGNAL srin_write_ack               : std_logic                                    := '0';
200   SIGNAL srin_write_ready             : std_logic                                    := '0';
201   SIGNAL start_srin_write_8b          : std_logic;
202   SIGNAL time                         : std_logic_vector(31 DOWNTO 0);
203   SIGNAL trig_veto                    : std_logic;
204   SIGNAL trigger_enable               : std_logic;
205   SIGNAL trigger_id                   : std_logic_vector(31 DOWNTO 0);
206   SIGNAL trigger_or_s_trigger         : std_logic;
207   SIGNAL trigger_out                  : std_logic;
208   SIGNAL trigger_veto1                : std_logic                                    := '1';
209   SIGNAL wiz_number_of_channels       : std_logic_vector(3 DOWNTO 0)                 := (others => '0');
210   SIGNAL wiz_ram_start_addr           : std_logic_vector(RAMADDRWIDTH64b+1 DOWNTO 0) := (others => '0');
211   SIGNAL wiz_reset_sig                : std_logic                                    := '1';
212   SIGNAL wiz_write_ea                 : std_logic                                    := '0';
213   SIGNAL wiz_write_end                : std_logic                                    := '0';
214   SIGNAL wiz_write_header             : std_logic                                    := '0';
215   SIGNAL wiz_write_length             : std_logic_vector(16 DOWNTO 0)                := (others => '0');
216   SIGNAL write_ea                     : std_logic_vector(0 DOWNTO 0)                 := "0";
217
218   -- Implicit buffer signal declarations
219   SIGNAL CLK_25_PS_internal             : std_logic;
220   SIGNAL CLK_50_internal                : std_logic;
221   SIGNAL alarm_refclk_too_high_internal : std_logic;
222   SIGNAL alarm_refclk_too_low_internal  : std_logic;
223   SIGNAL counter_result_internal        : std_logic_vector (11 DOWNTO 0);
224
225
226   -- ModuleWare signal declarations(v1.9) for instance 'U_0' of 'split'
227   SIGNAL mw_U_0temp_din : std_logic_vector(3 DOWNTO 0);
228
229   -- Component Declarations
230   COMPONENT FAD_rs485_receiver
231   GENERIC (
232      -- defined in fad_rs485_definitions.fad_rs485_constants
233      RX_BYTES : integer := RS485_MESSAGE_LEN_BYTES;         -- no. of bytes to receive
234      RX_WIDTH : integer := RS485_MESSAGE_LEN_BYTES * 8      -- no. of bits to receive
235   );
236   PORT (
237      rec_clk             : IN     std_logic;
238      rec_start           : IN     std_logic;
239      rx_d                : IN     std_logic;
240      rec_dout            : OUT    std_logic_vector (RX_WIDTH - 1 DOWNTO 0) := (others => '0');
241      rec_timeout_occured : OUT    std_logic                                := '0';
242      rec_valid           : OUT    std_logic                                := '0';
243      rx_en               : OUT    std_logic;
244      tx_d                : OUT    std_logic;
245      tx_en               : OUT    std_logic
246   );
247   END COMPONENT;
248   COMPONENT REFCLK_counter
249   PORT (
250      clk                   : IN     std_logic;
251      refclk_in             : IN     std_logic;
252      alarm_refclk_too_high : OUT    std_logic                      := '0';
253      alarm_refclk_too_low  : OUT    std_logic                      := '0';
254      counter_result        : OUT    std_logic_vector (11 DOWNTO 0) := (others => '0')
255   );
256   END COMPONENT;
257   COMPONENT adc_buffer
258   PORT (
259      adc_data_array     : IN     adc_data_array_type;
260      adc_otr_array      : IN     std_logic_vector (3 DOWNTO 0);
261      clk_ps             : IN     std_logic;
262      adc_data_array_int : OUT    adc_data_array_type;
263      adc_otr            : OUT    std_logic_vector (3 DOWNTO 0)
264   );
265   END COMPONENT;
266   COMPONENT clock_generator_var_ps
267   PORT (
268      CLK             : IN     std_logic ;
269      RST_IN          : IN     std_logic ;
270      direction       : IN     std_logic ;
271      do_shift        : IN     std_logic ;
272      CLK_25          : OUT    std_logic ;
273      CLK_25_PS       : OUT    std_logic ;
274      CLK_50          : OUT    std_logic ;
275      locked_status_o : OUT    std_logic ;
276      offset          : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
277      ready_status_o  : OUT    std_logic 
278   );
279   END COMPONENT;
280   COMPONENT continous_pulser
281   GENERIC (
282      MINIMAL_TRIGGER_WAIT_TIME : integer := 250000;
283      TRIGGER_WIDTH             : integer := 5
284   );
285   PORT (
286      CLK        : IN     std_logic;
287      enable     : IN     std_logic;
288      multiplier : IN     std_logic_vector (15 DOWNTO 0);
289      trigger    : OUT    std_logic
290   );
291   END COMPONENT;
292   COMPONENT dataRAM_64b_16b_width14_5
293   PORT (
294      clka  : IN     std_logic ;
295      dina  : IN     std_logic_VECTOR (63 DOWNTO 0);
296      addra : IN     std_logic_VECTOR (14 DOWNTO 0);
297      wea   : IN     std_logic_VECTOR (0 DOWNTO 0);
298      clkb  : IN     std_logic ;
299      addrb : IN     std_logic_VECTOR (16 DOWNTO 0);
300      doutb : OUT    std_logic_VECTOR (15 DOWNTO 0)
301   );
302   END COMPONENT;
303   COMPONENT data_generator
304   GENERIC (
305      RAM_ADDR_WIDTH : integer := 12
306   );
307   PORT (
308      -- for debugging
309      state                      : OUT    std_logic_vector (7 DOWNTO 0);
310      is_idle                    : OUT    std_logic ;
311      clk                        : IN     std_logic ;                                     -- CLK_25.
312      data_out                   : OUT    std_logic_vector (63 DOWNTO 0);
313      addr_out                   : OUT    std_logic_vector (RAM_ADDR_WIDTH-1 DOWNTO 0);
314      dataRAM_write_ea_o         : OUT    std_logic_vector (0 DOWNTO 0) := "0";
315      ram_start_addr             : IN     std_logic_vector (RAM_ADDR_WIDTH-1 DOWNTO 0);
316      ram_write_ea               : IN     std_logic ;
317      ram_write_ready            : OUT    std_logic                     := '0';
318      roi_array                  : IN     roi_array_type ;
319      roi_max                    : IN     roi_max_type ;
320      sensor_array               : IN     sensor_array_type ;
321      sensor_ready               : IN     std_logic ;
322      dac_array                  : IN     dac_array_type ;
323      config_start               : IN     std_logic ;
324      config_done                : OUT    std_logic                     := '0';
325      -- EVT HEADER - part 1
326      package_length             : IN     std_logic_vector (15 DOWNTO 0);
327      pll_lock                   : IN     std_logic_vector ( 3 DOWNTO 0);
328      dwrite_enable_in           : IN     std_logic ;
329      denable_enable_in          : IN     std_logic ;
330      busy_enable_in             : IN     std_logic ;
331      trigger_enable_in          : IN     std_logic ;
332      cont_trigger_en_in         : IN     std_logic ;
333      socket_send_mode_in        : IN     std_logic ;
334      -- EVT HEADER - part 2  --> FTM trigger informaton, comes in late ...
335      -- during EVT header wrinting, this field is left out ... and only written into event header,
336      -- when the DRS chip were read out already.
337      FTM_RS485_ready            : IN     std_logic ;
338      FTM_trigger_info           : IN     std_logic_vector (55 DOWNTO 0);                 --7 byte
339      FTM_receiver_status        : IN     std_logic ;
340      -- EVT HEADER - part 3
341      fad_event_counter          : IN     std_logic_vector (31 DOWNTO 0);
342      refclk_counter             : IN     std_logic_vector (11 DOWNTO 0);
343      refclk_too_high            : IN     std_logic ;
344      refclk_too_low             : IN     std_logic ;
345      -- EVT HEADER - part 4
346      board_id                   : IN     std_logic_vector (3 DOWNTO 0);
347      crate_id                   : IN     std_logic_vector (1 DOWNTO 0);
348      DCM_PS_status              : IN     std_logic_vector (7 DOWNTO 0);
349      DCM_locked_status          : IN     std_logic ;
350      DCM_ready_status           : IN     std_logic ;
351      SPI_SCLK_enable_status     : IN     std_logic ;
352      TRG_GEN_div                : IN     std_logic_vector (15 DOWNTO 0);
353      -- EVT HEADER - part 5
354      dna                        : IN     std_logic_vector (63 DOWNTO 0);
355      -- EVT HEADER - part 6
356      runnumber                  : IN     std_logic_vector (31 DOWNTO 0);
357      timer_value                : IN     std_logic_vector (31 DOWNTO 0);                 -- time in units of 100us
358      hardware_trigger_in        : IN     std_logic ;
359      software_trigger_in        : IN     std_logic ;
360      adc_data_array             : IN     adc_data_array_type ;
361      adc_output_enable_inverted : OUT    std_logic                     := '1';
362      adc_clk_en                 : OUT    std_logic                     := '0';
363      adc_otr                    : IN     std_logic_vector (3 DOWNTO 0);
364      drs_channel_id             : OUT    std_logic_vector (3 DOWNTO 0) := (others => '0');
365      --drs_dwrite : out std_logic := '1';
366      drs_readout_ready          : OUT    std_logic                     := '0';
367      drs_readout_ready_ack      : IN     std_logic ;
368      drs_clk_en                 : OUT    std_logic                     := '0';
369      start_read_drs_stop_cell   : OUT    std_logic                     := '0';
370      drs_srin_write_8b          : OUT    std_logic                     := '0';
371      drs_srin_write_ack         : IN     std_logic ;
372      drs_srin_data              : OUT    std_logic_vector (7 DOWNTO 0) := (others => '0');
373      drs_srin_write_ready       : IN     std_logic ;
374      drs_read_s_cell_ready      : IN     std_logic ;
375      drs_s_cell_array           : IN     drs_s_cell_array_type ;
376      drs_readout_started        : OUT    std_logic                     := '0';
377      trigger_veto               : OUT    std_logic                     := '1'
378   );
379   END COMPONENT;
380   COMPONENT dna_gen
381   PORT (
382      clk   : IN     STD_LOGIC ;
383      dna   : OUT    STD_LOGIC_VECTOR (63 DOWNTO 0) := (others => '0');
384      ready : OUT    STD_LOGIC                      := '0'
385   );
386   END COMPONENT;
387   COMPONENT drs_pulser
388   PORT (
389      CLK                      : IN     std_logic;
390      SROUT_in_0               : IN     std_logic;
391      SROUT_in_1               : IN     std_logic;
392      SROUT_in_2               : IN     std_logic;
393      SROUT_in_3               : IN     std_logic;
394      srin_data                : IN     std_logic_vector (7 DOWNTO 0);
395      start_endless_mode       : IN     std_logic;
396      start_read_stop_pos_mode : IN     std_logic;
397      start_srin_write_8b      : IN     std_logic;
398      RSRLOAD                  : OUT    std_logic  := '0';
399      SRCLK                    : OUT    std_logic  := '0';
400      SRIN_out                 : OUT    std_logic  := '0';
401      srin_write_ack           : OUT    std_logic  := '0';
402      srin_write_ready         : OUT    std_logic  := '0';
403      stop_pos                 : OUT    drs_s_cell_array_type;
404      stop_pos_valid           : OUT    std_logic  := '0'
405   );
406   END COMPONENT;
407   COMPONENT led_controller
408   GENERIC (
409      HEARTBEAT_PWM_DIVIDER : integer := 500;
410      WAITING_DIVIDER       : integer := 500000000
411   );
412   PORT (
413      CLK                    : IN     std_logic;
414      refclk_too_high        : IN     std_logic;
415      refclk_too_low         : IN     std_logic;
416      socks_connected        : IN     std_logic;
417      socks_waiting          : IN     std_logic;
418      trigger                : IN     std_logic;
419      trigger_veto           : IN     std_logic;
420      w5300_reset            : IN     std_logic;
421      additional_flasher_out : OUT    std_logic;
422      amber                  : OUT    std_logic;
423      green                  : OUT    std_logic;
424      red                    : OUT    std_logic
425   );
426   END COMPONENT;
427   COMPONENT memory_manager_2
428   GENERIC (
429      RAM_ADDR_WIDTH_64B : integer := 12;
430      RAM_ADDR_WIDTH_16B : integer := 14
431   );
432   PORT (
433      clk                    : IN     std_logic;
434      config_start           : IN     std_logic;
435      dg_config_done         : IN     std_logic;
436      ram_write_ready        : IN     std_logic;
437      roi_array              : IN     roi_array_type;
438      wiz_read_done          : IN     std_logic;
439      config_ready           : OUT    std_logic                                        := '1';
440      data_ram_empty         : OUT    std_logic;
441      dg_start_config        : OUT    std_logic                                        := '0';
442      package_length         : OUT    std_logic_vector (15 DOWNTO 0)                   := (others => '0');
443      ram_start_addr         : OUT    std_logic_vector (RAM_ADDR_WIDTH_64B-1 DOWNTO 0) := (others => '0');
444      ram_write_ea           : OUT    std_logic                                        := '0';
445      roi_max                : OUT    roi_max_type                                     := (others => conv_std_logic_vector (0, 11));
446      state                  : OUT    std_logic_vector (3 DOWNTO 0);
447      wiz_number_of_channels : OUT    std_logic_vector (3 DOWNTO 0)                    := (others => '0');
448      wiz_ram_start_addr     : OUT    std_logic_vector (RAM_ADDR_WIDTH_16B-1 DOWNTO 0) := (others => '0');
449      wiz_write_ea           : OUT    std_logic                                        := '0';
450      wiz_write_end          : OUT    std_logic                                        := '0';
451      wiz_write_header       : OUT    std_logic                                        := '0';
452      wiz_write_length       : OUT    std_logic_vector (16 DOWNTO 0)                   := (others => '0')
453   );
454   END COMPONENT;
455   COMPONENT spi_interface
456   PORT (
457      clk_50MHz         : IN     std_logic ;
458      config_start      : IN     std_logic ;
459      dac_array         : IN     dac_array_type ;
460      sclk_enable_i     : IN     std_logic ;
461      config_ready      : OUT    std_logic ;
462      current_dac_array : OUT    dac_array_type  := ( others => 0);
463      dac_cs            : OUT    std_logic ;
464      mosi              : OUT    std_logic       := '0';
465      sclk              : OUT    std_logic ;
466      sensor_array      : OUT    sensor_array_type ;
467      sensor_cs         : OUT    std_logic_vector (3 DOWNTO 0);
468      sensor_ready      : OUT    std_logic ;
469      miso              : INOUT  std_logic 
470   );
471   END COMPONENT;
472   COMPONENT timer
473   GENERIC (
474      TIMER_WIDTH : integer := 32;
475      PRESCALER   : integer := 5000
476   );
477   PORT (
478      clk           : IN     std_logic;
479      enable_i      : IN     std_logic;
480      reset_synch_i : IN     std_logic;
481      synch_i       : IN     std_logic;
482      synched_o     : OUT    std_logic  := '0';
483      time_o        : OUT    std_logic_vector ( TIMER_WIDTH-1 DOWNTO 0)
484   );
485   END COMPONENT;
486   COMPONENT trigger_counter
487   PORT (
488      trigger_id : OUT    std_logic_vector (31 DOWNTO 0);
489      trigger    : IN     std_logic ;
490      reset      : IN     std_logic ;
491      clk        : IN     std_logic 
492   );
493   END COMPONENT;
494   COMPONENT trigger_manager
495   PORT (
496      clk                   : IN     std_logic;
497      drs_readout_ready     : IN     std_logic;
498      trigger_in            : IN     std_logic;
499      drs_readout_ready_ack : OUT    std_logic  := '0';
500      drs_write             : OUT    std_logic  := '1';
501      trigger_out           : OUT    std_logic  := '0'
502   );
503   END COMPONENT;
504   COMPONENT w5300_modul
505   GENERIC (
506      RAM_ADDR_WIDTH : integer := 14
507   );
508   PORT (
509      state                         : OUT    std_logic_vector (7 DOWNTO 0);                                  -- state is encoded here ... useful for debugging.
510      debug_data_ram_empty          : OUT    std_logic ;
511      debug_data_valid              : OUT    std_logic ;
512      data_generator_idle_i         : IN     std_logic ;
513      socket_tx_free_out            : OUT    std_logic_vector (16 DOWNTO 0);                                 -- 17bit value .. that's true
514      clk                           : IN     std_logic ;
515      wiz_reset                     : OUT    std_logic                      := '1';
516      addr                          : OUT    std_logic_vector (9 DOWNTO 0);
517      data                          : INOUT  std_logic_vector (15 DOWNTO 0);
518      cs                            : OUT    std_logic                      := '1';
519      wr                            : OUT    std_logic                      := '1';
520      led                           : OUT    std_logic_vector (7 DOWNTO 0)  := (OTHERS => '0');
521      rd                            : OUT    std_logic                      := '1';
522      int                           : IN     std_logic ;
523      write_length                  : IN     std_logic_vector (16 DOWNTO 0);
524      ram_start_addr                : IN     std_logic_vector (RAM_ADDR_WIDTH-1 DOWNTO 0);
525      ram_data                      : IN     std_logic_vector (15 DOWNTO 0);
526      ram_addr                      : OUT    std_logic_vector (RAM_ADDR_WIDTH-1 DOWNTO 0);
527      data_valid                    : IN     std_logic ;
528      data_valid_ack                : OUT    std_logic                      := '0';
529      busy                          : OUT    std_logic                      := '1';
530      write_header_flag             : IN     std_logic ;
531      write_end_flag                : IN     std_logic ;
532      fifo_channels                 : IN     std_logic_vector (3 DOWNTO 0);
533      -- softtrigger:
534      s_trigger                     : OUT    std_logic                      := '0';
535      c_trigger_enable              : OUT    std_logic                      := '0';
536      c_trigger_mult                : OUT    std_logic_vector (15 DOWNTO 0) := conv_std_logic_vector(0 ,16); --subject TO changes
537      -- FAD configuration signals:
538      ------------------------------------------------------------------------------
539      memory_manager_config_start_o : OUT    std_logic                      := '0';
540      memory_manager_config_valid_i : IN     std_logic ;
541      spi_interface_config_start_o  : OUT    std_logic                      := '0';
542      spi_interface_config_valid_i  : IN     std_logic ;
543      --data_generator_config_start_o   : out std_logic := '0';
544      --data_generator_config_valid_i   : in std_logic;
545      dac_setting                   : OUT    dac_array_type                 := DEFAULT_DAC;                  --<<-- default defined in fad_definitions.vhd
546      roi_setting                   : OUT    roi_array_type                 := DEFAULT_ROI;                  --<<-- default defined in fad_definitions.vhd
547      runnumber                     : OUT    std_logic_vector (31 DOWNTO 0) := conv_std_logic_vector(0 ,32);
548      reset_trigger_id              : OUT    std_logic                      := '0';
549      data_ram_empty                : IN     std_logic ;
550      ------------------------------------------------------------------------------
551     
552      -- MAC/IP calculation signals:
553      ------------------------------------------------------------------------------
554      MAC_jumper                    : IN     std_logic_vector (1 DOWNTO 0);
555      BoardID                       : IN     std_logic_vector (3 DOWNTO 0);
556      CrateID                       : IN     std_logic_vector (1 DOWNTO 0);
557      ------------------------------------------------------------------------------
558     
559      -- user controllable enable signals
560      ------------------------------------------------------------------------------
561      trigger_enable                : OUT    std_logic ;
562      denable                       : OUT    std_logic                      := '0';                          -- default domino wave on. ... in case if REFCLK error ... REFCLK counter will override.
563      dwrite_enable                 : OUT    std_logic                      := '1';                          -- default DWRITE low.
564      sclk_enable                   : OUT    std_logic                      := '1';                          -- default DWRITE HIGH.
565      srclk_enable                  : OUT    std_logic                      := '1';                          -- default SRCLK on.
566      busy_enable                   : OUT    std_logic                      := '1';
567      socket_send_mode_out          : OUT    std_logic ;
568      ------------------------------------------------------------------------------
569     
570      -- ADC CLK generator, is able to shift phase with respect to X_50M
571      -- these signals control the behavior of the digital clock manager (DCM)
572      ------------------------------------------------------------------------------
573      ps_direction                  : OUT    std_logic                      := '1';                          -- default phase shift upwards
574      ps_do_phase_shift             : OUT    std_logic                      := '0';                          --pulse this TO phase shift once
575      ps_reset                      : OUT    std_logic                      := '0';                          -- pulse this TO reset the variable phase shift
576      ps_ready                      : IN     std_logic ;
577      ------------------------------------------------------------------------------
578     
579      -- signals used to control FAD LED bahavior:
580      -- one of the three LEDs is used for com-status info
581      ------------------------------------------------------------------------------
582      socks_waiting                 : OUT    std_logic ;
583      socks_connected               : OUT    std_logic 
584      ------------------------------------------------------------------------------
585   );
586   END COMPONENT;
587
588   -- Optional embedded configurations
589   -- pragma synthesis_off
590   FOR ALL : FAD_rs485_receiver USE ENTITY FACT_FAD_lib.FAD_rs485_receiver;
591   FOR ALL : REFCLK_counter USE ENTITY FACT_FAD_lib.REFCLK_counter;
592   FOR ALL : adc_buffer USE ENTITY FACT_FAD_lib.adc_buffer;
593   FOR ALL : clock_generator_var_ps USE ENTITY FACT_FAD_lib.clock_generator_var_ps;
594   FOR ALL : continous_pulser USE ENTITY FACT_FAD_lib.continous_pulser;
595   FOR ALL : dataRAM_64b_16b_width14_5 USE ENTITY FACT_FAD_lib.dataRAM_64b_16b_width14_5;
596   FOR ALL : data_generator USE ENTITY FACT_FAD_lib.data_generator;
597   FOR ALL : dna_gen USE ENTITY FACT_FAD_lib.dna_gen;
598   FOR ALL : drs_pulser USE ENTITY FACT_FAD_lib.drs_pulser;
599   FOR ALL : led_controller USE ENTITY FACT_FAD_lib.led_controller;
600   FOR ALL : memory_manager_2 USE ENTITY FACT_FAD_lib.memory_manager_2;
601   FOR ALL : spi_interface USE ENTITY FACT_FAD_lib.spi_interface;
602   FOR ALL : timer USE ENTITY FACT_FAD_lib.timer;
603   FOR ALL : trigger_counter USE ENTITY FACT_FAD_lib.trigger_counter;
604   FOR ALL : trigger_manager USE ENTITY FACT_FAD_lib.trigger_manager;
605   FOR ALL : w5300_modul USE ENTITY FACT_FAD_lib.w5300_modul;
606   -- pragma synthesis_on
607
608
609BEGIN
610
611   -- ModuleWare code(v1.9) for instance 'I6' of 'and'
612   SRCLK <= SRCLK1 AND srclk_enable;
613
614   -- ModuleWare code(v1.9) for instance 'U_1' of 'and'
615   dout <= dout0 AND dout1 AND dout2 AND dout3;
616
617   -- ModuleWare code(v1.9) for instance 'U_4' of 'and'
618   dwrite_global_enable <= dwrite_enable_w5300 AND dout4;
619
620   -- ModuleWare code(v1.9) for instance 'and_1' of 'and'
621   ADC_CLK <= adc_clk_en AND CLK_25_PS_internal;
622
623   -- ModuleWare code(v1.9) for instance 'and_2' of 'and'
624   denable_sig <= denable_prim AND din1;
625
626   -- ModuleWare code(v1.9) for instance 'and_4' of 'and'
627   dout6 <= trigger_or_s_trigger AND trigger_enable;
628
629   -- ModuleWare code(v1.9) for instance 'and_5' of 'and'
630   drs_dwrite <= dwrite_trigger_manager AND dwrite_global_enable;
631
632   -- ModuleWare code(v1.9) for instance 'and_6' of 'and'
633   trig_veto <= busy_enable AND dout7;
634
635   -- ModuleWare code(v1.9) for instance 'U_5' of 'assignment'
636   denable <= denable_sig;
637
638   -- ModuleWare code(v1.9) for instance 'U_7' of 'assignment'
639   trigger_veto <= trig_veto;
640
641   -- ModuleWare code(v1.9) for instance 'U_8' of 'assignment'
642   wiz_reset <= wiz_reset_sig;
643
644   -- ModuleWare code(v1.9) for instance 'U_6' of 'gnd'
645   software_trigger_in <= '0';
646
647   -- ModuleWare code(v1.9) for instance 'U_15' of 'gnd'
648   reset_synch_i <= '0';
649
650   -- ModuleWare code(v1.9) for instance 'inverter_1' of 'inv'
651   din1 <= NOT(alarm_refclk_too_low_internal);
652
653   -- ModuleWare code(v1.9) for instance 'inverter_2' of 'inv'
654   dout5 <= NOT(ram_write_ea);
655
656   -- ModuleWare code(v1.9) for instance 'U_2' of 'or'
657   dout4 <= dout OR I_really_want_dwrite;
658
659   -- ModuleWare code(v1.9) for instance 'or_2' of 'or'
660   dout7 <= trigger_veto1 OR dout5;
661
662   -- ModuleWare code(v1.9) for instance 'or_5' of 'or'
663   trigger_or_s_trigger <= cont_trigger OR trigger;
664
665   -- ModuleWare code(v1.9) for instance 'or_6' of 'or'
666   enabled_trigger_or_s_trigger <= s_trigger OR dout6;
667
668   -- ModuleWare code(v1.9) for instance 'U_0' of 'split'
669   mw_U_0temp_din <= plllock_in;
670   u_0combo_proc: PROCESS (mw_U_0temp_din)
671   VARIABLE temp_din: std_logic_vector(3 DOWNTO 0);
672   BEGIN
673      temp_din := mw_U_0temp_din(3 DOWNTO 0);
674      dout0 <= temp_din(0);
675      dout1 <= temp_din(1);
676      dout2 <= temp_din(2);
677      dout3 <= temp_din(3);
678   END PROCESS u_0combo_proc;
679
680   -- ModuleWare code(v1.9) for instance 'U_3' of 'vdd'
681   I_really_want_dwrite <= '1';
682
683   -- ModuleWare code(v1.9) for instance 'U_14' of 'vdd'
684   enable_i <= '1';
685
686   -- Instance port mappings.
687   Inst_rs485_receiver : FAD_rs485_receiver
688      GENERIC MAP (
689         RX_BYTES => RS485_MESSAGE_LEN_BYTES,            -- no. of bytes to receive
690         RX_WIDTH => RS485_MESSAGE_LEN_BYTES * 8         -- no. of bits to receive
691      )
692      PORT MAP (
693         rec_clk             => CLK_50_internal,
694         rx_d                => FTM_RS485_rx_d,
695         rx_en               => FTM_RS485_rx_en,
696         tx_d                => FTM_RS485_tx_d,
697         tx_en               => FTM_RS485_tx_en,
698         rec_start           => drs_readout_started,
699         rec_timeout_occured => rec_timeout_occured,
700         rec_dout            => rs465_data,
701         rec_valid           => FTM_RS485_ready
702      );
703   REFCLK_counter_main : REFCLK_counter
704      PORT MAP (
705         clk                   => CLK_50_internal,
706         refclk_in             => drs_refclk_in,
707         counter_result        => counter_result_internal,
708         alarm_refclk_too_high => alarm_refclk_too_high_internal,
709         alarm_refclk_too_low  => alarm_refclk_too_low_internal
710      );
711   I_main_adc_buffer : adc_buffer
712      PORT MAP (
713         clk_ps             => CLK_25_PS_internal,
714         adc_data_array     => adc_data_array,
715         adc_otr_array      => adc_otr_array,
716         adc_data_array_int => adc_data_array_int,
717         adc_otr            => adc_otr
718      );
719   clock_generator_instance : clock_generator_var_ps
720      PORT MAP (
721         CLK             => CLK,
722         RST_IN          => ps_reset,
723         direction       => ps_direction,
724         do_shift        => ps_do_phase_shift,
725         CLK_25          => CLK_25,
726         CLK_25_PS       => CLK_25_PS_internal,
727         CLK_50          => CLK_50_internal,
728         locked_status_o => DCM_locked_status,
729         offset          => DCM_PS_status,
730         ready_status_o  => DCM_ready_status
731      );
732   continous_pulser_instance : continous_pulser
733      GENERIC MAP (
734         MINIMAL_TRIGGER_WAIT_TIME => 25000,
735         TRIGGER_WIDTH             => 5
736      )
737      PORT MAP (
738         CLK        => CLK_25,
739         enable     => c_trigger_enable,
740         multiplier => c_trigger_mult,
741         trigger    => cont_trigger
742      );
743   dataRAM_instance : dataRAM_64b_16b_width14_5
744      PORT MAP (
745         clka  => CLK_25,
746         dina  => data_out,
747         addra => addr_out,
748         wea   => write_ea,
749         clkb  => CLK_50_internal,
750         addrb => ram_addr,
751         doutb => ram_data
752      );
753   I_main_data_generator : data_generator
754      GENERIC MAP (
755         RAM_ADDR_WIDTH => RAMADDRWIDTH64b
756      )
757      PORT MAP (
758         state                      => DG_state,
759         is_idle                    => is_idle,
760         clk                        => CLK_25,
761         data_out                   => data_out,
762         addr_out                   => addr_out,
763         dataRAM_write_ea_o         => write_ea,
764         ram_start_addr             => ram_start_addr,
765         ram_write_ea               => ram_write_ea,
766         ram_write_ready            => ram_write_ready,
767         roi_array                  => roi_setting,
768         roi_max                    => roi_max,
769         sensor_array               => sensor_array,
770         sensor_ready               => sensor_ready,
771         dac_array                  => current_dac_array,
772         config_start               => dg_start_config,
773         config_done                => dg_config_done,
774         package_length             => package_length,
775         pll_lock                   => plllock_in,
776         dwrite_enable_in           => dwrite_enable_w5300,
777         denable_enable_in          => denable_sig,
778         busy_enable_in             => busy_enable,
779         trigger_enable_in          => trigger_enable,
780         cont_trigger_en_in         => c_trigger_enable,
781         socket_send_mode_in        => socket_send_mode,
782         FTM_RS485_ready            => FTM_RS485_ready,
783         FTM_trigger_info           => rs465_data,
784         FTM_receiver_status        => rec_timeout_occured,
785         fad_event_counter          => trigger_id,
786         refclk_counter             => counter_result_internal,
787         refclk_too_high            => alarm_refclk_too_high_internal,
788         refclk_too_low             => alarm_refclk_too_low_internal,
789         board_id                   => board_id,
790         crate_id                   => crate_id,
791         DCM_PS_status              => DCM_PS_status,
792         DCM_locked_status          => DCM_locked_status,
793         DCM_ready_status           => DCM_ready_status,
794         SPI_SCLK_enable_status     => sclk_enable,
795         TRG_GEN_div                => c_trigger_mult,
796         dna                        => dna,
797         runnumber                  => runnumber,
798         timer_value                => time,
799         hardware_trigger_in        => trigger_out,
800         software_trigger_in        => software_trigger_in,
801         adc_data_array             => adc_data_array_int,
802         adc_output_enable_inverted => adc_oeb,
803         adc_clk_en                 => adc_clk_en,
804         adc_otr                    => adc_otr,
805         drs_channel_id             => drs_channel_id,
806         drs_readout_ready          => drs_readout_ready,
807         drs_readout_ready_ack      => drs_readout_ready_ack,
808         drs_clk_en                 => drs_clk_en,
809         start_read_drs_stop_cell   => drs_read_s_cell,
810         drs_srin_write_8b          => start_srin_write_8b,
811         drs_srin_write_ack         => srin_write_ack,
812         drs_srin_data              => drs_srin_data,
813         drs_srin_write_ready       => srin_write_ready,
814         drs_read_s_cell_ready      => drs_read_s_cell_ready,
815         drs_s_cell_array           => drs_s_cell_array,
816         drs_readout_started        => drs_readout_started,
817         trigger_veto               => trigger_veto1
818      );
819   dna_gen_instance : dna_gen
820      PORT MAP (
821         clk   => CLK_25,
822         dna   => dna,
823         ready => ready
824      );
825   I_main_drs_pulser : drs_pulser
826      PORT MAP (
827         CLK                      => CLK_25,
828         start_endless_mode       => drs_clk_en,
829         start_read_stop_pos_mode => drs_read_s_cell,
830         SROUT_in_0               => SROUT_in_0,
831         SROUT_in_1               => SROUT_in_1,
832         SROUT_in_2               => SROUT_in_2,
833         SROUT_in_3               => SROUT_in_3,
834         stop_pos                 => drs_s_cell_array,
835         stop_pos_valid           => drs_read_s_cell_ready,
836         start_srin_write_8b      => start_srin_write_8b,
837         srin_write_ready         => srin_write_ready,
838         srin_write_ack           => srin_write_ack,
839         srin_data                => drs_srin_data,
840         SRIN_out                 => SRIN_out,
841         RSRLOAD                  => RSRLOAD,
842         SRCLK                    => SRCLK1
843      );
844   led_controller_instance : led_controller
845      GENERIC MAP (
846         HEARTBEAT_PWM_DIVIDER => 50000,
847         WAITING_DIVIDER       => 50000000
848      )
849      PORT MAP (
850         CLK                    => CLK_50_internal,
851         green                  => green,
852         amber                  => amber,
853         red                    => red,
854         additional_flasher_out => OPEN,
855         trigger                => drs_readout_started,
856         w5300_reset            => wiz_reset_sig,
857         trigger_veto           => trig_veto,
858         refclk_too_high        => alarm_refclk_too_high_internal,
859         refclk_too_low         => alarm_refclk_too_low_internal,
860         socks_waiting          => socks_waiting,
861         socks_connected        => socks_connected
862      );
863   Inst_memory_manager_2 : memory_manager_2
864      GENERIC MAP (
865         RAM_ADDR_WIDTH_64B => RAMADDRWIDTH64b,
866         RAM_ADDR_WIDTH_16B => RAMADDRWIDTH64b+2
867      )
868      PORT MAP (
869         state                  => mem_manager_state,
870         clk                    => CLK_25,
871         config_start           => memory_manager_config_start,
872         config_ready           => memory_manager_config_valid,
873         roi_array              => roi_setting,
874         roi_max                => roi_max,
875         package_length         => package_length,
876         wiz_number_of_channels => wiz_number_of_channels,
877         dg_start_config        => dg_start_config,
878         dg_config_done         => dg_config_done,
879         ram_write_ready        => ram_write_ready,
880         ram_write_ea           => ram_write_ea,
881         ram_start_addr         => ram_start_addr,
882         wiz_read_done          => data_valid_ack,
883         wiz_write_ea           => wiz_write_ea,
884         wiz_write_length       => wiz_write_length,
885         wiz_ram_start_addr     => wiz_ram_start_addr,
886         wiz_write_header       => wiz_write_header,
887         wiz_write_end          => wiz_write_end,
888         data_ram_empty         => data_ram_empty
889      );
890   I_main_SPI_interface : spi_interface
891      PORT MAP (
892         clk_50MHz         => CLK_50_internal,
893         config_start      => spi_interface_config_start,
894         dac_array         => dac_setting,
895         sclk_enable_i     => sclk_enable,
896         config_ready      => spi_interface_config_valid,
897         current_dac_array => current_dac_array,
898         dac_cs            => dac_cs,
899         mosi              => mosi,
900         sclk              => sclk,
901         sensor_array      => sensor_array,
902         sensor_cs         => sensor_cs,
903         sensor_ready      => sensor_ready,
904         miso              => sio
905      );
906   timer_instance : timer
907      GENERIC MAP (
908         TIMER_WIDTH => 32,
909         PRESCALER   => 5000
910      )
911      PORT MAP (
912         clk           => CLK_50_internal,
913         time_o        => time,
914         synch_i       => trigger_out,
915         synched_o     => OPEN,
916         reset_synch_i => reset_synch_i,
917         enable_i      => enable_i
918      );
919   trigger_counter_instance : trigger_counter
920      PORT MAP (
921         trigger_id => trigger_id,
922         trigger    => trigger_out,
923         reset      => reset_trigger_id,
924         clk        => CLK_25_PS_internal
925      );
926   trigger_manager_instance : trigger_manager
927      PORT MAP (
928         clk                   => CLK_25,
929         trigger_in            => enabled_trigger_or_s_trigger,
930         trigger_out           => trigger_out,
931         drs_write             => dwrite_trigger_manager,
932         drs_readout_ready     => drs_readout_ready,
933         drs_readout_ready_ack => drs_readout_ready_ack
934      );
935   w5300_modul_instance : w5300_modul
936      GENERIC MAP (
937         RAM_ADDR_WIDTH => RAMADDRWIDTH64b+2
938      )
939      PORT MAP (
940         state                         => w5300_state,
941         debug_data_ram_empty          => debug_data_ram_empty,
942         debug_data_valid              => debug_data_valid,
943         data_generator_idle_i         => is_idle,
944         socket_tx_free_out            => socket_tx_free_out,
945         clk                           => CLK_50_internal,
946         wiz_reset                     => wiz_reset_sig,
947         addr                          => wiz_addr,
948         data                          => wiz_data,
949         cs                            => wiz_cs,
950         wr                            => wiz_wr,
951         led                           => led,
952         rd                            => wiz_rd,
953         int                           => wiz_int,
954         write_length                  => wiz_write_length,
955         ram_start_addr                => wiz_ram_start_addr,
956         ram_data                      => ram_data,
957         ram_addr                      => ram_addr,
958         data_valid                    => wiz_write_ea,
959         data_valid_ack                => data_valid_ack,
960         busy                          => OPEN,
961         write_header_flag             => wiz_write_header,
962         write_end_flag                => wiz_write_end,
963         fifo_channels                 => wiz_number_of_channels,
964         s_trigger                     => s_trigger,
965         c_trigger_enable              => c_trigger_enable,
966         c_trigger_mult                => c_trigger_mult,
967         memory_manager_config_start_o => memory_manager_config_start,
968         memory_manager_config_valid_i => memory_manager_config_valid,
969         spi_interface_config_start_o  => spi_interface_config_start,
970         spi_interface_config_valid_i  => spi_interface_config_valid,
971         dac_setting                   => dac_setting,
972         roi_setting                   => roi_setting,
973         runnumber                     => runnumber,
974         reset_trigger_id              => reset_trigger_id,
975         data_ram_empty                => data_ram_empty,
976         MAC_jumper                    => D_T_in,
977         BoardID                       => board_id,
978         CrateID                       => crate_id,
979         trigger_enable                => trigger_enable,
980         denable                       => denable_prim,
981         dwrite_enable                 => dwrite_enable_w5300,
982         sclk_enable                   => sclk_enable,
983         srclk_enable                  => srclk_enable,
984         busy_enable                   => busy_enable,
985         socket_send_mode_out          => socket_send_mode,
986         ps_direction                  => ps_direction,
987         ps_do_phase_shift             => ps_do_phase_shift,
988         ps_reset                      => ps_reset,
989         ps_ready                      => DCM_ready_status,
990         socks_waiting                 => socks_waiting,
991         socks_connected               => socks_connected
992      );
993
994   -- Implicit buffered output assignments
995   CLK_25_PS             <= CLK_25_PS_internal;
996   CLK_50                <= CLK_50_internal;
997   alarm_refclk_too_high <= alarm_refclk_too_high_internal;
998   alarm_refclk_too_low  <= alarm_refclk_too_low_internal;
999   counter_result        <= counter_result_internal;
1000
1001END struct;
Note: See TracBrowser for help on using the repository browser.