• Nie Znaleziono Wyników

Oprogramowanie FPGA

W dokumencie Index of /rozprawy2/10806 (Stron 66-70)

5.4 Moduł odczytowy DAQ

5.4.5 Oprogramowanie FPGA

Oprogramowanie FPGA zostało napisane w języku opisu sprzętu Verilog. Schemat bloko-wy podstawobloko-wych komponentów oprogramowania zaimplementowanego w FPGA przedsta-wiony jest na rysunku 5.20.

Moduł odczytowy DAQ 57 Detektor GEM Kabel DVI-I Moduły DAQ slave i master

Rysunek 5.19:Detektor GEM z systemem odczytowym złożonym z dwóch modułów DAQ połączonych kablem DVI-I [67].

System zegarowy

Jednym z podstawowych komponentów zaimplementowanych wewnątrz FPGA jest układ odpowiedzialny za rozprowadzanie głównego sygnału zegarowego. Działanie tego układu za-leży od konfiguracji modułu DAQ. W przypadku, gdy moduł DAQ działa w trybie master sygnał zegarowy 125 MHz jest generowany w FPGA na podstawie fabrycznie zamontowane-go oscylatora o częstotliwości 100 MHz. W przypadku konfiguracji slave moduł potrzebuje zewnętrznego sygnału zegarowego, który dostarczany jest przez master.

Główny sygnał zegarowy 125 MHz jest nie tylko przesyłany do układów GEMROC, korzy-sta z niego także większość komponentów FPGA. Wyjątkami są moduły odpowiedzialne za obsługę przychodzących z układów GEMROC strumieni danych, które korzystają z zewnętrz-nych sygnałów zegarowych przychodzących z układów GEMROC – 125 MHz i z przetwornika A/C – 187,5 MHz.

Przetwarzanie danych wejściowych

Danymi wejściowymi układu FPGA są dane wyjściowe maksymalnie czterech podłączo-nych do modułu DAQ układów GEMROC. Pojedynczy zestaw dapodłączo-nych z układu GEMROC składa się z informacji analogowej oraz czterech 8-bitowych pakietów danych cyfrowych. Na rysunku 5.21 przedstawiony jest diagram czasowy analogowego i cyfrowego sygnału wyjścio-wego układu GEMROC oraz wyjściowych sygnałów zegarowych.

58 System elektroniczny do odczytu detektora GEM

Generator zegara 125 MHz Menedżer żetonów

Moduł ethernetowy MAC

Moduł odbierający Moduł wysyłający

Picoblaze CPU Moduł do synchronizacji oraz generator impulsów testowych Rozpakowywanie danych

z ASIC 0 Rozpakowywanie danych z ASIC 3

Bufor danych dla ASIC 0

Bufor danych dla ASIC 3

Rozpakowywanie danych

z A/C 0 Rozpakowywanie danych z A/C 3

Bufor danych dla A/C 0

Bufor danych dla A/C 3

Wskaźniki i

przełączniki Moduł I2C

Rysunek 5.20:Schemat blokowy podstawowych komponentów zaimplementowanych wewnątrz FPGA [67]. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Zegar Dane N N N N N+1 N+1 N+1 N+2 N+2 N+2 N+2 N+2 N+3 N+3 N+3 N+3 Pakiet N N+1 N+2 N+3 Zegar A/C Zegar A/C opóźniony

Wyjście analogowe N Ustawianie N+1 Ustawianie N+2 Ustawianie N+3 Ustawianie N+4

Da ne cyfr ow e Da ne a na lo go we

Rysunek 5.21:Diagram czasowy wyjściowego sygnału analogowego i cyfrowego oraz wyjściowych sygnałów zegarowych układu GEMROC [67].

Strumień danych analogowych jest najpierw konwertowany do postaci cyfrowej i dopiero później przesyłany w postaci 12-bitowej ramki do układu FPGA. Zgodnie ze specyfikacją przetwornika, taka ramka odpowiadająca N-tej danej analogowej na jego wejściu jest wysyłana na wyjście z opóźnieniem równym 10 cykli zegara taktującego próbkowanie (31,25 MHz). Z kolei wysyłanie danych cyfrowych względem analogowych na wyjście układu GEMROC jest opóźnione o jeden cykl tego samego zegara. Schematycznie jest to zilustrowane na rysunku 5.21. Zatem, aby zapewnić poprawne scalanie danych analogowych i cyfrowych, wewnątrz FPGA konieczne jest buforowanie danych cyfrowych przez okres odpowiadający dziewięciu cyklom zegara 31,25 MHz.

Równolegle do procesu formatowania danych obliczana jest rozszerzona sygnatura czasowa każdego rejestrowanego zdarzenia. Wewnątrz FPGA działa 43-bitowy licznik o częstotliwo-ści zegara 125 MHz, który liczy cykle zegara wysłane do układów GEMROC. 31 najbardziej znaczących bitów dodawanych jest do 12-bitowej sygnatury czasowej otrzymywanej z układu GEMROC, co pozwala na ciągłe liczenie czasu przez okres równy około 19,5 godziny. W celu

