Ignore:
Timestamp:
02/04/11 14:35:11 (14 years ago)
Author:
neise
Message:
checking before change of Event Header structure.
added REFCLK counter and ADC CLK PS output.
In case of missing REFCLK, DENEABLE should be pulled low.
(untested)
Location:
firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl
Files:
4 added
1 deleted
14 edited

Legend:

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

    r10123 r10129  
    33-- Created:
    44--          by - dneise.UNKNOWN (E5B-LABOR6)
    5 --          at - 09:36:36 27.01.2011
     5--          at - 15:27:49 04.02.2011
    66--
    77-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
     
    1313ENTITY clock_generator_var_ps IS
    1414   PORT(
    15       CLK             : IN     std_logic;
    16       RST_IN          : IN     std_logic;
    17       direction       : IN     std_logic;
    18       do_shift        : IN     std_logic;
    19       CLK_25          : OUT    std_logic;
    20       CLK_25_PS       : OUT    std_logic;
    21       CLK_50          : OUT    std_logic;
    22       DCM_locked      : OUT    std_logic;
    23       LOCKED_extraOUT : OUT    std_logic;
    24       PSCLK_OUT       : OUT    std_logic;
    25       PSDONE_extraOUT : OUT    std_logic;
    26       PSINCDEC_OUT    : OUT    std_logic;
    27       offset          : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
    28       ready           : OUT    std_logic                     := '0';
    29       -- status:
    30       shifting        : OUT    std_logic                     := '0'
     15      CLK       : IN     std_logic;
     16      RST_IN    : IN     std_logic;
     17      direction : IN     std_logic;
     18      do_shift  : IN     std_logic;
     19      CLK_25    : OUT    std_logic;
     20      CLK_25_PS : OUT    std_logic;
     21      CLK_50    : OUT    std_logic;
     22      offset    : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0')
    3123   );
    3224
     
    4032-- Created:
    4133--          by - dneise.UNKNOWN (E5B-LABOR6)
    42 --          at - 09:36:36 27.01.2011
     34--          at - 15:27:49 04.02.2011
    4335--
    4436-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
     
    9991   PORT (
    10092      CLK         : IN     std_logic ;
     93      rst         : IN     std_logic ;                                     --asynch in of DCM
    10194      -- interface to: clock_generator_variable_PS_struct.vhd
    10295      PSCLK       : OUT    std_logic ;
     
    127120BEGIN
    128121
    129    -- ModuleWare code(v1.9) for instance 'U_5' of 'assignment'
    130    PSCLK_OUT <= PSCLK_IN;
    131 
    132    -- ModuleWare code(v1.9) for instance 'U_7' of 'assignment'
    133    PSINCDEC_OUT <= PSINCDEC_IN;
    134 
    135    -- ModuleWare code(v1.9) for instance 'U_8' of 'assignment'
    136    PSDONE_extraOUT <= PSDONE_OUT;
    137 
    138    -- ModuleWare code(v1.9) for instance 'U_9' of 'assignment'
    139    LOCKED_extraOUT <= LOCKED_OUT;
    140 
    141122   -- Instance port mappings.
    142123   U_0 : dcm_50_to_25
     
    166147      PORT MAP (
    167148         CLK         => CLK0_OUT,
     149         rst         => RST_IN,
    168150         PSCLK       => PSCLK_IN,
    169151         PSEN        => PSEN_IN,
     
    173155         shift_phase => do_shift,
    174156         direction   => direction,
    175          shifting    => shifting,
    176          ready       => ready,
     157         shifting    => OPEN,
     158         ready       => OPEN,
    177159         offset      => offset,
    178          DCM_locked  => DCM_locked
     160         DCM_locked  => OPEN
    179161      );
    180162
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/control_manager_beha.vhd

    r10072 r10129  
    2424      clk               : IN     std_logic;
    2525      ram_data_out      : IN     std_logic_vector (15 DOWNTO 0);
    26       config_ready, config_started : OUT    std_logic := '0';
     26      config_ready      : OUT    std_logic := '0';
     27      config_started    : OUT    std_logic := '0';
    2728      config_start      : IN     std_logic;
    2829      config_data       : INOUT  std_logic_vector (15 DOWNTO 0) := (others => 'Z');
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/control_unit_struct.vhd

    r10121 r10129  
    22--
    33-- Created:
    4 --          by - daqct3.UNKNOWN (IHP110)
    5 --          at - 12:52:19 06.01.2011
     4--          by - dneise.UNKNOWN (E5B-LABOR6)
     5--          at - 11:39:13 04.02.2011
    66--
    7 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
     7-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
    88--
    99LIBRARY ieee;
     
    4141--
    4242-- Created:
    43 --          by - daqct3.UNKNOWN (IHP110)
    44 --          at - 12:52:20 06.01.2011
     43--          by - dneise.UNKNOWN (E5B-LABOR6)
     44--          at - 11:39:13 04.02.2011
    4545--
    46 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
     46-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
    4747--
    4848LIBRARY ieee;
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board.ucf

    r10123 r10129  
    125125NET RSRLOAD LOC  = H1 | IOSTANDARD=LVCMOS25;            #ok
    126126#
    127 NET D0_SRCLK LOC  = F2 | IOSTANDARD=LVCMOS25;           #ok
    128 NET D1_SRCLK LOC  = F3 | IOSTANDARD=LVCMOS25;           #ok
    129 NET D2_SRCLK LOC  = R3 | IOSTANDARD=LVCMOS25;           #ok
    130 NET D3_SRCLK LOC  = V1 | IOSTANDARD=LVCMOS25;           #ok
     127NET DSRCLK<0> LOC  = F2 | IOSTANDARD=LVCMOS25;          #ok
     128NET DSRCLK<1> LOC  = F3 | IOSTANDARD=LVCMOS25;          #ok
     129NET DSRCLK<2> LOC  = R3 | IOSTANDARD=LVCMOS25;          #ok
     130NET DSRCLK<3> LOC  = V1 | IOSTANDARD=LVCMOS25;          #ok
    131131
    132132# Testpoints near DRS Chips
     
    138138NET D_T<4> LOC  = K5 | IOSTANDARD=LVCMOS25;                     #ok
    139139NET D_T<5> LOC  = L4 | IOSTANDARD=LVCMOS25;                     #ok
    140 NET D_T_in<0> LOC  = M3 | IOSTANDARD=LVCMOS25 | pullup;                 #ok was: NET D_T<6> LOC  = M3
    141 NET D_T_in<1> LOC  = T3 | IOSTANDARD=LVCMOS25 | pullup;                 #ok was: NET D_T<7> LOC  = T3
    142 #NET D_T<6> LOC  = M3 | IOSTANDARD=LVCMOS25;                    #ok
    143 #NET D_T<7> LOC  = T3 | IOSTANDARD=LVCMOS25;                    #ok
     140#NET D_T_in<0> LOC  = M3 | IOSTANDARD=LVCMOS25 | pullup;                        #ok was: NET D_T<6> LOC  = M3
     141#NET D_T_in<1> LOC  = T3 | IOSTANDARD=LVCMOS25 | pullup;                        #ok was: NET D_T<7> LOC  = T3
     142NET D_T<6> LOC  = M3 | IOSTANDARD=LVCMOS25;                     #ok
     143NET D_T<7> LOC  = T3 | IOSTANDARD=LVCMOS25;                     #ok
    144144NET D_T2<0> LOC  = U2 | IOSTANDARD=LVCMOS25;                    #ok  was D_T<8>
    145145NET D_T2<1> LOC  = V2 | IOSTANDARD=LVCMOS25;                    #ok  was D_T<9>
    146 NET D_T2<2> LOC  = W3 | IOSTANDARD=LVCMOS25;            #ok aka D_TA  was D_T<10>
    147 NET D_T2<3> LOC  = AA3 | IOSTANDARD=LVCMOS25;           #ok aka D_TB  was D_T<11>
    148 
    149 
     146#NET D_T2<2> LOC  = W3 | IOSTANDARD=LVCMOS25;           #ok aka D_TA  was D_T<10>
     147#NET D_T2<3> LOC  = AA3 | IOSTANDARD=LVCMOS25;          #ok aka D_TB  was D_T<11>
     148NET D_T_in<0> LOC  = W3 | IOSTANDARD=LVCMOS25 | pullup;         #ok aka D_TA  was D_T<10>
     149NET D_T_in<1> LOC  = AA3 | IOSTANDARD=LVCMOS25 | pullup;                #ok aka D_TB  was D_T<11>
    150150
    151151# ADC Signals
     
    244244NET MISO LOC  = C12 | IOSTANDARD=LVCMOS33;                      #ok
    245245
    246 NET T0_CS LOC  = C15 | IOSTANDARD=LVCMOS33;                     #ok
    247 NET T1_CS LOC  = C16 | IOSTANDARD=LVCMOS33;                     #ok
    248 NET T2_CS LOC  = C17 | IOSTANDARD=LVCMOS33;                     #ok
    249 NET T3_CS LOC  = C18 | IOSTANDARD=LVCMOS33;                     #ok
     246NET TCS<0> LOC  = C15 | IOSTANDARD=LVCMOS33;                    #ok
     247NET TCS<1> LOC  = C16 | IOSTANDARD=LVCMOS33;                    #ok
     248NET TCS<2> LOC  = C17 | IOSTANDARD=LVCMOS33;                    #ok
     249NET TCS<3> LOC  = C18 | IOSTANDARD=LVCMOS33;                    #ok
    250250NET DAC_CS LOC  = C20 | IOSTANDARD=LVCMOS33;            #ok
    251251NET EE_CS LOC  = C21 | IOSTANDARD=LVCMOS33;             #ok
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board.ucf.bak

    r10123 r10129  
    140140#NET D_T_in<0> LOC  = M3 | IOSTANDARD=LVCMOS25 | pullup;                        #ok was: NET D_T<6> LOC  = M3
    141141#NET D_T_in<1> LOC  = T3 | IOSTANDARD=LVCMOS25 | pullup;                        #ok was: NET D_T<7> LOC  = T3
    142 NET D_T<6> LOC  = M3 | IOSTANDARD=LVCMOS25 | pullup;                    #ok
    143 NET D_T<7> LOC  = T3 | IOSTANDARD=LVCMOS25 | pullup;                    #ok
     142NET D_T<6> LOC  = M3 | IOSTANDARD=LVCMOS25;                     #ok
     143NET D_T<7> LOC  = T3 | IOSTANDARD=LVCMOS25;                     #ok
    144144NET D_T2<0> LOC  = U2 | IOSTANDARD=LVCMOS25;                    #ok  was D_T<8>
    145145NET D_T2<1> LOC  = V2 | IOSTANDARD=LVCMOS25;                    #ok  was D_T<9>
    146 NET D_T2<2> LOC  = W3 | IOSTANDARD=LVCMOS25;            #ok aka D_TA  was D_T<10>
    147 NET D_T2<3> LOC  = AA3 | IOSTANDARD=LVCMOS25;           #ok aka D_TB  was D_T<11>
    148 
    149 
     146#NET D_T2<2> LOC  = W3 | IOSTANDARD=LVCMOS25;           #ok aka D_TA  was D_T<10>
     147#NET D_T2<3> LOC  = AA3 | IOSTANDARD=LVCMOS25;          #ok aka D_TB  was D_T<11>
     148NET D_T_in<0> LOC  = W3 | IOSTANDARD=LVCMOS25 | pullup;         #ok aka D_TA  was D_T<10>
     149NET D_T_in<1> LOC  = AA3 | IOSTANDARD=LVCMOS25 | pullup;                #ok aka D_TB  was D_T<11>
    150150
    151151# ADC Signals
     
    244244NET MISO LOC  = C12 | IOSTANDARD=LVCMOS33;                      #ok
    245245
    246 NET T0_CS LOC  = C15 | IOSTANDARD=LVCMOS33;                     #ok
    247 NET T1_CS LOC  = C16 | IOSTANDARD=LVCMOS33;                     #ok
    248 NET T2_CS LOC  = C17 | IOSTANDARD=LVCMOS33;                     #ok
    249 NET T3_CS LOC  = C18 | IOSTANDARD=LVCMOS33;                     #ok
     246NET TCS<0> LOC  = C15 | IOSTANDARD=LVCMOS33;                    #ok
     247NET TCS<1> LOC  = C16 | IOSTANDARD=LVCMOS33;                    #ok
     248NET TCS<2> LOC  = C17 | IOSTANDARD=LVCMOS33;                    #ok
     249NET TCS<3> LOC  = C18 | IOSTANDARD=LVCMOS33;                    #ok
    250250NET DAC_CS LOC  = C20 | IOSTANDARD=LVCMOS33;            #ok
    251251NET EE_CS LOC  = C21 | IOSTANDARD=LVCMOS33;             #ok
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_board_struct.vhd

    r10123 r10129  
    33-- Created:
    44--          by - dneise.UNKNOWN (E5B-LABOR6)
    5 --          at - 17:58:59 27.01.2011
     5--          at - 15:27:51 04.02.2011
    66--
    77-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
     
    2828      RS485_C_DI : IN     std_logic;
    2929      RS485_E_DI : IN     std_logic;
    30       RS485_E_DO : IN     std_logic;
    3130      TRG        : IN     STD_LOGIC;
    3231      W_INT      : IN     std_logic;
     
    3635      AMBER_LED  : OUT    std_logic;
    3736      A_CLK      : OUT    std_logic_vector (3 DOWNTO 0);
    38       D0_SRCLK   : OUT    STD_LOGIC;
    39       D1_SRCLK   : OUT    STD_LOGIC;
    40       D2_SRCLK   : OUT    STD_LOGIC;
    41       D3_SRCLK   : OUT    STD_LOGIC;
    4237      DAC_CS     : OUT    std_logic;
    4338      DENABLE    : OUT    std_logic                     := '0';
     39      DSRCLK     : OUT    std_logic_vector (3 DOWNTO 0) := (others => '0');
    4440      DWRITE     : OUT    std_logic                     := '0';
    4541      D_A        : OUT    std_logic_vector (3 DOWNTO 0) := (others => '0');
    46       D_T        : OUT    std_logic_vector (5 DOWNTO 0) := (OTHERS => '0');
    47       D_T2       : 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');
    4844      EE_CS      : OUT    std_logic;
    4945      GREEN_LED  : OUT    std_logic;
     
    5551      RS485_C_RE : OUT    std_logic;
    5652      RS485_E_DE : OUT    std_logic;
     53      RS485_E_DO : OUT    std_logic;
    5754      RS485_E_RE : OUT    std_logic;
    5855      RSRLOAD    : OUT    std_logic                     := '0';
    5956      SRIN       : OUT    std_logic                     := '0';
    6057      S_CLK      : OUT    std_logic;
    61       T0_CS      : OUT    std_logic;
    62       T1_CS      : OUT    std_logic;
    63       T2_CS      : OUT    std_logic;
    64       T3_CS      : OUT    std_logic;
     58      TCS        : OUT    std_logic_vector (3 DOWNTO 0);
    6559      TRG_V      : OUT    std_logic;
    6660      W_A        : OUT    std_logic_vector (9 DOWNTO 0);
     
    8276-- Created:
    8377--          by - dneise.UNKNOWN (E5B-LABOR6)
    84 --          at - 17:58:59 27.01.2011
     78--          at - 15:27:51 04.02.2011
    8579--
    8680-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
     
    10296
    10397   -- Internal signal declarations
    104    SIGNAL CLK25_OUT       : std_logic;
    105    SIGNAL CLK25_PSOUT     : std_logic;
    106    SIGNAL CLK50_OUT       : std_logic;
    107    SIGNAL CLK_25_PS       : std_logic;
    108    SIGNAL CLK_25_PS1      : std_logic;
    109    SIGNAL CLK_50          : std_logic;
    110    SIGNAL DCM_locked      : std_logic;
    111    SIGNAL LOCKED_extraOUT : std_logic;
    112    SIGNAL PSCLK_OUT       : std_logic;
    113    SIGNAL PSDONE_extraOUT : std_logic;
    114    SIGNAL PSINCDEC_OUT    : std_logic;
    115    SIGNAL PS_DIR_IN       : std_logic;
    116    SIGNAL SRCLK           : std_logic                    := '0';
    117    SIGNAL adc_clk_en      : std_logic                    := '0';
    118    SIGNAL adc_data_array  : adc_data_array_type;
    119    SIGNAL board_id        : std_logic_vector(3 DOWNTO 0);
    120    SIGNAL crate_id        : std_logic_vector(1 DOWNTO 0);
    121    SIGNAL drs_channel_id  : std_logic_vector(3 DOWNTO 0) := (others => '0');
    122    SIGNAL dummy           : std_logic;
    123    SIGNAL led             : std_logic_vector(7 DOWNTO 0) := (OTHERS => '0');
    124    SIGNAL ready           : std_logic                    := '0';
    125    SIGNAL sensor_cs       : std_logic_vector(3 DOWNTO 0);
    126    -- status:
    127    SIGNAL shifting        : std_logic                    := '0';
    128 
    129    -- Implicit buffer signal declarations
    130    SIGNAL SRIN_internal : std_logic;
     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');
    131110
    132111
     
    147126      board_id               : IN     std_logic_vector (3 DOWNTO 0);
    148127      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
    149130      trigger                : IN     std_logic ;
    150131      wiz_int                : IN     std_logic ;
    151       CLK25_OUT              : OUT    std_logic ;
    152       CLK25_PSOUT            : OUT    std_logic ;
    153       CLK50_OUT              : OUT    std_logic ;
    154132      CLK_25_PS              : OUT    std_logic ;
    155133      CLK_50                 : OUT    std_logic ;
    156       DCM_locked             : OUT    std_logic ;
    157       LOCKED_extraOUT        : OUT    std_logic ;
    158       PSCLK_OUT              : OUT    std_logic ;
    159       PSDONE_extraOUT        : OUT    std_logic ;
    160       PSINCDEC_OUT           : OUT    std_logic ;
    161       PS_DIR_IN              : OUT    std_logic ;
    162       RSRLOAD                : OUT    std_logic                     := '0';
    163       SRCLK                  : OUT    std_logic                     := '0';
    164       SRIN_out               : OUT    std_logic                     := '0';
    165       adc_clk_en             : OUT    std_logic                     := '0';
    166       adc_oeb                : OUT    std_logic                     := '1';
     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';
    167139      additional_flasher_out : OUT    std_logic ;
     140      alarm_refclk_too_high  : OUT    std_logic                      := '0';           -- default domino wave off
     141      alarm_refclk_too_low   : OUT    std_logic                      := '0';           -- default domino wave off
    168142      amber                  : OUT    std_logic ;
     143      counter_result         : OUT    std_logic_vector (11 DOWNTO 0) := (others => '0');
    169144      dac_cs                 : OUT    std_logic ;
    170       denable                : OUT    std_logic                     := '0';           -- default domino wave off
    171       drs_channel_id         : OUT    std_logic_vector (3 DOWNTO 0) := (others => '0');
    172       drs_dwrite             : OUT    std_logic                     := '1';
     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';
    173148      green                  : OUT    std_logic ;
    174       led                    : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
    175       mosi                   : OUT    std_logic                     := '0';
    176       offset                 : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
    177       ready                  : OUT    std_logic                     := '0';
     149      led                    : OUT    std_logic_vector (7 DOWNTO 0)  := (OTHERS => '0');
     150      mosi                   : OUT    std_logic                      := '0';
    178151      red                    : OUT    std_logic ;
    179152      sclk                   : OUT    std_logic ;
    180153      sensor_cs              : OUT    std_logic_vector (3 DOWNTO 0);
    181       -- status:
    182       shifting               : OUT    std_logic                     := '0';
    183154      wiz_addr               : OUT    std_logic_vector (9 DOWNTO 0);
    184       wiz_cs                 : OUT    std_logic                     := '1';
    185       wiz_rd                 : OUT    std_logic                     := '1';
    186       wiz_reset              : OUT    std_logic                     := '1';
    187       wiz_wr                 : OUT    std_logic                     := '1';
     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';
    188159      sio                    : INOUT  std_logic ;
    189160      wiz_data               : INOUT  std_logic_vector (15 DOWNTO 0)
     
    199170BEGIN
    200171   -- Architecture concurrent statements
    201    -- HDL Embedded Text Block 1 eb_ID
     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
    202182   -- hard-wired IDs
    203183   board_id <= LINE(5 downto 2);
    204184   crate_id <= LINE(1 downto 0);
    205185
    206    -- HDL Embedded Text Block 2 ADC_CLK
    207    -- ADC_CLK 2
    208    A_CLK (0) <= CLK_25_PS;
    209    A_CLK (1) <= CLK_25_PS;
    210    A_CLK (2) <= CLK_25_PS;
    211    A_CLK (3) <= CLK_25_PS;                                       
    212 
    213    -- HDL Embedded Text Block 3 ADC_DATA
    214    -- ADC_DATA 3
    215    adc_data_array (0) <= A0_D;
    216    adc_data_array (1) <= A1_D;
    217    adc_data_array (2) <= A2_D;
    218    adc_data_array (3) <= A3_D;                                       
    219 
    220    -- HDL Embedded Text Block 4 SRCLK
    221    -- SRCLK 4         
    222    D0_SRCLK <= SRCLK;
    223    D1_SRCLK <= SRCLK;
    224    D2_SRCLK <= SRCLK;
    225    D3_SRCLK <= SRCLK;                               
    226 
    227    -- HDL Embedded Text Block 5 T_CS
    228    -- T_CS 5
    229    T0_CS <= sensor_cs (0);
    230    T1_CS <= sensor_cs (1);
    231    T2_CS <= sensor_cs (2);
    232    T3_CS <= sensor_cs (3);                                     
    233 
    234    -- HDL Embedded Text Block 6 MISC
    235    -- MISC 6     
    236    
    237    RS485_C_RE <= '0';
    238    RS485_C_DE <= '0';   
    239    RS485_C_DO <= RS485_C_DI;
    240    
    241    
    242    
    243    -- DENABLE <= '0'; -- domino wave stopped
    244    -- DENABLE <= '1'; -- domino wave running
    245    
    246    
    247    EE_CS <= '1';
    248 
    249    -- HDL Embedded Text Block 7 eb1
    250    D_T(5 downto 0) <= (others => '0');
    251 
    252    -- HDL Embedded Text Block 8 eb2
    253    -- eb2 8                                       
    254    D_A <= drs_channel_id;
    255 
    256186   -- HDL Embedded Text Block 9 eb3
    257    -- eb3 9                         
    258    --A0_T(0) <= ready;
    259    --A0_T(1) <= shifting;
    260    --A0_T(2) <= CLK25_PSOUT;
    261    --A0_T(3) <= PS_DIR_IN;
    262    --A0_T(4) <= PS_DO_IN;
    263    --A0_T(5) <= PSINCDEC_OUT;
    264    
    265    
    266    
    267    A1_T(0) <= SRIN_internal;
    268    A1_T(1) <= PSDONE_extraOUT;
    269    A1_T(2) <= PSCLK_OUT;
    270    A1_T(3) <= LOCKED_extraOUT;
    271    
    272    A1_T(4) <= drs_channel_id(0);
    273    A1_T(5) <= drs_channel_id(1);
    274    A1_T(6) <= drs_channel_id(2);
    275    A1_T(7) <= drs_channel_id(3);
    276    
    277    A0_T(5 downto 0) <= (others => '0');
    278    A0_T(6) <= REFCLK;
    279    A0_T(7) <= RS485_E_DI;
     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
    280206   RS485_E_RE <= '0';
    281207   RS485_E_DE <= '0';
    282    
    283    D_T2 <= D_PLLLCK;
     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';
    284222
    285223
    286224   -- ModuleWare code(v1.9) for instance 'I0' of 'and'
    287225   CLK_25_PS <= adc_clk_en AND CLK_25_PS1;
    288 
    289    -- ModuleWare code(v1.9) for instance 'I3' of 'assignment'
    290    DAC_CS <= dummy;
    291226
    292227   -- Instance port mappings.
     
    306241         board_id               => board_id,
    307242         crate_id               => crate_id,
     243         drs_refclk_in          => REFCLK,
     244         plllock_in             => D_PLLLCK,
    308245         trigger                => TRG,
    309246         wiz_int                => W_INT,
    310          CLK25_OUT              => CLK25_OUT,
    311          CLK25_PSOUT            => CLK25_PSOUT,
    312          CLK50_OUT              => CLK50_OUT,
    313247         CLK_25_PS              => CLK_25_PS1,
    314248         CLK_50                 => CLK_50,
    315          DCM_locked             => DCM_locked,
    316          LOCKED_extraOUT        => LOCKED_extraOUT,
    317          PSCLK_OUT              => PSCLK_OUT,
    318          PSDONE_extraOUT        => PSDONE_extraOUT,
    319          PSINCDEC_OUT           => PSINCDEC_OUT,
    320          PS_DIR_IN              => PS_DIR_IN,
    321249         RSRLOAD                => RSRLOAD,
    322250         SRCLK                  => SRCLK,
    323          SRIN_out               => SRIN_internal,
     251         SRIN_out               => SRIN,
    324252         adc_clk_en             => adc_clk_en,
    325253         adc_oeb                => OE_ADC,
    326254         additional_flasher_out => TRG_V,
     255         alarm_refclk_too_high  => alarm_refclk_too_high,
     256         alarm_refclk_too_low   => alarm_refclk_too_low,
    327257         amber                  => AMBER_LED,
    328          dac_cs                 => dummy,
     258         counter_result         => counter_result,
     259         dac_cs                 => DAC_CS,
    329260         denable                => DENABLE,
    330          drs_channel_id         => drs_channel_id,
     261         drs_channel_id         => D_A,
    331262         drs_dwrite             => DWRITE,
    332263         green                  => RED_LED,
    333264         led                    => led,
    334265         mosi                   => MOSI,
    335          offset                 => OPEN,
    336          ready                  => ready,
    337266         red                    => GREEN_LED,
    338267         sclk                   => S_CLK,
    339          sensor_cs              => sensor_cs,
    340          shifting               => shifting,
     268         sensor_cs              => TCS,
    341269         wiz_addr               => W_A,
    342270         wiz_cs                 => W_CS,
     
    348276      );
    349277
    350    -- Implicit buffered output assignments
    351    SRIN <= SRIN_internal;
    352 
    353278END struct;
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_definitions.vhd

    r10123 r10129  
    4747
    4848  constant FIRST_PORT : integer := 5000;
    49   constant CAM_IP_PREFIX : ip_type := (192, 168, 0, 0);
     49  constant CAM_IP_PREFIX : ip_type := (10, 0, 0, 0);
    5050  constant IP_offset : integer := 128;
    5151  constant CAM_MAC_prefix : mac_type := (X"FAC7", X"0FAD", X"0000");
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_definitions.vhd.bak

    r10123 r10129  
    1717
    1818  type mac_type is array (0 to 2) of std_logic_vector (15 downto 0);
    19   type mac_list_type is array (0 to 3) of mac_type;
    2019  type ip_type is array (0 to 3) of integer;
    21   type ip_list_type is array (0 to 3) of ip_type;
     20 
     21  type mac_list_type is array (0 to 2) of mac_type;
     22  type ip_list_type is array (0 to 2) of ip_type;
    2223-- Network Settings
    2324
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/fad_main_struct.vhd

    r10123 r10129  
    33-- Created:
    44--          by - dneise.UNKNOWN (E5B-LABOR6)
    5 --          at - 17:58:58 27.01.2011
     5--          at - 15:27:49 04.02.2011
    66--
    77-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
     
    2828      board_id               : IN     std_logic_vector (3 DOWNTO 0);
    2929      crate_id               : IN     std_logic_vector (1 DOWNTO 0);
     30      drs_refclk_in          : IN     std_logic;                                          -- used to check if DRS REFCLK exsists, if not DENABLE inhibit
     31      plllock_in             : IN     std_logic_vector (3 DOWNTO 0);                      -- high level, if dominowave is running and DRS PLL locked
    3032      trigger                : IN     std_logic;
    3133      wiz_int                : IN     std_logic;
    32       CLK25_OUT              : OUT    std_logic;
    33       CLK25_PSOUT            : OUT    std_logic;
    34       CLK50_OUT              : OUT    std_logic;
    3534      CLK_25_PS              : OUT    std_logic;
    3635      CLK_50                 : OUT    std_logic;
    37       DCM_locked             : OUT    std_logic;
    38       LOCKED_extraOUT        : OUT    std_logic;
    39       PSCLK_OUT              : OUT    std_logic;
    40       PSDONE_extraOUT        : OUT    std_logic;
    41       PSINCDEC_OUT           : OUT    std_logic;
    42       PS_DIR_IN              : OUT    std_logic;
    43       RSRLOAD                : OUT    std_logic                     := '0';
    44       SRCLK                  : OUT    std_logic                     := '0';
    45       SRIN_out               : OUT    std_logic                     := '0';
    46       adc_clk_en             : OUT    std_logic                     := '0';
    47       adc_oeb                : OUT    std_logic                     := '1';
     36      RSRLOAD                : OUT    std_logic                      := '0';
     37      SRCLK                  : OUT    std_logic                      := '0';
     38      SRIN_out               : OUT    std_logic                      := '0';
     39      adc_clk_en             : OUT    std_logic                      := '0';
     40      adc_oeb                : OUT    std_logic                      := '1';
    4841      additional_flasher_out : OUT    std_logic;
     42      alarm_refclk_too_high  : OUT    std_logic                      := '0';              -- default domino wave off
     43      alarm_refclk_too_low   : OUT    std_logic                      := '0';              -- default domino wave off
    4944      amber                  : OUT    std_logic;
     45      counter_result         : OUT    std_logic_vector (11 DOWNTO 0) := (others => '0');
    5046      dac_cs                 : OUT    std_logic;
    51       denable                : OUT    std_logic                     := '0';              -- default domino wave off
    52       drs_channel_id         : OUT    std_logic_vector (3 DOWNTO 0) := (others => '0');
    53       drs_dwrite             : OUT    std_logic                     := '1';
     47      denable                : OUT    std_logic                      := '0';              -- default domino wave off
     48      drs_channel_id         : OUT    std_logic_vector (3 DOWNTO 0)  := (others => '0');
     49      drs_dwrite             : OUT    std_logic                      := '1';
    5450      green                  : OUT    std_logic;
    55       led                    : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
    56       mosi                   : OUT    std_logic                     := '0';
    57       offset                 : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
    58       ready                  : OUT    std_logic                     := '0';
     51      led                    : OUT    std_logic_vector (7 DOWNTO 0)  := (OTHERS => '0');
     52      mosi                   : OUT    std_logic                      := '0';
    5953      red                    : OUT    std_logic;
    6054      sclk                   : OUT    std_logic;
    6155      sensor_cs              : OUT    std_logic_vector (3 DOWNTO 0);
    62       -- status:
    63       shifting               : OUT    std_logic                     := '0';
    6456      wiz_addr               : OUT    std_logic_vector (9 DOWNTO 0);
    65       wiz_cs                 : OUT    std_logic                     := '1';
    66       wiz_rd                 : OUT    std_logic                     := '1';
    67       wiz_reset              : OUT    std_logic                     := '1';
    68       wiz_wr                 : OUT    std_logic                     := '1';
     57      wiz_cs                 : OUT    std_logic                      := '1';
     58      wiz_rd                 : OUT    std_logic                      := '1';
     59      wiz_reset              : OUT    std_logic                      := '1';
     60      wiz_wr                 : OUT    std_logic                      := '1';
    6961      sio                    : INOUT  std_logic;
    7062      wiz_data               : INOUT  std_logic_vector (15 DOWNTO 0)
     
    8072-- Created:
    8173--          by - dneise.UNKNOWN (E5B-LABOR6)
    82 --          at - 17:58:58 27.01.2011
     74--          at - 15:27:50 04.02.2011
    8375--
    8476-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
     
    133125   SIGNAL dac_array              : dac_array_type;
    134126   SIGNAL data_out               : std_logic_vector(63 DOWNTO 0);
     127   SIGNAL denable_inhibit        : std_logic                                    := '0';                -- default domino wave off
     128   SIGNAL denable_prim           : std_logic                                    := '0';                -- default domino wave off
     129   SIGNAL din1                   : std_logic                                    := '0';                -- default domino wave off
    135130   SIGNAL dout                   : std_logic;
    136131   SIGNAL dout1                  : std_logic;
    137    SIGNAL drs_address            : std_logic_vector(3 DOWNTO 0)                 := (others => '0');
    138    SIGNAL drs_address_mode       : std_logic;
    139    SIGNAL drs_channel_internal   : std_logic_vector(3 DOWNTO 0)                 := (others => '0');
    140132   SIGNAL drs_clk_en             : std_logic                                    := '0';
    141133   SIGNAL drs_read_s_cell        : std_logic                                    := '0';
     
    191183
    192184   -- Implicit buffer signal declarations
    193    SIGNAL CLK_25_PS_internal : std_logic;
    194    SIGNAL CLK_50_internal    : std_logic;
     185   SIGNAL CLK_25_PS_internal             : std_logic;
     186   SIGNAL CLK_50_internal                : std_logic;
     187   SIGNAL alarm_refclk_too_high_internal : std_logic;
     188   SIGNAL alarm_refclk_too_low_internal  : std_logic;
    195189
    196190
    197191   -- Component Declarations
     192   COMPONENT REFCLK_counter
     193   PORT (
     194      clk                   : IN     std_logic;
     195      refclk_in             : IN     std_logic;
     196      alarm_refclk_too_high : OUT    std_logic                      := '0';
     197      alarm_refclk_too_low  : OUT    std_logic                      := '0';
     198      counter_result        : OUT    std_logic_vector (11 DOWNTO 0) := (others => '0')
     199   );
     200   END COMPONENT;
    198201   COMPONENT adc_buffer
    199202   PORT (
     
    207210   COMPONENT clock_generator_var_ps
    208211   PORT (
    209       CLK             : IN     std_logic ;
    210       RST_IN          : IN     std_logic ;
    211       direction       : IN     std_logic ;
    212       do_shift        : IN     std_logic ;
    213       CLK_25          : OUT    std_logic ;
    214       CLK_25_PS       : OUT    std_logic ;
    215       CLK_50          : OUT    std_logic ;
    216       DCM_locked      : OUT    std_logic ;
    217       LOCKED_extraOUT : OUT    std_logic ;
    218       PSCLK_OUT       : OUT    std_logic ;
    219       PSDONE_extraOUT : OUT    std_logic ;
    220       PSINCDEC_OUT    : OUT    std_logic ;
    221       offset          : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0');
    222       ready           : OUT    std_logic                     := '0';
    223       -- status:
    224       shifting        : OUT    std_logic                     := '0'
     212      CLK       : IN     std_logic ;
     213      RST_IN    : IN     std_logic ;
     214      direction : IN     std_logic ;
     215      do_shift  : IN     std_logic ;
     216      CLK_25    : OUT    std_logic ;
     217      CLK_25_PS : OUT    std_logic ;
     218      CLK_50    : OUT    std_logic ;
     219      offset    : OUT    std_logic_vector (7 DOWNTO 0) := (OTHERS => '0')
    225220   );
    226221   END COMPONENT;
     
    487482   -- Optional embedded configurations
    488483   -- pragma synthesis_off
     484   FOR ALL : REFCLK_counter USE ENTITY FACT_FAD_lib.REFCLK_counter;
    489485   FOR ALL : adc_buffer USE ENTITY FACT_FAD_lib.adc_buffer;
    490486   FOR ALL : clock_generator_var_ps USE ENTITY FACT_FAD_lib.clock_generator_var_ps;
     
    514510   sclk <= sclk_enable AND sclk1;
    515511
     512   -- ModuleWare code(v1.9) for instance 'U_5' of 'and'
     513   denable <= denable_prim AND din1;
     514
    516515   -- ModuleWare code(v1.9) for instance 'U_11' of 'and'
    517516   dout1 <= dout AND trigger_enable;
    518517
    519    -- ModuleWare code(v1.9) for instance 'U_5' of 'assignment'
    520    PS_DIR_IN <= ps_direction;
    521 
    522    -- ModuleWare code(v1.9) for instance 'U_6' of 'assignment'
    523    CLK50_OUT <= CLK_50_internal;
    524 
    525    -- ModuleWare code(v1.9) for instance 'U_7' of 'assignment'
    526    CLK25_OUT <= CLK_25;
    527 
    528    -- ModuleWare code(v1.9) for instance 'U_8' of 'assignment'
    529    CLK25_PSOUT <= CLK_25_PS_internal;
    530 
    531    -- ModuleWare code(v1.9) for instance 'U_0' of 'mux'
    532    u_0combo_proc: PROCESS(drs_channel_internal, drs_address,
    533                           drs_address_mode)
    534    BEGIN
    535       CASE drs_address_mode IS
    536       WHEN '0' => drs_channel_id <= drs_channel_internal;
    537       WHEN '1' => drs_channel_id <= drs_address;
    538       WHEN OTHERS => drs_channel_id <= (OTHERS => 'X');
    539       END CASE;
    540    END PROCESS u_0combo_proc;
     518   -- ModuleWare code(v1.9) for instance 'U_7' of 'inv'
     519   din1 <= NOT(denable_inhibit);
     520
     521   -- ModuleWare code(v1.9) for instance 'U_6' of 'or'
     522   denable_inhibit <= alarm_refclk_too_low_internal
     523                      OR alarm_refclk_too_high_internal;
    541524
    542525   -- ModuleWare code(v1.9) for instance 'U_9' of 'or'
     
    547530
    548531   -- Instance port mappings.
     532   REFCLK_counter_main : REFCLK_counter
     533      PORT MAP (
     534         clk                   => CLK_50_internal,
     535         refclk_in             => drs_refclk_in,
     536         counter_result        => counter_result,
     537         alarm_refclk_too_high => alarm_refclk_too_high_internal,
     538         alarm_refclk_too_low  => alarm_refclk_too_low_internal
     539      );
    549540   I_main_adc_buffer : adc_buffer
    550541      PORT MAP (
     
    557548   U_2 : clock_generator_var_ps
    558549      PORT MAP (
    559          CLK             => CLK,
    560          RST_IN          => ps_reset,
    561          direction       => ps_direction,
    562          do_shift        => ps_do_phase_shift,
    563          CLK_25          => CLK_25,
    564          CLK_25_PS       => CLK_25_PS_internal,
    565          CLK_50          => CLK_50_internal,
    566          DCM_locked      => DCM_locked,
    567          LOCKED_extraOUT => LOCKED_extraOUT,
    568          PSCLK_OUT       => PSCLK_OUT,
    569          PSDONE_extraOUT => PSDONE_extraOUT,
    570          PSINCDEC_OUT    => PSINCDEC_OUT,
    571          offset          => offset,
    572          ready           => ready,
    573          shifting        => shifting
     550         CLK       => CLK,
     551         RST_IN    => ps_reset,
     552         direction => ps_direction,
     553         do_shift  => ps_do_phase_shift,
     554         CLK_25    => CLK_25,
     555         CLK_25_PS => CLK_25_PS_internal,
     556         CLK_50    => CLK_50_internal,
     557         offset    => OPEN
    574558      );
    575559   U_3 : continous_pulser
     
    648632         adc_clk_en            => adc_clk_en,
    649633         adc_otr               => adc_otr,
    650          drs_channel_id        => drs_channel_internal,
     634         drs_channel_id        => drs_channel_id,
    651635         drs_readout_ready     => drs_readout_ready,
    652636         drs_readout_ready_ack => drs_readout_ready_ack,
     
    791775         BoardID           => board_id,
    792776         CrateID           => crate_id,
    793          denable           => denable,
     777         denable           => denable_prim,
    794778         dwrite_enable     => dwrite_enable,
    795779         sclk_enable       => sclk_enable,
     
    804788
    805789   -- Implicit buffered output assignments
    806    CLK_25_PS <= CLK_25_PS_internal;
    807    CLK_50    <= CLK_50_internal;
     790   CLK_25_PS             <= CLK_25_PS_internal;
     791   CLK_50                <= CLK_50_internal;
     792   alarm_refclk_too_high <= alarm_refclk_too_high_internal;
     793   alarm_refclk_too_low  <= alarm_refclk_too_low_internal;
    808794
    809795END struct;
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/phase_shifter.vhd

    r9912 r10129  
    99library ieee;
    1010use ieee.std_logic_1164.all;
    11 use IEEE.STD_LOGIC_ARITH.all;
    12 use ieee.STD_LOGIC_UNSIGNED.all;
     11use IEEE.NUMERIC_STD.all;
    1312
    1413library FACT_FAD_lib;
     
    2019        PORT(
    2120                CLK : IN std_logic;
     21                rst : in std_logic; --asynch in of DCM
    2222               
    2323                -- interface to: clock_generator_variable_PS_struct.vhd
     
    7272
    7373architecture first_behave of phase_shifter is
    74 
     74  constant OFFS_MIN : integer := -128;
     75  constant OFFS_MAX : integer := 127;
     76   
    7577        type states is (INIT, READY_STATE, SHIFTING_STATE, WAITINGFORDONE);
    7678        signal state,next_state : states := INIT;
    7779       
    7880        signal local_direction : std_logic;
     81        signal offset_int : integer range OFFS_MIN to OFFS_MAX := 0;
     82       
     83       
    7984
    8085begin
    8186
    8287-- concurrent statements:
    83 
    8488DCM_locked <= LOCKED;
    8589PSCLK <= CLK;
     90offset <= std_logic_vector(to_signed(offset_int,8));
    8691
    8792  -- MAIN FSM: go to next state if rising edge, or to INIT if LOCKED not high.
    88   FSM_Registers: process(CLK, LOCKED)
     93  FSM_Registers: process(CLK, LOCKED, rst)
    8994  begin
    90     if LOCKED = '0' then
     95    if rst = '1' then
     96      state <= INIT;
     97    elsif LOCKED = '0' then
    9198      state <= INIT;
    9299    elsif Rising_edge(CLK) then
     
    96103
    97104  -- MAIN FSM
    98   FSM_logic: process(state, PSDONE, LOCKED, shift_phase)
     105  FSM_logic: process(state, PSDONE, LOCKED, shift_phase, direction, local_direction)
    99106  begin
    100107    next_state <= state;
     
    103110        -- INIT state: here the FSM is idling, when LOCKED is not HIGH.
    104111    when INIT =>
    105         ready <= '0';
     112    ready <= '0';
     113    offset_int <= 0;
    106114                shifting <= '0';
    107115                PSEN <= '0';
     
    139147        if (PSDONE = '1') then
    140148                             next_state <= READY_STATE;
     149                             if (local_direction = '1') then
     150                               if (offset_int < OFFS_MAX) then
     151                                 offset_int <= offset_int + 1;
     152                               end if;
     153                             else
     154                               if (offset_int > OFFS_MIN) then
     155                                 offset_int <= offset_int - 1;
     156                               end if;
     157                             end if;
    141158        else
    142159                             next_state <= WAITINGFORDONE;
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/phase_shifter.vhd.bak

    r10074 r10129  
    99library ieee;
    1010use ieee.std_logic_1164.all;
    11 use IEEE.STD_LOGIC_ARITH.all;
    12 use ieee.STD_LOGIC_UNSIGNED.all;
     11use IEEE.NUMERIC_STD.all;
    1312
    1413library FACT_FAD_lib;
     
    2019        PORT(
    2120                CLK : IN std_logic;
     21                rst : in std_logic; --asynch in of DCM
    2222               
    2323                -- interface to: clock_generator_variable_PS_struct.vhd
     
    7272
    7373architecture first_behave of phase_shifter is
    74 
     74  constant OFFS_MIN : integer := -128;
     75  constant OFFS_MAX : integer := 127;
     76   
    7577        type states is (INIT, READY_STATE, SHIFTING_STATE, WAITINGFORDONE);
    7678        signal state,next_state : states := INIT;
    7779       
    7880        signal local_direction : std_logic;
     81        signal offset_int : integer range OFFS_MIN to OFFS_MAX := 0;
     82       
     83       
    7984
    8085begin
    8186
    8287-- concurrent statements:
    83 
    8488DCM_locked <= LOCKED;
    8589PSCLK <= CLK;
     90offset <= std_logic_vector(to_signed(offset_int,8));
    8691
    8792  -- MAIN FSM: go to next state if rising edge, or to INIT if LOCKED not high.
    88   FSM_Registers: process(CLK, LOCKED)
     93  FSM_Registers: process(CLK, LOCKED, rst)
    8994  begin
    90     if LOCKED = '0' then
     95    if Rising_edge(rst) then
     96      state <= INIT;
     97    elsif LOCKED = '0' then
    9198      state <= INIT;
    9299    elsif Rising_edge(CLK) then
     
    96103
    97104  -- MAIN FSM
    98   FSM_logic: process(state, PSDONE, LOCKED, shift_phase)
     105  FSM_logic: process(state, PSDONE, LOCKED, shift_phase, direction, local_direction)
    99106  begin
    100107    next_state <= state;
     
    103110        -- INIT state: here the FSM is idling, when LOCKED is not HIGH.
    104111    when INIT =>
    105         ready <= '0';
     112    ready <= '0';
     113    offset_int <= 0;
    106114                shifting <= '0';
    107115                PSEN <= '0';
     
    139147        if (PSDONE = '1') then
    140148                             next_state <= READY_STATE;
     149                             if (local_direction = '1') then
     150                               if (offset_int < OFFS_MAX) then
     151                                 offset_int <= offset_int + 1;
     152                               end if;
     153                             else
     154                               if (offset_int > OFFS_MIN) then
     155                                 offset_int <= offset_int - 1;
     156                               end if;
     157                             end if;
    141158        else
    142159                             next_state <= WAITINGFORDONE;
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/spi_interface_struct.vhd

    r10121 r10129  
    22--
    33-- Created:
    4 --          by - daqct3.UNKNOWN (IHP110)
    5 --          at - 12:52:20 06.01.2011
     4--          by - dneise.UNKNOWN (E5B-LABOR6)
     5--          at - 16:13:08 03.02.2011
    66--
    7 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
     7-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
    88--
    99LIBRARY ieee;
     
    3737--
    3838-- Created:
    39 --          by - daqct3.UNKNOWN (IHP110)
    40 --          at - 12:52:20 06.01.2011
     39--          by - dneise.UNKNOWN (E5B-LABOR6)
     40--          at - 16:13:08 03.02.2011
    4141--
    42 -- Generated by Mentor Graphics' HDL Designer(TM) 2009.1 (Build 12)
     42-- Generated by Mentor Graphics' HDL Designer(TM) 2009.2 (Build 10)
    4343--
    4444LIBRARY ieee;
     
    5757
    5858   -- Internal signal declarations
     59   SIGNAL T_sensor_start   : std_logic;
    5960   SIGNAL dac_config_ready : std_logic;
    6061   SIGNAL dac_config_start : std_logic;
     
    7071
    7172   -- Component Declarations
    72    COMPONENT spi_clock_generator
     73   COMPONENT clk_divider
    7374   GENERIC (
    74       CLK_DIVIDER : integer := 25      --2 MHz @ 50 MHz
     75      DIVIDER : integer := 25
    7576   );
    7677   PORT (
     
    119120   -- Optional embedded configurations
    120121   -- pragma synthesis_off
    121    FOR ALL : spi_clock_generator USE ENTITY FACT_FAD_lib.spi_clock_generator;
     122   FOR ALL : clk_divider USE ENTITY FACT_FAD_lib.clk_divider;
    122123   FOR ALL : spi_controller USE ENTITY FACT_FAD_lib.spi_controller;
    123124   FOR ALL : spi_distributor USE ENTITY FACT_FAD_lib.spi_distributor;
     
    128129
    129130   -- Instance port mappings.
    130    I_spi_clkgen : spi_clock_generator
     131   I1 : clk_divider
    131132      GENERIC MAP (
    132          CLK_DIVIDER => 25         --2 MHz @ 50 MHz
     133         DIVIDER => 25
    133134      )
    134135      PORT MAP (
    135136         clk  => clk_50MHz,
    136137         sclk => sclk_internal
     138      );
     139   Measure_Temperature_Timer : clk_divider
     140      GENERIC MAP (
     141         DIVIDER => 25
     142      )
     143      PORT MAP (
     144         clk  => sclk_internal,
     145         sclk => T_sensor_start
    137146      );
    138147   I_spi_controller : spi_controller
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd

    r10123 r10129  
    318318                ip_loc <= ( CAM_IP_PREFIX(0) , CAM_IP_PREFIX(1) , IP_offset + conv_integer(cid) , IP_offset + conv_integer(bid) );
    319319              end if;
    320                                           else -- FAD is tested, eighther at ETHZ or at TUDO AND eighther with FMP or without.
     320                                          else -- FAD is tested, either at ETHZ or at TUDO AND either with FMP or without.
    321321                                            if ( FAD_at_ETHZ = '0' ) then
    322322                                             -- easy FAD is at TUDO -> only one choice.
  • firmware/FAD/FACT_FAD_20MHz_VAR_PS/FACT_FAD_lib/hdl/w5300_modul.vhd.bak

    r10123 r10129  
    445445                                        -- Own IP-Address
    446446                                        when IP =>
    447                                           led(0) <= '1';
    448           led(1) <= '1';
    449           led(2) <= '1';
    450 
    451447                                                par_addr <= W5300_SIPR;
    452448                                                par_data (15 downto 8) <= conv_std_logic_vector(ip_loc(0),8);
     
    474470                                        -- Socket Init
    475471                                        when SI =>
    476                                           led(3) <= '1';
    477472                                                par_addr <= W5300_S0_MR + socket_cnt * W5300_S_INC;
    478473                                                par_data <= X"0101"; -- ALIGN, TCP
     
    506501                                                end if;
    507502                                        when SI6 =>
    508                                           led(4) <= '1';
    509503                                                par_addr <= W5300_S0_CR + socket_cnt * W5300_S_INC;
    510504                                                par_data <= X"0002"; -- LISTEN
     
    520514                                               
    521515                                        when ESTABLISH =>
    522                                           led(5) <= '1';
    523516                                          socks_waiting <= '1';
    524517            socks_connected <= '0';
Note: See TracChangeset for help on using the changeset viewer.