Changeset 10500 for firmware


Ignore:
Timestamp:
Apr 29, 2011, 2:55:16 PM (8 years ago)
Author:
neise
Message:
- FAD internal trigger ID reset is possible - with 0x"2A"
- runnumber will be written into EVent header (32bit)
default is zero.


Location:
firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/data_generator.vhd

    r10462 r10500  
    7575
    7676-- EVT HEADER - part 6
     77        runnumber                               : in    std_logic_vector (31 downto 0);
    7778        timer_value                             : in    std_logic_vector (31 downto 0); -- time in units of 100us
    7879
     
    151152
    152153signal FTM_trigger_info_local_copy : std_logic_vector (55 downto 0) := (others => '0'); --7 byte
     154signal runnumber_local_copy : std_logic_vector (31 downto 0);
    153155
    154156-- self configuration signals:
     
    223225                        if (ram_write_ea = '1' and trigger_sr = "01") then
    224226                                sig_drs_readout_started <= '1'; -- is set to '0' in next state ... just a pulse.
     227                                runnumber_local_copy <= runnumber;
    225228                                trigger_veto <= '1';
    226229                                start_read_drs_stop_cell <= '1';
     
    290293                when WRITE_TIMER =>
    291294                        data_out <=
    292                                 X"0000" &               -- 2times 16bit reserved for additional status info
    293                                 X"0000" &
     295                                runnumber_local_copy(15 downto 0) &             -- 2times 16bit reserved for additional status info
     296                                runnumber_local_copy(31 downto 16) &
    294297                                timer_value(15 downto 0) &
    295298                                timer_value(31 downto 16);
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board_struct.vhd

    r10462 r10500  
    33-- Created:
    44--          by - daqct3.UNKNOWN (IHP110)
    5 --          at - 17:31:46 26.04.2011
     5--          at - 14:00:29 29.04.2011
    66--
    77-- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
     
    7676-- Created:
    7777--          by - daqct3.UNKNOWN (IHP110)
    78 --          at - 17:31:46 26.04.2011
     78--          at - 14:00:29 29.04.2011
    7979--
    8080-- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_definitions.vhd

    r10462 r10500  
    159159constant CMD_TRIGGERS_OFF : std_logic_vector            := X"19";
    160160constant CMD_TRIGGER_S : std_logic_vector               := X"20";
     161constant CMD_RESET_TRIGGER_ID : std_logic_vector        := X"2A";
    161162
    162163constant CMD_START : std_logic_vector                   := X"22";               -- set data generator in RUN-mnode
     
    166167constant CMD_TRIGGER : std_logic_vector                 := X"A0";
    167168constant CMD_TRIGGER_C : std_logic_vector               := X"B0";
     169
     170
    168171
    169172
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_main_struct.vhd

    r10462 r10500  
    33-- Created:
    44--          by - daqct3.UNKNOWN (IHP110)
    5 --          at - 17:31:44 26.04.2011
     5--          at - 14:00:28 29.04.2011
    66--
    77-- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
     
    7676-- Created:
    7777--          by - daqct3.UNKNOWN (IHP110)
    78 --          at - 17:31:45 26.04.2011
     78--          at - 14:00:29 29.04.2011
    7979--
    8080-- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
     
    121121   SIGNAL cont_trigger                 : std_logic;
    122122   SIGNAL current_dac_array            : dac_array_type                               := ( others => 0);
    123    SIGNAL dac_setting                  : dac_array_type                               := DEFAULT_DAC;        --<<-- default defined in fad_definitions.vhd
     123   SIGNAL dac_setting                  : dac_array_type                               := DEFAULT_DAC;                     --<<-- default defined in fad_definitions.vhd
    124124   SIGNAL data_generator_config_start  : std_logic                                    := '0';
    125125   SIGNAL data_generator_config_valid  : std_logic;
    126126   SIGNAL data_out                     : std_logic_vector(63 DOWNTO 0);
    127127   SIGNAL data_ram_empty               : std_logic;
    128    SIGNAL denable_inhibit              : std_logic                                    := '0';                -- default domino wave off
    129    SIGNAL denable_prim                 : std_logic                                    := '0';                -- default domino wave off
    130    SIGNAL denable_sig                  : std_logic                                    := '0';                -- default domino wave off
    131    SIGNAL din1                         : std_logic                                    := '0';                -- default domino wave off
     128   SIGNAL denable_inhibit              : std_logic                                    := '0';                             -- default domino wave off
     129   SIGNAL denable_prim                 : std_logic                                    := '0';                             -- default domino wave off
     130   SIGNAL denable_sig                  : std_logic                                    := '0';                             -- default domino wave off
     131   SIGNAL din1                         : std_logic                                    := '0';                             -- default domino wave off
    132132   SIGNAL dna                          : STD_LOGIC_VECTOR(63 DOWNTO 0)                := (others => '0');
    133133   SIGNAL dout                         : STD_LOGIC;
     
    155155   SIGNAL memory_manager_config_valid  : std_logic;
    156156   SIGNAL package_length               : std_logic_vector(15 DOWNTO 0);
    157    SIGNAL ps_direction                 : std_logic                                    := '1';                -- default phase shift upwards
    158    SIGNAL ps_do_phase_shift            : std_logic                                    := '0';                --pulse this to phase shift once
    159    SIGNAL ps_reset                     : std_logic                                    := '0';                -- pulse this to reset the variable phase shift
     157   SIGNAL ps_direction                 : std_logic                                    := '1';                             -- default phase shift upwards
     158   SIGNAL ps_do_phase_shift            : std_logic                                    := '0';                             --pulse this to phase shift once
     159   SIGNAL ps_reset                     : std_logic                                    := '0';                             -- pulse this to reset the variable phase shift
    160160   SIGNAL ram_addr                     : std_logic_vector(RAMADDRWIDTH64b+1 DOWNTO 0);
    161161   SIGNAL ram_data                     : std_logic_vector(15 DOWNTO 0);
     
    167167   SIGNAL ready                        : STD_LOGIC                                    := '0';
    168168   SIGNAL rec_timeout_occured          : std_logic                                    := '0';
    169    SIGNAL reset                        : std_logic;
    170169   SIGNAL reset_synch_i                : std_logic;
     170   SIGNAL reset_trigger_id             : std_logic                                    := '0';
    171171   SIGNAL roi_max                      : roi_max_type;
    172172   SIGNAL roi_setting                  : roi_array_type;
    173    SIGNAL rs465_data                   : std_logic_vector(55 DOWNTO 0);                                      --7 byte
     173   SIGNAL rs465_data                   : std_logic_vector(55 DOWNTO 0);                                                   --7 byte
     174   SIGNAL runnumber                    : std_logic_vector(31 DOWNTO 0)                := conv_std_logic_vector(0 ,31);
    174175   SIGNAL s_trigger                    : std_logic;
    175176   SIGNAL s_trigger_or_cont_trigger    : std_logic;
     
    332333      dna                        : IN     std_logic_vector (63 DOWNTO 0);
    333334      -- EVT HEADER - part 6
     335      runnumber                  : IN     std_logic_vector (31 DOWNTO 0);
    334336      timer_value                : IN     std_logic_vector (31 DOWNTO 0);                 -- time in units of 100us
    335337      trigger                    : IN     std_logic ;
     
    515517      dac_setting                   : OUT    dac_array_type                 := DEFAULT_DAC;                  --<<-- default defined in fad_definitions.vhd
    516518      roi_setting                   : OUT    roi_array_type                 := DEFAULT_ROI;                  --<<-- default defined in fad_definitions.vhd
     519      runnumber                     : OUT    std_logic_vector (31 DOWNTO 0) := conv_std_logic_vector(0 ,31);
     520      reset_trigger_id              : OUT    std_logic                      := '0';
    517521      data_ram_empty                : IN     std_logic ;
    518522      ------------------------------------------------------------------------------
     
    600604   denable <= denable_sig;
    601605
    602    -- ModuleWare code(v1.9) for instance 'U_6' of 'gnd'
    603    reset <= '0';
    604 
    605606   -- ModuleWare code(v1.9) for instance 'U_15' of 'gnd'
    606607   reset_synch_i <= '0';
     
    746747         TRG_GEN_div                => c_trigger_mult,
    747748         dna                        => dna,
     749         runnumber                  => runnumber,
    748750         timer_value                => time,
    749751         trigger                    => trigger_out,
     
    867869         trigger_id => trigger_id,
    868870         trigger    => trigger_out,
    869          reset      => reset,
     871         reset      => reset_trigger_id,
    870872         clk        => CLK_25_PS_internal
    871873      );
     
    914916         dac_setting                   => dac_setting,
    915917         roi_setting                   => roi_setting,
     918         runnumber                     => runnumber,
     919         reset_trigger_id              => reset_trigger_id,
    916920         data_ram_empty                => data_ram_empty,
    917921         MAC_jumper                    => D_T_in,
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd

    r10462 r10500  
    4848                dac_setting                                             : out dac_array_type := DEFAULT_DAC;            --<<-- default defined in fad_definitions.vhd
    4949                roi_setting                                             : out roi_array_type := DEFAULT_ROI;            --<<-- default defined in fad_definitions.vhd
    50 
    51                 data_ram_empty : IN std_logic;
     50               
     51                runnumber                                               : out std_logic_vector (31 DOWNTO 0) := conv_std_logic_vector(0 ,31);
     52                reset_trigger_id                                : out std_logic := '0';
     53
     54                data_ram_empty                                  : IN std_logic;
    5255               
    5356          ------------------------------------------------------------------------------
     
    184187
    185188signal config_addr : integer range 0 to 44;
    186 type config_data_type is array (0 to 44) of std_logic_vector(15 downto 0);
     189type config_data_type is array (0 to 46) of std_logic_vector(15 downto 0);
    187190signal config_setting : config_data_type := (
    188191--              X"000A", X"000A", X"000A", X"000A", X"000A", X"000A", X"000A", X"000A", X"000A",                --<<-- ROIs  TESTING ONLY
     
    197200                X"0400", X"0400", X"0400", X"0400", X"0400", X"0400", X"0400", X"0400", X"0400",                --<<-- ROIs
    198201                X"61A8", X"0000", X"0000", X"0000", X"7080", X"7080", X"7080", X"7080",                                  --<<-- DACs
    199                 X"0000"
     202                X"0000",
     203                X"0000", X"0000"
    200204                );
    201205
     
    283287end generate dac_mapping;
    284288c_trigger_mult <= config_setting(44);
     289
     290runnumber <= config_setting(45) & config_setting(46);
    285291
    286292trigger_enable <= trigger_enable_sig;
     
    661667                                                end case;
    662668                                               
    663                                         when CONFIG =>
     669                                        when CONFIG =>   -- Triggers are disabled here!
    664670                                                trigger_enable_storage_sig <= trigger_enable_sig;                               -- store last value of this signal.
    665671                                                trigger_enable_sig <= '0';                                                                              --no triggers must occur, while configurating.
    666672                                                state_init <= WAIT_FOR_OLLI;                                                                    -- now wait until the last event was send down..
    667673                                       
    668                                         when WAIT_FOR_OLLI =>
    669                                                 state_init <= WAIT_FOR_DATA_RAM_EMPTY;
     674                                        when WAIT_FOR_OLLI =>                                                                                   -- This single wait state is not needed, I guess.
     675                                                state_init <= WAIT_FOR_DATA_RAM_EMPTY;                                          -- should be removed asap, but not now. 28.04.11 DN
    670676                                       
    671677                                               
     
    803809                                                        s_trigger <= '0';
    804810                                                        ps_do_phase_shift <= '0';
     811                                                        reset_trigger_id <= '0';
     812                                                       
    805813                                                        if (rx_packets_cnt > 0) then
    806814                                                                rx_packets_cnt <= rx_packets_cnt - '1';
     
    882890                                                          ps_direction <= '0';
    883891                                                          state_read_data <= RD_5;
     892                                                         
     893                                                        when CMD_RESET_TRIGGER_ID =>
     894                                                                reset_trigger_id <= '1';
     895                                                                state_read_data <= RD_5;
     896                                                               
    884897                                                        when CMD_WRITE =>
    885898                                                                config_addr <= conv_integer(data_read (7 downto 0));
     
    890903                -- read data
    891904
    892                         -- these states are beeing precessed, if the 'command' was a 'write command'
     905                        -- these states are beeing processed, if the 'command' was a 'write command'
    893906                        --      so it is assumed, that some data in config RAM changed, and we need full (re)config
    894907                        when READ_COMMAND_DATA_SECTION =>
     
    907920                                if (config_addr < 36) then
    908921                                        update_of_rois <= '1';
    909                                 else
    910                                         update_of_lessimportant <= '1';
     922                                else
     923                                        if (config_addr < 45 ) then
     924                                                update_of_lessimportant <= '1';
     925                                        end if;
    911926                                end if;
    912927                                state_read_data <= RD_5;
Note: See TracChangeset for help on using the changeset viewer.