DIGITAL L 0 TRIGGER WITH FPGA - PowerPoint PPT Presentation

taber
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
DIGITAL L 0 TRIGGER WITH FPGA PowerPoint Presentation
Download Presentation
DIGITAL L 0 TRIGGER WITH FPGA

play fullscreen
1 / 9
Download Presentation
128 Views
Download Presentation

DIGITAL L 0 TRIGGER WITH FPGA

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. DIGITAL L0 TRIGGER WITH FPGA P. Dalpiaz, C. Nardi, M. Pivanti, F. Schifano Ferrara CERN 23 May 2012

  2. to L1 CPU FPGA DETECTORS read out MEM CACHE REGISTER PCIe ALU Look at me TRIGGER PCIe DIGITAL L0 TRIGGER WITH FPGA

  3. UPDATE ON TRIGGER SIMULATION Spasimir Balev 19-07-2011

  4. CHODt CHODh MUVt LKRtLKRh LAVt RICHt RICHh 00000008 0004 00000005 00000003 0028 00000000 00000006 0033 00000100 0002 00000098 00000103 0033 00000096 00000098 0013 00000124 0008 00000127 00000122 0029 00000118 00000125 0007 00000155 0001 00000155 00000154 0030 00000000 00000156 0003 00000430 0001 00000431 00000000 0009 00000000 00000431 0036 00000522 0005 00000522 00000000 0030 00000000 00000523 0026 00000627 0005 00000000 00000622 0016 00000000 00000626 0026 00000753 0010 00000753 00000000 0009 00000000 00000752 0044 00000760 0007 00000761 00000758 0005 00000000 00000759 0040 00000930 0003 00000000 00000933 0001 00000000 00000929 0019 00001126 0007 00001122 00000000 0002 00000000 00001124 0013 00001396 0001 00000000 00001392 0011 00000000 00001394 0017 00001409 0006 00001405 00000000 0007 00000000 00001408 0007 00001419 0006 00000000 00001417 0002 00000000 00001420 0033 00001760 0001 00000000 00000000 0038 00000000 00001759 0044 00001831 0004 00001834 00001829 0028 00001832 00001832 0006 00001957 0010 00001960 00000000 0033 00001961 00001958 0012 ………………………………………………….. ……………………………………………………. ……………………………………………………. 99999656 0001 00000000 99999652 0027 00000000 99999656 0031 99999712 0002 99999711 99999710 0013 00000000 99999711 0019 99999752 0008 99999751 00000000 0003 00000000 99999753 0044 99999816 0007 99999814 99999819 0020 00000000 99999814 0033 99999840 0008 00000000 99999836 0003 00000000 99999839 0022 99999888 0006 99999887 00000000 0022 00000000 99999889 0010 99999944 0005 99999945 99999941 0020 00000000 99999944 0013 A file with one million events of the main trigger of NA62 -I produce e casual set of 106 CHOD time stamp (CHODt) with a resolution of 1ns, and a frequency of 10Mz (one event every 100ns in average) -Later ordered in time. - With the probabilities obtained from Balev simu-lation from K+, π+ beam, decays, I produce, with a Montecarlo, a set of data of MUV, LKR, LAV and RICH, with corresponding Time Stamp and Hits The width considered are: MUV 10ns LKR 10ns LAV 20ns RICH 4ns.

  5. Flow Diagram of L0 Trigger = CHOD . MUV . LKR . LAV . RICH LKR LAV CHOD MUV RICH TSc(PC) Plk=Slk PLa=SLa Pr=Sr Pm=Sm TSr(Pr) TSm(Pm) TSLa(PLa) TSlk(Plk) PLa++ Pr++ Set Lc Pm++ Set Lla Set Lr Set Lk Set Lm PC++ Slk=Plk Plk++ Set Hc Set Hr Set Hla Set Hk Set Hm Sr = Pr Y Hr<Lc Y Y Hla<Lc set prev trigger CHODh Y Hlk<Lc N Y Hm<Lc N N N N Y Y TRIGGER RICHh Lr<=Hc N N N Lla<=Hc Sla=Pla N Llk=Hc N N Y LKRh Lm<=Hc Sm=Pm Y Y unset prev trigger Y N Y prevtrigger Sr = Pr Y

  6. to L1 CPU FPGA DETECTORS read out MEM CACHE REGISTER PCIe ALU Look at me ~103ns in average TRIGGER PCIe ~100μs for periodic events DIGITAL L0 TRIGGER WITH FPGA L0 trigger 7.5% ???μs for chaotic events

  7. #include <stdio.h> #include <stdlib.h> main () { int i; int chodt; int chodh; int muvt; int jm=10; int jk=10; int lkrt; int lkrh; int jl=20; int lavt; int richt; int richh; int jr=4; int ii=1; float f; int x; FILE *fd; fd=fopen ("./chodorE6.dat", "r"); while (fscanf(fd,"%f\t", &f) != EOF){ chodt=(int) f; /*read chodt in dati1ord*/ chodh=rand()% 10; chodh=chodh+1; /*determinato chodh*/ i=rand()% 5; if (i==0) muvt=0; else { x=rand()% jm; muvt=chodt+x-(jm/2); } /*detrrminato muvt*/ i=rand()% 3; if (i==0) lkrt=0; else { x=rand()% jk; lkrt=chodt+x-(jk/2); } /*determinato lkrt*/ lkrh=rand()% 40; /*determinato lkrh*/ dst.c

  8. i=rand()% 6; if (i!=0) lavt=0; else { x=rand()% jl; lavt=chodt+x-(jl/2); } /*determinato lavt*/ i=rand()% 50; if (i==0) richt=0; else { x=rand()% jr; richt=chodt+x-(jr/2); } /*determinato richt*/ richh=rand()% 46; /*determinato richh*/ printf("%08d ", chodt); printf("%04d ", chodh); printf("%08d ", muvt); printf("%08d ", lkrt); printf("%04d ", lkrh); printf("%08d ", lavt); printf("%08d ", richt); printf("%04d \n", richh); /*stampata la riga*/ } fclose (fd); }