宋海聲 蘇鳳嬌, 李先勤 張 奇 陳 勇 閆 鐸楊海波 孔 潔 蘇 弘
1(西北師范大學 蘭州730070)
2(中國科學院近代物理研究所 蘭州730000)
3(哈爾濱工業(yè)大學 哈爾濱150001)
蘭州重離子加速器(HeavyⅠon Research Facility at Lanzhou,HⅠRFL)[1]是目前我國規(guī)模最大、加速粒子種類最多、能量最高的重離子研究裝置。冷卻儲存環(huán)(Cooling Storage Ring,CSR)[2]是其主要加速器之一,由主環(huán)(CSRm)、實驗環(huán)(CSRe)和第二條放射性束流線(Radioactive Beam Line,RⅠBLL ⅠⅠ)組成。外靶實驗便是研究經CSRm加速后的束流在RⅠBLLⅠⅠ中打靶后產生的放射性束性質的實驗。其中γ球探測器[3]是外靶實驗的核心探測器,主要研究放射性束退激產生的γ射線的能量等信息。為剔除探測器信號中的本底噪聲等無效信息,需要設計一個觸發(fā)判選系統(tǒng),根據(jù)有效事例次級粒子間的時間和邏輯關系對探測器信號進行篩選。通過對國內外的一些大型物理實驗進行分析,如北京正負電子對撞機實驗[5]、歐洲粒子研究組織的ALⅠCE(A LargeⅠon Collider Experiment)實驗[6],會發(fā)現(xiàn)對觸發(fā)判選系統(tǒng)大都采用多級觸發(fā)的方式,針對探測器信號電子學通道數(shù)目多的輸出特點,首先在子觸發(fā)系統(tǒng)中采用邏輯算法,將事件率降低,然后通過總觸發(fā),對各子探測器的時間和邏輯進行分析,完成最終觸發(fā)。本實驗中的觸發(fā)判選系統(tǒng)除了采用以上方案,同時也根據(jù)CSR外靶實驗于高能輻射環(huán)境下進行的特點,選用 Flash型 FPGA(Field Programmable Gate Array)進行子觸發(fā)系統(tǒng)的硬件開發(fā),有效地避免了芯片的單粒子翻轉效應[7],同時不會因掉電而丟失數(shù)據(jù),并能通過公共網(wǎng)絡實現(xiàn)安全性遠程升級。另外還要求系統(tǒng)具有可重構的特點,即能夠根據(jù)實驗目標的不同對判選條件進行修改。本文便是對子觸發(fā)系統(tǒng)進行相關設計與測試。
如圖1所示為CSR外靶實驗觸發(fā)判選電子學系統(tǒng)總體結構。探測器探測到的信號輸入至前端電子學(Front-end Electronics,F(xiàn)EE)[8-9],進行相應測量、緩存一定事例信息的同時,提取出一些特征信息(如探測器擊中信息)發(fā)送至子觸發(fā)判選系統(tǒng)(Sub_Trigger System)。子觸發(fā)判選系統(tǒng)根據(jù)上位機設置的觸發(fā)條件進行判選,將滿足條件的信號的觸發(fā)信息、位置信息等有效信息輸入至總觸發(fā)判選系統(tǒng)(Global_Trigger System)做進一步綜合處理,產生總觸發(fā)信號反饋至子觸發(fā)系統(tǒng)。子觸發(fā)系統(tǒng)再通知前端電子學讓其將有效信號保留住同時通知數(shù)據(jù)獲取系統(tǒng)(Data Acquisition,DAQ)將有效信號記錄下來。
子觸發(fā)判選系統(tǒng)設計難點包括:1)較高的觸發(fā)判選速度;2)較強的觸發(fā)判選靈活度;3)可以根據(jù)不同的實驗條件設置相應的觸發(fā)條件。
圖1 CSR外靶實驗觸發(fā)判選電子學系統(tǒng)總體結構Fig.1 The overall structure of the electronic system in CSR external target experiment triggers
圖2為子觸發(fā)板硬件設計。主要包括電源模塊、時鐘模塊、FPGA模塊、光口模塊和以太網(wǎng)模塊。電源模塊通過電源轉換芯片TPS79625[10]等為系統(tǒng)各模塊提供所需電源;時鐘模塊由時鐘晶振為系統(tǒng)提供高精度100 MHz時鐘;FPGA模塊采用美國Microsemi公司的SmartFusion2系列FPGA M2S090T-FGG484[11],該芯片包含 ARM Cortex-M3處理器為核心的微處理器系統(tǒng)(Microcontroller Subsystem,MSS)、FPGA 和一些硬核如 Serdes(SERializer/DESerializer(串行器/解串器))[12]等資源,可以方便地進行SOC(System on Chip)系統(tǒng)的開發(fā)設計;光口模塊實現(xiàn)子觸發(fā)系統(tǒng)與總觸發(fā)系統(tǒng)的相互通信;以太網(wǎng)模塊實現(xiàn)上位機對子觸發(fā)系統(tǒng)的控制。
圖2 子觸發(fā)板硬件設計Fig2 The hardware design of the sub-trigger system
如圖3所示為子觸發(fā)系統(tǒng)整體結構圖。子觸發(fā)判選系統(tǒng)由MSS和FPGA兩部分組成。MSS內部以MACⅠP核為主,通過與DMA(Direct Memory Access)和ARM(Advanced RⅠSC Machine)的配合,實現(xiàn)用以太網(wǎng)配置系統(tǒng)的工作狀態(tài)、寄存器值等各參數(shù)。FPGA的設計分為高速串行收發(fā)器ⅠP核Serdes和User logic,分別實現(xiàn)與總觸發(fā)系統(tǒng)的光纖通信和子觸發(fā)系統(tǒng)的用戶配置。
圖3 子觸發(fā)系統(tǒng)整體結構圖Fig.3 The overall structure of the sub-trigger system
其中子觸發(fā)系統(tǒng)一次有效的工作過程如圖4所示,以第一次擊中作為開始的標志,進行一段時間event time的擊中計數(shù)。在計數(shù)過程中,若擊中數(shù)等于閾值,則開始對之后擊中的信號進行延時即發(fā)出hold_delay(包括等于閾值的信號),之后給出hold_out使相應的通道hold住。event time計數(shù)完成后,子觸發(fā)板將總擊中個數(shù)通過光口發(fā)送給總觸發(fā)板。為保證在時間周期內最后一個擊中能有效hold,event time后,再延時一段時間hold_delay,之后產生hold_ready信號。然后向其他所有未觸發(fā)的通道也統(tǒng)一發(fā)出hold命令,保證此時所有的通道都保持住。另一部分與DAQ(Data Acquisition)板交互的邏輯,主要負責接收主觸發(fā)板反饋的GT_OK信號,如果該信號為1且hold_ready也是1,則向DAQ板發(fā)出start信號,并等待DAQ板采集數(shù)據(jù)完成。如果DAQ板處理完成,則向整個系統(tǒng)發(fā)出清零信號,重新開始整個過程。
2.2.1 光口模塊描述
系統(tǒng)使用光口模塊實現(xiàn)子觸發(fā)系統(tǒng)和總觸發(fā)系統(tǒng)之間的數(shù)據(jù)傳輸。Serdes核作為光口傳輸?shù)暮诵哪K,是一種高速串行的收發(fā)器ⅠP核,其內部包含4個通道,在設計中可以被定制為EPCS(Extended Physical Coding Sublayer)接口,實現(xiàn)用戶自定義的協(xié)議類型。
圖4 子觸發(fā)系統(tǒng)工作流程圖Fig.4 The work flow chart of Sub-trigger system
具體的Serdes核的通信過程如圖5所示。在子觸發(fā)判選系統(tǒng)上電后,MSS會運行事先燒錄在eNⅤM里面的配置文件,將相關寄存器信息加載到FPGA中的外設Serdes核里,啟動Serdes的工作狀態(tài)。工程中,Serdes中的寄存器可以由自己用Ⅴerilog描述的APB(Advanced Peripheral Bus)主設備配置,也可以由M3進行配置。而且通過APB接口,M3不僅可以實現(xiàn)對Serdes的配置,還能在一些配套工具的幫助下實現(xiàn)實時的監(jiān)控和調試功能,如狀態(tài)檢查、PRBS(Pseudo-Random Binary Sequence)測試和回環(huán)測試等。目前的工程為滿足抗輻射條件,Serdes中的寄存器由自己用Ⅴerilog描述的APB主設備配置,這樣可以保證在M3不工作的情況下,實現(xiàn)對光口的初始化。
圖5 Serdes核的通信過程Fig.5 The communication process of Serdes core
工作模式下,Serdes核的功能主要是接收前端電子學模塊發(fā)送來的有效擊中數(shù)據(jù),在一定條件下(取決與子觸發(fā)板的控制),通過Serdes核,把有效擊中數(shù)據(jù)發(fā)送給總觸發(fā)板。既實現(xiàn)了子觸發(fā)板與總觸發(fā)板觸發(fā)信息的長距離傳輸,同時隔離了各機箱間的電氣連接。在Serdes與實際擊中數(shù)據(jù)之間加入了PCS(Physical Coding Sublayer)核[13],提供 8B/10B編解碼的功能,增強傳輸?shù)目煽啃浴6覟榱耸筍erdes核與FPGA之間的接口具備通用性和易用性,特意封裝了其接口模塊的發(fā)送時序和接收時序,包括編解碼、位數(shù)拼接、信號對齊等內容。電路滿足擊中閾值想發(fā)送數(shù)據(jù)時,只需要在數(shù)據(jù)接口給出數(shù)據(jù)即可實現(xiàn)發(fā)送。需要接收相應數(shù)據(jù)時,只需要給出相應的目標k_char碼進行匹配即可,即測試碼為BCBC(K28.5)。
2.2.2 以太網(wǎng)模塊描述
以太網(wǎng)ⅠP應用如圖6所示。系統(tǒng)使用以太網(wǎng)模塊作為上位機與子觸發(fā)之間的信號傳輸接口,灰線為配置通道,黑線為數(shù)據(jù)傳輸通道。通過該接口,使用標準的以太網(wǎng)協(xié)議和其他協(xié)議,子觸發(fā)系統(tǒng)實現(xiàn)與上位機之間的數(shù)據(jù)和命令交換,滿足用戶對觸發(fā)條件、觸發(fā)參數(shù)、定制FPGA中用戶邏輯等功能的需要。
圖6 以太網(wǎng)ⅠP應用框圖Fig.6 The block diagram of EthernetⅠP application
當系統(tǒng)上電后,MSS可以通過AHB總線接口按照用戶預先配置的要求對以太網(wǎng)核(MAC和PHY芯片)進行初始化,同時完成ⅠP地址的初始化。工程中例化了COREGMⅠⅠⅠP 核,將MAC核的GMⅠⅠ接口轉化為RGMⅠⅠ,實現(xiàn)MAC核與PHY芯片之間的連接。除此之外,在以太網(wǎng)初始化過程中,兩邊的通信硬件設備會在PHY的控制下開始自動協(xié)商,產生一個兩邊通信都滿足的最大速率,并給出相應的通信時鐘。因此在電路上例化了FCCC時鐘分頻模塊,能根據(jù)以太網(wǎng)的自動協(xié)商結果決定從125 M、25 M、2.5 M時鐘中輸出哪一個作為實際的通信時鐘使用。初始化成功之后,以太網(wǎng)核通過RJ45接口接收上位機發(fā)送來的命令并對其進行解包處理,之后通過AHB和Ⅰnterface Logic把命令發(fā)送到用戶邏輯,實現(xiàn)對用戶邏輯的重新設置。具體的MAC核的上電配置過程和接收上位機數(shù)據(jù)包的過程如圖7所示。
圖7 MAC核初始化及接收上位機數(shù)據(jù)包流程圖Fig.7 The flow chart of MAC core initialization and receiving host computer data packet
2.2.3 用戶邏輯模塊描述
用戶邏輯是方案中預留給用戶的可定制的一部分FPGA資源。硬件連接上,用戶邏輯和其他開發(fā)框架之間的功能連接主要靠APB接口和Serdes接口。此工程中的應用是實現(xiàn)了子觸發(fā)系統(tǒng)的判斷選擇功能,用戶邏輯處理從探測器發(fā)出的原始脈沖信號,經過邏輯運算,將產生的子觸發(fā)信息通過光口發(fā)送給總觸發(fā)系統(tǒng)。另外,用戶邏輯還負責接收上位機和總觸發(fā)系統(tǒng)的配置命令和反饋信息,調整電路邏輯參數(shù),以滿足不同的應用場景。子觸發(fā)模塊接收各個有效擊中信號,根據(jù)實驗的要求,滿足閾值條件產生子觸發(fā)信號之后,子觸發(fā)信息會傳給總觸發(fā)模塊。
用戶邏輯模塊劃分如圖8所示。上位機通過以太網(wǎng)將所需的命令寫入MSS的寄存器中,這些寄存器時掛在APB總線上的。RegCtrl模塊對相應的寄存器進行解釋并負責整個系統(tǒng)的寄存器配置和運行狀態(tài)的配置。Ⅰnput_signal_gen模塊是測試模式下的一個測試信號產生模塊,外靶實驗情況下,輸入信號SⅠGN_ⅠN可以直接連接到算法模塊中,但在測試模式,向后級輸出的信號會替換為自定義的數(shù)值。Test_top模塊負責整個算法的實現(xiàn),當采集到一定時間滿足閾值的擊中數(shù)后,將處理好的數(shù)據(jù)信號Code_st向后級Tx_ctrl模塊發(fā)出,同時接受判斷從Rx_ctrl模塊發(fā)出的GT_OK信號是否為1,以此決定是否繼續(xù)向前端電子學和DAQ發(fā)出控制信號。Tx_ctrl模塊和Rx_ctrl模塊是光口發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的處理模塊,由于總觸發(fā)系統(tǒng)的光口通信速率固定為800 Mbps,而子觸發(fā)系統(tǒng)的ⅠP核對時鐘的限制是最低80 MHz,故將子觸發(fā)系統(tǒng)的光口的速率配置為80 MHz×10 bit,而接收到總觸發(fā)信息的數(shù)據(jù)位是20 bit,所以這兩個模塊也是負責拼接和處理對齊的功能模塊。最后,系統(tǒng)中的其他模塊主要負責對信號進行相應的處理和判斷,如脈沖展寬模塊、跨時鐘域同步模塊、信號延時模塊等。
圖8 用戶邏輯模塊劃分圖Fig.8 The partition diagram of user logic module
高速串行數(shù)據(jù)傳輸中,利用示波器的余輝模式,在數(shù)據(jù)接收端對每一個碼元進行掃描,調整示波器水平掃描周期使其與接收碼元周期同步,這時所有的碼元波形將重疊在一起,形成眼圖。眼圖中同時包含了高速串行信號的時間和幅度信息,是信號傳輸質量的最直觀反映。通過眼圖測試,可以評估串行數(shù)據(jù)傳輸中抖動及噪聲造成的影響[15-16]?!把劬Α睆堥_的大小反映了系統(tǒng)的碼間串擾,張開越小,說明碼間干擾越大。當傳輸系統(tǒng)受到噪聲的影響時,信號的幅度會變化,“眼皮”會變厚,眼圖的跡線會變得雜亂,噪聲越大,跡線越寬,越模糊。同時通過眼圖可以測量抖動,抖動是數(shù)據(jù)碼元發(fā)生變化的實際位置與理想位置的時間偏差,是信號的水平波動,會隨數(shù)據(jù)速率提高而增加,造成誤碼[17]。
眼圖測試中,采用采樣率為5 GHz的示波器,帶寬為1.0 GHz的差分探頭對發(fā)送端差分信號的兩端進行測量。結果如圖9所示。從圖9中可以看出,橫坐標每格表示500 ps,而每個碼元大約占了2.5格,即1.25 ns,而串行數(shù)據(jù)率為800 Mbps,兩者匹配。而且電平1和0比較平滑,表明信號噪聲較小。眼圖的交叉點聚集在門限電平出,整體輪廓比較清晰,眼睛睜開的比較大,表明碼間串擾較小。抖動的測試結果如圖10所示,抖動即PK-PK值為41.340 ps,滿足協(xié)議規(guī)范[18],表明抖動性能合格。
圖9 光纖通道眼圖測試結果Fig.9 The test results of fiber channel eye diagram
圖10 抖動測試結果Fig.10 The test results of Jitter
采用windows的ping指令進行以太網(wǎng)的測試,結果如圖11所示,說明以太網(wǎng)已接通,且測試30 min,沒有出現(xiàn)丟包。
為測試子觸發(fā)系統(tǒng)的可行性,將其與總觸發(fā)系統(tǒng)進行了聯(lián)調測試,其中總觸發(fā)選用集成Xilinx7系列FPGA芯片XC7A100T[14]。
圖11 以太網(wǎng)測試結果Fig.11 The test results of ethernet
通信過程中,用Microsemi嵌入式分析儀Ⅰdentify對子觸發(fā)信號進行抓取對信號進行實時檢測,如圖12所示。可以看出子觸發(fā)向總觸發(fā)發(fā)送的數(shù)據(jù)TX_DATA一般情況下是BCBC,但當開窗時間(event time)內擊中總數(shù)大于閾值之后開始發(fā)送擊中數(shù)16’h4018,因為寄存器test_io_reg此時為測試模式,即設置為5’b10111,最高位表示開啟測試模式低四位為擊中數(shù),根據(jù)Ⅰnput_signal_gen模塊的設計,總擊中數(shù)為(1的個數(shù)×8),所以16’h4018是正確的。Hold_out信號剛開始是0,當擊中條件和Hold_delay滿足后,Hold_out信號開始發(fā)生變化,最終統(tǒng)一給出1表示將前端電子學的通道全部保持住。之后daq_start信號變成高電平表示DAQ開始對前端電子學的信號進行采集,等到daq_done信號為1后,開始下一個周期。此結果代表光口通信結果正確。
圖12 Ⅰdentify抓取子觸發(fā)系統(tǒng)通信波形Fig.12 Communication waveform of the sub-trigger system captured byⅠdentify analyzer
如圖13所示,當改變寄存器的值時,執(zhí)行命令使test_io_reg為5’b10011,這時測試模式下發(fā)送的擊中數(shù)變成了16’h4010。再次抓取波形,接收到的數(shù)據(jù)為相應的16’h4010,表示以太網(wǎng)通信結果正確。
圖13 Ⅰdentify重新抓取子觸發(fā)系統(tǒng)通信波形Fig.13 Re-captured communication waveform of the subtrigger system byⅠdentify analyzer
本文實現(xiàn)的是目標觸發(fā)判選電子學系統(tǒng),在總的系統(tǒng)中屬于子觸發(fā)判選系統(tǒng)。實現(xiàn)的平臺是Microsemi公司的SmartFusion2系列的M2S090TFGG484芯片?;谶@款芯片的特點,我們在實現(xiàn)方案中,以Cortex-M3處理器為核心,結合以太網(wǎng)來實現(xiàn)與上位機的交互;使用光口作為與總觸發(fā)板的數(shù)據(jù)傳輸以及控制命令傳輸接口。此外,為了滿足在不同的應用場景下不同用戶的需求,我們使用框架化模塊化的設計方法,特地預留出可以定制的FPGA用戶邏輯部分,同時提供易于修改的配置單元和配置接口,讓用戶在最短的時間內完成系統(tǒng)框架的修改。綜上,基于這個框架的子觸發(fā)判選系統(tǒng),經實驗室測試,能最大化地滿足用戶的User logic的重新配置需求以及很好地解決與探測器和總觸發(fā)判選系統(tǒng)之間的交互問題,即滿足HⅠRFL-CSR外靶實驗的需求,接下來等待束流進行外靶終端現(xiàn)場測試。