自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 (UVM验证学习21) apb timer的参考模型和覆盖率模型实现

思路也是首先实现父类timer_subscriber,实现计分板和覆盖率模型的公用部分逻辑。

2023-03-08 15:57:08 1299

原创 (UVM验证学习20)Verilog手撕代码2-nowcode verilog进阶题(CDC)

就是一个将a时钟域的使能信号同步到b时钟域的小模块,首先在a时钟下用D触发器缓存使能和数据,随后在b时钟下用两级D触发器同步使能信号,最后按照b时钟域同步过来的使能信号选择是保持当前dataout还是输出datain。双端口RAM给出了示例,然后是有两个输入时钟,分别是读时钟和写时钟,然后读写操作也有分别的使能端口和地址端口,读有一个输出端口,写有一个输入端口。最后就是ram的读写使能信号不应该与同步fifo的读写使能信号直连,还需要考虑读空和写满时不能读和写,否则会出现在一个固定位置上的覆盖写和重复读。

2023-02-21 16:50:48 266

原创 (UVM验证学习19)Verilog手撕代码2-nowcode verilog进阶题(序列检测+时序逻辑)

然后三角波需要一个状态机,因为当wave>0的时候,需要判断wave接下来是+1还是-1.最简单的方法是reset的时候规定为down,然后,每次需要判断的时候基于现在是rise还是down,加上wave是0还是20两个极值点,同步修改wave和rise/down指示器。最好还是用计数器,每次输入有效时,计数器加一,读进来一位数到reg_data,reg_data是做成一个fifo,先进先出,每次计数器从0数到5正好对应一个6位输出,然后把reg_data的值复制到输出端口就可以。

2023-02-21 12:16:14 339

原创 (UVM验证学习18) Verilog手撕代码1-nowcode verilog入门题

主要是意识到T触发器是输入端0保持,输入端1反相;D触发器才是接收数据。然后有个说法是异步复位同步释放,既能捕捉同步复位可能捕捉不到的复位信号,由于释放是同步的,又可以减少亚稳态的可能。奇偶校验输出是线网类型,使用assign赋值移位运算与乘法要注意的问题是out是11位的,但是d是8位的,使用移位进行乘法时,如果module内使用的reg也是8位的,可能会出现溢出的情况,比如我用一个reg [7:0]data存输入d,那么乘7就应该使用而不能用因为data本身的位宽和out不一致,可能会溢出。

2022-12-05 18:45:10 334

原创 (UVM验证学习17) UART通信协议概览

两个uart设备之间异步通信,通信时不需要时钟线,需要在两个uart设备上指定相同的传输速率,以及空闲位、起始位、校验位、结束位,即需要遵守相同的协议。例如数据传送速率是120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率位10*120=1200 bit/s = 1200波特。:在通信的任意时刻,线路上可以同时存在双向的信号传输,全双工场景下,通信两端都设置了发送器和接收器,所以可以进行数据在两个方向上的同时传送,而无需进行方向的切换。

2022-11-26 19:57:11 368

原创 (UVM验证学习16) SPI通信协议概览

spi通信协议概述

2022-11-26 19:06:32 710

原创 (UVM验证学习15) I2C总线协议概览

(SCL)和(SDA).所有的通信都是由主设备发起,从设备响应,实现数据的传输。

2022-11-22 13:03:48 1040

原创 (UVM验证学习14) AXI总线协议

AXI学习笔记

2022-11-21 20:07:30 1482

原创 (UVM验证学习13) apb和ahb的另外一些笔记

APB版本改变PPROT:一种保护信号,可支持APB上的非安全传输和安全传输。PPROT [0]:0:普通;1:特权。一些master使用它来指示其处理模式。特权处理模式通常在系统内具有更高级别的访问权限。PPROT [1]:0:安全;1:非安全。这用于需要更大程度区分处理模式的系统中。PPROT [2]:0:数据;1:指令。该位指示事务是数据访问还是指令访问。此指示仅作为提示,并非在所有情况下都是准确的。PSTRB:一个写选通信号,用于在写数据总线上进行稀疏数据传输.

2022-11-21 17:24:19 1826

原创 (UVM验证学习12) apb timer源码阅读和标准阅读

