yrun是处芯积律自研的regression脚本,yrun都有哪些东西呢?
1. 通过 cmpfile 将不同版本的compile 需求集中管理
2. 通过 testfile 将test集中起来管理。
3. 可以通过 yrun 跑 testfile里面的test 的regression
yrun -testfile soc_test
4. 可以通过ycheck 检查 历史regression的状态
中间状态
跑完状态
更多内容!请看下面项目介绍
soc3.0 项目都有哪些东西:
模块升级
soc v3.0在2.0项目的基础上增加了jtag、icache、cnn 和pwm模块。
jtag:
jtag是联合测试工作组(joint test action group)的简称,目前最主要用在集成电路的测试,也可以通过jtag结合dm(debug module) 实现芯片的调试,为软件开发者提供了一个芯片内部的后门。
jtag 状态机
dm(debug module):
dm 称为调试模块,该电路集成在芯片内部,方便开发者编程、调试、异常处理等功能,已经是芯片不可或缺的电路。
下图是riscv的debug module。
上述jtag和dm在我们soc v3.0里面已经集成。
以下是我们在环境中跑的test的部分波形:
cnn:
cnn是convolutional neural network (cnn) 的简称,在图像识别、语音识别、大语言模型中广泛的使用。
cnn的应用
典型的cnn结构由卷积层、池化层、连接层组成。
典型的cnn网络
在我们的soc v3.0里面,我们集成了一个简单的cnn网络。
其中包含卷积运算、池化运算、线性运算。
卷积运算
pwm:
pwm是pulse width modulation的简称,在灯光调节、电机控制等各个领域有广泛的应用。
pwm控制不同占空比
在我们soc v3.0中,我们集成了pwm模块。
下面是我们pwm模块跑出来的波形。
工具升级
在soc v3.0的环境上,我们研发了yrun 、ycheck、ygpt 等脚本工具。
yrun:
yrun支持跑编译、仿真、回归等多个功能。
详细功能介绍:
简洁的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验证环境中。
注意!!! 在我们提供的demo里面,yrun的源代码是提供给大家的。soc v3.0 验证环境里面的yrun由于做了更多的开发,我们对部分代码进行了加密处理。
ycheck: ycheck 是用于检查regression的状态使用。
使用方法如下:
ygpt: ygpt是将gpt引入到芯片的研发中,通过gpt读取代码,用户可以根据自己需求向gpt获取信息。例如:制定 testplan,写 testbench 等等。
下面是ygpt 使用的案例:
验证环境升级
目前我们soc v3.0 包含了 :
基于uvm的ip验证方法学
基于c的soc验证方法学
基于uvm的soc验证方法学
基于formal的验证方法学
下面我们详细介绍: 基于uvm的ip验证方法学 在我们日常的ip验证中,ip分为10大类,他们是:
处理器ip:包括中央处理器(cpu)和图形处理器(gpu。
通信ip:如usb、ethernet、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验证即可,其验证框架如下
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文件与观测到值进行比对,从而判断设计的正确性。
isp验证环境
算法类ip 验证环境—cnn
cnn也是采用uvm+c的验证方式,不同于isp,在cnn环境中,我们采用dpi的方式调用c文件,scorboard在拿到观测数据之后,直接通过dpi 调用 c函数获取预期的值。
cnn验证环境
基于c的soc验证方法学
soc环境集成了cpu,为了让cpu能够跑起来,一个简单的做法是让cpu直接吃指令执行,但是纯粹的机器指令可读性很差。采用c写test,然后用工具链编译成机器指令给cpu执行是一种常规的操作。 在soc v3.0中,我们提供基于c的soc验证环境。
基于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验证。
基于uvm的soc验证环境
基于formal的验证方法学
采用simulation 只能打到部分的场景,这个过程不免有些bug遗漏。基于数学推算的formal 可以完美的解决这个问题。
在我们soc v3.0中我们集成了一个基本的formal验证环境,方便大家理解formal验证的思想。
完善设计流程
芯片的前端设计涉及到语法检查,综合以及形式验证。在soc v3.0 里面,我们提供了语法检查,综合以及形式验证的脚本及相关的工艺库文件。
综合过程
形式验证
我们还做了哪些事情?
除上述之外,我们还在soc v3.0中集成了soc v1.1的改动:
补全了i2c_dev 和uart_dev;
2. 实现c代码中字符串打印;
3. 完善的qspi验证计划,验证用例和coverage数据;
4. 提供了qspi 和cnn的问题代码,让大家在debug中理解项目。
今年新能源汽车补贴在2020年基础上退坡20%
智慧校园户外液晶广告机信息发布系统解决方案
从芯片商到OEM厂商,从BAT到中小创业者围绕智能音箱的战争已经开启
Intel将从NVIDIA中抢夺云和数据中心市场份额
一次消谐器在电压互感器上的作用
自研的regression脚本yrun都有哪些东西呢?
奇瑞与华为合作,共同研发智能汽车
虹科技术 | 保障数据传输稳定性:BabyLIN产品的CRC算法实现
LED升压工作灯方案FP7209X+FP6195转模拟调光应用展示
频率合成技术发展浅析
简易坐姿提醒器电路两例
双胞胎单向(双工)塔顶放大器
基于RA4W1 32位MCU的物联网冷链监控方案
单相电机的工作原理及分类
存储硬盘多协议支持
51单片机模拟IIC以及引脚模式
多款高端旗舰齐发,小米高端之路愈行愈稳
分析企业将如何看待人工智能
MySQL索引失效有哪些场景
博泰车联网携擎感整车智能化平台入选高工智能汽车金球奖两大榜单