自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (2)
  • 收藏
  • 关注

转载 Vivado当中的ooc与global模式

OOC-脱离上下文ooc(out of context)是在Vivado当中非常常用的概念。在ug1118中关于ip_core OOC模式下的约束文件的描述中有两点:OOC约束的USED_IN属性应该同时设置synthesis,implementation,out_of_context而不是只设置out_of_context;(page16)OOC约束在编译的时候,处理顺序早于非OOC约束的文件,甚至早于PROCESSING_ORDER设置成EARLY的情况。(page16)概述这个方面最详细的内

2020-07-09 11:28:46 1864

转载 FPGA优化-max_fanout命令

vivado自带很多命令帮助编译器更好的实现设计者的想法,用得好会变成开发利器。比如,max_fanout命令,本身是用来约束扇出,减少布线拥塞的常用命令。然而很多读者向我反映,使用这个命令之后发现没有任何事情发生,完全没有任何效果。这里我就带大家理一理这个命令的使用方法。max_fanout起作用的条件1. 打算降低扇出的网络必须是reg驱动。因为降低扇出的原理就是reg驱动超过N(设置参数)条网络的时候,就复制一个同样的reg驱动其他N条网络,如果复制2个还不够就一直复制到足够为止,见图...

2020-07-06 17:00:01 5563

原创 Opencv图像基础代码

一、Opencv支持的图片格式OpenCV目前支持的图像格式包括:Windows位图文件 - BMP, DIB;JPEG文件 - JPEG, JPG, JPE;便携式网络图片 - PNG;便携式图像格式 - PBM,PGM,PPM;Sun rasters - SR,RAS;TIFF文件 - TIFF,TIF;OpenEXR HDR 图片 - EXR;JPEG 2000 图片- jp2。可以用cvSaveImage函数或者imwrite()函数来实现不同图像格式之间的转换,保存时的后缀名就

2020-06-19 16:59:26 666

原创 JPEGLS图像压缩算法的FPGA实现(一)压缩算法

绪论JPEG-LS是在ISO/ITU的新标准中用于对静态连续色调图像进行无损或进无损压缩的一种算法。它不是JPEG的一个简单扩充或修正,是一种新的压缩方法。支持无损和近无损图像压缩,不使用离散余弦变换,也不使用算术编码,仅在近无损压缩模式下有限地使用量化。。该算法具有实现复杂度低,保真度高等特点,本文就JPEG-LS的核心算法LOCO-I以及其编码流程进行详细的分析和研究。1.压缩算法简介与评估1.1 压缩算法简介无损压缩就是指经过压缩并重建后的图像和原图像完全一样,没有任何损失。如果重建图像和原图

2020-06-10 14:46:58 12075 4

原创 Xilinx FIFO使用小结

FIFO的使用非常广泛,一般用于不同时钟域之间的数据传输,或者用于不同数据宽度之间的数据匹配。在实际的工程应用,可以根据需要自己写FIFO。不考虑资源的情况下,也可以使用Xilinx提供的IP核来完成。接口类型选择Native,SOC芯片上也可以根据需要选择AXI接口。选择存储器类型:可以用块RAM、分布式RAM,移位寄存器和内嵌FIFO来实现FIFO。这里主要是block RAM和distribute RAM之间的区别。简而言之,block RAM是FPGA中定制的ram资源,而distribute

2020-06-08 11:21:39 9340

原创 Xilinx FPGA错误、调试记录

1.Verilog语法错误FATAL_ERROR: Vivado Simulator kernel has discovered an exceptional condition from which it cannot recover. Process will terminate. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx

2020-06-05 14:39:08 2216

原创 Verilog 有符号数与无符号数运算

无符号数运算,左值位宽不够,发生截断的现象reg [3:0] a = 4'b1111;//15reg [3:0] b = 4'b0010;//2wire [3:0] c;wire [3:0] show_c; assign c = a + b;//1assign show_c = a + b;//12. 两个无符号数运算,赋值给一个有符号的数。可以看出,右侧先按照无符号数进行运算,取得的运算结果按照左侧的符号进行.

2020-05-19 14:35:27 7070 4

转载 FPGA LUT查找表原理和编程方式

一、查找表LUT就是查找表,对于4输入的LUT而言,实际上就是4位地址位,一位数据位的存储器,能够存储16位数据,所以我们在FPGA设计中可以用LUT组建分布式的RAM。这样也可以解释我们在设计中为什么要采用流水线的实现方法因为当输入数据的位数远大于一个LUT的输入时,就需要用多个LUT级联来实现逻辑,那么级联产生的延时也就不可避免了,这样就会制约系统的运行频率。那么为了避免级联数过于多,就采用插入寄存器的方法来实现。举一个简单的例子,如果要实现一个6*1的mux可以用一个6输入的LUT或...

