论文部分内容阅读
随着ASIC技术的高速发展,现场可编程逻辑器件(Field Programmable GateArray,简称FPGA)在高能物理探测器上的使用越来越普遍。大型强子对撞机(LargeHadron Collider,简称LHC)是目前世界上能量最高的物理实验科学装置。大型重离子实验(A Large Ion Collider Experiment,简称ALICE)是LHC上四大物理实验之一。我校夸克与轻子物理教育部重点实验室是LHC/ALICE实验组的国际合作单位之一,参与了ALICE物理研究工作和子探测器上部分电子学系统的研制、设计、生产、测试和调试等任务。电磁量能器(Electro Magnetic Calorimeter,简称EMCal)是ALICE上的子探测器。本文的工作就是为EMCal电子学系统中的前端电子学板(Front End Card,简称FEE)和触发区域单元(Trigger Region Unit,简称TRU)上的FPGA设计固件。EMCal是一种取样量能器,由12672个塔形探测单元(简称Tower)组成。每个Tower由77层铅和塑料闪烁体相间堆砌而成,闪烁光由内嵌在Tower中与闪烁体垂直的波长位移(Wave Length Shift,简称WLS)光纤读出。WLS光纤输出端直接连接到雪崩光电二极管(Avalanche Photo Diode,简称APD)的光敏端,由紧贴在APD信号输出端的电荷灵敏前置放大器(Current Sensitive Pre-amplifier,简称CSP)进行预放大,每32路相邻CSP的输出信号通过扁平电缆传输到同一块FEE板上,由FEE板对其进行再放大、整形、模数变换等处理。FEE板上的FPGA器件负责控制FEE板上的所有器件,为FEE板提供各种必要的通信接口、确保FEE板上各子模块的正确运行、实现与FEE板自身安全相关的各种逻辑。FEE板还具有快整形电路单元,它对相邻4路来自CSP的信号进行相加后得到脉宽为100ns的信号,该信号被称为fast-or信号。fast-or信号会直接输出到TRU,由TRU做进一步处理。TRU是一个局域性的触发单元,每个TRU通过综合分析来自12块FEE板的96路fast-or信号(相当于384个Tower)来得到一个零级触发信号(level-0)。所有TRU输出的level-0信号由更高一级的触发单元汇总再做分析。在TRU单元中,FPGA器件不仅要提供各种必要的通信接口、实现与TRU单元自身安全相关的各种逻辑,还需要实时处理TRU上12个8通道高速串行模数转换器输出的480Mbit/s的数据流,产生高达40MHz的level-0信号。本文的主要工作分为四个部分。第一部分是为FEE和TRU共同设计了通用的核心级系统;第二部分是专门为FEE设计的稀疏读取模块;第三部分和第四部分是专门为TRU设计的串行模数转换器调试模块和可调试相移模块。这四部分的工作具体描述如下:(1)通用核心级系统。EMCal探测器的研制是一个长期的过程,在其研制过程中会不断进行系统功能升级。在电子学系统中,对FPGA固件的升级比对硬件电路的升级要快得多,并且,耗费的财力和人力要少的多。因此,可扩展性是衡量FPGA固件的重要指标之一。为了在原FEE固件中增加新的功能、对原有功能进行优化,需要对原固件的系统构架进行重新设计。另外,通过对FEE和TRU的对比研究发现,FEE和TRU与上位机的通信总线是相同的,并具有类似的板级监控机制。而我校又同时承担着FEE的FPGA固件升级和TRU的FPGA固件设计两项任务。因此,设计一个FEE和TRU的通用核心级系统是必要的,也是可行的。该通用核心级系统仅实现FEE和TRU的通用功能,核心目的是为FEE和TRU提供可扩展性强的通用系统构架,以便随时在此构架下为FEE和TRU添加其特殊的功能模块。(2)稀疏读取(Sparse Readout)模块。探测器数据获取系统(DAQ)读取数据的过程中,探测器的电子学不能记录新发生的事件,这段时间被称为死时间。减少死时间是探测器电子学系统关心的重要课题之一。在EMCal探测器中,死时间主要花费在读取ALTRO芯片各信号通道的缓冲区上。据研究表明,对于一个有效的触发事件,在LHC的铅-铅碰撞实验中,有约38%的缓冲区是空的;在质子-质子碰撞实验中,有约88%的缓冲区是空的。在DAQ读取ALTRO芯片信号缓冲区时,寻址这些无数据的缓冲区浪费了大量的时间。为此,在FEE的FPGA中实现了可选择性采用的稀疏读取机制。在采用稀疏读取模式时,FPGA中的稀疏读取模块会在合适的时候扫描所有的缓冲区,通知DAQ只读取有数据的通道,从而减小EMCal探测器电子学系统的死时间。(3)串行模数转换器(SADC)调试模块。在FPGA固件的设计和调试过程中,固件的编译操作往往会耗费设计者大量的时间。TRU上有12个8通道、12-bit的SADC器件,采样时钟的频率为40MHz,输出96路480M bit/s的串行数据流到FPGA。在FPGA中同时处理如此多通道、如此高速的数据流是相当复杂的工作。为了尽量减少FPGA调试过程修改固件和重新编译固件,专门设计了一个SADC调试单元。该SADC调试单元根据调试需要集成了所有的SADC调试功能,在程序下载到TRU后,仅需远程修改与该单元相关的两个寄存器就可以随意选择调试模式。SADC调试单元大大方便了TRU板软硬件的测试。(4)可调式相移模块。根据ALICE全局触发系统的要求,fast-or信号输入TRU到TRU产生level-0触发信号的延时不能超过380ns。level-0信号产生的关键是在FPGA中实现实时的信号峰值搜索算法,从而通过判别信号峰值门限得到level-0触发信号。因此,必须寻找一种能在FPGA中快速实现、并符合精度要求的峰值搜索算法。通过对多种峰值搜索算法的研究发现,Downhill Finder算法复杂度相对较低,并能满足TRU的要求。Downhill Finder算法要求TRU上SADC采样点必须在fast-or信号的峰值处。可调式相移单元正是为了解决40.078MHz的ADC采样时钟与信号峰值的同步问题而设计的。该可调式相移单元可以对ADC采样时钟的相位进行指定步数的调整,单步相移为1/256度,总体相移范围为±51/256度。本文工作中为FEE设计的FPGA固件已经通过了实验室的功能性测试和欧洲核子研究中心(CERN)的可靠性测试。本文工作中为TRU设计的FPGA固件模块通过了后布线仿真(Post-rout Simulation),并通过了CERN的功能性测试。本文工作的创新之处可以总结为以下三点:(1)在系统框架的设计上,本着提高系统可扩展性和可移植性的原则,设计了一个通用的核心级系统。(2)在各功能模块的设计上,本着提高模块的可重用性、独立性和可继承性的原则,所有的功能模块均设计成IP核的形式,具有相对独立的功能和清晰的接口。(3)为了加速FPGA固件的开发进程,降低硬件测试的复杂度,本设计增加了多种利于软件调试和硬件测试的调试功能。