芯片内部纠错如何运作
随着FPGA的密度持续成长,工程师面临的挑战是寻找合适的方法测试与检验FPGA中的设计内容。设计者以往大都采用逻辑分析仪、示波器、以及总线分析器透过测试探测器与连结器来侦测讯号。这些测试探测器与连结器会接收到FPGA使用者所定义出的I/O接脚,设计者必须在提供足够的I/O接脚进行全方位的纠错,以及配置足够的接脚来妥善地建置这两个目标,以取得最佳的平衡。一般来说,业者通常会使用部份接脚(最常使用64根接脚)来进行纠错与检验。工程师会以加入额外的逻辑,以便能选择讯号来驱动I/O接脚与后续的连结器,来进行纠错作业。这种方法虽能减少纠错所需配置的I/O接脚数量,但步骤繁琐且通常无法配合纠错作业掌握设计内容是此项方案的问题。这些测试探测器与连结器不仅占用宝贵的机板空间,更会引起讯号完整性以及时脉方面的问题(尤其是在高速机板设计),且成本相当昂贵。
另一种测试复杂FPGA的替代方法,就是配置专属的逻辑资源给「逻辑分析器核心」(Logic Analyzer)。这些核心拥有类似传统方案的功能,其中包括触发、数据撷取、以及样本储存,但本身是嵌入在FPGA内部,并能直接存取设计内部的讯号与节点。这些逻辑分析器产生的数据会被储存在FPGA中的内存经由JTAG连结端口读回,这种方式不须耗用宝贵的通用I/O接脚。此外,因为这些逻辑分析器核心位于FPGA内部,故能运用高速互连总线、高速内部存储器、以及系统时脉元件,而不必像传统纠错与检验方案一样须将这些讯号推送至芯片外部,以提供一定程度的可视度(Visibility)与准确度。
许多FPGA大厂推出多样便利的工具,让使用者能将逻辑分析器与总线分析器核心直接置入FPGA中,并提供各种先进接口在于提供测试与量测厂商的逻辑分析器所支持的相同功能。