如果CTRL[0]=1 enable,再考虑EXTIN的作用,如果EXTIN作为enable(CTRL[1]=1),则需要EXTIN为高,如果EXTIN作为时钟(CTRL[2]=1),则需要检测到EXTIN要进行低到高翻转,这种情况下,就可以让计数器递减计数,递减到0时自动reload;对对应的寄存器(CTRL,RELOAD,CURVAL)进行写操作,注意cur_val寄存器除了要响应写操作,当计数器正常计数时,也需要随时钟更新值,这部分逻辑也在这里。无论是生成还是清除,都需要更新INT寄存器。

2022-11-10 19:16:59 1348

原创 (VUM验证学习11) 使用ahb vip对GPIO进行验证框架搭建,寄存器模型集成和测试点拆解编写

逻辑上来说,GPIO相当于一个bridge结构,需要有master端和slave端,但是这里将slave端的数据驱动放到interface里做,不单独实现slave端。相比ahbram,验证结构没有大的变化,区别是集成了寄存器模型,没有实现scoreboard,check全部实现在seq端。

2022-11-10 16:44:21 2185

原创 (UVM验证学习10) GPIO源码阅读

GPIO的源码分成三个部分,分别是ahb_gpio.v, ahb_to_iop.v, iop_gpio.v对应的是顶层模块,ahb模块和io模块。顶层模块只对后面两个模块进行了例化和连接。

2022-11-10 13:44:42 700

原创 (UVM验证学习9) gpio标准阅读

AHB GPIO全称是AHB通用输入输出接口模块,它提供了具有以下特性的16bit IO接口.

2022-11-09 18:53:45 926

原创 (UVM验证学习8) 使用ahb vip对ahbram进行测试-测试拆分和scb实现

虽然ahb vip有一些不足,但是暂时先使用它,考虑怎么对ahbram进行验证和测试。检查还是会在两个部分出现,对于简单的测试,check可以直接放置在seq中,如果测试内容较为复杂,就需要把check的位置移动到scoreboard处进行检测。在ahbram中,scoreboard通过使用mem关联数组模拟ahbram的行为,相当于一个简陋的参考模型,这样一来,每次检测到写操作时,就同样将内容写入到scb的关联数组中。如果是读操作,则将monitor传来的读得数据与关联数组中的内容进行比较就可以了scor

2022-11-09 18:01:09 1789 1

原创 (UVM验证学习7) ahb master验证组件实现学习

endclass// 只需要包含config和vif首先定义基类driver,可以被master端和slave端的driver继承,包含一些通用方法forkjoinendtaskendendtaskendtaskendtasklendclass随后定义master的driver,主要是重载一些父类提出的虚方法。

2022-11-09 14:28:32 1481

原创 (UVM验证学习6) ahbram 源码阅读

这里假设地址长度为14,然后用地址的低二位的四种情况00, 01, 10, 11指示一个字的4个字节, 则可用的字地址范围为[0 : 2^12-1];然后分别用4个reg类型的存储块存储一个字的四个字节.如果是使用字节地址,则字节地址的范围响应的是[0: 2^14-1]

2022-11-08 10:46:23 866

原创 (UVM验证学习5) ahb协议阅读

ahb协议学习笔记

2022-11-07 20:34:06 829

原创 (UVM验证学习4) apb watchdog源码阅读

watchdog源码阅读

2022-11-07 19:43:47 666 2

原创 (UVM验证学习3)apb watchdog scoreboard/coverage_model 实现

watchdog subscriber scb cov 实现思路

2022-11-05 13:35:45 605

原创 (UVM验证学习2) AMBA APB 协议学习和uvm apb master/slave实现

AMBA apb协议学习和UVC实现思路

2022-11-05 11:01:43 940

原创 (uvm验证学习1) apb watchdog 标准阅读和测试点记录

apb watchdog本身是基于一个递减的计数器,计数器的初始值是从WDOGLOAD寄存器读取的。在一些条件满足时,当计数器的值递减到0,输出接口的WDOGINT会拉高。图中只记录了WDOGINT和WDOGRES被拉高的两次计数器递减到0的过程,需要注意的是这两个信号能够被拉高的前提是对应的enable位被设置。当wdog发现interrupt信号已经拉高后,若是内置的计数器又一次递减到0,会拉高WDOGRES信号,随后。

2022-11-03 15:16:22 1663

原创 访存模式分析实验思路(毕设笔记9)