2020-05-15 16:29:30 9012 2

转载 ZYNQ 启动过程

转载自:http://design.eccn.com/design_2016120213185392.htm本文主要介绍zynq启动过程,主要包括BootROM和FSBL等的执行过程。硬件启动过程1、重新上电或POR复位后进行硬件启动过程2、扫描“启动引脚”设置,并存入只读寄存器slcr.BOOT_MODE中3、若使能pll,则等到pll输出时钟;若旁路pll,则直接使用ps_clk时钟BootROMBo...

2020-05-15 15:54:14 537

转载 Xilinx FPGA 将寄存器放入IOB中

xilinx FPGA的资源一般指IOB,CLB,BRAM,DCM,DSP五种资源。其中IOB就是input/output block,完成不同电气特性下对输入输出信号的的驱动和匹配要求。IOB的作用就是完成信号的采集和输出,引脚可以配置支持不同电气特性,上拉下拉或三态,差分或单端。有ologic,i...

2020-05-15 14:03:07 3651 1

转载 XILINX静态时序分析专题一:setup time

好记性不如烂笔头,记录下vivado寄存器与寄存器之间的时序分析方法,本篇介绍vivado setup的分析方法,本篇为个人理解,如有错误,望指正。如下面几幅图所示,主要分为四个部分:从图中可以看出这条路径的基本信息,slack为时序裕量,source为源寄存器,destination为目的寄存器,requirement为时钟周期,dat...

2020-05-14 10:22:39 1631

转载 Xilinx FPGA全局时钟网络

在 Xilinx 系列 FPGA 产品中,全局时钟网络是一种全局布线资源,它可以保证时钟信号到达各个目标逻辑单元的时延基本相同。其时钟分配树结构如图1所示。IBUFDS、IBUFGDS和OBUFDS都是差分信号缓冲器,用于不同电平接口之间的缓冲和转换。1. IBUFG 即输入全局缓冲,是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUFG单元,否则在布局布线时会报错。IBUFG支持AGP,CTT,GTL,GTLP,HSTL,LVCMOS,LVDCI,LVPECL,

2020-05-14 09:48:49 2563

原创 Verilog generate循环

一:generateVerilog-2001添加了generate循环,允许产生module和primitive的多个实例化,同时也可以产生多个variable,net,task,function,continous assignment,initial和always。在generate语句中可以引入if-else和case语句,根据条件不同产生不同的实例化。用法:generate语法有generate for, genreate if和generate case三种generate for语句必

2020-05-13 16:29:51 2350

原创 Verilog-2001的向量部分选择

Verilog-2001的向量部分选择什么是向量部分选择呢?verilog-2001 LRM中有这么一句话:对于a[8*i+:8],this is the so-called “Indexed vector part selects” 。在Verilog-1995中,可以选择向量的任一位输出,也可以选择向量的连续几位输出,不过此时连续几位的始末数值的index需要是常量。vect[msb_expr : lsb_expr]; //其中msb_expr和lsb_expr必须是常量表达式。而在Veri

2020-05-13 16:18:19 1041

原创 yolov3-tiny工程应用和实现

目录前言相关推荐yolov3-tiny 原理yolov3-tiny 源码分析配置网络结构前言从去年十一月份开始学习yolo神经网络用于目标识别的硬件实现,到现在已经六个月了。一个硬件工程师,C/C++基础都差劲的很,对照着darknet作者的源码和网上东拼西凑的原理讲解,一点一点地摸索。刚开始进度很慢,每天都感觉学习不了几行代码,到后来慢慢的入了门,每周都有不菲的收获和重大的进展。总结一下自己...

2020-04-15 15:56:09 13616 6

原创 HLS debug记录

