tag 标签: 原创奖励

相关帖子
相关博文
  • 2024-12-25 14:13
    205 次阅读|
    0 个评论
    ALTERA Cyclone 10器件的使用-8:特定的上电顺序
    概述 Intel 要求用户为其10代FPGA器件使用特定的上电和掉电顺序,这就要求用户在进行FPGA硬件设计的时候必须选择恰当的FPGA供电方案,并合理控制完整的供电上电顺序。经过在Cyclone 10 GX测试板上实际验证,统一上电确实会导致FPGA无法正常工作,具体表现为JTAG接口无法探测或识别到目标器件。 上电顺序要求 Cyclone 10 GX,Arria 10以及Stratix 10系列器件所有的电源轨被划分成了三个组合,三组电源轨要求依次上电,如图1所示,为三组电源轨上电顺序示意图。 图1:Cyclone 10 GX器件上电顺序示意图 三组电源轨具体划分如表1所示,而在具体设计的时候,有些电源轨电平相同,此时相同电平的电源轨当电流合适的情况下,在进行合理隔离后可以进行合并。具体情况可以参考 。 表1:Cyclone 10 GX供电电压轨分组划分 Group1 VCC,VCCP,VCCERAM,VCCR_GXB,VCCT_GXB Group2 VCCPT,VCCH_GXB,VCCA_PLL Group3 VCCPGM,VCCIO 在分组2中所有电源轨开始爬升之前,分组1中的所有电源轨可以任何顺序爬升到其标称电平的90%水平。 在分组1中所有电压轨以任何顺序爬升到其标称电平的90%后,分组中所有电压轨才可以任何顺序开始爬升。 同样,分组3中的电压轨,也只有等到分组2中所有电压轨均爬升到其标称电压水平的90%之后,才可以任何顺序开始爬升。 之前提到,当分组之中或不同分组之中电压轨标称电平一直时,在合理隔离情况下可以共享供电模块,后面再详细介绍。 需要注意的是,确保新合并的电压轨不会导致未通电的GPIO或收发器引脚获得“驱动”。 所有电压轨都必须单调爬升,且上述上电顺序控制,必须满足标准或快速POR延迟时间要求。也即,整个爬升时间必须控制在最小的POR延迟时间之内。POR延迟时间指标如表2所示。 表2:POR延迟时间指标 Cyclone 10 GX器件电压轨供电共享指导原则 查参考 给出了两种共享供电模块例子,这里就第一个例子进行讨论,详细信息可以查看 。如表3所示,为Cyclone 10 GX器件电压轨共享分组方案之一。 表3:Cyclone 10 GX器件电压轨共享方案 电源 引脚名称 分组 压值(V) 供电公差 电压源 模块共享 备注 VCC 1 0.9 ±30mV 开关电源 可共享 VCCP VCCERAM VCCR_GXBL 2 0.95 ±30mV 开关电源 可共享 为获得更好性能,将VCCR_GXB与VCCT_GXB隔离 VCCT_GXBL VCCBAT 3 待定 ±5% 开关电源 均为1.8V可共享 这四个均为1.8V时,可以使用同一电源模块供电 VCCPT 1.8 VCCIO 待定 VCCPGM VCCH_GXBL 1.8 隔离 可共享,但需要进行正确隔离 VCCA_PLL 参考 AN 692: Power Sequencing Consideration for Intel Cyclone 10 GX, Intel Arria 10, and Intel Stratix 10 Devvices. Intel Cyclone 10 GX Device Family Pin Connection Guidelines
  • 热度 2
    2024-12-22 11:46
    554 次阅读|
    0 个评论
    AD9218子板在新处理板上表现的问题
    概述 新的数据处理板融合了数字和数据处理功能模块,计划采用ADI的4通道串行ADC芯片代替之前的并行ADC。由于初次使用,所以初次设计时预留了AD9218的子板的插槽。 在调试AD9633功能的同时并不影响SiPM读出测试系统的联调,只是在新处理板上使用AD9218子板的时候出现了意料之外的问题。本文就该问题展开分析。 新处理板架构 新的处理板架构其实非常简单,就是将之前分离的数字处理板和数据处理板合并一处。所谓数字处理板,主要是将前端模拟信号经过模数转换得到数字信号,并将得到的数字信号进行必要的预处理后传输到后一级的数据处理板。 而数据处理板主要功能是将接收来自数字处理板的信号进行基于单事件和符合事件两种不同的模式进行处理,并形成基于时间戳的数据流,利用DAQ接口将排好序的数据流上传给上位机。 老的结构,主要是集中数字化,即数字板集中收集前端众多模拟信号,集中进行数字化,所以单个数字处理板上集中了多个ADC(SST系统数字单板集中有40个ADC通道),整个系统又由多个数字处理板组成,这样数据处理和数字处理板之间通信经由高速背板完成。 新的结构,将数字处理结构打散,并尽量向前布置。即单个模块可以分别单独数字化,然后数据再下传。AD9633集成了四个ADC通道,可以很好完成单个模块四个模拟信号(ABCD)的数字化。ADC和前端驱动芯片和SiPM读出测试模块可以绑定一起组成更大的模块,然后形成更为集中的前端处理模组。 AD9218集成了2个通道,理论上也可以完成上述集成,只是其采样输出为并行结构,这样需要更多的数据总线传输数据,而且长距离传输不利于数据传输稳定。而AD9633的输出总线为LVDS差分对结构,很好解决了此问题。图1为滨松公司为用户提供的开发套件中关键的前端信号处理板。 我们新的信号处理板为了验证前端数字和后端数据处理,将前端数字和后端数据处理融合一起,而图1中的ASIC模块功能,则由独立的SiPM读出测试系统完成。这就是目前新处理板即便架构,该机构保留了AD9218和AD9633两种数字处理模块,二者并行相互独立。 图1:滨松开发套件中的前端信号处理板 AD9218子板在新处理板上遇到的问题 因为AD9218是预制的子板,而且在前一代系统经过验证可以正常使用,所以该问题必然是由此处理板引起。如图2所示,为AD9218正常工作表现;而图3则为AD9218出现异常时状况。 图2:AD9218正常工作表现 图3:AD9218工作出现异常 新处理板为符合测试,给AD9218预留了4个槽位,即总共8个ADC通道。经过测试,发现上述问题在每个ADC通道上都会出现,ADC子板由于可以拔插,所以更换不同ADC子板后,问题依旧存在,所以如上述总结那样,此问题与ADC子板无关,其根源来自新的处理板。 AD9218输出并未直接引入FPGA(Cyclone 10 GX系列),而是经过一片MAX10 CPLD转接后送入FPGA。C10GX器件总共只有1个BANK支持3.0V的I/O标准,这不多的3V引脚都分配给了ARM和DAQ总线,并无足够的引脚用于AD9218。 MAX10器件可以使用其3V标准I/O BANK接收所有AD9218通道的输出总线,然后直通由该CPLD的其它1.8V I/O BANK输出并直接接入FPGA。CPLD与FPGA之间的I/O均为1.8V。如此很好解决了FPGA收AD9218数字输出的问题。 调试伊始,也曾怀疑上述异常是否与CPLD有关,经过测试,发现CPLD对应的接收ADC和传送ADC数据都存在上述问题,所以根源还是来自ADC与CPLD无关,而ADC问题根源与上述分析那样,来自处理板。具体应该是和板子供电有关,电源模块的相关噪声耦合到了模拟输入信号,而且这种串扰还是间隙性的偶发,不会一直存在。 参考 Quad, 12-Bit, 80 MSPS/105 MSPS/125 MSPS, Serial LVDS 1.8 V ADC Datasheet LVDS SERDES Intel FPGA IP User Guide: Intel Arria 10 and Intel Cyclone 10 Devices.
  • 2024-12-14 17:15
    317 次阅读|
    0 个评论
    在Cyclone 10 GX器件上实现高精度TDC探索
    概述 Cyclone 10 GX器件的ALM结构与Cyclone V类似,所以在Cyclone 10 GX器件上实现TDC功能理论上是可以完全参考甚至移植自Cyclone V系列的成功案例。但是,现实却是更多的问题出现当在Cyclone 10 GX使用和Cyclone V同样策略实现TDC的时候。 本文主要记录在Cyclone 10 GX器件上实现TDC时的探索,并为后续TDC设计、测试等展开前期研究。 Cyclone 10 GX ALM结构 如图1所示,Cyclone 10 GX器件的ALM结构延续自Stratix II,只是从5代开始,每个ALM中的寄存器从2个增加到4个。 图1:Cyclone 10 GX ALM内部结构 如图1所示,使用进位链可以实现所需长度的TDL,每级进位链的Sumout?则可以通过ALM内的寄存器TAP输出。以前进位链单元与寄存器时1:1对应,图1中进位单元与寄存器的比例是1:2的关系。这使得用户在进行TDC设计的时候,可以利用该比例关系,获得双倍的TAP输出码元,从而在使用同样的进位资源的情况下获得双倍的TDC精度。笔者称此方法为双寄存(Dual Reg)方法,而之前方法对应为单寄存(Single Reg)方法,两种方式实现的TDL如图2所示。 图2:单寄存(Single Reg)TDL(左)与双寄存器(Dual Reg)TDL(右) Intel ALTERA与Xilinx双寄存器的比较 已有研究者分别在Xilinx和Intel ALTERA的器件(28nm及以后)中使用了上述双寄存方法实现TDL,如果仔细研究二者的逻辑单元(CLB与ALM)的结构,可以发现进位单元到寄存器的路径还是有区别,如图3所示为Xilinx器件中进位到寄存器路径。 图3:Xilinx器件中进位到寄存器之间路径 如图3所示,和ALTERA类似,(a)为老器件的单寄存,而(b)为新器件中的双寄存,不管单寄存还是双寄存,Xilinx的进位到寄存器的路径有2条(分别为C与S,而ALTERA器件如图1所示只有S,C并未引入到寄存器),而ALTERA只有一条,所以有研究者分别探索了使用两种不同路径的效果,相关结果可以查看对应的论文,这里不在赘述。 TDC初步测试结果 依据前期对Cyclone 10 GX的研究,以及前期在Cyclone V系列器件上对TDC实现的经验,通过直接调用进位链和寄存器原语的方式完成TDC功能完整例化实现。总共有3种不同类型的TDC得到了实现,并进行了初步的测试,TDL的Tap时钟为500MHz。三种TDC的DNL测试结果列举如下。 1、单TDL单寄存,TDL的长度为256,足够覆盖2ns的时钟周期 图4:256 cells的TAP输出单寄存器阵列锁存(8-bit细时间,LSBav=8.9ps) 2、单TDL双寄存 图5:256 cells的TAP输出双寄存器阵列锁存(9-bit细时间,LSBav=4.3ps) 3、双TDL双寄存 图6:双256 cells TDL链的TAP输出双寄存器阵列锁存,然后合并(10-bit细时间,LSBav=2.2ps) 参考 Cyclone 10 GX FPGA Handbook “LCELL WYSIWYG Description for the Cyclone II Architecture,” p. 13, 2005. . Available: https://community.intel.com/t5/ Intel-Quartus-Prime-Software/Designing-with-low-level-primitives/ td-p/110485?profile.language=en&attachment-id=30610
  • 2024-12-10 13:28
    434 次阅读|
    0 个评论
    Cyclone V GX FPGA设计TDC的优化问题
    概述 通过前面的研究学习,已经可以在CycloneVGX器件中成功实现完整的TDC(或者说完整的TDL,即延时线),测试结果也比较满足,解决了超大BIN尺寸以及大量0尺寸BIN的问题,但是还是存在一些之前系列器件还未遇到的问题,这些问题将在本文中进行详细描述介绍。 在五代Cyclone器件内部系统时钟受限的情况下,意味着大量逻辑资源将被浪费在于实现较大长度的TDL上面。是否可以找到方法可以对此前TDL的长度进行优化呢?本文还将探讨这个问题。 TDC前段BIN颗粒堵塞问题分析 将延时链在逻辑中实现后,进行码密度测试的时候,总是发现所获得码中,位于链路起始段总会出现1个到2个码尺寸相较其余码过大的问题。之前怀疑是否是TDL的长度不够长,导致大量码颗粒堆积在延时链的初段。仔细查看各次测量结果,发现512的长度在使用400MHz采样时钟的时候应该还是足够覆盖一个完整的时钟周期的,那为何还会出现上述问题呢?(问题具体展示如图5所示,512和640长度均出现该问题) 从测试结果来看,采用640长度的延时链后,实际用到的延时单元仅到cell467,排除开头截取掉的延时单元,实际用到延时单元数量只有453个。所以,在采样时钟为400MHz情况下,一个时钟周期并不会超过512长度。但是,最开始用512测试时,为了截取掉前面的大延时单元(cell10位置)时,测试结果显示512长度不够用,如图1所示,右则已经超出512范围,从而导致部分“事件”并未统计进来,也就是说部分数据丢失。这是最初将TDL长度从512修正到640的根本原因。 图1:部分统计数据“溢出”后丢失情况 物理位置锁定不同导致延时不同 那么为何会出现640和512不同长度导致的测试结果不一样呢(本质是延时单元的平均延时时间不一样,所以这两个延时链实际用到的延时单元数量差异较大)? 经过检查发现,在增加延时链长度的时候,笔者无意间将延时线的位置锁定换到了别处(应该原始锁定位置碰到了无法布局的问题,从而更换了位置)。原始512长度锁定在起始ALM的坐标为X34_Y46,而640锁定位置为起始ALM坐标在X22_Y54。而且在锁定的时候,延时单元的节点名称也有差异,前者为MLABCELL_X34_Y46_N*,而后者则为LABCELL_X22_Y54_N*,如果后者锁定继续使用MLABCELL编译器被报错。实际查看延时单元内部延时也有些微差异,如图2、图3和图4所示。 图2:第一个LAB的第二ALM(左)和第三个ALM(右) 图3:第一个LAB的第五ALM(左)和第六个ALM(右) 图4:第二个LAB的第一ALM(左)和第二个ALM(右) 对比之前的位置,可以看到延时链的“大”额延时有较大差别,比如LAB中间全部为135ps,LAB之间则为142ps,而且所有其它单元的延时时间较统一(为50ps)。 截掉前面11个cell后,测试结果如图5所示。 图5:512长度延时链锁定位置更换和640一样后,测试结果与之类似 从图5可知,还需要截取一段BIN尺寸过大的单元,而且从图5后半段可以看到还有足够裕度用于截取(远未到511),不会出现“溢出”问题。经过多次尝试后,最终结果如图6所示,而图7则是查找表校准曲线图。注意图6中的码密度测试结果,平均BIN尺寸最终优化到了5.3ps,相较之前640长度的5.5ps有些微提升。 图6:截掉前21个延时单元,这样剩下最大延时在22ps左右,其余均处于20ps下 图7:截掉前21个延时单元,得到其LUT统计结果 总结 通过上述分析,找到了512长度的TDL溢出问题的原因,而640长度TDL由于锁定位置变化帮助笔者认清了此问题出现的原因。其实还是不同逻辑单元特性差异带来的问题,ALTERA器件内部逻辑单元还可细分两类,LABCELL和MLABCELL。在CycloneV中,通过上述实验测试,可明显发现它们之间的差别。 后面将尝试将系统时钟从400MHz提高到500MHz,看看是否可以进一步缩小TDL的长度,从而达到节省资源的目的。
  • 热度 4
    2024-12-3 12:20
    1039 次阅读|
    2 个评论
    比较器检测模拟脉冲说明(四)
    概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解决的问题。本文在说明(三)的基础上,继续探讨为SiPM读出测试系统寻求合适的模拟脉冲检出方案。 前四代SiPM使用的高速比较器指标缺陷 由于前端模拟信号属于典型的指数脉冲,所以下降沿转换速率(Slew Rate)过慢,导致比较器检出出现不必要的问题。尽管比较器可以使能滞回(Hysteresis)模块功能,解决下降沿检出问题,但是使能滞回(Hysteresis)后,无法确保比较器参考阈值电平设置到足够低的水平,这样导致测试系统无法获取足够好的CTR结果。 而导致上述参考阈值电压设置问题的原因,就是MAX9601EUP器件的迟滞范围过大。借着说明(三)中的迟滞示意图,如图1,图中中间“滞回带”(实际应用中需要尽可能减小“滞回带”),对于MAX9601EUP来说最小只能配置到5mV左右。 图1:迟滞工作原理示意图 如图2所示,MAX9601EUP器件手册给出了该器件其迟滞参数可配置的范围,大致是从60mV到5mV左右。也就是为何在说明(三)中给出了,实际测试的时候,在开通迟滞功能后,比较器的参考阈值电压,最小只能设置到7mV,在6mV的时候,比较器输出就会丢失所有输入脉冲信号。所以,开通迟滞虽然可以解决让人头疼的比较器输出下降沿“台阶”和震荡问题,但是却带来另外的问题,即参考阈值电平设置受到了迟滞范围的影响。 图2:迟滞参数配置范围 除了上述指标缺陷外,在选择比较器的时候,还有一个容易忽视的指标,即输入偏移电压指标(input offset voltage)。MAX9601EUP的该指标在稳定室温情况下,最差是正负5mV,而在完整的工作温度范围内,该指标最差值是正负9mV。所以该指标也是导致系统CTR测量结果不理想原因。 总结 所以SiPM读出测试系统第四次迭代的结果,对于时间之路的研究并未得到理想的结果,需要更进一步迭代。需要选择更佳合适的比较器来替换当前使用的MAX9601EUP,目标选择的主要指标要求除了最初选择MAX9601EUP的要求外,着重关注滞回(Hysteresis)功能和输入偏移电压指标。比如,Hysteresis参数可以设置低至1mV左右,输入偏移电压最大值不超过1mV等。 参考 Development of Multi-Channel Fast SiPM Readout Electronics for Clinical TOF PET Detector MAXIM, Dual ECL and Dual/Quad PECL, 500ps, Ultra-High-Speed Comparators