硬件仿真自动化原型验证平台提高定制设计FPGA式原型板的验证效率
强化传统FPGA式原型板
传统FPGA式原型板通常都配备J-Connector,希望让原型板能够连接到外埠装置。本文提出的作法就是利用这个J-Connector,建立能与其连接的特殊适配卡,以扮演主机工作站与FPGA式原型板之间的桥梁,如图4所示。
图4. 新增适配卡与某些软IP (soft IP)。
FPGA式原型板与工作站之间的所有通讯都可以运用某些专属总线而建置起来,提供仿真与协同仿真所需的高性能。由于这种互连技术,使用者拥有可架构和运用不同原型板以搭配同一J-Connector的绝佳弹性。这种能力也表示,使用者能够快速而且轻易地转移到更快速和更庞大的FPGA式原型板,可以完全免除传统硬件辅助验证解决方案相关的限制。
接下来看看图4所示的软IP模块 (soft IP)。这些IP模块可下载至原型板上的各FPGA,然后可用来控制和监视FPGA式原型板与工作站之间的数据流动。因操作模式 (硬件仿真、协同仿真) 的不同,可以自动插入适当且必要的「特色」IP模块。这些IP模块可以编译到设计中,用来监控用户指定的任意信号。如此一来,就可以掌握和分析来自数千信号仿真数百万频率周期的数据。
除了互连技术之外,本文的作法也需要如图5所示在工作站上执行的特殊软件来执行许多功能,例如自动建立包含多颗FPGA的原型板。这个建立流程涵盖读取设计的RTL源代码 (以VHDL、Verilog、SySTemVerilog或混合式语言)、分析FPGA内部与外部的内存、转换SoC频率已产生无hold-time问题的设计在FPGA中使用、分割完整SoC设计的RTL以便放入多颗FPGA,以及调整RTL来搭配软IP模块与要监控的信号。
图5. 增添在工作站上执行的特殊软件。
在验证途中,软件可以依据建立时指定的操作模式 (硬件仿真、协同仿真),控制和管理FPGA式原型板与工作站之间的通讯与数据流动。另外,能快速修改所监控信号的能力也很重要,这样才能够快速且轻易地新增监控的信号,不必重复编译整个设计。最后,就是原型板上FPGA内部状态的能见度,这包括在特定时间或以逐一频率周期为基准所提供的寄存器 (registers) 与内存输出,在进阶侦错时非常实用。
设计原型的「桌上型」验证
为了更完全了解因本文所讨论互连与软件自动化技术而实现的各种功能与使用模式,让我们来看一些范例情境。最简单的例子就是图6所示的纯粹硬件仿真应用。在桌上型工作站上执行的软件会自动分割设计,并准备原型板。在建立过程中,会在设计中置入所有必要的探测点,以便在执行时掌握特定信号数据。
图6. 硬件仿真情境的范例。
此外,使用者也可以选择性的运用Siloti能见度自动增强系统,来帮助判断需要观察的最少信号量。以及运用Verdi自动化侦错系统来分析FPGA式硬件原型板的结果,并执行侦错。由于设立软件会自动将任何门级信号关连至对应的RTL信号,Verdi系统搭配RTL源代码可以加速侦错的进度。
交易级协同仿真是可以大幅加速验证流程,其速度比仅使用软件仿真要快上数百或数千倍,常见的状况是testbench (或许是设计的一部份) 常驻在工作站上,而大量 (或全部) 设计被加载到原型板。工作站上执行的软件会自动分割设计,自动建立原型板,然后插入适当的协同仿真基础架构 (例如SCEMI式处理装置)。在前述情境中,建立时,所有必要的探测点都会置入设计中,以便在执行时能够掌握特定的信号数据。或者,协同仿真可以暂停,也可以设置软件在特定时间或按照逐一频率周期,将FPGA内部状态的完全能见度输出,如图7所示。
图7. 交易级协同仿真情境的范例。
最后,让我们看看HDL协同仿真,这种加速验证流程,其速度比单仅使用软件仿真要快上数十倍。同样地,testbench (或许是设计的一部份) 常驻在工作站上,而大量 (或全部) 设计被加载到原型板。在这个情境中,工作站上执行的软件会自动分割设计,建立原型板,和产生可供软件仿真器连接的包装器(wrapper)。执行时,软件会控制原型板与ModelSim、NC或VCS等业界标准软件仿真器之间的协同仿真互动。如同前面几个情境中的讨论一般,透过软件与FPGA内部技术的组合,可在特定时间或按照逐一频率周期,将原型板上FPGA内部状态的能见度,包括寄存器与内存输出,如图8所示。
图8. HDL协同仿真情境的范例。
新一代原型验证平台的优点
产品在市场上的存活时间及上市前置时间不断缩短造成了当今SoC设计与验证团队的莫大压力。软件仿真提供对设计内部的100%能见度,但是只适合于设计的一小部分,或者整个设计的数十个频率周期而已。然而,完全验证现代SoC需要耗费成千上万甚至百万频率周期,所以需要某种形式的硬件辅助验证。各式各样的硬件辅助验证解决方案具备不同的功能、优点与弱点。表1提供了各种硬件辅助验证技术的大略比较。
传统硬件加速器与仿真器提供大容量、相对快速的编译时间,以及相当良好的设计能见度。然而,这些系统太昂贵而难以广泛运用,而且因为转移成本高昂,也难以与时俱进地升级至新一代解决方案。比较上,传统FPGA式原型板提供高效能,而且比较便宜;但是,缺乏设计能见度与精密的侦错功能,无法克服当代SoC的复杂度,而且通常仅以硬件仿真模式来运用。
表1. 硬件辅助验证技术的比较。
- IP核在SoC设计中的接口技术 (08-06)
- 视频跟踪算法在Davinci SOC上的实现与优化(10-06)
- 基于赛灵思Spartan-3A DSP的安全视频分析(02-17)
- Linux下Sniffer程序的实现(06-12)
- linux操作系统下的进程通信设计(01-24)
- 基于S3C44B0X和uClinux的Socket通信实现(02-28)