【原型验证】SoC 原型验证环境说明

简介: 【原型验证】SoC 原型验证环境说明


SoC 原型验证环境说明

前言

最近招聘的时候,有很多校招生在询问,原型验证主要的工作内容是什么? 使用的语言又是什么? 主要操作的平台是什么? 未来的职业发展又是什么样子的?。。。。

这里呢,笔者就原型验证平台先做一个简要的说明,至于其它问题,后续有时间了再慢慢撰写;

验证流程

在说相关验证平台的时候,这里简单对验证流程做一个简要的说明,后面有机会再展开描述:

System Design后,Design会交付代码给到DV 验证团队(design verification/System Level Verification),DV验证完成后交付RTL给到原型团队(或者平台团队)进行硬件验证平台的版本迭代,而这里说的验证版本,即是原型同学需要验证的标的~,即基于某个RTL综合的FPGA/Emulation版本进行SOC的原型验证;

软件平台

软件平台指代的是平时我们工作的时候,主要使用的一些相关软件、应用工具,比如操作系统,开发语言等等;在说这个之前,大家可以看看原型验证招聘的基本要求:

从上大家已经可以了解到原型验证工程师在平时工作中,会使用到哪些工具:

  • 汇编/C/C++/shell/python , 这个是基本功,原型验证的主要用例开发也是基于汇编以及C来进行的,可能部分自动化平台比如jenkin还会涉及到shell以及python;
  • Linux/RTOS/Vxworks/AutoSar… : 操作系统应该也是基本功,在工作中,原型的同学会针对各个不同的硬件模块进行驱动开发,而驱动可能运行在linux或者baremater的操作系统上;

当然以上,只是基本要求,事实上目前很多大型SOC的设计公司,要求原型的同学能够自己看懂RTL代码,电路图等等,团队内有时候自嘲说,原型的同学是DV+原型+软件,三位一体,打三分工,拿一分钱。

