UVM实战[一]

一个新的连载系列,将以一个实际的UVM环境代码讲解的使用、机制等,更新周期会比较长。

文件说明

分享的文件是我个人和同学在参加复微杯大学生电子设计大赛中所完成的设计。赛题来自数字命题AI赛道,有兴趣可以了解一下

https://mp.weixin.qq.com/s/Hb4TrEDXG6uVVY7PZ0mdUw

RTL设计部分代码不予公开,提供的是通过Questasim加密后的文件,能够编译仿真但是无法阅读,例如:

`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "10.6c"
`pragma protect key_keyowner = "Mentor Graphics Corporation" , key_keyname = "MGC-VERIF-SIM-RSA-2"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
EBDDlVIhqXE3DzKivVjuI9OF3W7Y0FsnqRYxip5AT5Uavd7H/9i2xlih9gekfmGf
Cd0qkHQIV6O9VNGmvMgrCqG8CPHEpHWQSRjdFX8wDD3ujd9zz+RD9ESRX/5QMGni
6KvH4+Ud9W2gPqcUBW+QJJrnxusW/kwE1llXdQQtYFh5flre3gSn9uHcVRxRlVtd
PEJcD9unkcmyNMHrV4mH5MNp67AdZ5KrO6MmMPg5PYQr5ybE1UQlkxVaEDLMIfat
WVdNot6rUe6E7HTeos4bYqRI1ma/Ax3by9Xf9da41IU/TfCvSY+uX/2JSrJ31f8U
Zx9xgO7YbnPp7vhXyqu+dg==
`pragma protect data_method = "aes128-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 688 )
`pragma protect data_block
Ij4sxeYRzypcSQKWsDV4i6TeDbhU2nl3hjfQwr1KqPkZsPrTxXNXFC5H2D0rrAUd
6WDGQqEyu9obRLqowsgEMCw1Pqla8PBUJ3hycUzyiUYxvGmhP5sP/NnCA1DRZ9Y9
ya08fhTakN5V00k7AbMYGzUxz2M7iG+qpyp05fk8pYohdG3dW71b2za1CQJ7VEqc
/LxYj0eMW+QoMfwIPDdZAdKpa+Dju0oEO8+KB14EkPruq+93UyRbPlutkvsNsVDr
aMKM+mHa2i4yNgDpTZPk+7MSKC+uTcLrM7a/TQQ40p2AExumbCzSYsNd8lGe6jIh
0tcDrm+wJNyrh3eGzihXstoEwCbh/tYsxmJY8ghdWJ/xo2V7g4SHOugoWA6GGC3D
nPsMuQuJytDIErSJcPNkUZZ3Z5i7ZKx3m9kW4YOus7KdcFn21+XnDMD46rtNw/+c
b49lIMlJylLVKe0OG2KRKOO3ig/E5xnvyHt9rqYU52eHHOBAQrJ7ipvZCt7729vz
iKg5syv55Wc5og1vi7kmazU+42521T226ZodyFiQ11PZKNAQ6mMTiq27DDBTKN5z
zK+LTeejaPumeb4RsOgiPLrNTYHv96PYRzSIptGPCL8R8Rcm0ndCuo72DTKqEcxY
xFG4KEF0vhGxwHqEkZFNqDW1ATTp7s5zcZ6bXTXpFpGQnC1nOfdtwcllt/HNWHaD
9Xg4oDY2B36HlU6KeqTQBUbPb9VMNywpk9NSaVEz2MWQPv3Xh8Eg0uB4ftVZ+C9n
vfvSKO+xBTyGQgvj2QIwelMz6wDc1G4RghcxtHdi/qU64rCDvg5EOWjCSxR4O82R
Fs8c/NnWZJR1AzB8zut8bq/CKga3gzDM4DZ7qi2HMZqV44rCJOfcCfqBYl/g59LR
zZ9Boq26Vbm4yk6SnmXXIw==
`pragma protect end_protected

但是UVM环境部分代码完全公开,文件包括

顶层文件为tb.sv

结构说明

关于RTL的功能设计,可以翻阅原文连接中的答辩PPT,主要功能是实现了输入特征图(1-128)*(1-128),卷积核1-7,padding1-7,步长1-3,以及2*2pooling和Relu的功能。整体结构为

而整体的验证环境结构如下

由于时间紧迫,技能生疏,整体环境并不完善,代码也有欠缺,此外,也未加入寄存器模型,因此对寄存器的访问比较繁琐,后期会进行改进。

由于设计是进行卷积计算的,所以运行时间会比较长,checker通过软件算法对RTL的卷积计算结果进行比对,所以RTL完成一次卷积计算后,仿真时间会停滞一段时间用于软件的卷积计算,属于正常现象。

将.sv和.svp文件添加进工程后,顶层模块为tb,编译后在控制台输入vsim -voptargs=+acc work.tb即可开始默认的testcase,若要进行其他testcase,需要加上选项+UVM_TESTNAME=my_test,具体test名请查看conv_pkg.sv

推荐参考资料

推荐有一定SV基础的朋友进行学习,如果还没有可以参考下面几本书自学

绿皮书,主要包括SV的语法讲解

UVM primer,UVM入门讲解,包括OOP基本概念

白皮书,一本UVM翔实的工具书,很多参赛选手的UVM环境就是直接参考本书例子的

红皮书,包括从SV到UVM讲解,验证思想,验证管理等

微信后台回复"UVM实验"获取代码和PPT。

原文地址:https://www.cnblogs.com/icparadigm/p/12268318.html

时间: 2024-10-16 17:18:38

UVM实战[一]的相关文章

UVM实战[二]

本期将讲解UVM环境构成和启动方式.主要参考资料为 http://bbs.eetop.cn/thread-320165-1-1.html http://rockeric.com/ 环境构成 进行仿真验证的基本流程是 例化DUT 产生并发送激励 检测响应 检查响应是否正确 在验证环境中,产生并发送激励将会交给两个不同的类完成,即uvm_driver和uvm_sequence,检测响应通过uvm_monitor完成,而检查响应是否正确通过uvm_scoreboard.除了保证某项功能正确,我们还需要

《UVM实战》代码示例

首先是top_tb: `timescale 1ns/1ps`include "uvm_macros.svh" import uvm_pkg::*;`include "my_if.sv"`include "my_transaction.sv"`include "my_sequencer.sv"`include "my_driver.sv"`include "my_monitor.sv"`i

一起学IC验证:推荐资料合集,收藏专用

本文是从一个微信公众号上复制过来的,链接:https://mp.weixin.qq.com/s?__biz=MzIyMjYxNzA4NQ==&mid=2247484965&idx=1&sn=af7e8303c0ecac530067f02244734fe1&chksm=e82b8ab7df5c03a190b286ef9b504efa4fc080629de767466c73f171e238af227ca097d83d0c&scene=21#wechat_redirect

【机器学习实战】Machine Learning in Action 代码 视频 项目案例

MachineLearning 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远 Machine Learning in Action (机器学习实战) | ApacheCN(apache中文网) 视频每周更新:如果你觉得有价值,请帮忙点 Star[后续组织学习活动:sklearn + tensorflow] ApacheCN - 学习机器学习群[629470233] 第一部分 分类 1.) 机器学习基础 2.) k-近邻算法 3.) 决策树 4.) 基于概率论的分类方法:朴素

下载-深入浅出Netty源码剖析、Netty实战高性能分布式RPC、NIO+Netty5各种RPC架构实战演练三部曲视频教程

下载-深入浅出Netty源码剖析.Netty实战高性能分布式RPC.NIO+Netty5各种RPC架构实战演练三部曲视频教程 第一部分:入浅出Netty源码剖析 第二部分:Netty实战高性能分布式RPC 第三部分:NIO+Netty5各种RPC架构实战演练

C#网络编程技术FastSocket实战项目演练

一.FastSocket课程介绍 .NET框架虽然微软提供了socket通信的类库,但是还有很多事情要自己处理,比如TCP协议需要处理分包.组包.粘包.维护连接列表等,UDP协议需要处理丢包.乱序,而且对于多连接并发,还要自己处理多线程等等.本期分享课程阿笨给大家带来的是来源于github开源Socket通信中间件:FastSocket,目的就是把大家从繁琐的网络编程技术中彻底地解放和释放出来. 阿笨只想安安静静的学习下网络编程技术Socket后,将学习的成果直接灵活的运用到自己的实际项目中去.

下载Java8实战视频教程

1.15套java架构师,高并发,分布式,集群,大型分布式综合项目实战详情:https://my.oschina.net/java168/blog/863547 2.36套精品Java高级课及架构课,亿级流量,P2P金融,第三方支付,设计模式实战,程序调优,系统设计:https://my.oschina.net/java168/blog/1539323 下载Java8实战视频教程

[js高手之路]设计模式系列课程-组合模式+寄生组合继承实战新闻列表

所谓组合模式,就是把一堆结构分解出来,组成在一起,现实中很多这样的例子,如: 1.肯德基套餐就是一种组合模式, 比如鸡腿堡套餐,一般是是由一个鸡腿堡,一包薯条,一杯可乐等组成的 2.组装的台式机同理,由主板,电源,内存条,显卡, 机箱,显示器,外设等组成的 把一个成型的产品组成部件,分成一个个独立的部件,这种方式可以做出很多灵活的产品,这就是组合模式的优势 比如:家用台式机电脑,要求配置比较低, 这个时候只需要主板+电源+内存条+机箱+显示器+外设就可以了,不需要配置独立显卡 鸡腿堡+鸡翅+紫薯

秒杀系统架构分析与实战

0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有: 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,