硬件仿真器

为什么要用硬件仿真器

在SoC的设计体量越来越大的时候,仿真速度成为制约验证进度的重要障碍。同时,由于仿真速度的限制,一些真实的用例也无法在RTL级仿真很快地呈现结果,这种困难在硅后软件测试发现问题反馈给硅前硬件团队时更加明显,因为通常这意味着硬件团队需要将耗时很长(相对硬件仿真的承受能力)的软件进行分析,找到可能的问题点,拆分软件场景,进而在硬件仿真上尝试重现问题。仿真速度的限制使得在硬件仿真方法上面无法很好地早期测试软件,而这一任务一般交给了另外两种方法:

  • 虚拟模型平台(virtual prototype platform)
  • 硬件加速(haradware acceleration)
    • FPGA
    • emulator
      目前业界主要的硬件加速方式分为两种,即FPGA和专用的模拟器(emulator)。实际上,专用模拟器仍然是基于FPGA的定制产品,只不过比起商用的FGPA,它在硬件加速方面还有其它显著的特点:
  • 内部可编程单元的连接网络方式不同于商用FPGA,这使得它在综合布线效率上面显著优于FPGA,而且对于内部可编程单元的利用率也高于FPGA。
  • 外部连接网络的方式也不同于FPGA,这使得它可以通过多路复用技术实现片上存储共享而不再像FPGA一样需要定制的存储器,同时通过扩大I/O管脚数目来扩展器件之间通信带宽,以此来确保模拟器之间的通信速度不会成为瓶颈。
  • 通过智能的内部数据采集和内置追踪存储器的帮助,这使得被映射到模拟器平台的所有逻辑单元在理论上都是可见的。这种采集方式在一开始建立平台时就可以通过定义采集信号列表来修改内部走线,同时也不会降低模拟速度。

硬件加速方法

FPGA原型验证系统

随着目前集成电路的不断发展,设计规模的大型化,单颗FPGA板在容量上就显得捉襟见肘,已经无法满足设计需求。以目前国内头部的CPU、GPU设计公司的设计规模,单颗IC芯片的设计体量,需要占用到几十颗Xilinx VU440级别FPGA的情况,已屡见不鲜。在这种背景之下,FPGA系统供应厂商开始着手研究多颗FPGA的系统互联解决方案。其中就包括在单块的PCB板上装配多颗FPGA及多个FPGA系统之间的互联。
经过不断探索,FPGA原型验证平台产品应运而生。之所以称之为“平台”或“系统”,就一定会包含对应的软件和硬件。首先在硬件结构上多颗FPGA互联结构的引入就要求结构上比单板形式的FPGA开发板要复杂的多,其次FPGA芯片厂商提供的软件工具无法支持多片的FPGA分割,需要配套专业的FPGA原型分割相关软件工具。

硬件仿真器Emulator

在目前SoC规模越来越大型化的情况下,有的设计甚至达到数百亿ASIC等效门规模,巨大的设计规模导致软件仿真时间上的消耗变得越来越无法忍受。FPGA原型平台在验证规模到达一定级别,FPGA数量太多的情况下,也会带来新的分割问题并且会失去原有的性能优势。硬件仿真器的优势主要在于它独有的、超大规模的硬件结构,尽可能地保证了RTL设计的完整性。从硬件实现上看,一般有基于FPGA和CPU两种架构,对于基于FPGA架构的类型来说(如Synopsys的Zebu系列),可以理解为有很多块FPGA单板,大量的单板与电源、控制等再互相连接起来,形成一个“庞然大物”,优点是仿真性能高,使用商用FPGA可以降低开发成本;对于基于CPU架构的类型来说(如Cadence的Palladium系列),通常会将集成了数以万计的高速CPU核的ASIC芯片焊接在一块巨大的单板上,配以控制、冷却等模块构成一个完整系统。优点在于编译时间短,调试能力强;缺点就是功耗高,需要特别冷却系统和运营成本高,稳定性比较难控制,性能一般也比基于FPGA的硬件仿真系统低些。一般一套Emulator的体积大约从一个冰柜到一台大双开门冰箱的大小,而大型Emulator的重量也可以用“吨”来计算了。

FPGA原型验证系统与Emulator硬件仿真器区别

  • 应用场景
    FPGA原型验证系统:芯片设计过程中搭建软硬件一体的系统验证环境。一是芯片流片回来前为软件团队提供调试驱动软件的平台,加速芯片上市时间;二是作为芯片仿真验证的一个补充,因为在FPGA内部可以生成真实电路,并且可以对接真实的硬件子卡,相较仿真使用的软件模型有一定差别,因此可以发现更多隐蔽的bug ;此外FPGA相对软件仿真以及Emulator而言,速度更快,比较适合一些耗时较多的场景case。 故在芯片设计规模越来越大的情况下,使用多颗FPGA芯片互联能够快速实现高性能的全系统验证原型,并满足该场景下的调试需求。
    Emulator 硬件仿真器:芯片设计过程中对完整封闭的设计进行加速仿真并调试。它与FPGA原型验证系统的主要定位差异在于:能对全芯片进行和芯片时序行为一致的硬件仿真,包括全芯片信号的提取,对全芯片的功能、性能、功耗进行系统级的验证与调试。这一点差别导致了两者系统设计上的巨大差异。用户无需花费大量的时间去考虑如何设计、如何分割、如何布局布线等问题,从而在易用性方面大大增强。
  • 支持设计容量
    FPGA原型验证系统
    Emulator 硬件仿真器

    • 编译时间
      FPGA原型验证系统:根据设计规模,大型设计编译较为缓慢
      Emulator 硬件仿真器:综合布线效率上优于FPGA,而且利用率也高于FPGA;软件上配备专门的布局布线算法,因此大项目的编译时间比原型验证平台快很多
  • 性能
    FPGA原型验证系统:和项目容量相关,一般主频时钟在5~50MHz之间,大多数多片FPGA系统实际运行速度在10MHz级别。
    Emulator 硬件仿真器:基于ASIC芯片的Emulator—般典型值100K~1MHz;基于FPGA的Emulator一般1MHz-3MHz速度

参考:
芯华章:FPGA原型验证系统VS硬件仿真器
科普:原型验证系统VS硬件仿真器,哪一个更好?_原型验证 硬件仿真-CSDN博客

来自广东
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