0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自研的regression脚本yrun都有哪些东西呢?

sanyue7758 来源:处芯积律 2023-10-12 09:26 次阅读

yrun是处芯积律自研的regression脚本,yrun都有哪些东西呢?

1.通过 cmpfile 将不同版本的compile需求集中管理

b20b5466-684d-11ee-939d-92fbcf53809c.png

2. 通过 testfile 将test集中起来管理。

b21de842-684d-11ee-939d-92fbcf53809c.png

3.可以通过 yrun 跑 testfile里面的test 的regression

yrun -testfile soc_test

b23abdc8-684d-11ee-939d-92fbcf53809c.png

4. 可以通过ycheck 检查 历史regression的状态

中间状态

b24a96f8-684d-11ee-939d-92fbcf53809c.png

跑完状态

b25672ac-684d-11ee-939d-92fbcf53809c.png

更多内容!请看下面项目介绍

SOC3.0 项目都有哪些东西:

b264409e-684d-11ee-939d-92fbcf53809c.png

模块升级

SOC V3.0在2.0项目的基础上增加了Jtag、iCache、CNN 和PWM模块。

Jtag:

Jtag是联合测试工作组(Joint Test Action Group)的简称,目前最主要用在集成电路的测试,也可以通过JTAG结合DM(Debug Module) 实现芯片的调试,为软件开发者提供了一个芯片内部的后门。

b26edfe0-684d-11ee-939d-92fbcf53809c.png

Jtag 状态机

DM(Debug module):

DM 称为调试模块,该电路集成在芯片内部,方便开发者编程、调试、异常处理等功能,已经是芯片不可或缺的电路。

下图是RISCV的debug module。

b27aef2e-684d-11ee-939d-92fbcf53809c.png

上述JTAG和DM在我们SOC V3.0里面已经集成。

以下是我们在环境中跑的test的部分波形:

b28133ac-684d-11ee-939d-92fbcf53809c.png

CNN:

CNN是Convolutional neural network (CNN)的简称,在图像识别、语音识别、大语言模型中广泛的使用。

b28db26c-684d-11ee-939d-92fbcf53809c.png

CNN的应用

典型的CNN结构由卷积层、池化层、连接层组成。

b29cdc24-684d-11ee-939d-92fbcf53809c.png

典型的CNN网络

在我们的SOC V3.0里面,我们集成了一个简单的CNN网络。

其中包含卷积运算、池化运算、线性运算。

b2a848d4-684d-11ee-939d-92fbcf53809c.png

卷积运算

PWM:

PWM是Pulse Width Modulation的简称,在灯光调节、电机控制等各个领域有广泛的应用。


b2bc3844-684d-11ee-939d-92fbcf53809c.png

PWM控制不同占空比

在我们SOC V3.0中,我们集成了PWM模块。

下面是我们PWM模块跑出来的波形。

b2c536ce-684d-11ee-939d-92fbcf53809c.png

工具升级

在SOC V3.0的环境上,我们研发了yrun 、ycheck、ygpt 等脚本工具。

yrun:

yrun支持跑编译、仿真、回归等多个功能。

b2d2a110-684d-11ee-939d-92fbcf53809c.png

b2e0d910-684d-11ee-939d-92fbcf53809c.png  

详细功能介绍:

简洁的test 添加机制;

simulation和compile 分开管理;

支持只编译模式;

支持只simulation模式;

支持特定的 test list的 regression;

支持同时跑不同的regression;

支持 simulation 进行时在终端上打印log;

支持simulation 在后台运行;

支持特定 test list 中 特定test的 simulation;

支持 fail test的rerun机制;

支持中间查看特定regression的运行状态;

支持将regression的结果通过mail的方式发给指定的用户;

支持将regression的fail test的error 显示在regression的结果中;

支持用户定义FPGA simulation,Gate lever simulation,UPF simulation等。

在SOC V3.0里面,我们提供了yrun使用的demo,用户可以根据自己的需要将yrun应用到自己的IP和SOC验证环境中。

b2ee35b0-684d-11ee-939d-92fbcf53809c.png

注意!!! 在我们提供的demo里面,yrun的源代码是提供给大家的。SOC V3.0验证环境里面的yrun由于做了更多的开发,我们对部分代码进行了加密处理。

ycheck: ycheck 是用于检查regression的状态使用。

使用方法如下:

b2f9a21a-684d-11ee-939d-92fbcf53809c.png

b3064236-684d-11ee-939d-92fbcf53809c.png

ygpt: ygpt是将GPT引入到芯片的研发中,通过GPT读取代码,用户可以根据自己需求向GPT获取信息。例如:制定 testplan,写 testbench 等等。

下面是ygpt 使用的案例:

b30e2744-684d-11ee-939d-92fbcf53809c.png

验证环境升级

目前我们SOC V3.0 包含了 :

基于UVM的IP验证方法学

基于C的SOC验证方法学

基于UVM的SOC验证方法学

基于Formal的验证方法学