上次调试碰到了一个雷区,一点细节没注意,让我调试了一下午,这次又是这个细节,调试了整整一天。怀疑了一切之后,终于看见了她。哎,又爱又恨啊,开篇博客记录一下遇到的坑,一点点的积累。1.现象: C Simulation正确,上板验证部分数据错误原因: 数组空间太小,写入的数据溢出static int input_map_buffer_temp[input_map_lengt...

2020-03-13 16:50:01 939

原创 基于AXI Stream的VGA控制器

显示器扫描方式分为逐行扫描和隔行扫描:逐行扫描是扫描从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。隔行扫描是指电子束扫描时每隔一行扫一线,完成一屏后在返回来扫描剩下的线,隔行扫描的显...

2020-03-12 09:55:26 371 1

原创 Matlab 基础知识-细节 积累

1.在利用matlab处理图像时务必慎用abs函数clearclccd('C:\Documents and Settings\Administrator\桌面'); I = imread('pig.jpg');B = I(:, :, 3); a = 200b = 220 c = B(100, 100)d1 = abs(a - c)d2 = abs(c - b)结果为...

2020-03-12 09:51:51 115

原创 基于FPGA的bayer转RGB算法

一.基本知识Raw RGB 每个像素只有一种颜色(R、G、B中的一种);RGB 每个像素都有三种颜色,每一个的值在0~255之间;在手机摄像头的测试过程中,由sensor输出的数据就是Raw data(Raw RGB),经过彩色插值就变成RGB。也不一定就是测试过程,想要获得真正的图像,都必须有的一个过程;sensor输出的数据格式,主要分两种:YUV(比较流行),RGB,这就是sons...

2020-03-12 09:51:24 3182 8

原创 SDRAM_controller ---2017.12.13

这是我第一次开始自己在板子上做一个不大不小的项目,嗯,或者叫做小的自我测试,对于来到国科实习这么久的一个考试。用了两周半的时间,中间还穿插着被安排了做一点别的事情,结果只是勉强及格吧,很勉强,不谦虚,看到了自己很多的不足,这个行业需要的知识太多了,也更新的太快了----致还不太老的自己。一. about sdram 1.SDRAM:Synchronous Dynamic Random Ac...

2020-03-12 09:50:11 340

原创 petalinux zynqMP配置小结

使用评估板或者自行设计的开发板需要更改的地方小结:1.启动方式:flash启动或者SD启动,配置使用emmc0或者是emmc1作为启动SD;2.配置串口0或者串口1;3.在DTG Settings中配置其MACHINE_NAME:依据:这一项不配置有时候也没问题,但是有时候就会出现莫名其妙的启动问题,BOOT过程中发小不了SD啦,或者找不到网口之类的。4.网络地址配置也可以不配...

2020-03-12 09:33:15 3125 1

原创 vivado sdk debug记录

在Vivado SDK进行软件设计的时候,调用math.h函数的时候出现 undefined reference to `pow’,但是明明可以正确的打开math.h找到pow函数的声明。解决方案:右键工程-Properties - C/C++ Build - Settings - Tool Settings 在Libraries添加m...

2020-03-11 16:26:29 1448 1

转载 HLS 任意精度的数据类型

1、传统C语言支持的数据类型,Vivado HLS不支持char16_t/char32_t两种字符型数据类型。图12、从硬件角度看C语言的数据类型,较浪费资源。C语言中的数据类型以8bit为界限,分为8bit、16bit、32bit、64bit,相对于传统的HDL语言,相对死板。若想计算一个18bitx18bit的乘法,就需要将两个数据声明为32bit,得到64bit结果,比较浪费资源。...

2020-03-10 13:58:43 1273 1

原创 HLS实现YOLO神经网络系列(一)

一.简介从2019年十一月之后,就开始学习使用HLS实现CNN卷积神经网络,对YOLO算法进行加速了。无奈只有图像处理的基础,没有研究过AI,研究生期间一点点的HLS基础也早就忘记了,希望以后都能根据进度养成写博客的习惯,工作之余记录一下自己的学习和成长吧。本帖已实现卷积操作的IP核,并通过了FPGA开发板的验证。二.HLS部分高级综合HLS基础学习,参考Xilinx官方文档ug871-v...

2020-03-04 11:47:18 11149 12

原创 C 语言细节小知识

1.int -> short去数据的低16位: int b = 2033350961;//0x79327931 short a = b ; printf("%d\n", a);//0x7931

2020-02-17 17:50:34 223

原创 C const关键字

一、const修饰普通变量1、说 const 定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。用 const 定义常变量的方法很简单,就在通常定义变量时前面加 const 即可,如:const int a = 10;int const a = 10;这两种写法都是正确的,但是下面这种写法是错误的int const a;a = 10;用 const 定义...

2020-02-17 17:18:17 252

原创 vivado hls 更改字体大小

如图,自己也记录一下,省的每次都找找半天。

2020-02-17 16:39:53 962

原创 C static

一. 在程序中使用static修饰变量局部变量任何一个函数内部定义的变量(不加static修饰符),被称为局部变量。编译器一般不对普通局部变量进行初始化,也就是说它的值在初始时是不确定的,除非对其显式赋值。普通局部变量存储于进程栈空间,使用完毕会立即释放。静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数...

2020-02-17 14:56:38 127

原创 浮点数和定点数

最近在研究CNN的硬件实现,其中涉及到特征图像、权重和偏移文件的量化,需要研究浮点数、定点数之间的转化。一.浮点数C语言中有3种浮点数,float型、double型和long double型,其中float型占4个字节,double型占8个字节,longdouble型长度要大于等于double型,本文档将以float型为例进行介绍,double型和long double型只是比fl...

2020-02-12 11:22:50 5623 1

原创 C/C++ memcpy fread fopen(常用函数一)

memcpyC 库函数void *memcpy(void *str1, const void *str2, size_t n)从存储区 str2 复制 n 个字符到存储区 str1。str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。str2 – 指向要复制的数据源,类型强制转换为 void* 指针。n – 要被复制的字节数。...

2020-01-19 17:30:23 656

原创 C/C++ 链表

链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点。链表都有一个头指针,一般以head来表示,存放的是一个地址。链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的。链表中每个节点都分为两部分,一个数据域,一个是指针域。说到这里你应该...

2020-01-19 17:27:54 323

原创 zcu104 AXI DMA速度测试总结

一.前言好久没有认真的写一些技术博客了,工作半年了,最近两个月好像才慢慢的恢复过来了,不能摸鱼了,2020年,自己的生活中会有很多可见的变化,要快速成长啊,具备与之匹配的技术和能力啊。二.PL侧工程设置由于项目的需要,利用一周的时间测试了zcu104开发板DMA的实际带宽。之前就用过AXI DMA做过图像处理方面的东西,还以为这次两天驾轻就熟,两天就能做好呢,结果细细的研究了一下,才发现还是...

2020-01-14 09:15:02 10165 13

原创 VS debug记录

错误提示:error C4996: ‘itoa’: The POSIX name for this item is deprecated原因:新版本的vs对旧有的函数itoa进行了安全检查,所以使用新版本的vs会提示错误,而旧版本的没问题。解决办法:1、使用新函数 _itoa2、如果非要使用旧函数也是可以的,加上宏定义即可#define _CRT_NONSTDC_NO_DEPRECA...

2019-12-25 15:03:38 126

原创 HLS基础学习

一、循环优化Pipeline:流水线操作iteration latency:每次循环迭代所需要的时钟周期数2.Unroll:循环展开每一个循环都时分复用同一个电路,循环展开相当于把该电路进行逻辑复制二、数组分割dim=1,表示该数组是一维数组;...

2019-11-29 16:23:50 2628

原创 C/C++ volatile

memcpyC 库函数void *memcpy(void *str1, const void *str2, size_t n)从存储区 str2 复制 n 个字符到存储区 str1。str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。str2 – 指向要复制的数据源,类型强制转换为 void* 指针。n – 要被复制的字节数。...

2019-11-25 15:49:32 109

原创 卷积神经网络基础积累

一.卷积神经网络基础卷积神经网络的功能:处理分类问题卷积层(提取图像特征)->池化层(采样层,降低图像复杂度,特征更加集中)->激活层(引入非线性特征进行分类)->全连接层(整合特征,进行分类);...

2019-11-19 10:12:02 180

原创 C/C++ 指针变量

一、指针变量C 指针学习 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址:实例...

2019-11-14 10:03:25 380

原创 C 数组

数组的赋值:int a[] = {2,4,6,8,10};int b[] = a;//不可以使用这种方式进行赋值如果想要将一个数组赋值给另一个数组,必须采用遍历的方式:for(i=0;i<length;i++){ b[i] = a[i];}...

2019-11-13 15:44:20 182

原创 结构Struct

指向结构的指针struct data{ int month; int day; int year;} myday;struct data *p = &myday;(*p).month = 12;p->month =12;其中,p表示指针变量,其值是一个地址;这两种赋值方法都可以;p->month =12;用->表示指针所指的结构变量中的...

2019-11-13 11:09:35 151

转载 嵌入式开发之zynqMp ---Zynq UltraScale+ MPSoC 图像编码板zcu102

嵌入式开发之zynqMp —Zynq UltraScale+ MPSoC 图像编码板zcu102转载地址:https://www.cnblogs.com/pengkunfan/p/8569986.html 1.1 xilinx zynqMp 架构1.1.1 16nm 级别工艺  Zynq UltraScale+  MPSoC架构 ...

2019-09-04 10:44:41 3586

ZCU104_DMA_test.rar

博客链家:https://blog.csdn.net/alangaixiaoxiao/article/details/103958007

2020-01-14

vivado 破解 lisence(有效期到2037年) 下载

在2037年之前的任何Vivado版本(包括HLS、ISE、AccelDSP、System Generator、软硬CPU、SOC、嵌入式Linux、重配置等等功能)都可以永久破解,使用,使用本license文件时文件名不能有汉字和空格,在vivado2016.2 win7 x64及2014.4 win7 x86亲测可用

2017-02-13

空空如也

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

TA关注的人

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