- 博客(23)
- 资源 (8)
- 收藏
- 关注
原创 windows 10 下modelsim 10.4仿真UVM
本来一直是在linux下用vcs/irun+verdi,uvm对ip进行相关的验证操作的,本想着在自己电脑上装套vmare+vcs/irun一套,折腾了好久还是没成,算了转投modelsim吧,期间有些小折腾, 也一并记录下来1 安装modelsim 10.4https://pan.baidu.com/s/1gnjfEFbZyTKQ9eC9gZLelg提取码:wpy3本文件工程实例可以去我的资源里面下载这里面注意的是,文件夹内有crack目录,需要把他们都复制到安装modelsim目录/
2021-02-20 00:53:21
1654
原创 图像的前处理,你为什么不试试vitis libraries
最近做了一个项目,项目中有一个图像的前处理部分,具体实现的功能包括1.颜色空间转化(nv12->rgb)2.图像的resize(4k->480*360)3.scale和减均值((x-a)/b+c)类似这样的操作你觉得从头开始用RTL写需要多久,我觉得如果你没有现成的IP,自己一点一点写,再加调试时间不会太短,至少应该个把月,这还得是对熟手吧那用xilinx的 vitis library呢,3天,是不是挺夸张了,而且是3天后都上板了,而且结果正确,想不想学学先上github
2020-09-26 09:15:21
1387
4
原创 uvm_event之wait_trigger和wait_trigger_data的用法
相信大家对uvm event一定不陌生,对我这种半路出家的人来说,uvm event简直就是神器,好多需要进行时序控制,以及跳转触发的都可以通过uvm event实现。uvm event 用法1.文件a:uvm_event event1;//定义event1=uvm_event_pool::get_global("event1");//例化条件:event1.trigger();文件b:uvm_event event1;//定义event1=uvm_event_poo
2020-07-05 22:32:22
6809
2
原创 一张图看懂CNN运算
不知道哪位大神做得这张图,每每犯疑惑的时候都来看看这张图,瞬间又踏实了这张图是一个典型的input channel =3,output channel=2的情况,其中对输入的图像又涉及到了pad=1的操作,pad的处理可以保留原始图像的所有信息,pad的数据一般都是为0操作。图中的计算是还有一个stride的概念,及每次步进的距离,图中是stride=1。也可以用这张图的表...
2020-04-04 17:01:52
1992
原创 UVM对RTL kernel进行工程验证
年前的时候被分配了一些以前从没接触过的工作,用UVM配合组内同事验证本组内开发的RTL kernel。相信做IP验证工作的人来说肯定不陌生。可是对于纯在FPGA上做RTL的人,是第一次听说。接到这个任务的时候就疯狂看了看相关的资料,先后看了《UVM实战卷1》和《systemerilog验证测试平台编写指南》,其实也都是一边开发一边看,又不懂的就翻翻看。比较方便的是上一版组内的RTL ker...
2020-03-20 10:04:21
570
原创 sdaccel 和 vitis 对rtl 的kernel的要求
本节文章参考的代买为xilinx github上vitis 的事例工程,主要是讲解如何写用户自己的rtl kernel,具体参考链接如下:https://github.com/Xilinx/Vitis_Accel_Examples/blob/master/rtl_kernels/rtl_vadd/src/hdl/krnl_vadd_rtl.v话不多说,直接上顶层的rtl代码。本节事例是...
2019-12-08 15:27:28
4557
原创 如何将RTL kernel作为library加入到Vitis中
最近的工作主要是围绕vitis平台,持续开发了将近半年多的时间,从sdx的2018.3到目前的vitis 2019.2. 中间也历经了3个版本,从内部版本到最终的vitis面世,也看到了软件的非常多的进步。现在的工作是要将内部的RTL kernel要作为Vitis的库发布,整个的开发过程中也的确遇到了好多问题,对于一个新手来说尤其是只会软件或者只会FPGA的开发人员来说的确会比较麻烦,整个过程...
2019-11-10 10:11:24
1350
4
原创 ddr图像存储之时基矫正部分
又到了月更的时间了,翻了翻以前写的博客,发下fpga之4k图像处理中的时基矫正部分还没有写,本次就写这不分了。首先说说什么叫时基矫正,为什么要进行时基矫正。先来个简图吧,也好理解。你可以把ddr想象成为一个大的fifo,实质上就是在处理图像的异步时钟为题,你可以这样的想以下,一般情况下,输入的时钟是由串化器解串而来,输出的时钟是本地晶振产生,虽然你的输入和输出的时都有可能是14...
2019-09-21 22:00:23
641
原创 fpga实现cnn之脉动乘法理论篇
本次文章分为几个部分,主要细致介绍脉动,何为脉动,脉动的数据是什么样子的,下图可以看做是简单的脉动单元,共有P11到P33 9个计算单元,行列数据并不是同时刻到达计算单元,而是依次进入,说白了就是像FPGAer经常说的pipiline,这里面有个关键点是cnn的乘加操作,p11计算单元会在3个节拍进来6个数据,3个节拍后,p11=3*3+2*4+2*3=23,每个计算单元在计算的同时,数...
2019-08-25 14:19:51
926
原创 census变换verilog实现
上一篇文件已经介绍过match cost的rtl计算方式,主要思路就是sad,具体算法内容可以去网上随便找找,其实在算match cost时,可以结合census变换,这样可以很好的去除图像中光线对结果的影响。具体实现方式也比较简单,kernel采用5*5。这里需要对左右图像分别进行census变换,然后在对左右图像求取hanming距离。census算法公式,这里截取了...
2019-07-28 01:10:13
822
原创 fpga 之cnn高效实现方式
在fpga实现cnn中最重要的模块部分-conv计算部分,可以称为是用fpga加速的根本。而计算最重要的关键则是如何充分利用fpga内的DSP,目前本人用的主要是ultrascale+,对应的dsp为DSP48e2。实现conv的两种方式:(1)并行方式,目前大多数fpga的conv计算都不是采用的此种方式,简单的说,如果要计算一个3*3的conv,则需要9个dsp,可以在一个时钟内...
2019-06-02 11:08:11
9595
3
原创 双目测距match cost 之rtl实现
以后争取能达到月更,这次把双目测距的sad cost匹配代价求法详细介绍不废话,直接上图实现原理比较简单,主要是点减,具体rtl实现过程中会遇到两数相减出现负值的情况,如果这样直接求取绝对值即可,在rtl实现过程中可以按照如下操作:第一种方式:c <= result[ 8] ? ( ~result[7 : 0] + 1'b1 ) : result[7 : 0];也可以...
2019-05-04 23:04:03
675
原创 fpga 机器学习 rtl实现
准备开一个用fpga实现整个机器学习的专栏,也正好巩固自己目前所学的东西,同时也提高自己的code能力手撸一个cnn ip,其实目前cnn ip模式也挺固定,核心的conv计算,充分利用fpga内的DSP,怎么把ddr内的数据有效的存到片上RAM,IP的结构也比较固定,如下目前手里有块zedboard的板卡,准备在这上面实现整个功能,fpga内有arm核,一些处理也可以在软件上操作。...
2019-04-15 23:37:28
2130
原创 基于FPGA的双目测距工程
先写点,后面准备把自己做了半年的东西拿出来写写,今天先写个预告,后面详细写出来,包括算法,rtl,仿真,后面再zedboard上进行了测试,不过由于资源的问题还暂时放不下,后面还没找到时间进一步优化后面有时间把这些过程全写出来趁着有时间开始写一写,自己一直从事传统fpga图像处理方面,主要是编解码,图像分割,缩放之类,不过编解码有海思,分割画中画也比较easy,缩放又有专门的ip,所以对这...
2019-04-14 23:36:06
4337
3
原创 4*3G SDI子图像协调控制
快1年没更了,这一年发生了挺多事,换了家公司,感觉人也开始慢慢懈怠了,看了看自己身边的人,感觉一个一个慢慢都更加优秀了,觉得自己还差的很多,自己以前准备写的系列也没写完,趁着自己对以前做的东西还有印象,赶紧都记下来吧图像的分割方式如下:两种分割方式如上图所示,你可以想象为1幅3840*2160的图像,分解成为4幅1920*1080的图像,这4幅自图像通过3G SDI对外传输,而分...
2019-04-14 23:11:43
1839
1
原创 4k视频画面分割器
最近接触的项目都是和视频图像处理相关,尤其是4k图像相关,准备好好的把手里做过的东西写一写,主要也是怕自己忘了项目名称:4k视频分割器板卡主要包括:2块海思芯片,一块altera A10(270),一组ddr项目名字是自己起的,不过实现的功能正如项目名字,2块海思通过hdmi和a10相连,还有一路hdmi输入连接到a10芯片,a10芯片对外共有5路hdmi输出,海思负责视频解码,视频源通过外部网口...
2018-04-18 23:37:57
1857
转载 图像放缩中最近邻插值和双线性插值的基本原理
图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。当然,在计算机上,我们不再需要用放大尺去放大或缩小图像了,把这个工作交给程序来完成就可以了。下面就来讲讲计算机怎么来放大缩小图象;在本文中,我们所说的图像都是指点阵图,也就是用一个像素矩阵来描述图像的方法,对于另一种图像:用函数来描述图像的矢量图,不在本文讨论之列。越是简单的模型越
2017-08-27 20:49:22
486
原创 4k图像分割技术
为什么要进行4k图像分割?4K图像来自HDMI传输,当输入源为4K50P/60P时,HDMI输入输入数据速率达到18Gbps,实际的有效数据也在8G多,如果想要将如此大的数据对其它设备传输,需要一个快速的传输方式,会对fpga或者硬件设计人员造成较大的困扰。如果对4K图像进行分割,则传输4K图像数据时,可以用多条低速的传输线路代替一条高速的传输线路,fpga或硬件设计人员较为容易的设计。
2017-08-26 21:59:36
6860
原创 transceiver 接收和发送重配调试
这里首先说下什么是重配,其次阐述为什么要进行重配。解答:在fpga的高速收发器的使用过程在最开始的配置页面常常需要确定此收发器的接收或发送速率,收发器的参考时钟,往往当参数固定后,在后续的应用过程中会在此设定的速率下工作,但是当外部输入的速率发生变化时,此时已经配置好的收发器的速率就不能正常的接收或发送数据了,此时就需要人为的改变收发器的速率或参考时钟,达到重新配置transceiver的
2017-08-26 21:44:57
3377
原创 fpga hdmi接收和发送部分调试
接着上一部分开始写,一下都是自己在实际调试过程中遇到的问题或者是想法先科普点hdmi基础知识,hdmi一般会有4对差分线,其中3对传输数据,1对为随路时钟,scdc接口,hdcp接口,其中比较重要的是scdc接口,不但需要读取sink端的edid信息,再hdmi 2.0时还需要通过scdc接口配置sink端 control register,因为在初始状态下,sink端默认为hdmi1.4
2017-08-26 21:42:15
6363
原创 FPGA之4K图像处理
最近手里忙着一个项目,关于4K的图像处理,也做2个月了,感觉里面有一定的深度,给自己专门开一个版块,用于记录在4k解码卡的调试过程中所遇到的问题。整体功能:fpga接收到ts流后,经过一定步骤的预处理后,发送给海思4k解码芯片,解码芯片通过hdmi接口,将数据发送给fpga,fpga通过专用的hdmi ip接收数据,逻辑内部将4k(3840*2160)数据进行分割,通过4*3G SDI接口对外
2017-08-26 21:09:42
4466
1
转载 quartus 无法识别usb blaster确实帮了我大忙
一、Windows无法正常驱动USB-Blaster解决办法:自行手动安装驱动,参考文章:http://blog.youkuaiyun.com/chengbozhe/article/details/47335391不再赘述。二、Quartus无法识别USB-Blaster解决办法:Step1:检查任务管理器是否出现 jtagserver.exe,如果没有,则:右键我的电脑->管理-
2017-03-22 10:18:06
15996
6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人