FPGA验证之SystemVerilog+UVM
验证中通常要搭建一个完整的测试平台和写所需要测试用例。而verilog这种硬件描述语言是出于可综合成电路的目的设计出来的,所以它在书写测试平台和测试用例是不够方便的(测试平台和用例不需要综合成电路)。而SV正是由于它不需要满足可综合性,所以它变得非常灵活,它引入了面向对象语言的概念。在验证方面,如果说verilog是C语言的话,那SV就是C++,他不光有verilog的所有特性,还有自身面向对象的特性。如果你了解一点面向对象的概念的话,应该能够更好地理解其中的差异。
但说到底SV实际上只是一种语言,它撑不起现在芯片庞大的验证规模。就像英语,你光知道词汇和语法是不够的。你需要一种模版,来让行文变得容易、流畅和优美,来应付各种复杂的场景。SV这种语言之上的就是UVM、OVM等方法学。
说是叫方法学,其实UVM更像是一种库。你调用这种库的时候,就可以使用库中各种写好的函数。更棒的是,你可以使用它预设好的成熟的框架体系。这样大量的测试平台所需要的代码都可以复用,作为验证工程师,你只需要集中注意力去设计你所需的测试用例,考虑会发生故障的情形就可以了。
SystemVerilog主要适用于模块级/IP级验证,但感觉与上层软件衔接的流畅度没有SC好!虽然sv实现了UVM思想,但还是没有充分体现UVM的统一二字~这一点有点硬伤~
SC的UVM库马上就要推出了~后面就有得一瞧了~如果综合工具再给力一点,使用SC描述IC前段设计、验证的所有阶段也不是不可能~
其实学什么都是相通的~关键是要贴合项目去实践。如果有大量的项目来喂你,效果会很好~^_^
FPGA验证之SystemVerilog+UVM的更多相关文章
- ( 转)UVM验证方法学之一验证平台
在现代IC设计流程中,当设计人员根据设计规格说明书完成RTL代码之后,验证人员开始验证这些代码(通常称其为DUT,Design Under Test).验证工作主要保证从设计规格说明书到RTL转变的正 ...
- SOC芯片的FPGA原型验证
FPGA验证在SOC设计非常重要,一般而言,做一些RAM和FIFO的替换以及相应代码转换.具体分下面几步: 1 替换RAM,FIFO和时钟 RAM和FIFO控制器需要RAM的接口都放在了设计顶层,方便 ...
- 入行数字IC验证的一些建议
0x00 首先,推荐你看两本书,<"胡"说IC菜鸟工程师完美进阶>(pdf版本就行)本书介绍整个流程都有哪些岗位,充分了解IC行业的职业发展方向.<SoC设计方法 ...
- FPGA做正则匹配和网络安全,究竟有多大的优势?
FPGA做正则匹配和网络安全,究竟有多大的优势? 西电通院专用集成电路课程学习 云导播 网络安全已经被提升为国家战略的高度,高校里面的新增的一级学科,去年9月份,中央网信办.教育部公布了“一流网络安全 ...
- 对比 Verilog 和 SystemVerilog 中的基本数据类型
作为引子,首先来看一段描述,该段介绍了SystemVerilog对比Verilog在RTL设计和建模时的新特性之一(logic数据类型),然后下文我再展开对比介绍Verilog和SystemVeril ...
- 数字IC设计工程师的知识结构
刚毕业的时候,我年少轻狂,以为自己已经可以独当一面,庙堂之上所学已经足以应付业界需要.然而在后来的工作过程中,我认识了很多牛人,也从他们身上学到了很多,从中总结了一个IC设计工程师需要具备的知识架构, ...
- Xilinx DCM 使用---- 输出频率问题
最近在使用Xilinx FPGA验证项目,使用DCM将50M晶振分频得到20M时钟.但是下载代码到板子上验证,发现板子完全不工作. 然后 测量时钟,发现根本就没有20M时钟.查找资料,以及跟以前项目对 ...
- 通过文件读写方式实现Matlab和Modelsim的联合仿真
虽然Modelsim的功能非常强大,仿真的波形可以以多种形式进行显示,但是当涉及到数字信号处理的算法的仿真验证的时候,则显得有点不足.而进行数字信号处理是Matlab的强项,不但有大量的关于数字信号处 ...
- 【CPU微架构设计】分布式多端口(4写2读)寄存器堆设计
寄存器堆(Register File)是微处理的关键部件之一.寄存器堆往往具有多个读写端口,其中写端口往往与多个处理单元相对应.传统的方法是使用集中式寄存器堆,即一个集中式寄存器堆匹配N个处理单元.随 ...
随机推荐
- linear-gradient 纯CSS3项目价格表切换代码
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8&qu ...
- CentOS7.6 yum方式安装mysql2.7.25
在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB 1 下载并安装MySQL官方的 Yum Rep ...
- 4.9cf自训9..
cf401D 状态压缩dp好题,每次把新加入集合的数字放在最后即可 /* 它可以通过重新排列数字n, 它没有任何前导零, x除以m后的余数等于0. 每次把新加的数放在最后 dp[i][j]表示状态i下 ...
- Sublime Text 3 常用插件
我在开发过程中,需要经常使用的插件,记录下来,省得到处寻找. Emmet 前端开发必备,您可以轻松快速地编写HTML.一个可以极大地改善工作流程的工具包.Emmet绝对的节省时间. ColorHelp ...
- [SignalR2] 认证和授权
SignalR自身不提供任何用户认证特征,相反,是直接使用现有且基于(Claims-based)声明认证系统(关于这方面知识详见参考资料),非常明了,不解释,看代码中的验证代码: protected ...
- Classification
kNN1 # -*- coding: utf-8 -*- """ kNN : 최근접 이웃 """ import numpy as np # ...
- 【转】Oracle imp 总是不停地重复闪烁
http://blog.itpub.net/7282477/viewspace-1003160/ 在dos下执行: imp username/password buffer=1000000 file= ...
- Pop Star 1.2.5
原文链接https://www.cnblogs.com/zhouzhendong/p/Pop-Star.html 是VB写的. 年代久远,代码太丑,原码不公开. 下载链接 仅支持Windows,需要解 ...
- vue.cli脚手架初次使用图文教程
vue-cli作用 vue-cli作为vue的脚手架,可以帮助我们在实际开发中自动生成vue.js的模板工程. vue-cli使用 !!前提:需要vue和webpack 安装全局vue-cli npm ...
- stm32位操作详解
stm32位操作详解 STM32位操作原理 思想:把一个比特分成32位,每位都分配一个地址,这样就有32个地址,通过地址直接访问. 位操作基础 位运算 位运算的运算分量只能是整型或字符型数据,位运算把 ...