基于FPGA的可层叠组合式SoC原型系统设计 在复杂片上系统SoC的设计过程中,验证仿真是影响项目进度的关键因素。随着芯片生产和制造工艺的提高,SoC设计的规模、复杂度和成本也在不断增加。这些因素大大增加了Soc设计一次成功的难度,但反过来也促进了芯片和系统级仿真验证工具和方法的发展。在SoC芯片设计中,仿真验证所占比重越来越大,据有关数据的统计分析,仿真验证时间占SoC芯片研发周期的80%[1],SoC逻辑错误是造成SoC芯片设计失败的主要原因,因此先进的设计与仿真验证方法成为SoC设计成功的关键。 大规模SoC仿真验证手段有两种:一是采用专用的硬件加速器,另一种是采用FPGA原型进行系统逻辑验证。第一种方案的缺点在于只能加速特定的SoC设计,不具备通用性,而且价格昂贵。基于FPGA的SoC原型验证方法使用灵活、成本较低,目前被很多公司采用,已经成为SoC验证的最常用方式。目前大约2/3的SoC设计可以采用单FPGA原型,而另外1/3则需要多FPGA原型。因为这些超大规模SoC的设计逻辑量大大超出了目前最大FPGA芯片的容量,所以设计者必须对逻辑进行分割。分割后的多个模块分别加载到不同FPGA中,解决了单FPGA芯片容量不足的问题[2]。但是这种基于FPGA组的原型验证系统是由多片大容量FPGA构成的,成本高昂,不适合中小规模SoC设计,也不具备通用性。 本文设计了一种高度灵活的基于FPGA的可层叠组合式SoC原型验证系统。采用了模块化设计方法,通过创新性的互补连接器结构和JTAG控制电路设计,可支持1~5个原型模块的层叠组合。其中每个原型模块配备了500万门的FPGA,既可独立构成小型SoC验证系统,也可以层叠构成2 500万门的超大规模SoC验证系统。此外,原型模块通过USB2.0接口可以和PC主机交换数据,构成软/硬件协同验证系统[3]。本系统已成功应用于多款SoC芯片的验证,其中数字电视地面标准调制芯片BHDTMBT1006已经成功流片。 1 SoC原型模块设计 设计基于FPGA的SoC原型模块,需考虑的主要因素有FPGA的逻辑资源、速度等级、扩展能力、PCB信号质量以及易于调试等。其中,最重要的指标就是FPGA的逻辑资源。目前已经大批量生产的成熟FPGA芯片中,逻辑资源最大的是Altera公司的StratixII系列EP2S180,相当于500万逻辑门。对于SoC验证来说,稳定性和可靠性十分重要,因此原型模块的电路板结构和电路进行了特殊设计。 1.1 硬件系统设计 复杂的SoC设计一般都需要外围存储器,因此原型模块上配备了常用的储存器件。其中包括了DDRII SDRAM、Nand型和Nor型Flash芯片,这些就是嵌入式CPU所需要的外设资源。另外,可视化的调试工具对于芯片设计人员十分重要。在复杂SoC内部有大量的信号需要观察,传统的示波器和逻辑分析仪器很难满足信号数量的要求。因此,需要通过通用的接口,如USB、PCI等,在验证平台和PC机之间建立数据通信通道,用来观测各种信号。原型模块中采用了应用广泛的USB 2.0高速接口,并且设计了相应的软件,可以实现数据的采集和可视化测试。USB2.0接口被几乎所有的笔记本电脑厂家采用,因此本平台可以实现方便携带和移动,不依赖于台式机。为了实现层叠组合,原型模块采用了高度集成的电源系统和高速高密度连接器来实现小型化和高性能。另外,板卡采用全部工业级器件,可以直接应用于工业环境或者野外环境,满足了工业领域SoC和军品领域SoC的验证需要。 为了追求高性能,原型模块采用了12层PCB板精心设计,保证了信号完整性、速度以及一些关键的时钟路径。采用Cadence公司的PCB设计软件Allegro进行设计,采用SigXplore软件进行信号完整性分析。特别是4个高速连接的信号采用了等长处理和阻抗匹配,每个连接器的任意2个信号的延迟控制在50 ps范围内,保证了高速连接器的差分信号最高频率支持1 GHz,单端信号最高频率支持600 MHz。系统框图如图1。 1.2 互补连接器和JTAG控制器设计 高速连接器采用了SAMTEC公司的QSH/QTH系列高速差分连接器,最高频率支持8 GHz。高速连接器分成4组,每组由互补的两个连接器构成,其中一个置于板卡顶层(Top),另外一个放置于板卡相同位置的底层(Bottom),这样可以实现原型模块的垂直层叠。 每个连接器都具有JTAG相关的管脚。顶层连接器JTAG相关的管脚为Top_tms、Top_tclk、Top_tdi和Top_tdo;底层连接器JTAG相关的管脚为Bottom_tms、Bottom_tclk、Bottom_tdi和Bottom_tdo。这一对互补连接器对外统一的JTAG信号定义为TMS、TCLK、TDI和TDO。这些信号的连接关系利用使能信号控制,顶层连接器上有板卡连接,Top_enable有效;底层连接器有板卡连接,则Bottom_enable有效。JTAG控制器的对外连接如图2所示。 对于JTAG信号,TMS和TCLK是共用信号,所以JTAG控制模块主要控制TDI和TDO的连接关系。其中Top_enable信号由板卡外部输入,当有板卡连接时,Top_enable有效,否则为无效。Bottom_enable信号由板卡上拨码开关控制。 当顶层连接器和底层连接器都不接外部板卡时, JTAG控制器模块内部连接关系如图3所示,即Bypassed模式。当顶层连接器上有板卡连接时,Top_enable有效,JTAG链要经过顶层的板卡环路到主板,JTAG控制器模块内部连接关系如图4所示。 如果底层连接器上有板卡连接,则Bottom_enable有效,JTAG链要经过底层的板卡环路到主板,JTAGController模块内部连接关系如图5所示。如果顶层和底层的连接器上都有板卡连接,即top_enable和Bottom_enable都有效,JTAG链要经过顶层和底层的板卡再环路到主板,JTAGController模块内部连接关系如图6所示。
整个SoC验证模块上共有4组这样的连接器,每组连接器都有各自的JTAG控制器。 2 SoC原型模块层叠方法 单FPGA的方案无法满足验证所需要的逻辑规模,可以采用多个模块层叠组合的方式来构建更大规模的SoC验证系统。借助EDA软件,如Synplify公司的Certify软件,可以将规模较大的RTL设计划分成多个模块,分别下载到多个FPGA上实现验证。这就要保证层叠组合在一起的多个板卡上FPGA的JTAG链相互连接构成一个完整的回路,实现配置和测试的一致性。 没有任何层叠扩展的SoC原型模块JTAG环路如图7所示,原型模块的JTAG连接器通过下载电缆和PC主机的EDA软件联通起来。板上的JTAG信号经过FPGA主芯片后,闭环反馈给PC主机。板上4组连接器没有连接任何板卡,因此都是Bypassed模式。 2.1 垂直层叠模式 垂直层叠模式是将SoC原型模块边沿对齐,垂直堆叠连接起来。每个FPGA都可以通过4个连接器与其他FPGA通信,共享最多480个IO管脚。这种模式支持2~4个原型模块层叠,可以满足绝大多数的应用。以两个原型模块垂直层叠为例,其JTAG环路示意图如图8所示。其中,原型模块1位于原型模块2的上方,通过高速连接器A来实现JTAG链闭合回路。由于模块1的A组底层连接器与模块2的A组顶层连接器相连,因此模块1的Bottom_Enable开关要设置为使能状态。 垂直层叠模式需要占用原型模块的全部4个连接器,不能再支持其他功能扩展模块,如高速AD/DA模块、视频采集模块等,因此适合外围接口较少的SoC验证。如果外围接口应用丰富,如多媒体SoC验证,就需要采用平铺式层叠模式。 2.2 平铺层叠模式 平铺层叠模式是将一个SoC验证模块作为系统主控模块位于上方,其他SoC验证模块作为辅助模块平铺于下方。每个辅助模块通过一个连接器和主控模块通信,共享120个I/O管脚。这种模式支持5个原型模块层叠。辅助模块另外的3个连接器可以用来扩展多种类型的接口板,可以实现非常丰富的接口类型。 以5个原型模块平铺层叠为例,其JTAG环路示意图如图9所示。其中原型模块1为主控模块,其他为辅助模块。 3 原型验证实例 DTMB是具有自主知识产权的中国数字电视地面广播传输系统标准,采用了多项利于提高系统性能的关键技术,适用于固定和移动两种数字电视接收模式,并支持多业务的混合模式。BHDTMBT1006是北航通信测控技术研究所自主研发的地面数字电视多媒体广播基带调制芯片,其原型验证就是在本文设计的SoC验证系统上完成的。 BHDTMBT1006芯片的内部框图如图10所示。在SoC原型模块上,验证程序以芯片的实际工作频率来运行“实速”验证,验证环境如图11所示。 在SoC原型模块上主要测试了以下8种模式,包括: (1)FEC 0.4,长交织,4QAM,PN420,C=3780,无导频 (2)FEC 0.4,长交织,4QAM,PN420,C=1,无导频 (3)FEC 0.6,长交织,64QAM,PN420,C=3780,无导频 (4)FEC 0.6,长交织,64QAM,PN420,C=1,无导频 (5)FEC 0.8,长交织,4QAM-NR,PN595,C=3780,有导频 (6)FEC 0.8,长交织,4QAM-NR,PN595,C=1,有导频 (7)FEC 0.8,长交织,16QAM,PN595,C=3780,有导频 (8)FEC 0.8,长交织,16QAM,PN595,C=1,有导频 在信号帧长度为4 200个符号情况下,系统有效净荷数据率测试结果如表1所示。 经过SoC原型模块验证后,BHDTMBT1006芯片已经成功流片。封装后样片的测试结果与SoC原型测试参数一致。 本文提出了一种基于FPGA的可层叠组合式SoC原型验证系统,并且给出了实现方法。由于采用了创新性的互补型连接器和JTAG控制器,实现了多个原型模块的拼接组合,可以适用于不同领域、不同规模的SoC原型验证。结合了软件硬件协同设计流程,大大降低了SoC验证的复杂度,提高了SoC系统验证的效率。
|