验证策略 这个章节将简短地检验多项验证策略,包括模拟、硬体加速、原型设计及硬体模拟。
■模拟法(Simulation) 事件导向(Event-driven)的软体模拟器是较慢的,但当设计区块(design block)小时,其工作状况很好,模拟器提供非常好的除错能力,如同软体的除错功能,有百分之百的可视性(visibility)。然而,即使最快的模拟器在最高阶的工作站里运作,其速度只有大概一秒钟10到30design-clock cycles。对于较大的设计,超过250,000逻辑闸(gates)时,光应用数亿的测试向量(test vector),都会花上数周,甚至数月,非常不实际。即便只运作小部份的软体也很不合理。
■硬体加速(Hardware Acceleration) 利用硬体加速,被验证的设计被烧录(map)至硬体(FPGA序列或是客制化处理器),来加速设计的表现。然而其瓶颈在于测试程式码(test bench)已存在于软体的模拟器。为了加速表现,测试程式码(test bench)也许会被要求要在应用层级沟通(application level),而非讯号层级(signal level)。资料转换为主体(Transaction-based verification,TBV)的验证方法,让测试程式码的互动最小化,以提高表现。加速器(accelerators)主要的限制在于其独立验证设计,并非在系统里进行验证。成本则是另一个需考量的因素,因为加速器无法共用。硬体加速的一般表现大约在200 Hz到100,000 Hz的范围内。
■硬体模拟法(Emulation) 硬体模拟方法可同时烧录(map)设计以及合成测试程式码(test bench) 至硬体,是一个阵列的FPGA或是高速的客制化处理器(custom processors)。你可以在实际系统背景下进行电路模拟(in-circuit mode),验证硬体模拟设计。硬体模拟时除错能力有明显的进步,其表现正常会在1至2 MHz的范围,或是更多(假设有少量非同步设计时脉),且通常在500~600 KHz的范围内执行。当有些低层级诊断软体(diagnostic software)可以在这些速度下执行,系统表现就不足以去发展应用软体。当模拟器可以被分享时,整体成本会非常高昂,约是数十万或是超过一百万美元。高成本让使用多平台(replicates)的想法不切实际,且限制了早期使用者的数量,如软体开发人员和潜在客户。
■FPGA原型验证(FPGA-Based Prototyping) 接下来所叙述的部分,则是将会代表FPGA基础的原型验证(FPGA-based prototyping)。多年以来,FPGA的表现及闸道的容量(gate capacity)有很显着的进步。利用最新的技术,可以map超过一百万ASIC 逻辑闸进入单一FPGA(Altera Stratix ll and Xilinx Virtex 5 家族)。高度自动化的分割工具(Certify)以及除错工具(Identity)已让原型验证更容易实行。低成本(1-3美分/ASIC gate)加上高速表现(超过9 MHz)使得原型验证成为硬体/软体最理想的协同验证(co-verification)方法。有了原型验证,你可以设计自己的客制化开发板,或是向自开发板的供应商购买现货即可。
■为何选择原型验证(Prototype)或硬体模拟(Emulation)? 设计的大小以及复杂度,当设计在光罩完成(tape-out)前,已被广泛的验证及确认。验证复杂的设计极具挑战性,如在数位游戏产业里使用的3D绘图晶片,有许多不同的快取记忆体尺寸或是架构。同样的,验证大型处理器,如IBM用于Microsoft的Xbox 64-bit PowerPc(一亿六千五百万个电晶体或是四千一百二十五万ASIC逻辑闸),亦需要即时的装置来验证。
图一 验证阶段表
硬体基础的验证可以提供即时速度及介面让硬体除错,以及硅晶圆在晶圆代工厂到达前,执行软体的能力。图一统整了设计的阶段,以及当硬体及软体同步完成验证所节省的时间。
在了解硬体及软体同步验证的优势之后,下一个重要的问题就是,是否要硬体模拟或是原型验证设计呢?你可以经由比较成本、系统表现、硬体及软体的共同验证、复制或是除错能力等方面来找出最好的答案。
■成本 购买原型验证平台及模拟器的成本有多少呢?这是一个很重要的问题。一个完整的系统(硬体+软体+维护)的成本,可以以一个ASIC逻辑闸多少分(0.01美元)为指标来衡量。下表比较Palladium(Cadence)、VStation(Mentor)及Zebu-XL(Eve)等模拟器,及来自Hardi、PreDesign及Dini集团的原型验证平台。
补充注释 1. 工程成本以及维护成本除外,两种做法里,此两项成本几乎完全相同。 2. Mentor VStationPro:价格从4百万个ASIC逻辑闸需要美金450,000开始。 3. Palladium-Ⅰ:价格从半个基板(约2百万ASIC逻辑闸的容量)美金288,000开始。一个完全满载的Palladium-Ⅰ系统大约一亿两千八百万ASIC闸,费用一千五百四十万美元。 4. Eve-Zebu:Eve有两个家族,UF及XL。UF家族走向原型验证,而XL走向模拟器。 5. 原型验证平台,数家厂商仅提供硬体(如Hardi, Dini)。而其他厂商则提供额外的前端软体 (如ProDesign的ChipIt Manager)。价格范围是可以比较的,当比较类似的硬体时。 a. Dini 新闻发布:2005/10/10及2005/12/9 对Virtex-4 为基础的基板的资料。 b. ProDesign新闻发布:以ChipIt Gold Edition Pro 为基础,两个Virtex 晶片及软体- 美金两万九千元。 c. Hardi新闻发布:以HAPS-31基础,单一Virtex-4 FPGA需要美金八千九百元。 注: Standalone 加速器,例如Tharas Hammmer 及Axis(现为Cadence)并未被考虑,因其有限的科技能力,如同在Section 2.2里的讨论。
■系统表现 (执行时间) 在系统的背景与即时输入信号(real-time stimulus)下执行设计,系统的表现为关键。下表比较执行时间在原型系统以及模拟器下的表现。表现的好坏,显着地取决于应用程式、设计类型以及非同步时脉的数量。
补充注释 1. 根据EVE的客户来说,设计大小为4百万逻辑闸,其表现被认为,可作为传输基础的验证。 2. 当烧录(map)为单一的FPGA,较高的系统表现是可能的。
例证 对于一个复杂的影像晶片,大约需要650万次循环拨放单一的画面格数(video frame),其需要拨放单格画面的时间(wall clock),当在原型系统下以9.5MHz运作,会得到以下的结果。请注意协同模拟模式下的表现,显着地取决于测试程式码(test bench)的效力,以及设计的结构。
补充注释 1. 模拟器里设计以及系统测试(用于比较系统表现的参考) 2. 设计烧录(map)为原型验证硬体,仅有test-bench(HDLsignal level)在模拟器里 3. 设计烧录(map)为原型验证硬体,仅有 test-bench (C code, signal level)在模拟器里。 4. 设计及合成处理器烧录(map)为原型验证硬体,仅test-bench (C code, 处理器的软体部分)在模拟器里。 5. 设计及test-bench皆烧录(map)于原型验证硬体。
■硬体/软体的协同验证 软硬体协同验证的目标,在于发展诊断、韧体与应用软体以验证系统设计。执行低层级软体(诊断/韧体),通常需求4-6MHz的系统表现(也可以较慢的速度执行,但效率极低)。对于应用层级的软体,通常需要8 MHz或更快的速度。这样的速度在原型验证上是可以达到的,而模拟器(emulator)由于其不佳的系统表现,则被证明为无效率。
■系统复制(System Replicates) 当在原型系统上的设计为稳定且无错的情况下,在设计实作成硅晶片前,软体工程师及潜在的客户/最终使用者需要使用这个原型系统,作为测试以及应用程式的发展。由于原型系统的低成本,你可以创造一个原型系统的”复制品”,将其交给开发者或是客户。而复制模拟器(emulator)在经济考量下,其成本是过高的。
■除错能力 硬体模拟器(emulator)提供极佳的除错能力,因其具有模拟器般的可视性(visibility),但是你必须在系统表现以及逻辑资源作出取捨。在原型系统里,有效的除错取决于供应商的工具,然而经常缺乏需要的可视性能力。当除错工具持续的进步,如Identify暂存器转换阶层除错器(RTL Debugger),原型验证的除错限制因素-可视性(visibility)就变成较小的问题。此外,请注意Debugger只消耗少许(3~10 %)的逻辑资源以执行除错逻辑。
其他需要考虑的因素,包括分割简易化、目标介面的输入输出(I/O)数量、输入输出技术支援、设计的编辑及P&R时间、电力需求等;有关目标介面需求皆列于本文结论的表格,兹简短叙述于下:
■设计分割 这是过程中相当关键的步骤,模拟器(emulator)也已自动化这个步骤。在原型系统里,手动分割一个设计有许多限制,包括了无效率的资源分配。另一个挑战则是当手动执行时,由于FPGA限量的脚位(pins),使其脚位需要多路传输(multiplex)。这些问题在Synplicity的Certify中可以得到解决。
■速率转接器(Rate Adapters) 当与即时输入信号(real-time stimulus)连结时(如RF频率与Spirent测试物运用3G Mobile Station Tester于无线应用或是乙太网路应用),原型系统的高效表现是很重要的。由于低运作速度,模拟器经常需要购买速率转接器介面(rate adapter interfaces),例如Cadence的SpeedBridge(速率转接器能够使低速元件如模拟器与高速元件、测试器或是高速影像资料串流)沟通。在某些案例中,较快的元件无法降低足够的速度以配合模拟器的速度,则使得介面不实用。原型验证的高速排符合了使用速率转接器的需要。
■编辑、佈局绕线与下载次数(Compile, Place and Route & Download Times) 在过去,模拟器要花费6~8小时为一百万个逻辑闸道(gate)的设计做绕线。今日整体时间已有显着的进步。举例而言,四百万个闸门设计的编译(Compile)暂存器转换阶层(RTL)至逻辑闸约一个小时,而下载时包括佈局绕线的时间只要几分钟。若是在原型系统内,执行同样的设计,大约需要花费四到六个小时或更久。
■电力需求 模拟器消耗大量的电力,通常需要在15安培(amperes)下使用220伏特(volts)(Candence的Palladium及Mentor的VStationPro的需求)。这样的需求可转换为额外的成本及维护,且使系统相较之下无可携性。当满载地执行模拟器时,通常需要空调或是冷却设备,并且产生大量的热;原型系统使用标准110伏特,消耗的电力比模拟器少很多,且能够轻松携带,便于在办公室及实验室间移动。
■输入输出(I/O)可取得性 由于目标开发板的设计界面,以及其他副系统在内建电路模式(in-circuit mode)执行时,I/O数目是重要的考量条件。大部分的现货开发板供应商皆有多于足够量的I/O。Palladium-I 有8448 I/Os ,一亿两千八百万个逻辑闸,Palladium-II 有61440 I/Os,而VStation 有4608 I/Os。
■输入输出脚位(I/O Pin)技术 如果你与非常高速的外部讯号做连结(如1Gbps),作为一部分的即时输入讯号,差动讯号技术(differential signaling technology)的支援如LVDS是必要的。你的系统也必须在每个介面连接器下,支援可配置的多重输入输出电压,如5.0,3.3,2.5,1.8及1.5。 从上述的讨论中可以得到结论,模拟器在除错能力(Debug capabilities)、自动化分割(automated partitioning)以及编译(compile)速度有较优秀的表现。然而,原型系统仍有下列显着的优势: 1. 成本 2. 系统表现 3. 硬体/软体的协同验证能力 4. 复制(Replicates) 5. 运用最新的FPGA转移到原型系统的能力
总结上述讨论,可得出下表
 |
补充注释 1. 指Candence Palladium-I 与II 2. 指Metor VStationPro 3. 指Zebu-XL(模拟器) 与Zebu-UF(原型系统) 4. 指Zebu-XL 为了转换基础(transaction-based)的验证的表现 |