Moduł odczytowy DAQ 59 uzupełnienia informacji o zdarzeniu dodawana jest jeszcze informacja o numerze identyfikacyj-nym układu GEMROC, który odzwierciedla jego aktualną pozycję w systemie odczytowym. Ostatecznie dane sformatowane w postaci 64-bitowej ramki o strukturze pokazanej w tabeli 5.2 przesyłane są do następnego stopnia pamięci FIFO.

Tabela 5.2:Format danych generowany wewnątrz FPGA: AC – amplituda sygnału analogowego, TSF – sygnatura czasowa dodawana w FPGA, AID – numer identyfikacyjny układu GEMROC,

TS, ID, PU, OF – znaczenie jak w tabeli 5.1.

Bajt Bit

7 6 5 4 3 2 1 0

0 AC11 AC10 AC9 AC8 AC7 AC6 AC5 AC4

1 AC3 AC2 AC1 AC0 TSF30 TSF29 TSF28 TSF27 2 TSF26 TSF25 TSF24 TSF23 TSF22 TSF21 TSF20 TSF19 3 TSF18 TSF17 TSF16 TSF15 TSF14 TSF13 TSF12 TSF11 4 TSF10 TSF9 TSF8 TSF7 TSF6 TSF5 TSF4 TSF3

5 TSF2 TSF1 TSF0 TS11 TS10 TS9 TS8 TS7

6 TS6 TS5 TS4 TS3 TS2 TS1 TS0 ID4

7 ID3 ID2 ID1 ID0 AID1 AID0 PU OF

Za wstępne przetwarzanie danych i scalanie informacji analogowej i cyfrowej każdego ukła-du GEMROC danego moukła-dułu DAQ odpowiedzialny jest osobny moukła-duł w FPGA. Następnie te dane przekazywane są do wspólnego dla danego modułu DAQ bufora pamięci FIFO. Tam ramka danych jest formatowana tak, aby odpowiadała standardowi protokołów Ethernet, IP (ang. Internet Protocol) i UDP, a następnie jest przesyłana do stacji roboczej.

Zadania konfiguracyjne

Strumień danych wysyłanych z komputera do układu FPGA zawiera jedynie dane konfi-guracyjne. W porównaniu do strumienia danych przesyłanych do komputera, który zawiera o wiele więcej informacji i wymaga dużej przepustowości, szybkość przesyłania danych kon-figuracyjnych nie jest krytyczna.

Ramka z danymi konfiguracyjnymi jest przesyłana do procesora zaimplementowanego w FPGA. Procesor ten został zaprogramowany w asemblerze do komunikacji z różnymi modu-łami FPGA w celu wykonywania większości zadań konfiguracyjnych układu FPGA i układów GEMROC. Zadania konfiguracyjne są wykonywane w następującej kolejności:

– ustawianie pracy modułu DAQ w tryb master lubslave,

– włączanie lub wyłączanie odczytu poszczególnych układów GEMROC, – definiowanie opóźnienia zegara wejściowego przetwornika A/C,

– definiowanie opóźnienia próbkowania przetwornika A/C,

– wybranie układu GEMROC, z którego sygnał zegarowy jest podawany do przetwornika A/C,

– włączanie wewnętrznego generatora impulsów testowych,

60 System elektroniczny do odczytu detektora GEM Przepustowość danych

Dla maksymalnej intensywności sygnału wejściowego układu GEMROC, który został zde-finiowany jako częstotliwość, dla której 10 % rejestrowanych impulsów ulega spiętrzeniu w czę-ści front-end, strumień danych wyjczę-ściowych kanału czasowego może dochodzić do 1 Gb/s. W układzie FPGA do tego strumienia danych dodawana jest rozszerzona informacja czasowa, informacja o numerze układu GEMROC i amplitudzie po konwersji. Zatem przy maksymalnej intensywności promieniowania obsługiwanego przez układ GEMROC, FPGA musi obsłużyć strumień danych o szybkości do 8 Gb/s.

Z drugiej strony strumień danych wyjściowych powinien mieć przepustowość odpowiada-jącą szybkości standardu Ethernet, która jest równa 1 Gb/s. Z kolei maksymalna szybkość strumienia danych 8 Gb/s odpowiada sytuacji, w której cała powierzchnia detektora jest oświetlana jednorodnie z maksymalną dopuszczalną przez układ front-end intensywnością. W każdym praktycznym zastosowaniu oświetlenie nie jest tak jednorodne. Pamiętając rów-nież, że strumień danych wyjściowych ma szybkość odpowiadającą uśrednionej intensywności promieniowania na powierzchnię detektora, oczekiwana przepustowość tych danych będzie znacznie niższa od maksymalnej. Przykładowo dla intensywności równej 106zdarzeń/s, wy-magana szybkość dla standardu Ethernet będzie wynosić 250 Mb/s. Dlatego też zastosowanie standardu Ethernet o przepustowości 1 Gb/s jest wystarczające.

Należy tu jednak zaznaczyć, iż nawet w przypadku, gdy strumień danych wyjściowych chwilowo znacznie przekroczy przepustowość równą 1 Gb/s, istnieje możliwość buforowania danych przez pewien czas w pamięci FIFO FPGA.

W dokumencie Index of /rozprawy2/10806 (Stron 66-70)

Powiązane dokumenty