<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Astron. Space Sci.</journal-id>
<journal-title>Frontiers in Astronomy and Space Sciences</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Astron. Space Sci.</abbrev-journal-title>
<issn pub-type="epub">2296-987X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1407870</article-id>
<article-id pub-id-type="doi">10.3389/fspas.2024.1407870</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Astronomy and Space Sciences</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Design and implementation of a scalable correlator based on ROACH2 &#x2b; GPU cluster for tianlai 96-dual-polarization antenna array</article-title>
<alt-title alt-title-type="left-running-head">Wang et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fspas.2024.1407870">10.3389/fspas.2024.1407870</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Zhao</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<xref ref-type="aff" rid="aff4">
<sup>4</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2722959/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Li</surname>
<given-names>Ji-Xia</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhang</surname>
<given-names>Ke</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Wu</surname>
<given-names>Feng-Quan</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Tian</surname>
<given-names>Hai-Jun</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff5">
<sup>5</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2695562/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Niu</surname>
<given-names>Chen-Hui</given-names>
</name>
<xref ref-type="aff" rid="aff4">
<sup>4</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Zhang</surname>
<given-names>Ju-Yong</given-names>
</name>
<xref ref-type="aff" rid="aff5">
<sup>5</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Chen</surname>
<given-names>Zhi-Ping</given-names>
</name>
<xref ref-type="aff" rid="aff5">
<sup>5</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Yu</surname>
<given-names>Dong-Jin</given-names>
</name>
<xref ref-type="aff" rid="aff5">
<sup>5</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chen</surname>
<given-names>Xue-Lei</given-names>
</name>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>School of Science</institution>, <institution>Hangzhou Dianzi University</institution>, <addr-line>Hangzhou</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>National Astronomical Observatories</institution>, <institution>Chinese Academy of Sciences</institution>, <addr-line>Beijing</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>College of Electrical Engineering and New Energy</institution>, <institution>China Three Gorges University</institution>, <addr-line>Yichang</addr-line>, <country>China</country>
</aff>
<aff id="aff4">
<sup>4</sup>
<institution>Central China Normal University</institution>, <addr-line>Wuhan</addr-line>, <country>China</country>
</aff>
<aff id="aff5">
<sup>5</sup>
<institution>Big Data Institute</institution>, <institution>Hangzhou Dianzi University</institution>, <addr-line>Hangzhou</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2353495/overview">Hairen Wang</ext-link>, Purple Mountain Observatory, Chinese Academy of Sciences (CAS), China</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2707814/overview">Dan Werthimer</ext-link>, University of California, Berkeley, United States</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2716313/overview">Tao An</ext-link>, Shanghai Astronomical Observatory, Chinese Academy of Sciences (CAS), China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Ji-Xia Li, <email>jxli@bao.ac.cn</email>; Feng-Quan Wu, <email>wufq@bao.ac.cn</email>; Hai-Jun Tian, <email>hjtian@hdu.edu.cn</email>; Ju-Yong Zhang, <email>zhangjy@hdu.edu.cn</email>; Zhi-Ping Chen, <email>chen_zp@hdu.edu.cn</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>30</day>
<month>07</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2024</year>
</pub-date>
<volume>11</volume>
<elocation-id>1407870</elocation-id>
<history>
<date date-type="received">
<day>27</day>
<month>03</month>
<year>2024</year>
</date>
<date date-type="accepted">
<day>25</day>
<month>06</month>
<year>2024</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2024 Wang, Li, Zhang, Wu, Tian, Niu, Zhang, Chen, Yu and Chen.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Wang, Li, Zhang, Wu, Tian, Niu, Zhang, Chen, Yu and Chen</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>The digital correlator is one of the most crucial data processing components of a radio telescope array. With the scale of radio interferometeric array growing, many efforts have been devoted to developing a cost-effective and scalable correlator in the field of radio astronomy. In this paper, a 192-input digital correlator with six CASPER ROACH2 boards and seven GPU servers has been deployed as the digital signal processing system for Tianlai cylinder pathfinder located in Hongliuxia observatory. The correlator consists of 192 input signals (96 dual-polarization), 125-MHz bandwidth, and full-Stokes output. The correlator inherits the advantages of the CASPER system, for example, low cost, high performance, modular scalability, and a heterogeneous computing architecture. With a rapidly deployable ROACH2 digital sampling system, a commercially expandable 10 Gigabit switching network system, and a flexible upgradable GPU computing system, the correlator forms a low-cost and easily-upgradable system, poised to support scalable large-scale interferometeric array in the future.</p>
</abstract>
<kwd-group>
<kwd>interferometer</kwd>
<kwd>correlator</kwd>
<kwd>FPGA</kwd>
<kwd>signal processing</kwd>
<kwd>correlation</kwd>
<kwd>radio astronomy</kwd>
</kwd-group>
<contract-sponsor id="cn001">National Natural Science Foundation of China-China Academy of General Technology Joint Fund for Basic Research<named-content content-type="fundref-id">10.13039/501100019492</named-content>
</contract-sponsor>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Astronomical Instrumentation</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>The digital correlator plays a crucial role in radio astronomy by combining individual antennas to form a large-aperture antenna, keeping large field of view, and providing high-resolution images. At present, many radio interferometric arrays in the world use CASPER (Collaboration for Astronomy Signal Processing and Electronics Research) hardware platform ROACH2 (Reconfigurable Open Architecture Computing Hardware-2) to develop correlators. For example, PAPER (Precision Array for Probing the Epoch of Reionization) in South Africa&#x2019;s Karoo Desert (<xref ref-type="bibr" rid="B17">Parsons et al., 2010</xref>; <xref ref-type="bibr" rid="B1">Ali et al., 2015</xref>). The 100 MHz FX correlator was originally based on iBOBs (Interconnect Break-out Boards) and later upgraded to ROACH, and then ROACH2 boards (<xref ref-type="bibr" rid="B7">Hickish et al., 2016</xref>). Currently, PAPER uses 8 ROACH2 boards for channelization, followed by a GPU (Graphics Processing Unit)-based &#x2018;X&#x2019; stage. Additionally, the &#x2018;large-N&#x2019; correlator located in the Owens Valley Radio Observatory (LWA-OV) is designed to enable the Large Aperture Experiment to Detect the Dark Ages (LEDA) (<xref ref-type="bibr" rid="B8">Kocz et al., 2015</xref>). It features a 58 MHz, 512-input digitization, channelization, and packetization system using a GPU correlator backend.</p>
<p>The Tianlai project<xref ref-type="fn" rid="fn1">
<sup>1</sup>
</xref> is an experiment aimed at detecting dark energy by measuring baryon acoustic oscillation (BAO) features in the large-scale structure power spectrum, in which BAO can be used as a standard ruler (<xref ref-type="bibr" rid="B2">Ansari et al., 2012</xref>; <xref ref-type="bibr" rid="B9">Kovetz et al., 2019</xref>; <xref ref-type="bibr" rid="B13">Liu and Shaw, 2020</xref>). The basic plan is to build a radio telescope array and use it to make 21 cm intensity mapping observations of neutral hydrogen, which trace the large-scale structure of the matter distribution (<xref ref-type="bibr" rid="B3">Chen, 2011</xref>; <xref ref-type="bibr" rid="B27">Xu et al., 2015</xref>; <xref ref-type="bibr" rid="B33">Zhang et al., 2016</xref>; <xref ref-type="bibr" rid="B6">Das et al., 2018</xref>; <xref ref-type="bibr" rid="B29">Yu et al., 2024</xref>; <xref ref-type="bibr" rid="B28">Yu et al., 2023</xref>). Currently, two different types of pathfinder array have been built in a quiet radio site in Hongliuxia, Balikun county, Xinjiang, China (<xref ref-type="bibr" rid="B26">Wu et al., 2014</xref>). The cylinder array consists of three adjacent parabolic cylinder reflectors, each 40 m <inline-formula id="inf1">
<mml:math id="m1">
<mml:mo>&#xd7;</mml:mo>
</mml:math>
</inline-formula> 15 m, with their long axes oriented in the N-S direction. It has a total of 96 dual-polarization feeds, resulting in 192 signal channels (<xref ref-type="bibr" rid="B4">Cianciara et al., 2017</xref>; <xref ref-type="bibr" rid="B11">Li et al., 2020</xref>; <xref ref-type="bibr" rid="B23">Sun et al., 2022</xref>). The dish array includes 16 dishes with 6-m aperture. Each dish has a dual polarization feed, generating 32 signal channels in total (<xref ref-type="bibr" rid="B25">Wu et al., 2021</xref>; <xref ref-type="bibr" rid="B19">Perdereau et al., 2022</xref>; <xref ref-type="bibr" rid="B10">Kwak et al., 2024</xref>). In addition to the ability to survey the 21 cm Hydrogen sky, both antenna arrays are also capable of detecting fast radio bursts (<xref ref-type="bibr" rid="B31">Yu et al., 2022a</xref>; <xref ref-type="bibr" rid="B30">Yu et al., 2022b</xref>; <xref ref-type="bibr" rid="B32">Yu et al., 2022c</xref>). This paper is about the development of correlator for Tianlai cylinder pathfinder array.</p>
<p>The design of the Tianlai cylinder correlator is based on the prototype correlator of <xref ref-type="bibr" rid="B15">Niu et al. (2019)</xref>, which has 32 inputs and was used for the Tianlai Dish pathfinder array. This 32-input prototype correlator is built upon the model of PAPER correlator, which creates a flexible and scalable hybrid correlator system. We expanded the prototype correlator from 32 to 192 channels, reprogrammed the network transport model, increased it from a single GPU server to seven GPU servers, solved the synchronization problem of multiple devices. It was eventually deployed in the machine room on the Hongliuxia site. The primary motivation behind the design of the PAPER correlator architecture is the scalability for large-scale antenna arrays, and it has been executed exceptionally well. Therefore, we have chosen to borrow ideas from the PAPER correlator. The Tianlai project is expanding and the number of single inputs will soon increase to more than 500.</p>
<p>The Tianlai cylinder correlator is a flexible, scalable, and efficient system, which has a hybrid structure of ROACH2&#x2b;GPU&#x2b;10&#x2009;GbE network. A ROACH2 is an independent board, unlike a PCIe-sampling board which needs to be plugged into a computer server and often leads to some incompatible issues. A GPU card is dramatically upgrading, and it is almost the best choice among the current available hardwares, such as CPU/GPU/DSP (Digital Signal Processing), by comprehensively considering the flexibility, the efficiency and the cost. The module of the data switch network is easy to be upgraded, since the Ethernet switch has a variety of commercial applications. We have uploaded all the project files to Github.<xref ref-type="fn" rid="fn2">
<sup>2</sup>
</xref>
</p>
<p>This paper gives a detailed introduction to the function and performance of the Tianlai 192-input cylinder correlator system. In <xref ref-type="sec" rid="s2">Section 2</xref>, we introduce the general framework of the correlator system and show the deployment of the correlator. Then, in a sub-section, we provide a detailed introduction to the design and functions of each module. In <xref ref-type="sec" rid="s3">Section 3</xref>, we evaluate the performance of the correlator. <xref ref-type="sec" rid="s4">Section 4</xref> summarizes the correlator system and presents the design scheme for correlator expansion in the future as part of the Tianlai project.</p>
</sec>
<sec id="s2">
<title>2 System design</title>
<p>The digital correlators can be classified into two types: XF and FX. XF correlators combine signals from multiple antennas and performs cross-correlation followed by Fourier transformation. XF correlators can handle a large number of frequency channels and have a relatively simple hardware design (<xref ref-type="bibr" rid="B24">Thompson et al., 2017</xref>). FX correlators combine signals from multiple antennas and perform the Fourier transformation followed by cross-correlation. FX correlators can handle a large number of antenna pairs and also have a relatively simple hardware design. The Tianlai cylinder correlator is an FX correlator.</p>
<p>The Tianlai cylinder correlator system can be divided into four parts, as shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. The first part is the control part which consists of a master computer and an Ethernet switch. The Ethernet switch is used for net-booting of the ROACH2, monitoring the status of F-engine and hashpipe<xref ref-type="fn" rid="fn3">
<sup>3</sup>
</xref>, and synchronizing the running status of F-engine and X-engine.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>This block diagram illustrates the Tianlai cylinder array correlator. The master computer communicates with ROACH2 boards, a 10&#x2009; &#x2009;GbE switch, and GPU servers through an Ethernet switch. Six ROACH2 boards receive 192 input signals from the antenna. After the signal processing is completed, the UDP(User Datagram Protocol) data is sent to the 10 &#x2009;GbE switch. Seven GPU servers receive the UDP data to calculate the cross-correlation, sending results back to the Ethernet switch after the computations are finished. Finally, the data is transmitted to the master computer for storage via the Ethernet switch.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g001.tif"/>
</fig>
<p>The second part is the F-engine, which consists of six ROACH2 boards and one 10 GbE switch. The 192 input signals from the Tianlai cylinder array are connected to the ADC connectors on the ROACH2 boards. The main functions of the F-engine are to Fourier transform the data from the time domain into the frequency domain, and transmit the data to the GPU server through a 10 GbE switch.</p>
<p>The third part is the X-engine, which performs cross-correlation on the received Fourier data. Each GPU server receives packets from all ROACH2 boards. The details of network transmission will be explained later. The X-engine utilizes a software called hashpipe (<xref ref-type="bibr" rid="B14">MacMahon et al., 2018</xref>) to store, deliver and compute the cross-correlations.</p>
<p>The fourth part is the data storage part, which consists of seven GPU servers, an Ethernet switch, and a storage server (shared with the master computer). The GPU servers transmit data to the storage server via an Ethernet switch. We have developed a multi-threading program to collect and organize data packets from different GPU servers, and finally save them onto hard drives in HDF5 format.</p>
<p>The deployment of the correlator system is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>. It consists of six ROACH2 boards, an Ethernet switch, a 10&#x2009;GbE switch, a master computer, and seven GPU servers, arranged from top to bottom. The yellow &#x201c;ROACH2&#x201d; label in <xref ref-type="fig" rid="F2">Figure 2A</xref> represents the front panel of the ROACH2 board. (In our case, a connector transformer panel has been specifically designed to conveniently connect to the radio cables.) The ADC connector of the ROACH2 is connected to a blue RF (Radio Frequency) cable that transmits the analog signal. <xref ref-type="fig" rid="F2">Figure 2B</xref> shows the back side of the ROACH2 board. On the far left is the power line. The light orange RF cable is the clock cable. The 250 MHz clock of the ROACH2 board is output by a VALON 5008 dual-frequency synthesizer module, and it is split by a 12-way power splitter. The short blue-black cable connects to the synchronization port between the ROACH2 boards. We use synchronization ports in F-engine functional block design to ensure that the six ROACH2 boards work at the same clock. The signal of the synchronization port is provided by a time server. The time server sends out a 1-PPS (Pulse Per Second) signal, which is used to initialize the synchronization module of the F-engine system. After running the F-engine control script, the 1 PPS signal drives the F-engine and synchronizes the operational state of the six ROACH2 boards. The bandwidth of the antenna signal input to the ROACH2 board is 125 MHz. According to the Nyquist sampling law, the input signal can be completely recovered by a 250 Msps sampling rate. In <xref ref-type="fig" rid="F2">Figure 2C</xref>, seven GPU servers are vertically stacked, consisting of six Supermicro servers with a size of 4 U (Unit) and one Dell server with a size of 2U. These devices are used to implement X-engine functionality. The number of servers is determined by the total frequency channel count and the frequency channel processing capacity of each server. In terms of computational performance, each GPU server runs 4 hashpipe threads, processing a total of 128 frequency channels. At this configuration, the computational performance accounts for approximately 46% of the theoretical peak performance. In terms of data transfer performance, the server&#x2019;s PCIe is of version 3.0, with a transfer rate close to 8 GB/s. This is comparable to the maximum transfer rate between the host and the device.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>
<bold>(A)</bold> Six ROACH2 boards are connected to 192 input signals. The two switches are positioned on the same layer, with the Ethernet switch in the front and the 10 &#x2009;&#x2009;GbE switch at the rear. The master computer is located below. <bold>(B)</bold> Clock and synchronization cable connections on the rear panel of ROACH2 boards. <bold>(C)</bold> Seven GPU servers are vertically stacked, consisting of six Supermicro servers with a size of 4U and a Dell server with a size of 2U.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g002.tif"/>
</fig>
<sec id="s2-1">
<title>2.1 F-engine</title>
<p>The diagram of the F-engine module is shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. The Tianlai cylinder correlator system is an improvement upon the Tianlai dish correlator system, with enhancements including an increased number of input signals and additional new functions. The Tianlai dish correlator is very similar to the PAPER experiment correlator, which also uses the ROACH2 system. Please refer to (<xref ref-type="bibr" rid="B15">Niu et al., 2019</xref>) for details. Here, we provide a concise overview of the F-engine&#x2019;s process and the functionality of the CASPER yellow block.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Data flow block diagram of each F-engine.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g003.tif"/>
</fig>
<p>Each ROACH2 board is connected with two ADC boards through Z-DOK &#x2b; connectors. The ADC board is the adc16 &#xd7; 250-8 coax rev2 Q2 2013 version, which uses 4 HMCAD1511 chips and provides a total of 16 inputs. It samples 16 analog signal inputs with 8 bits at a rate of 250 Msps.</p>
<p>The output digital signal of the adc16 &#xd7; 250 block is Fix_8_7 format, which indicates an 8-bit number with 7 bits after the decimal point. The ADC chip is accompanied by a control program developed by David MacMahon from the University of California, Berkeley. This program is responsible for activating the ADC, selecting the amplification level, calibrating the FPGA input delay, aligning the FPGA SERDES blocks until data is correctly framed, and performing other related tasks. A comprehensive user&#x2019;s guide for the ADC16 chip is accessible on the CASPER website<xref ref-type="fn" rid="fn4">
<sup>4</sup>
</xref>. According to the actual range of input signal power, we conducted linearity tests on the ADC at various gain coefficients and also assessed the linearity of the correlator system. Ultimately, the ADC gain coefficient was set to 2.</p>
<p>The analog-to-digital converted data from the ADC is transmitted to the PFB (Polyphase Filter Bank) function module. PFB is a computationally efficient implementation of a filter bank, constructed by using an FFT (Fast Fourier Transform) preceded by a prototype polyphase FIR filter frontend (<xref ref-type="bibr" rid="B21">Price, 2021</xref>). The PFB not only ensures a relatively flat response across the channels but also provides excellent suppression of out-of-band signals. The PFB is implemented using the models pfb_fir and fft_biplex_real_2x from the CASPER module library.</p>
<p>Each pfb_fir<xref ref-type="fn" rid="fn5">
<sup>5</sup>
</xref> block (the signal processing blocks mentioned in this article can all be linked to the detailed page from here) processes two signals, configured with parameters including a PFB size of <inline-formula id="inf2">
<mml:math id="m2">
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>, a Hamming window function, four taps, input width of 8 bits, an output width of 18 bits, and other settings. Each block takes two input signals, and a total of 16 <monospace>pfb_fir</monospace> blocks are used to process 32 input signals. Each fft_biplex_real_2x block processes four input data streams and outputs two sets of frequency domain data. Configured with parameters including an FFT size of <inline-formula id="inf3">
<mml:math id="m3">
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>, an input width of 18 bits, an output width of 36 bits, and other settings. The parameter settings are based on the scientific requirements of the Tianlai project, which calls for a signal resolution of less than or equal to 0.2 MHz. There are eight fft_biplex_real_2x blocks, with each block taking in four data streams and outputting two sets of frequency domain data. The PFB module is flexible, making it very easy to adjust the parameters according to one&#x2019;s requirements, such as the FFT size, PFB size, and the number of taps in the CASPER block.</p>
<p>The data output of the PFB module is 36 bits, which essentially represents a complex number with 18 bits for the real part and 18 bits for the imaginary part. Considering factors such as data transmission and hardware resources, the data is usually effectively truncated. In our case, we will truncate the complex number to have a 4-bit real part and a 4-bit imaginary part. Prior to quantizing to 4 bits, the PFB output values pass through a scaling (i.e., gain) stage. Each frequency channel of each input has its own scaling factor. The purpose of the scaling stage is to equalize the passband before quantization, so this stage is often referred to as EQ. The scaling factors are also known as EQ<xref ref-type="fn" rid="fn6">
<sup>6</sup>
</xref> coefficients and are stored in shared BRAMs.</p>
<p>The quantized data cannot be sent directly to the X-engine. Before sending it, we divide the frequency band and sort the data in a format that facilitates the relevant calculations. This module is called Transpose, and it is divided into four submodules. Each submodule processes 1/4 of the frequency band, resulting in a total of 256 frequency channels. The number of submodules corresponds to the number of 10&#x2009;GbE network interface controllers (NICs) on the ROACH2 board, with each NIC used to receive and send data from the output of a transpose submodule. This module performs the data transpose, also known as a &#x201c;corner turn&#x201d; to arrange the data in the desired sequence. Additionally, it is responsible for generating the packet headers, which consist of <monospace>MCNT</monospace> (master counter), Fid (F-engine id), and Xid (X-engine id). The current parameter configuration of the sub-module is tailored for scenarios with 256 inputs or fewer. However, David MacMahon, the researcher behind the PAPER correlator system, has included sufficient spare bits in the design, enabling the adjustment of model parameters based on specific input conditions and accommodating scalability and additional use cases.</p>
<p>The data is already in a form that is easy for X-engine to compute, we want to send it to X-engine, so the data comes to the Ethernet module. It contains four sub-modules and receives data from four transpose sub-modules. Each submodule has a Ten_GbE_v2 block, where we can set the MAC address, IP address, destination port and other parameters using Python or Ruby script.</p>
</sec>
<sec id="s2-2">
<title>2.2 Network</title>
<p>The data of the F-engine module is sent out through the ROACH2 network port and transmitted to the network port of the target GPU server through the 10 GbE switch. The network transmission model of the correlator system is dependent on the bandwidth of a single frequency channel and the number of frequency channels calculated by the GPU server. The diagram of data transfer from F-engine to X-engine is shown in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Diagram of data transmission between X-engine and F-engine. Each ROACH2 board has 4 10&#x2009;GbE ports, and each port transmits data from 256 frequency channels. The 10 &#x2009;&#x2009;GbE switch is configured with 4 VLANs (Virtual Local Area Networks), which offers benefits in simplicity, security, traffic management, and economy. Each VLAN receives UDP data from 256 frequency channels and sends them to the GPU servers.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g004.tif"/>
</fig>
<p>The frequency domain data in F-engine has a total of 1,024 frequency channels. Given the 250 Msps sampling rate, each frequency channel has a width of <inline-formula id="inf4">
<mml:math id="m4">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>&#x3bd;</mml:mi>
</mml:math>
</inline-formula> &#x3d; 125/1,024 MHz &#x3d; 122.07 kHz. Each GPU node processes 128 frequency channels with a bandwidth of <inline-formula id="inf5">
<mml:math id="m5">
<mml:mn>128</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>122.07</mml:mn>
</mml:math>
</inline-formula> kHz &#x3d; 15.625 MHz. The number of frequency channels processed by the GPU server is determined by hashpipe.</p>
<p>The analog part of the Tianlai digital signal processing system uses replaceable bandpass filters, with the bandpass set to 700 MHz <inline-formula id="inf6">
<mml:math id="m6">
<mml:mo>&#x223c;</mml:mo>
</mml:math>
</inline-formula> 800 MHz. We have chosen to utilize seven GPU nodes to implement the X-engine component. These seven GPU nodes process data for the central 896 frequency channels, covering a bandwidth of approximately 109.375 MHz from 692.8125 MHz to 802.1875 MHz, as shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. The final GPU node is dedicated to receiving data from the first 32 and last 32 frequency channels out of the 896 frequency channels.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>The relationship between the FFT channels and the radio frequency. There are a total of 1,024 frequency channels, and the input signal&#x2019;s effective frequency range is 700-800 MHz. The correlator&#x2019;s actual processing frequency range is 692.8125-802.1875 MHz, which includes a total of 896 frequency channels.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g005.tif"/>
</fig>
<p>The data transfer rate of a single network port of the ROACH2 board is 8.0152 Gbps, so the total data transfer rate of 6 ROACH2 boards is <inline-formula id="inf7">
<mml:math id="m7">
<mml:mn>6</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>4</mml:mn>
</mml:math>
</inline-formula> ports <inline-formula id="inf8">
<mml:math id="m8">
<mml:mo>&#xd7;</mml:mo>
</mml:math>
</inline-formula> 8.0152 Gbps &#x3d; 192.3648 Gbps. The data reception rate of a single network port on the GPU node is 192.3648 Gbps/<inline-formula id="inf9">
<mml:math id="m9">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>8</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> &#x3d; 6.0114 Gbps. At present, the number of input signals for the correlator system ranges from 32 to 256. While our correlator system is designed for 192 input signals, we conducted data transmission simulations with 256 input signals. Under these conditions, the data reception rate of a single network port on the GPU node stands at 8.0152 Gbps.</p>
<p>In our system, each GPU server has four 10 GbE ports. For the Tianlai cylinder correlator system, we require a total of 6 ROACH2 boards <inline-formula id="inf10">
<mml:math id="m10">
<mml:mo>&#xd7;</mml:mo>
</mml:math>
</inline-formula> 4 ports &#x2b; 7 GPU servers <inline-formula id="inf11">
<mml:math id="m11">
<mml:mo>&#xd7;</mml:mo>
</mml:math>
</inline-formula> 4 ports &#x3d; 52 ports on a 10 GbE switch. So we selected the Mellanox SX1024 switch which has 48 ports of 10 GbE and 12 ports of 40 GbE. Ports 59 and 60 on the switch can be subdivided into four 10 GbE ports, providing ample capacity for our application.</p>
<p>The transpose module is designed with extra bits reserved in the blocks related to the parameter <monospace>fid</monospace>. The number of bits in the <monospace>fid</monospace> parameter is directly linked to the maximum number of F-engines in the correlator system. By utilizing these additional bits, the correlator can be configured to accommodate a greater number of input signals. In terms of the F-engine, theoretically, there could be an infinite number of input channels, and the number of ROACH2 boards can be increased based on the input channel number. The capacity of X-engine determines the upper limit of input channels, depending on the processing capacity of the GPU servers for a single frequency point. Since each frequency point should contain all the input channel information, the processing capability of the GPU servers for a single frequency channel affects maximum number of input channels. Currently, a single server theoretically has the capability to handle over 20,000 input channels if it only processes one frequency channel. However, this may need an extremely large-scale switch network.</p>
<p>The relationship between the number of input channels and the output data rate is as shown in Eq. <xref ref-type="disp-formula" rid="e1">1</xref>:<disp-formula id="e1">
<mml:math id="m12">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>N</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>c</mml:mi>
<mml:mi>h</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>I</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>e</mml:mi>
</mml:math>
<label>(1)</label>
</disp-formula>where <inline-formula id="inf12">
<mml:math id="m13">
<mml:mi>N</mml:mi>
</mml:math>
</inline-formula> represents the number of input channels, <inline-formula id="inf13">
<mml:math id="m14">
<mml:mi>f</mml:mi>
<mml:mi>&#x5f;</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>h</mml:mi>
</mml:math>
</inline-formula> represents the number of frequency channels, <inline-formula id="inf14">
<mml:math id="m15">
<mml:mi>f</mml:mi>
<mml:mi>&#x5f;</mml:mi>
<mml:mi>b</mml:mi>
</mml:math>
</inline-formula> represents the number of bytes in a single frequency channel. The multiplying factor 2 is because frequency channels are complex numbers.</p>
</sec>
<sec id="s2-3">
<title>2.3 X-engine</title>
<p>The primary role of the X-engine is to perform cross-correlation calculations. The X-engine receives the data from the F-engine in packets, which are then delivered to different computing servers, where the conjugate multiplication and accumulation (CMAC) are done. The hardware for this part consists mainly of six Supermicro servers and one Dell server. We list the main equipment of the X-engine in <xref ref-type="table" rid="T1">Table 1</xref>.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>List of X-engine equipment.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center"/>
<th align="center">Supermicro (4U)</th>
<th align="center">Dell (2U)</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">PCIe</td>
<td align="center">3.0</td>
<td align="center">4.0</td>
</tr>
<tr>
<td align="center">Graphics Card</td>
<td align="center">Dual GTX 690</td>
<td align="center">One RTX 3080</td>
</tr>
<tr>
<td align="center">CPU</td>
<td align="center">Dual Intel E5-2670</td>
<td align="center">Dual Intel E5-2699</td>
</tr>
<tr>
<td align="center">NIC</td>
<td align="center">Dual 2-port 10&#x2009;GbE</td>
<td align="center">Dual 2-port 10&#x2009;GbE</td>
</tr>
<tr>
<td align="center">Memory</td>
<td align="center">128 GB RAM</td>
<td align="center">256 GB RAM</td>
</tr>
<tr>
<td align="center">OS</td>
<td align="center">Centos7</td>
<td align="center">Rocky8</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The X-engine part consists of seven GPU nodes. To ensure that they integrate the data at exactly the same time duration, they must be synchronized together. A script has been developed to achieve this, and its basic procedure is as follows. First, initialize the hashpipes of 7 GPU nodes; Second, start the hashpipe program of the first GPU node; Third, read out the MCNT value in the current packet and calculate a future (several seconds later) MCNT value to act as the aligning time point. Finally, all GPU nodes work simultaneously when their hashpipe threads receive a packet contains the calculated aligning MCNT value.</p>
<p>The data operation in the X-engine is managed by the hashpipe software running on CPU and GPU heterogeneous servers. Hashpipe was originally developed as an efficient shared pipe engine for the National Astronomical Observatory, the Universal Green Bank Astrospectrograph (<xref ref-type="bibr" rid="B20">Prestage et al., 2009</xref>). It was later adapted by David MacMahon of U.C. Berkeley, it can be used for FX correlators (<xref ref-type="bibr" rid="B16">Parsons et al., 2008</xref>), pulsar observations (<xref ref-type="bibr" rid="B18">Pei et al., 2021</xref>), Fast Radio Bursts detection (<xref ref-type="bibr" rid="B31">Yu et al., 2022a</xref>) and the search for extraterrestrial civilizations (<xref ref-type="bibr" rid="B22">Price et al., 2018</xref>). The core of the hashpipe is the flexible ring buffer. It simulates contiguous memory blocks, realizes data transmission and sharing among multiple threads, and uses the central processing unit to control startup and shutdown, etc. The ring buffer is used to temporarily store and deliver the data packets to ensure that the data is captured quickly and distributed in the correct order.</p>
<p>Each hashpipe instance in our system has a total of four threads and three buffers, as shown in <xref ref-type="fig" rid="F6">Figure 6</xref>. To process the four 10&#x2009;GbE ports data stream, four hashpipe instances are created. In each instance, the basic data process can be concluded as follows. First, net_thread receives the packets from the GPU server&#x2019;s 10&#x2009;GbE port. According to the packet format, the valid data is extracted and the packet header is analyzed. Packets are time-stamped, and if they arrive at the GPU server out of order, they can be rearranged into the appropriate time series and written to the input data buffer, which is passed onto the next thread once a consecutive block of data is filled. The fluff thread &#x201c;fluffing&#x201d; the data, fluffs 4bit&#x2b;4bit complex data into 8bit&#x2b;8bit complex data in the thread. The data is &#x201c;fluffed&#x201d; and temporarily stored in the GPU input data buffer until it is fetched by gpu_thread. Then gpu_thread transfers the data to the graphics processor to perform complex calculations and then writes the results to the output data buffer. The CMAC process uses the xGPU<xref ref-type="fn" rid="fn7">
<sup>7</sup>
</xref>(<xref ref-type="bibr" rid="B5">Clark et al., 2013</xref>), which is written in CUDA-C and is optimized on GPU memory resources by specific thread tasks. The cross-correlation algorithm involves computing the cross-power spectrum at a specific frequency observed by a pair of stations, known as a baseline. By processing a sufficient number of baselines, a detailed power spectrum representation can be derived, enabling the generation of an image of the sky through an inverse Fourier transform in the spatial domain. The algorithm&#x2019;s implementation on Nvidia&#x2019;s Fermi architecture sustains high performance by utilizing a software-managed cache, a multi-level tiling strategy, and efficient data streaming over the PCIe bus, showcasing significant advancements over previous GPU implementations. The output thread gets the data from the output data buffer and transmits it to the storage server through the switch. Hashpipe provides a status buffer that extract key-value pairs in each thread. This key value is updated every running cycle. The status can be viewed using a GUI monitor that has been written in both Python and Ruby.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Hashpipe thread manager diagram.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g006.tif"/>
</fig>
</sec>
<sec id="s2-4">
<title>2.4 Data storage</title>
<p>At the beginning of the design, two schemes for data storage were considered. One is that the data is stored on each GPU server, and it is read and combined when used. Due to the large number of GPU servers, this method is too cumbersome. The other is that the data is transmitted from each GPU server to the master computer in real-time, and the data is stored in the master computer. This method is convenient for data use and processing, so the second scheme is adopted.</p>
<p>Each GPU node has 4 hashpipe instances, and the output thread of each hashpipe instance sends data to a dedicated destination port. A total of 28 different UDP ports are used for the 7 GPU servers. The data acquisition script, written in Python, collects data from all 28 UDP ports and combines them. Currently, the integration time is set to approximately 4 s, resulting in a data rate of about 150 Mbps for each network port. The total data rate for all seven servers with 28 ports amounts to approximately 4.2 Gbps. Therefore, a 10 GbE network is capable of handling the data transmission. Finally, the data are saved onto hard drives in the HDF5 format. Additional information such as integration time, observation time, telescope details, and observer information is also automatically saved in the file.</p>
</sec>
<sec id="s2-5">
<title>2.5 CNS control module</title>
<p>During the drift scan observation of the Tianlai cylinder array, the system needs to be calibrated by a calibrator noise source (CNS). The CNS periodically broadcasts a broadband white noise of stable magnitude from a fixed position, so the system gain can be recovered (<xref ref-type="bibr" rid="B34">Zuo et al., 2021</xref>; <xref ref-type="bibr" rid="B35">Zuo et al., 2019</xref>). One requirement in the data processing part is to let the CNS&#x2019;s signal fall exactly in one integration time interval, so it needs to be aligned to the integration time. To achieve this, a logical ON/OFF signal from the cylinder correlator is necessary. In order to meet this requirement, we have introduced a noise source control function to the correlator system. This control function is implemented through the noise_source_control block in the F-engine, as shown in <xref ref-type="fig" rid="F7">Figure 7A</xref>.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>
<bold>(A)</bold> Design of the calibrator noise source control module. <bold>(B)</bold> The periodic CNS signal in the cross-correlation results is aligned with the integration time.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g007.tif"/>
</fig>
<p>First, the script enables counter_en block to initialize the module. Second, the hashpipe instance on the GPU node returns the MCNT value of its current packet. The script uses this value to calculate the CNS MCNT value (an MCNT value at a future time, when the MCNT value in the F-engine is equal to this value, the CNS is turned ON) and sets that CNS MCNT to reg31_0 block and reg47_32 block. Third, the CNS on/off period is converted to the change value of MCNT and set period_mcnt block to this value. Fourth, set the GPIO&#x2019;s working time to light block, which is on the ROACH2 board. Finally, the GPIO periodically sends out a logical signal to turn the CNS on or off.</p>
<p>We tested the accuracy of the CNS control module and its actual output result, as shown in <xref ref-type="fig" rid="F7">Figure 7B</xref>. The CNS is activated based on a pre-set MCNT value and is aligned precisely with the integration time interval.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Testing and experimentation</title>
<sec id="s3-1">
<title>3.1 ADC testing</title>
<p>The importance of ADCs lies in their quality and performance, as these factors bear a direct impact on the overall functionality of the systems they inhabit. To verify the sampling correctness of the ADC, we input a 15.625 MHz sinusoidal wave signal into the ADC and fit the digitized data. The sampling points and fitting result are shown in <xref ref-type="fig" rid="F8">Figure 8A</xref>. The correlator system requires the ADCs to have linearly sampled output at different signal levels. We plot the logarithm of the standard deviation of the ADC output with three different gain coefficients as a function of different input power levels, and the results are shown in <xref ref-type="fig" rid="F8">Figure 8B</xref>. No obvious nonlinearity is found in the testing power range.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>
<bold>(A)</bold> The ADC output data points and the fitting curve. <bold>(B)</bold> the logarithm of the standard deviation of the ADC output with gain coefficient 1, 2, and 4 was plotted at different input power levels.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g008.tif"/>
</fig>
</sec>
<sec id="s3-2">
<title>3.2 Phase testing</title>
<p>We verify the phase of the visibility (cross-correlation result) by two input signals, whose phase difference is determined by a cable length difference. We use a noise source generator to output the white noise signal and the signal is divided into two ways by a power splitter. Then, the two signals are fed into the ROACH2 board through two radio cables of different lengths. The cable length difference is 15 m. The two signals can be depicted as <inline-formula id="inf15">
<mml:math id="m16">
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> and <inline-formula id="inf16">
<mml:math id="m17">
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>, where <inline-formula id="inf17">
<mml:math id="m18">
<mml:mi>A</mml:mi>
</mml:math>
</inline-formula> is the wave amplitude, <inline-formula id="inf18">
<mml:math id="m19">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is an arbitrary initial phase, <inline-formula id="inf19">
<mml:math id="m20">
<mml:mi>f</mml:mi>
</mml:math>
</inline-formula> is frequency, <inline-formula id="inf20">
<mml:math id="m21">
<mml:mi>&#x3c4;</mml:mi>
</mml:math>
</inline-formula> is the delay incurred by the unequal-length RF cables. The visibility of two signals is<disp-formula id="e2">
<mml:math id="m22">
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(2)</label>
</disp-formula>The cable length difference of the two input signals is fixed, so the delay <inline-formula id="inf21">
<mml:math id="m23">
<mml:mi>&#x3c4;</mml:mi>
</mml:math>
</inline-formula> is constant over time. As Eq. <xref ref-type="disp-formula" rid="e2">2</xref> shows, the phase <inline-formula id="inf22">
<mml:math id="m24">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>f</mml:mi>
</mml:math>
</inline-formula>, <inline-formula id="inf23">
<mml:math id="m25">
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:math>
</inline-formula> is a linear function of frequency, and the slope <italic>k</italic> &#x3d; 2<inline-formula id="inf24">
<mml:math id="m26">
<mml:mi>&#x3c0;</mml:mi>
<mml:mi>&#x3c4;</mml:mi>
</mml:math>
</inline-formula>. The delay <inline-formula id="inf25">
<mml:math id="m27">
<mml:mi>&#x3c4;</mml:mi>
</mml:math>
</inline-formula> &#x3d; <inline-formula id="inf26">
<mml:math id="m28">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>l</mml:mi>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf27">
<mml:math id="m29">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:math>
</inline-formula>l is the cable length difference, <inline-formula id="inf28">
<mml:math id="m30">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is the propagation speed of RF signal in coaxial cable.</p>
<p>The measured waterfall 2D plot of phase of visibility output by our correlator in this experiment is plotted in <xref ref-type="fig" rid="F9">Figures 9A</xref>, <xref ref-type="fig" rid="F1">1D</xref> plot (at one integration time) of phase as a function of frequency is shown in <xref ref-type="fig" rid="F9">Figure 9B</xref>. By calculating the curve slope in <xref ref-type="fig" rid="F9">Figure 9B</xref>, we obtain a propagation speed in the coaxial cable of about <inline-formula id="inf29">
<mml:math id="m31">
<mml:mn>0.78</mml:mn>
<mml:mi>c</mml:mi>
</mml:math>
</inline-formula> (0.78 times speed of light in vacuum), which is consistent with the specification of the RF cable.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Phase correctness check of the correlator by two signals with fixed phase difference. The measured phase is consistent with the length difference of the two cables. <bold>(A)</bold> Phase fringes of the two input signals. <bold>(B)</bold> The relationship between frequency and phase.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g009.tif"/>
</fig>
</sec>
<sec id="s3-3">
<title>3.3 Linearity of correlator system</title>
<p>The linearity of our correlator is verified by comparing the input power levels and the output amplitudes. The results are shown in <xref ref-type="fig" rid="F10">Figure 10</xref>. Considering multiple factors, we have set the ADC gain coefficient for the correlator to 2. We can draw the conclusion that the linear dynamic range of our correlator is between &#x2212;22 dBm and 0 dBm within the 125 MHz bandpass. In realistic observations, power levels output from the receivers vary 10 dB at most, so the 22 dB dynamic range of our correlator can satisfy our observation requirement.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Linearity of correlator system. The ADC gain coefficients of 1, 2, and 4 were used for system linearity testing. A gain coefficient of 2 was selected as the daily operational parameter value for the correlator.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g010.tif"/>
</fig>
</sec>
<sec id="s3-4">
<title>3.4 Sky observation</title>
<p>The whole frequency band of each feed ranging from 692.8125 to 802.1875 MHz, is divided to 28 sub-bands. These sub-band have been sent to different hashpipe instances for correlation calculation. The final spectra are the combination of these 28 sub-bands. Some spectra of feeds (A10X, A19Y, B27X, and C12X) are plotted in <xref ref-type="fig" rid="F11">Figure 11</xref>. The Tianlai cylinder array is aligned in the N-S direction and consists of three adjacent cylinders. They are designated as A, B and C from east to west, and have 31, 32, and 33 feeds respectively. Each dual linear polarization feed generates two signal outputs. We use &#x201c;X&#x201d; to denote the output for the polarization along the N-S direction and &#x201c;Y&#x201d; along E-W direction. Spectra of the selected feeds in <xref ref-type="fig" rid="F11">Figure 11</xref> are from three cylinders, and are smooth in adjacent frequency sub-bands. No obvious inconsistent processing amplitude in different sub-bands are found.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Spectral response of feed A1Y, A10X, B3Y, and C12X.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g011.tif"/>
</fig>
<p>In these spectra, a periodic fluctuation of about 6.8 MHz can be seen. They have been confirmed to result from the standing wave in the 15-m feed cable (<xref ref-type="bibr" rid="B12">Li et al., 2021</xref>).</p>
<p>We made 4.4 h (16,000 s) of continuous observation since the night of August 7th, 2023, and the data are shown in <xref ref-type="fig" rid="F12">Figure 12</xref>. The fringe of radio bright source Cassiopeia A occurred around 8000th second.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>Observational phase of Cassiopeia A at around 8000th second.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g012.tif"/>
</fig>
<p>The continuous operation ability of the correlator is tested, and there is no fault in continuous operation for a month. We plot 4 days&#x2019; continuous observation data of three baselines as a function of LST (Local sidereal time) and frequency, as shown in <xref ref-type="fig" rid="F13">Figure 13</xref>. The subplots from top to bottom show the baselines for two feeds (a) on the same cylinder, (b) on two adjacent cylinders, and (c) on two non-adjacent cylinders. Each subplot shows the result of four consecutive days starting from September 6th, 2023; each day is a sub-panel from bottom to top.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>Typical phase of raw visibilities as a function of LST and frequency for 4 days starting from Sept. 6th, 2023. <bold>(A)</bold> Baseline A3Y-A15Y; <bold>(B)</bold> Baseline A3Y-B18Y; <bold>(C)</bold> Baseline A3Y-C15Y.</p>
</caption>
<graphic xlink:href="fspas-11-1407870-g013.tif"/>
</fig>
</sec>
<sec id="s3-5">
<title>3.5 Power consumption</title>
<p>All devices are powered by PDU (Power Distribution Unit), and the voltage and current usage of the devices can be monitored through the PDU management interface. The entire correlator system uses a total of 3 PDUs. The six ROACH2 boards and the master computer are connected to one PDU. The first 7 GPU servers and the 10&#x2009;GbE switch are connected to another PDU. The last 7 servers and the 1&#x2009;GbE Ethernet switch are connected to the third PDU.</p>
<p>The total power of the F-engine is 220 V <inline-formula id="inf30">
<mml:math id="m32">
<mml:mo>&#xd7;</mml:mo>
</mml:math>
</inline-formula> 3.5 A &#x3d; 770 W, including six ROACH2 boards and one master computer. The total power of X-engine is 220 V <inline-formula id="inf31">
<mml:math id="m33">
<mml:mo>&#xd7;</mml:mo>
</mml:math>
</inline-formula> 17.5 A &#x3d; 3850 W, including seven GPU servers, one 10 GbE switch, and one 1 GbE switch. Therefore, the total power of the whole correlator system is 770 W &#x2b; 3850 W &#x3d; 4,620 W for 192 inputs. This is very energy-efficient for such a large-scale interferometer system.</p>
</sec>
</sec>
<sec id="s4">
<title>4 Summary</title>
<p>In this paper, the correlator is designed and deployed for the cylinder array with 192 inputs. Based on the basic hybrid structure of the ROACH2-GPU correlator, we have realized the data acquisition and pre-processing function by F-engine, which consists of six ROACH2 boards. The F-engine part is tested, debugged, and analyzed, works in the suitable linear range and the calibrator noise source is controlled in a cadence according to integration time. We conducted hardware testing and data storage design for the X-engine part and realized the complete and orderly data storage of 7 GPU servers. We use a DELL 2020 server, NVIDIA GeForce RTX3080 graphics card, and Rocky 8 system to achieve the X-engine function.</p>
<p>As Tianlai radio interferometric array is currently extending its scale, the correlator we design can increase the number of ROACH2 boards according to the number of input signals, and set the appropriate number of frequency points and the size of data packets. The X-engine part can use higher-level servers and graphics cards to combine multiple tasks and increase the work tasks of a single server to reduce the number of servers. Our future work is to implement it on larger systems.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s5">
<title>Data availability statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec id="s6">
<title>Author contributions</title>
<p>ZW: Writing&#x2013;original draft. J-XL: Writing&#x2013;review and editing. KZ: Software, Writing&#x2013;original draft. F-QW: Writing&#x2013;review and editing. Haijun H-JT: Writing&#x2013;review and editing. C-HN: Writing&#x2013;review and editing. J-YZ: Writing&#x2013;review and editing. Z-PC: Writing&#x2013;review and editing. D-JY: Writing&#x2013;review and editing. X-LC: Writing&#x2013;review and editing.</p>
</sec>
<sec sec-type="funding-information" id="s7">
<title>Funding</title>
<p>The author(s) declare that financial support was received for the research, authorship, and/or publication of this article. We acknowledge the support by the National SKA Program of China (Nos 2022SKA0110100, 2022SKA0110101, and 2022SKA0130100), the National Natural Science Foundation of China (Nos 12373033, 12203061, 12273070, 12303004, and 12203069), the CAS Interdisciplinary Innovation Team (JCTD-2019-05), the Foundation of Guizhou Provincial Education Department (KY (2023)059), and CAS Youth Interdisciplinary Team. This work is also supported by the office of the leading Group for Cyberspace Affairs, CAS (No. CAS-WX2023PY-0102) and CAS Project for Young Scientists in Basic Research (YSBR-063).</p>
</sec>
<sec sec-type="COI-statement" id="s8">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s9">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<fn-group>
<fn id="fn1">
<label>1</label>
<p>
<ext-link ext-link-type="uri" xlink:href="https://tianlai.bao.ac.cn">https://tianlai.bao.ac.cn</ext-link>
</p>
</fn>
<fn id="fn2">
<label>2</label>
<p>
<ext-link ext-link-type="uri" xlink:href="https://github.com/TianlaiProject">https://github.com/TianlaiProject</ext-link>
</p>
</fn>
<fn id="fn3">
<label>3</label>
<p>
<ext-link ext-link-type="uri" xlink:href="https://github.com/david-macmahon/hashpipe">https://github.com/david-macmahon/hashpipe</ext-link>
</p>
</fn>
<fn id="fn4">
<label>4</label>
<p>
<ext-link ext-link-type="uri" xlink:href="https://casper.astro.berkeley.edu/wiki/ADC16x250-8_coax_rev_2">https://casper.astro.berkeley.edu/wiki/ADC16x250-8_coax_rev_2</ext-link>
</p>
</fn>
<fn id="fn5">
<label>5</label>
<p>
<ext-link ext-link-type="uri" xlink:href="https://casper.astro.berkeley.edu/wiki/Block_Documentation">https://casper.astro.berkeley.edu/wiki/Block_Documentation</ext-link>
</p>
</fn>
<fn id="fn6">
<label>6</label>
<p>
<ext-link ext-link-type="uri" xlink:href="https://casper.astro.berkeley.edu/wiki/PAPER_Correlator_EQ">https://casper.astro.berkeley.edu/wiki/PAPER_Correlator_EQ</ext-link>
</p>
</fn>
<fn id="fn7">
<label>7</label>
<p>
<ext-link ext-link-type="uri" xlink:href="https://github.com/GPU-correlators/xGPU">https://github.com/GPU-correlators/xGPU</ext-link>
</p>
</fn>
</fn-group>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ali</surname>
<given-names>Z. S.</given-names>
</name>
<name>
<surname>Parsons</surname>
<given-names>A. R.</given-names>
</name>
<name>
<surname>Zheng</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Pober</surname>
<given-names>J. C.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Aguirre</surname>
<given-names>J. E.</given-names>
</name>
<etal/>
</person-group> (<year>2015</year>). <article-title>PAPER-64 constraints on reionization: THE 21 cm power spectrum AT<italic>z</italic>&#x3d; 8.4</article-title>. <source>ApJ</source> <volume>809</volume>, <fpage>61</fpage>. <pub-id pub-id-type="doi">10.1088/0004-637X/809/1/61</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ansari</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Campagne</surname>
<given-names>J. E.</given-names>
</name>
<name>
<surname>Colom</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Le Goff</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Magneville</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Martin</surname>
<given-names>J. M.</given-names>
</name>
<etal/>
</person-group> (<year>2012</year>). <article-title>21 cm observation of large-scale structures at<italic>z</italic> &#x223c; 1: instrument sensitivity and foreground subtraction</article-title>. <source>A&#x26;A</source> <volume>540</volume>, <fpage>A129</fpage>. <pub-id pub-id-type="doi">10.1051/0004-6361/201117837</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Radio detection of dark energy&#x26;amp;mdash;the Tianlai project</article-title>. <source>Mech. Astronomica</source> <volume>41</volume>, <fpage>1358</fpage>&#x2013;<lpage>1366</lpage>. <pub-id pub-id-type="doi">10.1360/132011-972</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cianciara</surname>
<given-names>A. J.</given-names>
</name>
<name>
<surname>Anderson</surname>
<given-names>C. J.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Geng</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2017</year>). <article-title>Simulation and testing of a linear array of modified four-square feed antennas for the Tianlai cylindrical radio telescope</article-title>. <source>J. Astron. Instrum.</source> <volume>6</volume>, <fpage>1750003</fpage>. <pub-id pub-id-type="doi">10.1142/S2251171717500039</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Clark</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Plante</surname>
<given-names>P. L.</given-names>
</name>
<name>
<surname>Greenhill</surname>
<given-names>L. J.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Accelerating radio astronomy cross-correlation with graphics processing units</article-title>. <source>Int. J. high Perform. Comput. Appl.</source> <volume>27</volume>, <fpage>178</fpage>&#x2013;<lpage>192</lpage>. <pub-id pub-id-type="doi">10.1177/1094342012444794</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Das</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Anderson</surname>
<given-names>C. J.</given-names>
</name>
<name>
<surname>Ansari</surname>
<given-names>R.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). &#x201c;<article-title>Society of photo-optical instrumentation engineers (SPIE) conference series</article-title>,&#x201d; in <source>Millimeter, submillimeter, and far-infrared detectors and instrumentation for astronomy IX</source>. Editors <person-group person-group-type="editor">
<name>
<surname>Zmuidzinas</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>J.-R.</given-names>
</name>
</person-group>, <volume>10708</volume>. <pub-id pub-id-type="doi">10.1117/12.2313031</pub-id>
<fpage>1070836</fpage>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hickish</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Abdurashidova</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Ali</surname>
<given-names>Z.</given-names>
</name>
<etal/>
</person-group> (<year>2016</year>). <article-title>A decade of developing radio-astronomy instrumentation using CASPER open-source Technology</article-title>. <source>J. Astronomical Instrum.</source> <volume>5</volume>, <fpage>1641001</fpage>. <pub-id pub-id-type="doi">10.1142/S2251171716410014</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kocz</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Greenhill</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Barsdell</surname>
<given-names>B.</given-names>
</name>
<etal/>
</person-group> (<year>2015</year>). <article-title>Digital signal processing using stream high performance computing</article-title>. <source>J. Astronomical Instrum.</source> <volume>4</volume>, <fpage>1550003</fpage>. <pub-id pub-id-type="doi">10.1142/S2251171715500038</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kovetz</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Breysse</surname>
<given-names>P. C.</given-names>
</name>
<name>
<surname>Lidz</surname>
<given-names>A.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>Astrophysics and cosmology with line-intensity mapping</article-title>. <source>BAAS</source> <volume>51</volume>, <fpage>101</fpage>. <pub-id pub-id-type="doi">10.48550/arXiv.1903.04496</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kwak</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Podczerwinski</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Timbie</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Ansari</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Marriner</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Stebbins</surname>
<given-names>A.</given-names>
</name>
<etal/>
</person-group> (<year>2024</year>). <article-title>The effects of the local environment on a compact radio interferometer I: cross-coupling in the Tianlai dish pathfinder array</article-title>. <source>J. Astron. Instrum.</source> <volume>13</volume>, <fpage>2450002</fpage>. <pub-id pub-id-type="doi">10.1142/S2251171724500028</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zuo</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>S.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>The Tianlai Cylinder Pathfinder array: system functions and basic performance analysis</article-title>. <source>Mech. Astronomy</source> <volume>63</volume>, <fpage>129862</fpage>. <pub-id pub-id-type="doi">10.1007/s11433-020-1594-8</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>J.-X.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F.-Q.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>S.-J.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>Z. J.</given-names>
</name>
<name>
<surname>Zuo</surname>
<given-names>S. F.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y. F.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Reflections and standing waves on the Tianlai cylinder array</article-title>. <source>Astronomy Astrophysics</source> <volume>21</volume>, <fpage>059</fpage>. <pub-id pub-id-type="doi">10.1088/1674-4527/21/3/059</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Shaw</surname>
<given-names>J. R.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Data analysis for precision 21 cm cosmology</article-title>. <source>PASP</source> <volume>132</volume>, <fpage>062001</fpage>. <pub-id pub-id-type="doi">10.1088/1538-3873/ab5bfd</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>MacMahon</surname>
<given-names>D. H.</given-names>
</name>
<name>
<surname>Price</surname>
<given-names>D. C.</given-names>
</name>
<name>
<surname>Lebofsky</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Siemion</surname>
<given-names>A. P. V.</given-names>
</name>
<name>
<surname>Croft</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>DeBoer</surname>
<given-names>D.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>The breakthrough listen search for intelligent life: a wideband data recorder system for the robert C. Byrd Green Bank telescope</article-title>. <source>Publ. Astron. Soc. Pac.</source> <volume>130</volume>, <fpage>044502</fpage>. <pub-id pub-id-type="doi">10.1088/1538-3873/aa80d2</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Niu</surname>
<given-names>C.-H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Q.-X.</given-names>
</name>
<name>
<surname>MacMahon</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F. Q.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X. L.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J. X.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>The design and implementation of a ROACH2&#x2b;GPU based correlator on the Tianlai dish array</article-title>. <source>Res. Astron. Astrophys.</source> <volume>19</volume>, <fpage>102</fpage>. <pub-id pub-id-type="doi">10.1088/1674-4527/19/7/102</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Parsons</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Backer</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Siemion</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Werthimer</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Droz</surname>
<given-names>P.</given-names>
</name>
<etal/>
</person-group> (<year>2008</year>). <article-title>A scalable correlator architecture based on modular FPGA hardware, reuseable gateware, and data packetization</article-title>. <source>Publ. Astronomical Soc. Pac.</source> <volume>120</volume>, <fpage>1207</fpage>&#x2013;<lpage>1221</lpage>. <pub-id pub-id-type="doi">10.1086/593053</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Parsons</surname>
<given-names>A. R.</given-names>
</name>
<name>
<surname>Backer</surname>
<given-names>D. C.</given-names>
</name>
<name>
<surname>Foster</surname>
<given-names>G. S.</given-names>
</name>
<name>
<surname>Wright</surname>
<given-names>M. C. H.</given-names>
</name>
<name>
<surname>Bradley</surname>
<given-names>R. F.</given-names>
</name>
<name>
<surname>Gugliucci</surname>
<given-names>N. E.</given-names>
</name>
<etal/>
</person-group> (<year>2010</year>). <article-title>THE PRECISION ARRAY FOR PROBING THE EPOCH OF RE-IONIZATION: EIGHT STATION RESULTS</article-title>. <source>Astronomical J.</source> <volume>139</volume>, <fpage>1468</fpage>&#x2013;<lpage>1480</lpage>. <pub-id pub-id-type="doi">10.1088/0004-6256/139/4/1468</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pei</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Ergesh</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Duan</surname>
<given-names>X. F.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Design of a multi-function high-speed digital baseband data acquisition system</article-title>. <source>Res. Astron. Astrophys.</source> <volume>21</volume>, <fpage>248</fpage>. <pub-id pub-id-type="doi">10.1088/1674-4527/21/10/248</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Perdereau</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Ansari</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Stebbins</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Timbie</surname>
<given-names>P. T.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>The Tianlai dish array low-z surveys forecasts</article-title>. <source>MNRAS</source> <volume>517</volume>, <fpage>4637</fpage>&#x2013;<lpage>4655</lpage>. <pub-id pub-id-type="doi">10.1093/mnras/stac2832</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Prestage</surname>
<given-names>R. M.</given-names>
</name>
<name>
<surname>Constantikes</surname>
<given-names>K. T.</given-names>
</name>
<name>
<surname>Hunter</surname>
<given-names>T. R.</given-names>
</name>
<name>
<surname>King</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Lacasse</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Lockman</surname>
<given-names>F.</given-names>
</name>
<etal/>
</person-group> (<year>2009</year>). <article-title>The Green Bank telescope</article-title>. <source>Proc. IEEE</source> <volume>97</volume>, <fpage>1382</fpage>&#x2013;<lpage>1390</lpage>. <pub-id pub-id-type="doi">10.1109/jproc.2009.2015467</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Price</surname>
<given-names>D. C.</given-names>
</name>
</person-group> (<year>2021</year>). in <source>The WSPC handbook of astronomical instrumentation: volume 1: radio astronomical instrumentation</source> (<publisher-name>World Scientific</publisher-name>), <fpage>159</fpage>&#x2013;<lpage>179</lpage>.</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Price</surname>
<given-names>D. C.</given-names>
</name>
<name>
<surname>MacMahon</surname>
<given-names>D. H.</given-names>
</name>
<name>
<surname>Lebofsky</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Croft</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>DeBoer</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Enriquez</surname>
<given-names>J. E.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>The Breakthrough Listen search for intelligent life: wide-bandwidth digital instrumentation for the CSIRO Parkes 64-m telescope</article-title>. <source>Publ. Astron. Soc. Aust.</source> <volume>35</volume>, <fpage>e041</fpage>. <pub-id pub-id-type="doi">10.1017/pasa.2018.36</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sun</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Timbie</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Ansari</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Geng</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>The electromagnetic characteristics of the Tianlai cylindrical pathfinder array</article-title>. <source>Astronomy Astrophysics</source> <volume>22</volume>, <fpage>065020</fpage>. <pub-id pub-id-type="doi">10.1088/1674-4527/ac684d</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Thompson</surname>
<given-names>A. R.</given-names>
</name>
<name>
<surname>Moran</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Swenson</surname>
<given-names>G. W. J.</given-names>
</name>
</person-group> (<year>2017</year>). <source>Interferometry and synthesis in radio astronomy</source>. <edition>3rd Edition</edition>. <pub-id pub-id-type="doi">10.1007/978-3-319-44431-4</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zuo</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Das</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Marriner</surname>
<given-names>J. P.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>The Tianlai dish pathfinder array: design, operation, and performance of a prototype transit radio interferometer</article-title>. <source>MNRAS</source> <volume>506</volume>, <fpage>3455</fpage>&#x2013;<lpage>3482</lpage>. <pub-id pub-id-type="doi">10.1093/mnras/stab1802</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> <year>2014</year>, <article-title>Site selection for the Tianlai experiment proceedings of the XXXIst URSI general assembly and scientific symposium to be held in Beijing, China (CIE), August 17&#x2013;23, 2014</article-title>in <conf-name>2014 XXXIth URSI General Assembly and Scientific Symposium (URSI GASS)</conf-name>. <conf-date>16-23 August 2014</conf-date>. <conf-loc>Beijing, China</conf-loc>, <fpage>1</fpage>&#x2013;<lpage>4</lpage>.</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>FORECASTS ON THE DARK ENERGY AND PRIMORDIAL NON-GAUSSIANITY OBSERVATIONS WITH THE TIANLAI CYLINDER ARRAY</article-title>. <source>ApJ</source> <volume>798</volume>, <fpage>40</fpage>. <pub-id pub-id-type="doi">10.1088/0004-637X/798/1/40</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Zuo</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>A simulation of calibration and map-making errors of the Tianlai cylinder pathfinder array</article-title>. <source>Astronomy Astrophysics</source> <volume>23</volume>, <fpage>105008</fpage>. <pub-id pub-id-type="doi">10.1088/1674-4527/acf032</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Zuo</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Application of regularization methods in the sky map reconstruction of the Tianlai cylinder pathfinder array</article-title>. <source>Res. Astron. Astrophys.</source> <volume>24</volume>, <fpage>025002</fpage>. <pub-id pub-id-type="doi">10.1088/1674-4527/ad1223</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Niu</surname>
<given-names>C.</given-names>
</name>
<etal/>
</person-group> (<year>2022b</year>). <source>Astronomer&#x2019;s Telegr.</source> <volume>15758</volume>, <fpage>1</fpage>.</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Niu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F.</given-names>
</name>
<etal/>
</person-group> (<year>2022a</year>). <article-title>A fast radio burst backend for the Tianlai dish pathfinder array</article-title>. <source>Res. Astron. Astrophys.</source> <volume>22</volume>, <fpage>125007</fpage>. <pub-id pub-id-type="doi">10.1088/1674-4527/ac977c</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>F.-R.</given-names>
</name>
<name>
<surname>Niu</surname>
<given-names>C.-H.</given-names>
</name>
<etal/>
</person-group> (<year>2022c</year>). <article-title>Detection of a bright FRB with the Tianlai cylinder pathfinder array</article-title>. <source>Astronomer&#x2019;s Telegr.</source> <volume>15342</volume>, <fpage>1</fpage>.</citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zuo</surname>
<given-names>S.-F.</given-names>
</name>
<name>
<surname>Ansari</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y. C.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F. Q.</given-names>
</name>
<etal/>
</person-group> (<year>2016</year>). <article-title>Sky reconstruction for the Tianlai cylinder array</article-title>. <source>Astronomy Astrophysics</source> <volume>16</volume>, <fpage>158</fpage>. <pub-id pub-id-type="doi">10.1088/1674-4527/16/10/158</pub-id>
</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zuo</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Santanu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Stebbins</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Masui</surname>
<given-names>K.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Data processing pipeline for Tianlai experiment</article-title>. <source>Astronomy Comput.</source> <volume>34</volume>, <fpage>100439</fpage>. <pub-id pub-id-type="doi">10.1016/j.ascom.2020.100439</pub-id>
</citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zuo</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Pen</surname>
<given-names>U.-L.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Stebbins</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>An eigenvector-based method of radio array calibration and its application to the Tianlai cylinder pathfinder</article-title>. <source>Astronomical J.</source> <volume>157</volume>, <fpage>34</fpage>. <pub-id pub-id-type="doi">10.3847/1538-3881/aaf4c0</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>