访存模式分析实验思路(毕设笔记9)因为作者只是个刚刚修读过人工智能基础的入门菜鸡,然后这次要做的是针对访存数据进行无监督学习。数据大概长这个样子:0x7f1eae6dc103:W 0x7fff31765108(from Pin)指令地址,访存方式,存储地址0x7faf78ee1103,w,8,0x7ffd865120c8(from DynamoRIO)指令地址,访存方式,数据大小,存储地址首先是需要了解一下聚类的常见方式和实现,参考了这篇https://cncws.github.io/int

2021-03-16 16:14:35 336 1

原创 基本机器学习算法的C/C++实现(毕设笔记8)

基本机器学习算法的C/C++实现(毕设笔记8)拿着找好的例程去用dynamorio跑了一下发现了问题,稍微带一些图形界面的例程把访存行为记录下来都有5、6个G,分析起来难度很大,用聚类分析也跑不出来什么结果,这次决定针对基本的机器学习算法进行寻找,记录一下。已有的可用例程:svm:libsvmpca:Armadillokmeans:Armadillo1首先找了下logistic regression的C++实现,打算试一下这个:https://github.com/google/sensei

2021-03-13 21:02:34 617

原创 openvino对预训练模型的推断实现(毕设笔记7)

openvino对预训练模型的推断实现(毕设笔记7)常见的CNN模型: LeNet-5 AlexNet VGG-16 Inception-v1 Inception-v3 ResNet-50 Xception Inception-v4 Inception-ResNets ResNeXt-50试着找一找有没有相应的C/C++实现,首先LeNet-5可以使用tiny-CNN中的例程。alexnet:https://github

2021-03-10 15:12:50 473

原创 常见机器学习算法例程分析(毕设笔记6)

常见机器学习算法例程分析(毕设笔记6)年后有两门课要考试,再加上摸摸鱼。。就到现在了。这次打算从毕业设计会用到的几个简单的开源库开始分析,最后分析opencv的。libsvm目标算法:SVM使用到开源库自带的例程svm-train,使用的数据是package中自带的心率数据(heart_scale).数据集特征:271个数据点,标签为正负1,数据维度为13维训练方式:./svm-train heart_scale优势:具有较多备选数据集https://www.csie.ntu.edu.tw/

2021-03-05 15:26:21 463 1

原创 论文阅读记录(Efficient Processing of Deep Neural Networks: A Tutorial and Survey)(毕设笔记5)

论文阅读(Efficient Processing of Deep Neural Networks: A Tutorial and Survey)(毕设笔记5)section 1: 导言section 2: 介绍DNN的历史和应用,说明DNN的重要性section 3: 概述了DNN的基本组成部分,介绍了一些流行的DNN模型section 4: 介绍了用于DNN研究和开发的各种资源section 5: 介绍了处理DNN的硬件平台,和各种用于提高吞吐量和能效的优化section 6: 讨论了混合信

2021-02-03 15:26:09 667

原创 OpenCV4在Ubuntu20.04上的安装与CPP样例运行(毕设笔记4)

OpenCV4在Ubuntu20.04上的安装与CPP样例运行(毕设笔记4)在Ubuntu20.04上安装OpenCV真的要把我搞吐了。。特别是我需要运行opencv里面自带的CPP样例来获取一些数据,没办法使用python安装的方法,只能进行源代码编译,每次一编译就是大几个小时。。。还老是出错。然后我最终是参考了这篇博文的安装方式和ippicv提前下载才勉强搞定。下面是满足我自己需要的opencv安装注意点:1.不要安装opencv-contribu,安装过程中一直会出现boostdesc_bgm

2021-02-01 10:44:10 468

原创 基本机器学习算法C++库(毕设笔记3)

基本机器学习算法库(毕设笔记3)

2021-01-31 09:20:07 474

原创 dynamoRIO的基本使用(毕设笔记2)

基于C/C++的机器学习算法实现(毕设笔记2)首先备选项有调用openCV和纯C/C++实现。

2021-01-26 17:10:04 2531 1

原创 动态二进制修改软件Pin的学习使用(毕设笔记1)

毕业设计题目是基于机器学习算法的访存模式分析,借鉴大佬论文打算使用pin等插桩软件获取算法的访存行为数据,初学,记录一下过程和思考

2021-01-23 15:21:59 640

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除