下面我们详细介绍: 基于UVM的IP验证方法学 在我们日常的IP验证中,IP分为10大类,他们是:

处理器IP:包括中央处理器(CPU)和图形处理器(GPU

通信IP:如USBEthernet、PCI Express等。

存储IP:如存储控制器、闪存控制器等。

数字信号处理IP:如图像处理等。

模拟IP:如模拟-数字转换器ADC)和数字-模拟转换器(DAC)等。

安全IP:如加密引擎、随机数生成器等。

电源管理IP:包括用于管理电源和能效的电源管理单元。

时钟IP:包括时钟生成器和分配网络,用于同步和时序控制。

外设IP:包括各种外设,如UART、SPI、I2C等,用于与其他设备进行通信。

自定义IP:一些芯片制造商或设计团队可能会开发自定义的IP。

在这些IP里面,我们根据验证采用的不同策略可以将其归为四大类:

第一类 : 协议类IP,如USB,UART,时钟IP等;

第二类 : 算法类IP,如ISP,CNN等;

第三类 : 处理器IP,如CPU,GPU等;

第四类 : 模拟IP,如ADC,DAC等。

在我们SOC V3.0 项目中,我们开发了协议类IP的验证环境和算法类IP的验证环境。

协议类IP 验证环境—QSPI

QSPI 采用UVM验证即可,其验证框架如下

b3211d2c-684d-11ee-939d-92fbcf53809c.png

QSPI验证环境

QSPI 验证环境包括APB Agent,Register Model,Register Adapter, QSPI Scoreboard,QSPI Monitor,Sequencer 等。

算法类IP 验证环境—ISP

ISP 采用UVM+C的验证方式,UVM和C的交互有多种方式,在ISP环境中,我们选择将C编译成可执行文件,然后通过UVM环境调用可执行文件生成带有预期的数据的txt文件,UVM 环境通过读取预期数据的txt文件与观测到值进行比对,从而判断设计的正确性。

b328d954-684d-11ee-939d-92fbcf53809c.png

ISP验证环境

算法类IP 验证环境—CNN

CNN也是采用UVM+C的验证方式,不同于ISP,在CNN环境中,我们采用DPI的方式调用C文件,scorboard在拿到观测数据之后,直接通过DPI 调用 C函数获取预期的值。

b32effc8-684d-11ee-939d-92fbcf53809c.png

CNN验证环境

基于C的SOC验证方法学

SOC环境集成了CPU,为了让CPU能够跑起来,一个简单的做法是让CPU直接吃指令执行,但是纯粹的机器指令可读性很差。采用C写test,然后用工具链编译成机器指令给CPU执行是一种常规的操作。 在SOC V3.0中,我们提供基于C的SOC验证环境。

b336c082-684d-11ee-939d-92fbcf53809c.png

基于C的SOC验证环境 我们提供了包括UART,I2C,SPI,CNN,ISP在内的诸多IP的C test。用户可以通过仿真了解C的编译和执行过程,对芯片的运行有个更加系统的理解。

基于UVM的SOC验证方法学

在SOC环境中,采用C生成机器码让CPU执行的过程会占用大量的仿真时间,特别是一些复杂的大芯片,另外考虑到IP验证环境开发过类似的test,很多公司希望在SOC环境中能够复用这些test,那么一套基于UVM的SOC验证环境就非常有必要。

在我们SOC V3.0环境中,我们集成了基于UVM的SOC验证环境,用户在拿到我们代码后,可以通过仿真了解了UVM是和如何SOC协同完成SOC验证。

b343c714-684d-11ee-939d-92fbcf53809c.png

基于UVM的SOC验证环境

基于Formal的验证方法学

采用simulation 只能打到部分的场景,这个过程不免有些bug遗漏。基于数学推算的Formal 可以完美的解决这个问题。

b34d419a-684d-11ee-939d-92fbcf53809c.png    

在我们SOC V3.0中我们集成了一个基本的Formal验证环境,方便大家理解Formal验证的思想。

b35d4ef0-684d-11ee-939d-92fbcf53809c.png

完善设计流程

芯片的前端设计涉及到语法检查,综合以及形式验证。在SOC V3.0 里面,我们提供了语法检查,综合以及形式验证的脚本及相关的工艺库文件。

b36a6c7a-684d-11ee-939d-92fbcf53809c.png

综合过程

b3784afc-684d-11ee-939d-92fbcf53809c.png

形式验证

我们还做了哪些事情?

除上述之外,我们还在SOC V3.0中集成了SOC V1.1的改动:

补全了I2C_DEV 和UART_DEV;

b3803dac-684d-11ee-939d-92fbcf53809c.png

2. 实现C代码中字符串打印;

b387edf4-684d-11ee-939d-92fbcf53809c.png

b38f2696-684d-11ee-939d-92fbcf53809c.png

3. 完善的QSPI验证计划,验证用例和coverage数据;

b395264a-684d-11ee-939d-92fbcf53809c.png

4. 提供了QSPI 和CNN的问题代码,让大家在debug中理解项目。

