Build Packages / build:windows:nocuda (push) Successful in 17m20s
Build Packages / build:windows:cuda (push) Successful in 19m52s
Build Packages / build:viewer-tgz:cpu (push) Successful in 9m38s
Build Packages / build:viewer-tgz:cuda (push) Successful in 11m18s
Build Packages / build:rugnux-tgz (x86_64) (push) Successful in 9m34s
Build Packages / build:rugnux:aarch64 (cross) (push) Successful in 5m42s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 20m33s
Build Packages / Create release (push) Successful in 33s
Build Packages / build:rugnux:windows (push) Successful in 12m0s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 15m42s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m59s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 16m8s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m35s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 16m55s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 16m58s
Build Packages / Generate python client (push) Successful in 16s
Build Packages / build:rpm (rocky8) (push) Successful in 15m21s
Build Packages / Build documentation (push) Successful in 54s
Build Packages / build:rpm (rocky9) (push) Successful in 16m23s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 12m2s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 10m6s
Build Packages / Unit tests (push) Successful in 1h10m26s
* Rugnux: basic support for CCD images (marCCD, SMV) and for gzipped miniCBF. * `jfjoch_viewer`: opens the CCD formats, and fixes to the dataset plots. * Documentation updates. Reviewed-on: #81 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
1.1 KiB
1.1 KiB
FPGA data flow
The following steps are performed on FPGA (in the order of operation):
- UDP header decoding
- SLS detector header decoding
- State machine that controls data acquisition (start/stop/cancel)
- High-bandwidth memory cache to buffer network packets and reorder them to form full modules
- ADU histogram for JUNGFRAU
- Mask pixels from missing packets with special value
- Reorder lines for EIGER to form a proper module
- Mask pixels based on provided pixel mask
- JUNGFRAU conversion with gain and pedestal corrections
- Threshold: pixel values below a set minimum are zeroed, values above a set maximum saturated
- Frame summation (up to 256 frames)
- Integration according to predefined map (e.g., 1D azimuthal integration)
- Spot finding
- ROI calculation
- Image lossy compression using N*sqrt(pixel) values
- Send images, analysis results and metadata to host memory via PCI Express
Each step has a dedicated core, written in high-level synthesis. Exact operation of cores for data analysis is explained in dedicated document.