硬件仿真器(Emulator)从诞生至今,已经有接近40年的历史,经历了一个不断成熟的过程,它随着集成电路产业的发展仍在不断演进。
想了解Emulation的发展和技术演进的,可以观看Dr. T.C. Lin作为硬件仿真器发展的亲历者的精彩分享。
Emulation: From History to Technology Evolution
20世纪80年代后期,FPGA芯片刚刚诞生,立刻被用于电路逻辑的仿真。因为FPGA本质就是使用可编程的通用电路单元去仿真各种电路,非常适合电路逻辑的仿真验证。
那之后,用多颗FPGA芯片构建专用的硬件仿真器产品逐渐掀起热潮,这需要解决一系列的问题:大规模FPGA阵列的硬件设计、目标电路逻辑的分割、多FPGA之间的数据交换、如何实现分割之后的统一调试等等。
硬件仿真器以其容量、性能、可调试性方面的独特优势,从诞生以来不断发展,已经是仿真验证中的基础性EDA工具,也引领着芯片验证技术的不断革新。
本文将从发展的眼光来探讨“当代Emulator”应该满足哪些条件。
Emulator v.s. Prototyping Emulator具备更深度和灵活的调试能力
总体上看,硬件仿真器能够支持超大规模(百亿门级)的设计容量,全自动化的软件设置实现流程,基本无需修改硬件连接配置,以及灵活多样的全系统仿真调试能力,Emulator的优势包括:
- 依托自研综合工具的信号综合后全保留,以及完整、长时间的信号追踪(达数百亿周期)
- 信号的高级触发模式态探针插入/离线虚拟调试
- 拥有不限量的时钟域,它们可以从核心时钟资源中无限衍生
- 全系统范围可见的Debug调试追踪
- System Verilog/UVM Simulation/C++/Python等测试加速支持
- 软硬件的协同验证、测试接口的虚拟化支持
- 系统功耗预估/分析等
现代硬件仿真系统容量 进入 “百亿门规模”的级别
考虑到硬件仿真自身会占用大量的Debug(调试) 逻辑,这里的“大容量”,是指产品扣除了上述的调试逻辑后,能够供用户实际使用的最大设计容量。那么,这个指标必须匹配当前主流SoC和多片封装的Chiplet芯片设计规模。什么是主流芯片规模?
苹果M1 Pro处理器的规模约100亿门
按一般的4晶体管等效门来大致计算,GPU巨头英伟达公司目前主流GPU芯片规模为100多亿门(420亿晶体管),苹果M1 Pro处理器的规模约100亿门(400亿左右晶体管,单封装),国内某厂商的AI芯片是超过90亿门(370亿晶体管),即使是比较小的某厂商交换芯片,也接近50亿门规模(近200亿晶体管),而其它的大型CPU、GPU、DPU等主流系统级芯片也都在百亿门左右甚至更高的规模。
从这些数据来定义Emulator,我们可以提出一个很具体的百亿门容量指标。
不能通过全自动设计工具支持百亿门以上设计实现仿真的产品,只能说有一定的硬件仿真(Emulation)特性,但由于其无法容纳并验证一个全芯片规模的逻辑功能,所以很难被认定为完整的Emulator,即硬件仿真器产品。
从国外EDA公司的主流产品来看,目前也都达到了百亿门到三百亿门级别的容量指标,同时对大容量设计依然保持数百KHz以上甚至上MHz的性能。
硬件仿真器丰富的使用模式
ICE模式
- ICE模式的吸引力在于能将现实测试中的激励,以可综合的方式注入到硬件中高速运行的DUT(待测设备)中,以此验证设计在硬件中的真实功能和性能
- 在Emulator初生的年代,ICE模式是最主要的使用模式,一直到今天也是主流使用场景之一
- 此外,典型的测试例子是需要在外部系统和硬件仿真器之间插入速度适配器(Speed Adapter),这样做是为了适应前者的快速时钟速率
TBA加速仿真模式
- 软件的功能也大大加强。除了传统的ICE模式外,基于Transaction(事务级)、以收发包为传输单位的TBA加速仿真模式及Hybrid Mode的仿真模式(即在Server主机当中安装各类虚拟OS,DUT运行在Emulator中,两者通过特定的协议联通)
- 虽然说这两者的运行速度不及ICE模式高,但由于其无需复杂连线,与传统软件仿真兼容的方案,以及十分丰富的调试手段,受到了验证工程师的广泛欢迎
Hybrid混合仿真模式
- 随着Emulator要仿真的系统越来越复杂,将软件模型与Emulator中的DUT逻辑混合使用,去仿真更大的系统也成为了一个常用应用场景
- 在主机上运行虚拟CPU模型,或者是虚拟化的完整x86主机,而把外设芯片电路放在Emulator中仿真,两者之间通过Transactor协议模型互联,就是一种典型的混合仿真
- 相反,把CPU模型运行在Emulator中,而用软件去仿真丰富多样的存储或外设接口模型(HBM,DDR5/4,LPDDR/PCIe/MIPI PHY等),也大大增强了工程师的系统级验证手段
此外,对断言(Assertion)和覆盖率(Coverage)的支持、基于DPI-C的TLM扩展接口及对运行现场保存和恢复的支持等,这些高级功能的加入也给高速仿真验证工作提供了完整的解决方案。
不断发展的硬件仿真器
硬件仿真器是一个软件工具链和硬件平台互相配合、设计难度极高的复杂系统。因此,目前市场上能够提供真正意义上硬件仿真器及完整配套方案的公司也是凤毛麟角,过去主要是来自美国的EDA三大巨头:
- Cadence的Palladium系列,以特制ASIC 处理器组成庞大系统
- Synopsys基于商业FPGA的ZeBU产品线
- 西门子EDA(原Mentor)基于自研FPGA芯片的硬件仿真器Veloce
而国产EDA厂商也在追赶、创新、超越,比如芯华章最新发布的国内首套百亿级HuaEmu E1硬件仿真器,不仅仅实现了传统仿真器在容量、调试、性能方面的各项能力,还创新发展了多项特色功能:
- E1为了解决多级FPGA传输数据引起的延迟过大问题,采用了自研格式的高速光交换协议,和传统通用的Aurora协议相比,延迟降低50%;同时在物理的部署上采用全光缆互联,更轻便灵活;较铜制线缆的应力影响更小
- 系统最高支持128个用户同时使用,并采用了“隔离通道”的技术,来保证多用户情况下数据的独立性,防止互相干扰;并且支持基于云的使用模式
- E1支持丰富的验证场景,如虚拟主机混仿、虚拟设备混仿、ICE在线仿真、系统性能分析、软仿测试加速、系统级调试等
- E1还支持非常丰富的解决方案:从协议上,涵盖AXI/PCIe/MIPI/DDR5/DDR4/HBM2E Transactor等各种类型的应用
以下我们结合具体的应用场景,来简单说明芯华章硬件仿真系统为用户提供的丰富解决方案。
芯华章科技PCIe方案
- 在Host主机侧进行配置和控制的动作,运行一个包含PCIe协议相关测试用例的软件仿真器(Simulator),那么再在E1硬件上运行一个模拟PCIe Root Complex的可综合模型(内部包含了PCIe RC的IP);
- 通过PIPE接口连接到用户设计的待验证功能模块。这样的好处是避免了繁琐的硬件线路连接,从而使得验证过程更稳定可靠。
芯华章科技DDR5模型
- 芯华章自研的XRAM模块提供前后门读写等工作模式,可以方便用户的调试,通过连接DDR5的内存模型并提供到接口给用户,然后用户只需方便地把自己的设计接到内存接口上就可以实现模块的调用实现。
由此看来:在这些创新技术的驱动下,硬件仿真系统,特别是国产EDA厂商的百亿门级以上的硬件仿真产品,在实现智能设计流程、减少用户人工投入、缩短芯片验证周期方面,起到了极大的作用,一定会继续作为关键性EDA工具推动芯片设计验证方法的发展。