当前位置:首页 > 申请书大全 > 仿真验证【Veloce平台在大规模SOC仿真验证中的应用】
 

仿真验证【Veloce平台在大规模SOC仿真验证中的应用】

发布时间:2019-02-16 04:43:21 影响了:

  摘要:随着现代集成电路技术的发展,尤其是IP的大量使用,芯片的规模越来越大,系统功能越来越复杂,普通的EDA和FPGA仿真在速度和性能上已经无法胜任芯片仿真验证的要求,功能验证已经成为大规模芯片设计的一个瓶颈;同时复杂的SOC系统需要相应的软件,由于芯片研发的周期越来越长,传统的软硬件顺序开发的方式受到了市场压力的巨大挑战,软硬件并行开发成为将来大规模IC系统设计的一大趋势。本文主要介绍Mentor Graphics公司Veloce验证平台在超大规模IC系统中仿真验证的应用。借助Veloce的高速和大容量的特性,极大的提高功能验证的效率,解决由于芯片规模大FPGA无法验证的问题,保证芯片的按时投片。同时通过和Jtag的联合使用,成功解决软硬件的联合仿真和并行开发。
  关键字:软硬件联合仿真,Veloce ,IC,TBX,Hdllink,ICE
  
  1前言
  
  在现代集成电路设计中,集成电路工艺的突飞猛进和IP复用技术越来越成熟,使得高度集成化、系统化、大规模化已经成为集成电路一个发展趋势。在这种趋势下,芯片的功能越来越复杂,研发周期也越来越长。往往在现实中,我们遇到的问题不是如何保证芯片设计的顺利实现,而是如何在最短的时间之内验证芯片功能的正确性,并及时开发出相应的系统软件,因此如何提高大规模,超大规模芯片系统的验证效率,缩短软件开发的周期已经成为大规模芯片设计正在关注和急需解决的问题。
  传统的验证技术中,主要采用两种手段。
  一种是基于EDA工具(Simulator)的仿真验证。这种验证方式是基于软件平台的,优点是使用方便,便于问题定位和调试。但是当被验证的设计的规模变得很大,到达上百万门甚至上千万门的时候,仿真速度将会急剧下降,已经不再满足芯片开发时间上的需求。
  另外一种是基于FPGA(Emulator)的仿真验证。这种验证方式是基于硬件的,优点是速度快,可以进行长时间测试向量的测试,还可以测试芯片的一些性能参数。但是FPGA仿真需要事先定制相应的FPGA板,并且由于FPGA的规模有限,对于超大规模,尤其是多核的SOC系统,FPGA已经无法胜任
  在传统的芯片系统开发流程中,软件总是在芯片流片回来后才完成开发或者测试的,这将极大的延迟芯片投放市场的时间,影响产品的竞争力。
  Veloce 硬件加速仿真平台综合了传统的EDA仿真和FPGA仿真的优点,可以实现像EDA工具一样的debug同时也具备较高的仿真速度。其大容量和通用性成功的解决了千万门级的多核系统的验证问题,同时Veloce 硬件加速ICE模式可以和JTAG调试工具联合使用,实现软硬件联合仿真和并行开发
  海思半导体的A项目是一个超大规模的多核系统,通过运用Mentor Graphics的Veloce平台,成功实现了芯片系统的功能验证和软硬件的并行开发。
  
  2Veloce加速平台简介
  
  Veloce硬件加速平台是Mentor Graphics公司开发的一个业界先进的高速,通用化,大容量,可视化,便于debug,多用户,多模式的仿真验证平台。
  通用化大容量:目前最高可支持1.28亿门的设计,不需要定制,可适用于任何架构的数字芯片系统。能很好解决超大规模多核芯片系统的验证和软硬件协同仿真。
   高速性:仿真速度可达到1M到1.5M,可在短时间内执行大量用例,更快的发现逻辑的错误,适合随机测试和用例回归。
  快速化编译:可支持VHDL、Verilog,以及混合语言的输入,高度可靠和自动的编译器,大约1500万门每小时。
  信号100%可视:内置最大16G的trace memory,设计中的所有信号100%可见,
  强大的debug能力:Veloce硬件加速平台具有友好的图形界面,能够像EDA工具一样对所有信号在任何时间点进行debug。提供多种类EDA工具一样的debug方式,包括
   ● 断言(Assertion)
   ● 源文件设置断点(Break Pointing On RTL Source Line)
   ● 检测点保存和恢复(Check Point Save-n-Restore)
   ● 查看寄存器级电路(Path Browser)
   ● 波形比较(Waveform Comparison)
   ● 信号trigger(Trigger On RTL Signals)
   ● 观察波形(Waveform Viewer)
   ● 查看电路原理图(Schematic Browser)
   ● 单步调试(Step Debug)
  多用户:最大可支持四个用户,可实现多用户同时进行验证仿真
  多模式:提供三种模式,分别为Co-Simulation(Hdllink)、Co-Modeling(TBX)、Emulation(ICE)
  Hdllink原理如图 1所示。在Hdllink模式下,Testbench在Workstation端的软件仿真器运行,可综合部分的Testbench及DUT(Design Under Test),综合后加载到硬件加速器中,Workstation和Veloce之间通过Co-model卡进行通信。
  Hdllink模式的加速倍数在5到15倍之间。该模式支持VCS,NC-Verilog,Questasim仿真器。传统的EDA仿真环境基本不用做修改即可切换到Hdllink模式进行加速仿真。
   TBX原理如图 2所示。和Hdllink模式的不同点在于,Hdllink模式是基于Signal级的交互,而TBX模式是基于事物级或者Transaction的交互。
  Hdllink中时序部分的Testbench(比如monitor,driver),用可综合的SV语言(XRTL)改写后,和Design一起加载到了Veloce中;而非时序部分的Testbench仍然放在Workstation中。Workstation和veloce中通过Co-model卡进行通信
  TBX模式中,非时序部分的Testbench和时序部分的Testbench之间通过TBX interface通信。如果Untimed部分是SV,则TBX接口是TLM Interface和XTL LIB;如果是C/C++/SC则通过transaction Interface(DPI接口)通信
  TBX模式的加速倍数在几十倍到几百倍之间。该模式支持Questasim仿真器。
   ICE原理图如图 3所示。ICE模式和前两者最大的不同是没有Testbench。测试向量来自和Veloce相连的外设。ICE模式下Workstation将测试向量通过IOBOX发送到Veloce。图3中的是用Jtag做外设,通过Jtag仿真器和IOBOX进行Jtag调试。
  ICE模式的加速倍数在几百到上千倍之间。
   Veloce的三种应用模式可以应用于无线、媒体以及嵌入式等众多领域。
  
  3Veloce的基本流程
  
  Veloce的三种模式虽然有所不同,但是基本流程大致一样,分别为库单元映射、编译、仿真及调试四个步骤。
  
   3.1 库映射
  这一步,主要是建立物理库,并把逻辑库映射到物理库。
  
   3.2 编译
  编译分为六个步骤
  Analyze:分析输入的源文件(包括SV,Verilog,Vhdl)的类型以及部分语法错误。
  Rtlc:对源文件进行编译,将源文件转化为Veloce识别的门级网表,并生成相应report文件和用于debug的库。作为RTLC的输入文件可以是SV,Verilog,Vhdl或者混合语言,也可以是verilog的门级网表。
  Velsyn:将RTLC生成的门级网表分割后,生成布局布线所需要的库文件,并进行相关的时序分析和生成dump波形所需要的库文件。Velsyn开始前,需要设定时序(Timing Specification),端口映射(IO mapping),相关Memory初始化设置,以及其它用于调试的report文件的设置。
  Velcc:用Velsyn生成的库文件完成对各个AVB板上各个FPGA芯片的布局布线。
  Velgs:进行最后的时序分析,产生veloce仿真所需要的各个事件和资源调度的时序信息。
  Ssrcc:针对AVB板上的每一个FPGA dump波形做一些分析。
  
   3.3 仿真
  仿真步骤如下,前五步是必须的步骤,后面几步为可选项。
  connect:选择要连接的加速器,建立目标设备和加速器之间的连接。
  configure:将编译好的设计代码加载到Veloce的FGPA芯片中。
  targetpower ignore:将Veloce的所有的IO设置成高阻态。
  enableio:将Veloce和目标设备以及IOBOX的连接使能。
  run:运行仿真。
  download memory:将二进制程序加载到Memory中。
  upload memory:读取Memory的值。
  upload waveform:Dump波形。
  download trigger:加载Trigger文件。
  
   3.4 调试
  如果仿真中发现错误,就要进行Debug。
  
  4 Veloce在千万门级
  多核芯片系统中的应用
  
  A项目是一款超大规模的SOC芯片。在验证仿真中面临着如下挑战:
   1)芯片规模巨大,又是多核,传统的EDA工具无法在项目规划的时间内完成芯片的验证。
   2)现有FPGA不仅无法容纳如此大规模的芯片系统,而且也无法解决多核验证的问题。
   3)软硬件需要并行开发,缩短项目周期。软件人员缺乏软件测试的平台。
  而Mentor 公司的Veloce验证平台不仅具有通用化和1.2亿门的容量,而且具有比EDA工具快100-1000倍的速度,最重要的是它的Isolve系列产品(Isolve Uart-Jtag,Isolve Ethernet,Isolve Arm,Isolve PCIE)可以为软件提供调试接口,因此在实际项目中,我们采用了Veloce验证平台和Jtag联合调试方案,解决了该款芯片多核验证和软硬件协同仿真的难题
  下面将以A项目为例,介绍Veloce在项目中的一些具体应用
  
   4.1 验证平台结构
  图 4是A项目软硬件协同仿真的平台结构图。
  Workstation中装有Veloce调试软件和Jtag的调试软件。Veloce的调试软件用来对设计源文件进行编译,综合,将综合后的网表加载到Veloce中,以及download、upload memory,debug等等。
  Workstation中的Jtag调试软件,用来将相应的C程序编译成二进制码,通过IOBOX加载到Design中,并对输出数据做相应的比对处理。
  
   4.2 验证仿真流程
  第一步:将Design中的Memory替换成能被Veloce综合的Memoy。
  第二步:裁减掉Design中不可综合部分如PLL,去除顶层处Jtag的其它IO,外部加全芯片WRAP。
  第三步:将RTL级设计源文件进行编译、综合、布局布线,生成可加载到Veloce中FPGA芯片中的库文件。这一步在综合阶段要指明Jtag仿真器的管脚和IOBOX上IO的对应连接关系。编译可以在Bach Mode下,也可以在GUI Mode下。
  图 5是Bach Mode下的编译脚本。
  图 6是GUI Mode下的编译界面。
  RTLC_OPTIONS = -allow_4ST 是在Rtlc阶段的一个编译选项,表示允许Veloce仿真中使用四态仿真,而传统的FPGA只允许两态仿真。
  VELSYN_OPTIONS = -NFfi vmw.nfl-Dump c0 c0.dump 是Velsyn阶段的一个选项,-NFfi用来消除综合过程中出现的组合逻辑环路;-Dump c0 c0.dump表示将所有的综合过程中遇到的组合逻辑环路的信息都记录在c0.dump文件中。
  VELSYN_POD_FILE = vmw.pod是Velsyn阶段中的一个选项,用来指明IO口和pin脚的对应关系。
  VELOCE_MACH_LIST=machine.lish表示采取分布式编译方式编译源文件。另外Veloce还支持vnq方式编译,在本项目中未使用。
   第四步:将设计加载到Veloce中。
  第五步:download memory。
  第六步:用run命令使逻辑开始运行。
  第七步:将待调试的C程序编译成二进制代码通过Jtag仿真器,IOBOX加载到设计中。
  第八步:upload memory ,将相应的memory中的数据存放在文件中。
  第九步:check 仿真结果是否正确。
  第十步:如果结果正确继续执行其它用例。如果结果错误,重新运行仿真到第三步后编写好trigger 文件,download trigger,dump波形进行debug;也可以通过Jtag打印相关信息进行debug。
  
   4.3 应用经验
   4.3.1 多时钟设置
  大规模的SOC系统中不可避免的涉及多时钟域设计。因此必须在Velsyn这一步指明各个时钟之间的关系。
  对于有明显倍数关系的时钟,Veloce有两种设置时钟的方法,一种是采用GUI界面,一种是直接编写vmw.clk文件。
  图 7是时钟设置的GUI界面。从图上可以看出有两个时钟clk_61P44M和clk_30P72M,两个时钟是二分频的关系。
  图 8是vmw.clk文件。文件中的第1行,表示只有一个时钟域;第3行和第4行表示时钟域1有两个时钟。第5行表明两个时钟的相位关系。
   对于没有明显倍数关系的时钟,需要编写相应的分频电路,只对被分频的主时钟按照上面两种方式进行设置。
   4.3.2 Download Memory
  在A项目软硬件联合仿真中,部分软件程序是编译好后,存放在设计中的相应memory中的,这部分程序通过Jtag下载比较麻烦。我们采用的方法是用Veloce中自带的download memory功能,直接将二进制代码加载到相应的memory中。
  图 9 为download memory GUI界面。
   4.3.3 Upload Memory
  在A项目中,仿真的结果存储在memory中,需要读取出来后,才能对结果进行比对。
  我们采用的方法是用Veloce中自带的upload memory功能,将memory中的数据读出来进行比对。
  图 10为upload memory GUI界面。
   4.3.4 Trigger and Upload Waveform
  在对A项目SOC系统的软硬件联合仿真进行debug的时候,由于仿真时间一般都比较长,再加上芯片规模大,如果不能准确的在错误发生的时间段内dump波形,不仅会使dump的波形巨大仿真速度降低,造成时间和硬盘资源的浪费,有时候还会丢失相关的debug信息,导致debug失败。
  在A项目的debug过程中,我们采取信号Trigger和Upload Waveform相结合的方式。
  在确定好逻辑可能出错的地方以后,根据相关信号编写好trigger文件,然后在仿真的时候将trigger文件加载到仿真器中。当trigger被触发以后,即开始dump波形,trigger结束的时候,停止dump波形,并用upload waveform功能,将波形从Veloce内置的trace memory中读出来存在硬盘上,通过wave viewer工具查看波形。
  图 11 是编写的trigger文件。可以看出这个trigger文件有S0-S3四个状态。
  图 12 是用Veloce的GUI界面download trigger以及download 成功后显示的trigger的状态转移图。
   4.4 仿真性能比较
  表 1是EDA验证平台、FPGA+Jtag验证平台、Veloce+Jtag验证平台三种平台在仿真速度、Debug手段以及能否进行软硬件协同仿真三方面的比较。
  从表中可以看出,Veloce很好的平衡了EDA工具的Debug能力强和FPGA仿真速度快的优势,尤其是在超大规模的SOC软硬件联合仿真方面发挥着巨大的作用。
  
  5结论
  
  在大规模SOC系统功能验证和软硬件联合仿真中,Veloce验证平台和Jtag联合仿真的解决方案,可以大大缩短验证周期,同时也实现了软硬件的并行开发,为项目的研发争取了宝贵的时间。另外Veloce还具有非常友好强大的图形界面以及多样化的debug功能,大容量,通用化。
  Mentor Graphics 的Veloce硬件加速验证平台结合了EDA工具的强大的debug功能和FPGA原型验证的速度,在A项目SOC系统功能验证和软硬件联合仿真中发挥了巨大的作用。
  
  参考文献
  [1] Veloce User Guide.Software Version 1.4. Mentor Graphics Technical Publications,2009.3

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3