仿真设计数据中心为验证工程师带来福音

时间:2014-12-04

  如今,越来越多的设计在系统层面进行,这是前所未有的。而让这一切得以实现的,是硬件仿真技术。硬件仿真允许将寄存器传输级(RTL)源代码作为模型,但同时又能提供足够的处理能力支持系统级工作,特别是涉及到软件开发或运行软件工作负荷的情况。

  因此,硬件仿真已取代了兴盛30余年的RTL模拟器,成为万众瞩目的焦点。需要注意的是,我并非在此提倡大家摒弃RTL模拟器。在早期设计阶段的硬件验证过程,RTL模拟器当然是,而且是无与伦比的。它能快速编译一个设计页面,还具有某种程度的互动“假设”分析,在设计尺寸有限的情况下,其他任何工具都望尘莫及。

  对于知识产权(IP)模块来说,的确如此。然而对于系统集成和系统验证测试而言,在需要对软硬件同时进行测试的情况下,软件仿真则太过缓慢,而且不切实际。需要一个数据点吗?我们假设,一个1亿等效门的ASIC以100 MHz的频率运行,一个设计团队尝试仿真它一秒钟的真实数据。我们不妨大方地假设仿真器以100Hz的频率运行,那么将耗时100万秒--即277小时,或11天。相比之下,一个以1MHz的频率运行的硬件仿真器则只需要100秒。我的假设到此为止。

  但是这种解决方案成本不菲,因此仿真数据中心便应运而生且广受验证工程师的青睐。为创建可服务于世界各地的诸多验证工程师及软件开发人员的仿真设计数据中心,需要满足以下三个条件。系统必须支持:

  ● 非常强大的设计容量和多个并发用户

  ● 远程访问

  ● 资源管理

  我们来逐一进行详细讨论。

  满足设计容量与多用户的需求

  设计尺寸将分布曲线往上推至几亿ASIC等效门。极端情况下,有些设计已经超过10亿门。通常情况下,IP组块达到数以千万计门。与此同时,设计团队在扩招软件开发人员,其数量大大超过硬件设计师的人数。在拥有如此多样化的设计社区的公司,需要一个容量为数百亿门、7*24小时不间断运行的硬件仿真平台。

  目前,的硬件仿真平台可提供的容量上限为数十亿门,足以创建有史以来的设计,却仍然无法满足一家大公司的需求。处理嵌入式软件需要依次运行数十亿周期。倘若速度为1MHz,则运行10亿周期需要1,000秒的时间。若单个设计需消耗所有的仿真资源,那么该设计任务将在运行期间独占整个硬件仿真器,其他所有用户在此期间将无法使用。这种情况可能需要数小时的时间。

  这一问题可通过两种方法得到解决。种方法是,硬件仿真平台的架构需支持多个并发用户共享仿真资源,但要注意的是,任何进程都无法独占整个平台容量。第二种方法即建立一个由数个硬件仿真平台构成的仿真工厂。这种方法将得到仿真器供应商的青睐。

  例如,Mentor Graphics的Veloce2可在其双Maximus平台中支持大约20亿门设计,可供多达128个用户同时使用。具体的用户数还和设计大小有关,Veloce2 Maximus可支持以上任意组合(图表1)。

  图1.通常情况下,多个并发用户有不同的设计容量需求。

  Veloce2的硬件架构已从头开始重新设计,以避免将多个单独的机箱拼凑在一起。与计算机服务器类似,它包含多个机架,配备了逻辑板、电源和连接背板。还包括验证板(AVBs)、电源架、以及采用活动开关连接各AVBs的矩阵板。总而言之,该系统是稳定可靠的。一个双Maximus平台即可满足任何公司的容量需求,无论是大的单个设计还是需要多种设计尺寸的批量用户。

  远程访问

  远程访问带来了一种主导验证领域30余年且广受欢迎的仿真资源配置模式的终结。在线仿真器(ICE)模式下,硬件仿真器内映射的待测设计(DUT)连接到实际芯片待命的目标系统。

  目标系统可能包括大量的物理设备。不幸的是,由于快速目标系统与实际设备在处理速度上的巨大差距,且硬件模拟器内的相对缓慢的设计可能仅为两个或三个数量级,因此直接连接是不可能的。

  基本上都需要采用一个速度适配器进行连接,以让高时钟频率的芯片适应低时钟频率的硬件仿真器。速度适配器的选择应基于不同的设计及目标系统的接口类型,如PCI Express、USB和以太网。ICE对于实际通信流量情景测试来说是非常好的,例如检验设计中带有的SATA磁盘驱动器是否能有效工作。

  另外,在涉及物理目标的ICE模式下,保存和还原也极具挑战性。假设用户有一个磁盘驱动器连接到映射在硬件仿真器内的DUT上,并试图保存DUT状态。由于磁盘驱动器持续转动,且其状态无法保存,因而用户无法使用硬件仿真器的内置功能执行该任务。

  远程访问使硬件仿真器成为一种共享资源,可供一个极其广阔的地域范围内诸多用户及团体使用,其中不少用户甚至可能位于地球的另一端,与我们有十几个时区之隔。为了完成这一任务,ICE模式需要一组技术人员7*24小时持续不断地为每个用户及每个设计插拔速度适配器,这完全不现实。

  假如ICE无法实现,那么是否有其他方法支持远程访问呢?答案是肯定的。这种方法时常被称为“无目标仿真”,它采用软件测试环境来替代物理测试台。简单的实现情况下,.它可能基于可综合的测试平台,消除了和外部世界的关联从而达到全速仿真。

  然而,可综合测试平台会限制设计师的创造力与灵活性。另一方面,非可综合性测试平台,特别是采用硬件验证语言(HVL)编写的测试平台需要采用软件仿真器执行,而且还需要一个编程接口语言(PLI)接口和运行DUT的硬件仿真器连接。这些因素都会对平台性能造成影响,

  但我们仍能设法解决此问题。

  20世纪90年代末期,IKOS(于2002年被Mentor Graphic收购)首创了把测试平台中驱动DUT的比特信号级接口,移至可重复利用的独立单元。任何接口都是一个可综合的基于协议的状态机或总线功能模型。

  这种方法有两个重大的益处。首先,可在更高层次的抽象界面使用数行代码编写测试程序。这样编写起来更容易,执行起来速度也更快,映射到硬件仿真器内的总线功能模块的速度也会显着提高。IKOS将该总线功能模块称作执行器(transactors),将新的仿真模式称为协同建模(co-modeling)。

  用于测试平台加速的TBX是一种基于交易的验证模式,是一种新兴的行业趋势。用户在不同的设计间切换时,或新用户登录时,都无需专人监督插拔速度适配器。这种模式为远程访问奠定了基础。

  三家仿真器供应商--Cadence Design Systems、Mentor Graphics、Synopsys--均支持通过基于交易的方法进行远程访问。某个供应商创造了一种虚拟验证环境,相当于一个虚拟实验室,即类似于物理实验室,但采用虚拟设备建造而成。该虚拟实验室合并采用了三种技术:硬件仿真、基于交易的验证、ICE目标。

  一套虚拟设备包括一个在主工作站上运行的软件堆栈,主工作站采用交易执行器接口与硬件仿真器上运行的协议IP进行通信。这种捆绑带来了一种协议解决方案,用户可在设备驱动器层面验证IP并采用实际软件和设备驱动器自身来验证DUT.(图表2)。

  图2.USB3.0大容量存储可在仿真环境中作为虚拟外围设备建模。

  虚拟实验室与ICE目标解决方案功能相当,但去除了电缆和硬件适配器,因为虚拟设备采用现有的验证软件IP与硬件仿真器上的特定协议RTL设计IP和DUT进行通信。相比于硬件ICE目标,虚拟设备具备以下优势:

  ● 便于远程使用。因为只要安装了协同模块主机,无需将额外的硬件连接到硬件仿真器便可安装虚拟设备。

  ● 灵活性更高。单个硬件加速器资源可供多个设计团队分享,因为硬件仿真器上运行的DUT无需电缆连接,且分区限制较少。

  ● 无需对专门的硬件进行特定访问,便可定义功能控制器上运行的目标协议软件栈的可见性。

  ● 目标协议函数控制器核的可见性/可追溯性可通过对提交的RTL源代码的简单IP保护进行定义,且监视器和检查器运行时,方便访问标准总线。

  虚拟环境允许用户通过虚拟调试接口(JTAG)探针对嵌入式软件进行调试,而无需采用实体JTAG探针。探针采用JTAG协议的优点在于,通常不会受到硬件仿真器慢速时钟频率的影响。当将物理设备连接到硬件仿真器中运行的虚拟设计时,需要减少时钟频率和数据频率以匹配硬件仿真器中设计的速度。采用了虚拟JTAG,硬件仿真器便能随时停止,时钟频率变化时也无需担心干扰与软件调试器的连接。

  但缺点是,JTAG连接会对被调试的设计的状态产生影响。JTAG探针技术的替代选择是使用基于跟踪的系统来启用硬件仿真器上运行的程序调试。基本的处理器跟踪器可提供处理器中发生所有事件的列表。

  一家供应商提供了一种离线软件调试工具用于仿真。这种离线软件调试工具基于跟踪器,包括对处理器状态的传统调试器视图,并执行所有的符号表和处理器状态解码。由于采用了跟踪技术,它不会对正在运行的系统操作产生影响或干扰。仿真过程完成后,可以脱离回放数据库运行,且运行速度可达100 MIPS.

  复杂的资源管理

  越来越多开发嵌入式系统的公司拥有较大的硬件设计师和嵌入式软件开发人员团队,他们通常分布于世界各地,或位于不同的洲。要服务于这样的企业,硬件仿真器平台需要充足的设计能力和远程控制,但仅满足这两个要求仍然不够。还有一个极其微妙的需求,即先进的资源管理。

  任何现代仿真系统都由主板构成,主板又由机箱中的背板互相连接而成。多个机箱连接在一起,设计能力便得以扩大,可超过十亿门。为吸引开发团队,须对这些资源进行自动化管理。

  从开发周期的早期到终的系统集成及交付阶段,设计团队需要不分昼夜地处理大量仿真工作。包括IP、子系统以及整个系统层面的硬件验证任务,以及任何形式的嵌入式软件验证工作,从软件验证例程到驱动程序、操作系统、应用程序和诊断。有些步骤需要有限的容量,而其他步骤则需要全部的设计能力。而且,这仅仅是针对单个设计项目而言。通常情况下,大公司长期都同时进行几十个设计项目,尽管只有少数几个项目能终投产。因此情况更为复杂。

  我们再次以Mentor Graphics的Veloce2为例。其完全扩展的双Maximus配置包含8个Quattro机箱,每个机箱中又包含16个主板。这样一个平台可以支持多达128个并发用户。工作过程中可能随时需要对各种资源(AVBs)进行实时重新分配。倘若要手工执行这些任务,那必将是一个噩梦(图表3)。

  图3.Mentor Graphics的Veloce2 Maximus平台可支持多达128个并发用户。

  此外,为提高效率,资源管理器必须采用作业调度优先级机制,因为有些工作可能具有更高的优先级。Platform Computing用于作业调度的载荷分享设施(LSF)或许能对工作优先级进行安排调度,但功能仍然有待完善。

  而且工作优先级可能会随时发生变化,这让情况变得更为复杂。当有更高优先级的工作要求马上执行时,必须有支持“暂停/恢复”功能的设计,以便随时停止当前的进程(图表4)。

  图4.“暂停/恢复”功能可对工作进行列队和优先级处理。

  相比于十年前,硬件仿真器的可靠性已大大提高,但仍然无法称之为完美。因为硬件经常会出现故障,当这种情况发生时,避免硬件仿真器发生任何停机的情况,是至关重要的,否则会影响终的交付时间。资源管理器必须在不强迫主板上运行的设计重新编译的情况下,对故障主板进行隔离。同样重要的是,还要追踪硬件仿真器的使用情况,包括日常维护调度、运行诊断和提交结果。

  结论

  基于仿真的现代验证方法需具备供数十名软硬件工程师同时使用的远程服务器工厂,以验证日益复杂的设计。

  为提高效率,硬件仿真服务器须采用无需大量使用电缆便能进行容量扩张的模块方法从头开始设计。总体容量必须足以支持包含数十亿门和数十个并发用户透明管理的设计项目。

  同时提交多个仿真工作时,应使用排队程序,在不干扰服务器的情况下按照工作优先级的高低进行处理。用户应避免工作的细节处理和由硬件依赖性导致的编译设计调整。

  仿真供应商的当务之急是通过故障保护机制来提高硬件仿真的可靠性。理论上说,仿真服务器还应该节能环保,并可进行相应调整以适应实验室环境。

上一篇:Spansion:e.MMC缘何完胜SLC NAND成为嵌入式闪存新选择?
下一篇:根据封装选择PCB元件时需要考虑的六件事

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料