b3a291fe-684d-11ee-939d-92fbcf53809c.png





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 集成电路
    +关注

    关注

    5321

    文章

    10736

    浏览量

    353394
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4901

    浏览量

    209907
  • soc
    soc
    +关注

    关注

    38

    文章

    3745

    浏览量

    215686
  • JTAG
    +关注

    关注

    6

    文章

    383

    浏览量

    71151
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27169
  • jtag接口
    +关注

    关注

    0

    文章

    32

    浏览量

    13543
  • PWM模块
    +关注

    关注

    0

    文章

    13

    浏览量

    9382

原文标题:SOC3.0 regression脚本 yrun 有哪些东西?

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    手机厂商芯片或是下一个变革起点

    ,也有消息称,魅族将和德州仪器合作研发自主手机处理器,而其他厂商也时而传出要做处理器的消息。  那么,为何手机厂商不惜重金投入也想要自主研发处理器?  芯片可大幅降低手机成本  今年2月底,小米
    发表于 05-27 16:05

    logistic regression代码与调用sklearn库中的logistic regression代码

    Logistic Regression作为二分类器的手写代码 vs 调用sklearn库
    发表于 05-31 14:55

    无名科创飞控概述

    介绍初步无名飞控解(上)锁与遥控器简单设置无名科创飞控平台,经过武汉科技大学连续四届研究生师兄们参考国内外主流飞控(APM、Pixhawk、Autoquad、MWC、CC3D、无穷开、ANO
    发表于 08-01 11:38

    Rokid芯片抢先看

    又一AI芯片浮出杭州西溪:阿里之后,Rokid芯片也曝光了
    发表于 06-05 13:00

    Multivariate Linear Regression多变量线性回归

    吴恩达机器学习-手写笔记三 - Multivariate Linear Regression 多变量线性回归
    发表于 06-11 17:02

    BI软件的ETL用开源的好,还是的好?

    的话来说,就是你能及时找到解决问题的人。 从长远来看,开源ETL是一时便利,后患不是无穷,反正是有点多且处理成本不可控。而ETL由于底层代码都是BI软件厂商的自己人编写的,就算出现bug也能以
    发表于 08-27 09:44

    二次电子探测器具体是什么东西

    最近花了一个多月的时间在做Tia电路,用在公司的扫描电子显微镜上,后来才知道这个原来有一个专业的术语叫做——二次电子探测器,具体是什么东西,下面我为自己最近的心得做一下记录,也希
    发表于 07-29 07:49

    太强了!华为鸿蒙编程语言,行业大佬都已经偷偷学起来了

    再次告诉了我们一个道理。虽然我们要重视底层技术的自立,但是并不是所有底层技术我们都要原汁原味,适当地“取其精华”也未尝不可,大家认为?—————— 原创:老王丨【个人微信:spoto777;公众号:鸿蒙开发者老王】华为认证
    发表于 10-25 16:53

    苹果射频芯片?OPPONPU芯片!芯片的国产替代需要跨越三个误区!

    。该芯片基于DSA架构和台积电先进6nm工艺制造,通过AI算力与算法的结合,在高分辨、高色数无损成像、AI算法和HDR动态范围等方面,将手机计算影像的表现推上了一个新的台阶。系统厂商、终端厂商芯片
    发表于 01-02 08:00

    如何解决RK3399+底板不支持HDMI热拔插问题?

    你好!采购的RK3399核心板+公司的底板,现在发现只能在插入HDMI时启动才能输出,而当开机之后,再插入HDMI显示器则无输出,这个能否把hdmi设置成不管接不接显示器都固定输出
    发表于 12-30 06:23

    有没有工业电力方面的板子?是plc

    有没有工业电力方面的板子?是plc
    发表于 05-11 03:51

    高通骁龙8 Gen4放弃公版:升级架构Oryon CPU

    ARM正酝酿对其IP授权模式进行大刀阔斧地改革。 对此,数码闲聊站分享称,ARM授权收紧,高通最快在SM8750也就是骁龙8 Gen4开始使用架构Nuvia,2+6 8核设计。 此前,虽然高通骁
    发表于 05-28 08:49

    【求助】RK3568工控板,原厂SDK的Linux启动失败

    公司按照瑞芯微官方设计了一块3568工控板,主要的外设就原生两路GMAC外接了裕泰的8531SH,另外通过PCIE3X2外接了一个PCIE网卡。 开发板回板后跟硬件的同事一起调试原厂的SDK
    发表于 10-09 08:29

    scripts【各类编程脚本

    scripts【各类编程脚本】,好东西,喜欢的朋友可以下载来学习。
    发表于 02-18 16:29 0次下载

    什么是脚本脚本程序学习

    脚本中编写VB脚本代码。可以象使用系统函数一样使用项目中完成的脚本。创建脚本时,确定其型号并定义传送参数。“Function”类型的脚本
    的头像 发表于 05-11 10:39 6088次阅读
    什么是<b class='flag-5'>脚本</b>?<b class='flag-5'>脚本</b>程序学习