但是从能力图谱上来说,原型的同学成长的广度是远远高于其他岗位的,因为他能够接触到的知识圈非常丰富(PS,下限也非常低,笔者见过10多年工作经验的还只是会配置寄存器,写写简单驱动~~

不得不说,从业生涯中,看到过原型的同学转岗做架构师、DV验证、软件开发、软件测试、FAE、流程质量、HR以及项目经理等等的,求职范围非常之大~~~

也有做验证经理、项目经理较多,因为原型验证对于项目的把控能力,风险意识都非常的有经验。

硬件平台

大家在网上看到原型验证岗位的时候,一般前面都会带FPGA关键字,好像原型只有FPGA验证平台一样,事实上,在一些大型公司里面,FPGA只是原型验证平台之一。

原型还有一个重要的验证平台是Emulation,以及某些公司会有功能级别的底软开发平台,比如Qemu/fastmodel等,这里我会简要的对FPGA/Emulation进行一些简单的对比:

总结起来:

  • FPGA 更多的是进行模块级功能验证,压力验证,长稳验证以及兼容性验证
  • PXP上更多的进行全系统的压力验证,性能验证,功耗验证以及FPGA上的问题复现定位;

FPGA 平台对比

亚科鸿宇VeriTiger

优势

  • 1.便宜;

不足

  • 调试手段比较单一,不支持RTL Debug;
  • 无自动化Partition工具,需要手动Partition(很重要,手动partion需要解决的问题非常多,也容易引入额外的问题)

S2C Single VU440

优势

  • 平台按可扩展性还不错;
  • 子板丰富并且价格便宜。
  • 价格也相对便宜

不足

  • 有高级的调试工具和Partition工具,但是这些EDA工具的性能和易用性待检验;
  • 宣传的可扩展性,没有实际检验过

Synopsy HAPS-100

优势

  • Synopsys的工具(Synplify、Identity和Protocompiler)对HAPS-100平台原生支持,EDA易用,生态好
  • Synopsys IP的FPGA验证环境一般都是针对HAPS平台设计,有配套的IP开发套件(IPK,IP Prototyping Package),能有效缩短接口类IP的调试周期;
  • 调试手段多样,抓取波形也很方便;
  • 有自动化的Partition工具,多板级联方案成熟。

不足

  • 主板、子板死贵死贵的,每年的维保费也死贵
  • 维修很不方便,有可能寄送国外
  • 地缘政治问题,某些公司可能用不了

比如现在的公司,没有这个东西,只能买板卡,自己制造平台。


综合来看,绝大部分的公司最后其实还是会选择 Synopsy HAPS-100,因为项目进度往往是第一考虑的原因,否则很多时候,都在定位平台的问题,为平台买单,当然有实力的公司也会自研,基本上成本只要HAPS的1/5;

Emulation平台对比

Emulation的价格更是死贵死贵的(Cadence 1cluster的价格每个月100-150万美金左右),所以在很多时候,需要24小时都安排相关的测试任务;

业界目前比较常见的几个Emulation平台:

Cadence公司:Palladium

上图,介绍了Palladium Z2以及Palladium X2,X2更像一个大型的FPGA,可以拥有更高的频率(5M~15MHZ),但是又能支持同比降频,也能类似Z2测试性能,但是定位问题起来略微不太方便,更适合做整体的原型业务的部署测试;

Palladium 在很多企业用的比较广泛,据笔者所知,华为、平头哥、中兴都是用的Palladium 平台;

Synopsys公司:ZeBu

ZeBu更像一个大型的FPGA池化阵列,有点像Palladium X2,性能比Palladium 略高,但是定位问题跟FPGA一样并不太方便,笔者的公司曾经试用过zebu2,但是效果一言难尽,在稳定业务的性能输出上,因为速度问题,比较有优势 ,但是出现问题定位的时候,就极其不太方便;

但是Zebu有一个比较大的优势,对于自家的很多IP的model兼容性非常好,可以在design上面轻松接入非常丰富的S家的IP,对整个SOC的验证是相对方便的;

芯华章HuaEmu E1

  • 优点: 便宜 , 国产可控
  • 缺点:宣讲的时候讲的功能挺好的,还没有试用过,未知

小结

总体来说,Emulation+FPGA 配合上原型的验证特点,是构建原型完备的验证方法学的基础,当然在不同的公司对于Emulation+FPGA 的开发程度不一样,

比如笔者所在的公司会针对原型验证的完备性,是必须在相关工具、方法、脚本处理上做非常多的工作,工欲善其事必先利其器,以达到验证闭环、加快验证效率的目的。

目录
相关文章
|
6月前
|
监控 网络协议 安全
验证嵌入式ARM32环境中4G模块的有效方法
验证嵌入式ARM32环境中4G模块的有效方法
146 0
|
6月前
|
传感器 Linux API
如何实现 MCU软件中多个模块初始化函数的优雅调用
如何实现 MCU软件中多个模块初始化函数的优雅调用
|
3月前
|
安全 网络安全 API
什么是软件定义安全SDSec
软件定义安全(Software Defined Security,SDSec)是一种从软件定义网络(SDN)引申而来的概念,其核心原理是将网络安全设备与其接入模式、部署方式、实现功能进行解耦。这种解耦使得底层的网络安全设备可以抽象为安全资源池中的资源,而顶层则通过软件编程的方式进行智能化、自动化的业务编排和管理,以完成相应的安全功能,实现灵活的安全防护 。
64 1
|
4月前
|
域名解析 Java Serverless
函数计算产品使用问题之如何在外部调用SD模型
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
前端开发
【前端验证】对uvm_info宏的进一步封装尝试
【前端验证】对uvm_info宏的进一步封装尝试
|
存储 算法 芯片
ov2640子设备核心操作详细分析
ov2640子设备核心操作详细分析
268 0
|
存储 缓存 测试技术
SystemVerilog学习-04-验证环境组件、任务和函数
SystemVerilog学习-04-验证环境组件、任务和函数
296 0
SystemVerilog学习-04-验证环境组件、任务和函数
|
运维 负载均衡 安全
SecDevOps,软件定义安全来了吗?
SecDevOps,软件定义安全来了吗?
307 0
SecDevOps,软件定义安全来了吗?
|
C# C++
VS2017下创建C++动态库导出符合并完成调用测试(DLL可供C#调用)
VS2017下创建C++动态库导出符合并完成调用测试(DLL可供C#调用)
461 0
VS2017下创建C++动态库导出符合并完成调用测试(DLL可供C#调用)
|
JSON 资源调度 安全
Chainlink是如何实现“万能插头”的--外部适配器的开发和应用
在以太坊原生语言solidity中调用API可以将链下数据传输至链上智能合约应用。世界各地的开发者可以利用Chainlink的去中心化区块链预言机将链下真实世界的数据和事件接入区块链环境。Chainlink内置的核心适配器可以轻松配置并验证来自任何开放API的数据。
458 0