- 博客(16)
- 资源 (19)
- 收藏
- 关注
原创 五、PCIE开发之XDMA使用
整个专栏是基于真实的项目需求,现在整个项目已经交互,现在只是把之前做的工作整理出来。前面我们已经介绍了基于KMDF的开发环境搭建,并且使用了一个简单HelloWorld项目介绍了KMDF的调试方式,接下来从这节开始,将讲述项目中FPGA部分的开发。考虑到项目周期和实际需求,PCIE部分开发是基于XILINX 的XDMA核,并且使用了PIO和DMA方式传输数据。具体的XDMA核使用如下。
2023-12-30 17:39:22
1471
原创 四、KMDF开发之traceview跟踪打印信息
文章是讲述windbg进行调试KMDF驱动,windbg虽然可用进行断点调试,但是它也有不方便之处,比如需要双机联调,另外还需要对KMDF运行流程比较熟悉,不然断点打在哪里都是比较头疼的事情,而使用traceview就没有这些烦恼,traceview只需要在源码里面添加需要打印的信息,在就可用在本机进行调试。
2023-12-30 16:49:18
1000
原创 三、KMDF开发之 windbg基于网线的双机调试
windbg双机调试我这里使用的是两台电脑,一台叫主机(运行调试代码的电脑),另一台叫目标机(安装驱动的电脑),为了简单方面,两台电脑之间我直接用网线对插(不用对插也可以,但是需要两台电脑在同一局域网,另外,除了对插网线以外,主机和目标机都不要再连其他网络,以免后续容易出错)。
2023-12-30 16:47:52
990
原创 二、KMDF开发之HelloWord
最终我们是要自己开发PCIE驱动,这里使用HelloWord工程把整个环境打通,下一篇将讲KMDF双机调试环境的搭建,开发环境的搭建见上一篇博文《1.5、右键解决方案,然后点击【生成解决方案】,如果出现以下错误,请参考此文进行解决《1.4、创建后,在资源管理里面可以看到以下的模板文件。重新生成解决方案,至此增加打印信息完成。在项目路径下,可以看到生成以下文件。1.1 运行VS,点击创建新项目。1.6、编译成功后,输出信息如下。第一步、创建KMDF项目。1.3、填写项目信息。至此,项目创建完成。
2023-12-30 14:05:59
526
原创 Tips:VS2022提示MSB8040 此项目需要缓解了 Spectre 漏洞的库解决方法。
MSB8040 此项目需要缓解了 Spectre 漏洞
2023-12-30 13:49:20
2362
1
原创 一、KMDF开发之环境搭建
本专栏基于真实的项目需求进行编写,项目要求开发一套系统,架构为PCIEx8 + 4路GTX进行数据传输,同时还需要基于KMDF开发PCIE驱动。所以本专栏主要内容包括:一、PCIEx8 + 4路GTX的FPGA系统开发。二、基于KMDF的PCIE驱动开发。
2023-12-30 12:46:41
726
原创 芯片测试之一:简介
测试的目的就是为了验证生产出来的芯片是否达到当初的设计要求(spec需求),通过测试对芯片进行筛选分类,把一些残次品分选出来;把好的产品推向市场,不好的留着做后续的分析处理,以便改进设计或加工工艺,从而提高整个芯片的良率。
2023-05-26 10:15:44
3788
3
原创 第一章 PCIE的发展历史
PCI Express(PCIE)是用来互联诸如计算和通信平台应用中外围设备的第三代高性能I/O总线。第一代总线包括ISA、EISA、VESA和微通道(Macro Channel )总线,而第二代总线则包括了PCI、AGP 和PCI-X。PCIE是一种可以适用于移动设备、台式电脑、工作站、服务器、嵌入式计算和通信平台等所有周边I/O总线互联的总线。
2022-11-03 11:47:10
1791
原创 FPGA 历险记——xilinx MIG 使用(一)
FPGA 历险记——xilinx MIG 使用(一)本篇文章主要分享和记录从零开始建立一个DDR3控制系统的过程IP核:xilinx MIGDDR3芯片:两颗 MT41J256M16RH-125:E,FPGA板卡:黑金ax7013一、芯片参数介绍对于DDR3芯片和FPGA芯片主要参数介绍,参考上一篇文章《FPGA历险记——DDR3之带宽、位宽和频率使用》二、MIG实例化这里默认已经会用vivado新建工程,并会使用IP Catalog 找到MIG ip核)。1)“M...
2020-06-02 15:09:54
6118
1
原创 FPGA历险记——DDR3之带宽、位宽和频率使用
本节主要介绍如何从DDR3的芯片选型和FPGA芯片选型来确定MIG的一些参数,一、如何确定DDR3芯片的带宽、位宽和最大IO时钟频率这里以芯片Part Number :MT41J256M16RH-125:E为例,打开芯片的数据手册,会找到如下所示的介绍:IO时钟频率:根据Part Number 中的“-125”我们就可以找到图中的“1”,根据这里tCK = 1.25ns,就可以算出芯片支持的最大IO时钟频率:1/1.25ns = 800Mhz;位宽:根据Part Number 中
2020-05-30 10:52:21
12341
9
原创 modelsim 仿真xilinx (vivado2018.2)原语 方法及问题记录
这里只是做简单记录,需要更详细记录的可以下载文档:https://download.youkuaiyun.com/download/qq_22222449/12010403文档里面包括软件modelsim2019.2 及破解软件的下载地址,还以以下问题的图文并茂的解决方法。问题1: vivado 中编译了仿真库,modelsim 的modelsim.ini已追加了库路径,但是运行时modelsim中却...
2019-12-02 16:02:59
3037
原创 FPGA 图像加速处理之 canny 算法——RTL实现
一 原理及框架在经过C语言验证后,具体的原理详情请看 FPGA 图像加速处理之 canny 算法——C语言实现,现在可以用RTL代码来实现canny加速。RTL canny算法框架如下图:Maxtri3x3 模块: 接受输入的图像数据,并产生3x3的窗口输出;Sobel 模块: 实现sobel计算,根据sobel算子,求出梯度 及梯度方向;maxtri3x3_SobelDi...
2019-08-26 11:30:08
2508
7
原创 FPGA 图像加速处理之 Sobel 算法——C语言实现
本文偏重于算法原理的理解及C语言编程实现,更详细的原理简介,可以参考网上其他文章一 简介sobel 算法由于检测出来的边缘比较粗,所以在很多场合不会直接使用,都会选择用canny算法来实现边缘检测。 但是canny算法又是基于sobel处理过的图像来实现。所以本文记录一下sobel算法的实现,并探讨用于canny算法的sobel和OpenCV输出的标准的sobel之间的差异二 代码...
2019-08-19 14:25:34
1167
原创 FPGA 图像加速处理之 canny 算法——C语言实现
本文偏重于算法原理的理解及C语言编程实现,最终输出的图像完全与OpenCV处理的一模一样,更详细的原理简介,可以参考网上其他文章一 canny 原理简介canny 算法是迄今为止最为优秀的边缘检查算法,它主要基于三个目标:1、低错误率。所谓的低错误率就是所有的边缘都应该被找到,并且没有伪边缘。也就是检查到的边缘必须尽可能是真实的边缘。2、边缘点应被很好第定位。也就是检查到的边缘点,...
2019-08-19 14:02:44
2079
1
原创 ZYNQ 图像处理之千兆网传(一)【寄存器级操作】
最近在做图像处理和加速,芯片是xilinx 的 zynq xc7z020。需要用到千兆网,由于网上很多都是直接移植lwip,但是个人感觉用着不爽(个人感觉),不能实现随心所欲的控制,代码量又多,所以自己研究了一下,直接操作寄存器,实现千兆网通信。以下是个人的理解及操作,仅供大家参考。要实现千兆网,在xc7z020需要做到以下几点:目录要实现千兆网,在xc7z020需要做到以下几点:...
2019-05-25 16:27:42
4017
2
原创 ZYNQ: VDMA + VTC +AXI4-Stream to Video Out 调试
AXI4-Stream to Video Out 的 locked 锁不住信号解决方案:Description An Issue can arise in Video designs where the AXI4-Stream to Video Outdoes not lock.This article lists general guideline on how to deb...
2018-04-14 17:29:19
2742
modelsim2019.2 + vivado2018.2仿真xilinx原语.doc
2019-12-02
FPGA高手设计实战真经100则(英文原版)_2
2018-03-29
FPGA高手设计实战真经100则(英文原版)
2018-03-29
数字图像处理 第三版
2018-03-26
ug585-Zynq-7000-TRM(Technical Reference Manual).pdf
2017-11-15
GT811触摸屏驱动详细讲解(规格书+代码+linux input系统讲解+多点触摸协议)
2017-02-06
数字集成电路系统与设计(第二版).pdf
2016-12-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人