自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Vivado——综合】Vivado 综合设置指令列表(RTL/GUI/TCL版本)

参考链接:https://www.xilinx.com/support/answers/55185.html上述链接,提供了Vivado和XST版本开发套件的综合配置选项信息,包括RTL/TCL/GUI版本,可参考。

2020-01-17 17:25:49 1979

转载 【FPGA——乘法运算】基于USE_DSP资源来实现

0 背景最近工程主要涉及到乘法和加法运算,然后想将两个无符号数的乘法采用USE_DSP硬核来实现。1 过程软件版本:Vivado 2017.4 Synthesis Settings: 采用工具默认设置。程序编写完毕后,进行综合,然后查看utilization report,发现40个通道对应的乘法运算只使用了2个DSP...

2020-01-17 16:33:31 2605

转载 【ZYNQ】 cache解决问题

在进行PS-PL之间的DMA传输时,不可避免会遇到Cache问题。今天在这里讲一下Cache的解决方法。其中参考了forums.xilinx.com的处理方法。首先解释为什么DMA会引入Cache问题(专业名称为Cache一致性问题)。PS和PL都在独立运行,PS通过DDR控制器来对DDR存储器进行访问,为了加速,常常将一些数据缓存(Cache),而且不是针对一个数据缓存,而是针对一批(Xil...

2019-09-27 16:22:29 1892

转载 【Linux】 cache 一致性

一块mem或者外设寄存器可能会被CPU和另外一个master 去访问,导致data 不一致的问题。工程中一般有两种情况:(1)寄存器地址空间。寄存器是CPU与外设交流的接口,有些状态寄存器是由外设根据自身状态进行改变,这个操作对CPU是不透明的。有可能这次CPU读入该状态寄存器,下次再读时,该状态寄存器已经变了,但是CPU还是读取的cache中缓存的值。但是寄存器操作在kernel中是必须...

2019-09-27 16:20:55 883 1

转载 【ZYNQ——自定义AXI IP核】—— Linux系统下驱动程序和应用程序编写

在前面3篇博客的前提下,已经成功将硬件IP添加到了系统。接下来要进行硬件IP驱动得编写和应用程序的编写。硬件驱动和应用程序的源文件下载地址:http://download.csdn.net/detail/young_fly/9509915(1)硬件驱动的编写主要是makefile的编写,每个人的电脑配置都不一样,需要根据自己交叉编译器安装的具体情况,修改makefile, 然后使用make...

2019-09-27 16:13:55 2092

转载 【FPGA——工具篇】32个FPGA开源网站

1. OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到。进入后,选择project或者由http//www.opencores.org/browse.cgi/by_category进入。对于想了解这个行业动态人可以看看它的投票调查。http://www.opencores.org/polls.cgi/listOpe...

2019-05-19 14:18:57 3310

转载 【FPGA——时序篇】时序优化的几种方法

参考博文:https://www.cnblogs.com/sepeng/p/5578402.html参考书目:英文版:《advanced FPGA design》 中文版:《高级FPGA设计,结构,实现,和优化》衡量FPGA设计的两个重要指标是吞吐率和延迟。吞吐率:指系统每一个时钟周期内能够处理的数据数量,为了获得更高的吞吐率就需要减少组合逻辑延迟,在组合逻辑中间插入寄存器,也就...

2019-05-09 16:53:17 10641 1

转载 关于CPLD与FPGA的对比分析

1.PLD/FPGA/CPLD PLD(Programmable Logic Device):可编程逻辑器件,数字集成电路半成品,芯片上按照一定的排列方式集成了大量的门和触发器等基本逻辑元件,使用者按照设计要求运用开发工具将这些片内的元件连接起来,此过程称为编程; FPGA:基于查找表技术,要外挂配置用的EEPROM的PLD产品;由逻辑功能块排列为阵列,并由可编程的内部连线连接...

2019-05-07 10:46:43 1848

转载 【FPGA——基础篇】同步FIFO与异步FIFO——Verilog实现

FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。作用: FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端是AD数据采集, 另一端是计算...

2019-04-16 09:20:07 26497 19

转载 【ZYNQ-7000 开发之七】PL读写DDR3

0.引言构建SoC系统,毕竟是需要实现PS和PL间的数据交互,而像上一讲那样PL主机与PL从机之间通过AXI4-Lite总线进行交互有点杀鸡用牛刀了。如果PS与PL端进行数据交互,可以直接设计PL端为从机,PS端向PL端的reg写入数据即可,但是对于图像处理等大数据量的数据交互来说,PL端的BRAM毕竟容量有限,很难用BRAM作为两者间的数据缓存器。对于这样的应用来说,利用DDR3作为PS...

2019-03-24 22:18:03 15853 3

原创 【深度学习——梯度下降】区分BGD,SGD,MBGD

1.BGD(批量梯度下降):每次迭代,需要所有训练集数据参与,以更新一次参数; 假设迭代100次,所有训练集数据将被遍历100次,m=all; 优点:对于单峰可以收敛到全局最优解,适合小样本;缺点:对于大样本,收敛速度慢。2.SGD(随机梯度下降):每次迭代,需要仅随机挑选一个样本数据参与,以更新一次参数;m=1 优点:对于大样本(例如几十万),可能只需随机抽取几万条或者几千条的...

2019-03-13 17:19:57 805

转载 【FPGA——基础篇】换个方式理解有限状态机

一、状态机概述有限状态机通常是由寄存器组和组合逻辑组成时序电路,根据当前状态和输入信号可以控制下一个状态的跳转,有限状态机在电路中通常是作为控制模块,作为整个电路模块的核心而存在,它主要包括两大类:Mealy型状态机和Moore型状态机。Mealy型状态机:其组合逻辑的输出不仅与当前状态有关,还与输入有关。如下图所示:Moore型状态机:其组合逻辑的输出只与当前的状态有关。...

2019-03-02 16:36:16 861

原创 【FPGA——基础篇】静态时序分析基础

一、建立时间,保持时间为了确保寄存器在时钟沿稳定采集数据,那么必须要满足寄存器的建立,保持时间要求。 建立时间要求:在寄存器有效时钟沿之前至少Tsetup时间,数据必须到达且稳定。如下图所示。 保持时间要求:在数据采集有效时钟沿之后,数据必须维持最短Thold时间不变。如...

2019-03-02 15:57:50 1276

原创 【FPGA——基础篇】如何理解时序电路

一、概述时序逻辑示意图,如下图所示。数据从一个寄存器出来,经过组合逻辑到达下一个寄存器。 在学习数字电路的过程中,我们都知道时序逻辑,但是大家对时序逻辑真的了解吗? (1)纯组合逻辑电路的缺点在哪? (3)纯组合逻辑电路完成不了什么功能? (2)为什么需要时钟和寄存器呢? 带着这三个疑问我们来...

2019-03-02 14:23:00 2559

转载 【C++——编译与链接(1)】编译与链接过程

大家知道计算机使用的一系列的1和0那个一个C++语言程序又是如何从一个个.h和.cpp文件变成包含1和0的可执行文件呢?可以认为有以下的几个环节源程序->预处理->编译和优化->生成目标文件->链接->可执行文件1.预处理C++的预处理是指在C++程序源代码被编译之前,由预处理器对C++程序源代码进行的处理。这个过程并不对程...

2019-02-28 15:57:53 213

转载 【数据结构】八种经典排序算法

排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列。我整理了以前自己所写的一些排序算法结合网上的一些资料,共介绍8种常用的排序算法,希望对大家能有所帮助。八种排序算法分别是:1.冒泡排序;2.选择排序;3.插入排序;4.快速排序;5.归并排序;6.希尔排序;7.二叉排序;8....

2019-02-28 15:48:04 675

转载 100 条经典C语言笔试题目

题目来源:1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目;2、C 语言面试宝典(林锐《高质量编程第三版》)。说明:1、部分C 语言面试题中可能会参杂部分和C++ 相关的知识,为了保持题目的灵活性故保留,但选题最终还是会以C 语言题目为主体;2、以上公司的面试题目已成为国内中小型企业公司出题模板;3、由于本人的能力有限加上时间仓促,本课件肯定存在不足之处,...

2019-02-28 15:34:18 2140

转载 【数据结构——栈】栈的应用1——超级计算器(中缀与后缀表达式)C语言

这里要学的程序主要用来实现一个功能——输入表达式输出结果,也就是一个计算器。效果如下: 这个程序主要有两个步骤:1、把中缀表达式转换为后缀表达式;2、计算后缀表达式的结果。首先先明白几个问题:1、为什么要转换为后缀表达式?因为后缀表达式容易实现计算机计算结果。(可以百度一下后缀表达式,又称逆波兰式)2、怎么把中缀表达式转换为后缀表达式?3、怎么用后缀表达式输出结果?...

2019-02-27 17:30:07 420

原创 【数据结构——数组(四)】找到数组中第一个不重复出现的整数

思路一:用数组存储每个数字出现的次数,但题目只需要找到第一个不重复出现的数,故浪费空间,O(N^2)思路二:双循环,找到第一个不重复,即返回,O(N^2)代码1:/** * 找出数组中第一个不重复的数字,如果没有就返回null */public class FirstDupNum { @Test public void start() { int ...

2019-02-27 15:41:41 3565

原创 【数据结构——数组(五)】常见排序算法总结

public class sort { private static int count = 0; public static void main(String[] args) { int[] a = { 4, 2, 1, 6, 3, 6, 0, -5, 1, -2 }; // Bubble(a); //冒泡 // Select...

2019-02-27 11:22:02 180

转载 【数据结构——链表】基础篇

链表和数组作为算法中的两个基本数据结构,在程序设计过程中经常用到。尽管两种结构都可以用来存储一系列的数据,但又各有各的特点。数组的优势,在于可以方便的遍历查找需要的数据。在查询数组指定位置(如查询数组中的第4个数据)的操作中,只需要进行1次操作即可,时间复杂度为O(1)。但是,这种时间上的便利性,是因为数组在内存中占用了连续的空间,在进行类似的查找或者遍历时,本质是指针在内存中的定向偏移。然而...

2019-02-23 16:02:26 256

原创 【算法——评估标准】时间复杂度和空间复杂度

1.时间复杂度:时间复杂度是一个函数,它定性描述了该算法的运行时间。意义:同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。 定义:       关于这是一个代表算法输入值的字符串的长度n的函数。       时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。       使用这种方式时,时间复杂度可...

2019-02-23 15:18:31 1297 3

原创 【数据结构——数组(三)】冒泡排序

在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如:一个保存了班级学号的数组,排序后更容易分区好学生和坏学生;一个保存了商品单价的数组,排序后更容易看出它们的性价比。以从小到大排序为例,冒泡排序的整体思想是这样的:算法思想:·从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值)...

2019-02-23 15:03:18 274

原创 【数据结构——面试篇】数据结构与算法总结

 数据结构部分:1、数组和链表的区别。(很简单,但是很常考,记得要回答全面)C++语言中可以用数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用数组之前必须确定数组的大小。而在实际应用中,用户使用数组之前无法确定数组的大小,只能够将数组定义成足够大小,这样数组的空间可能不被使用,从而造成内存空间的浪费。链表是一种常见的数据组织形式,他采用动态分配内存的形式实现。需要时...

2019-02-23 11:30:04 261

转载 【数据结构——数组(二)】查找数组中第k大的数

 问题:  查找出一给定数组中第k大的数。例如[3,2,7,1,8,9,6,5,4],第1大的数是9,第2大的数是8……思考:1. 直接从大到小排序,排好序后,第k大的数就是arr[k-1]。 2. 只需找到第k大的数,不必把所有的数排好序。我们借助快速排序中partition过程,一般情况下,在把所有数都排好序前,就可以找到第k大的数。我们依据的逻辑是,经过一次partition...

2019-02-23 11:06:18 1396

原创 【数据结构——数组(一)】查找数组中第二小的元素

第二小的元素这里有很多方法可以实现:方案一:按递增顺序对数组进行排序,堆排、快排、归并排序等等都可以达到目的。排序数组中的前两个元素是两个最小的元素。这个解的时间复杂度是O(nlogn)。 关于排序算法后续会继续更新。方案二:扫描数组两次。在第一次遍历中找到最小元素。让这个元素为x,在第二次遍历中,找到最小的元素大于x,这个解的时间复杂度是O(n)。方案三:在一次遍历中找到最小的...

2019-02-23 11:03:49 1314

转载 【Vivado——FPGA硬件调试(四)】快速替换Debug Probes

在使用Vivado Logic Analyzer调试时,常会遇到这样的情形:当前阶段需要观测信号xa_reg,下一阶段需要观测xb_reg,两个阶段原始设计并没有改变,只是需要将xa_reg替换为xb_reg。此时,一种方法是回到综合后的设计,通过Setup Debug重新设置待观测信号,这样固然可行,但需要对设计重新布局布线,耗时,效率低。另一种方法是采用ECO(Engineering Chan...

2018-12-25 11:27:31 2994

转载 【Vivado——FPGA硬件调试(三)】Vivado与SDK的联合调试方法——使用ILA

首先介绍一下我的硬件平台:使用的开发板为米联客出的MIZ702,这个开发板与ZedBoard是兼容的。Vivado硬件调试有几种手段:ILA(集成逻辑分析器Integrated Logic Analyzer)、VIO(虚拟I/O Virtual Input/Output)、Jtag-to-AXI等,本方法主要使用了ILA 。本实验系统使用了两种调试手段:ILA和VIO,ILA的引入方式又用...

2018-12-25 11:16:00 2950

原创 【Vivado——FPGA硬件调试(二)】 例化ILA核

Vivado环境下,FPGA硬件调试方法很多,但常用方法主要围绕 ILA核展开。ILA核简介ILA是Vivado下的一个Debug IP核,类似于片上逻辑分析仪。在上一篇文章中,我们介绍了mark debug + set up debug,抓取信号的实时波形,调试工程;其中set up debug步骤,就是通过图形界面自动添加ILA核。本文将介绍另一种方法:通过在RTL代码中直接例化I...

2018-12-18 20:45:06 5404

原创 【Vivado——仿真】读写文件攻略

1.Vivado仿真读文件在VIvado自带仿真器中,读文件不需要预先打开要读取的文件,也不需要将文件加入Vivado工程内部,只需要利用系统函数readmemh、readmemb就可以了(readmemh表示读取16进制数、readmemb表示读取二进制数),文件路径必须是绝对路径。函数使用方式例子如下: 其中,"F:/.../..."表示文件路径(注意是“/”,方向不能反)“lay...

2018-11-16 17:34:44 14439 3

原创 【FPGA——基础篇】verilog中assign和always@(*)两者描述组合逻辑时的差别

verilog描述组合逻辑一般常用的有两种:assign赋值语句和always@(*)语句。两者之间的差别有:    1.被assign赋值的信号定义为wire型,被always@(*)结构块下的信号定义为reg型,值得注意的是,这里的reg并不是一个真正的触发器,只有敏感列表为上升沿触发的写法才会综合为触发器,在仿真时才具有触发器的特性。    2.另外一个区别则是更细微的差别:举个例子...

2018-11-12 15:52:38 9619 2

原创 【Linux——C】:解决math.h函数无法连接问题

Linux系统下编译c程序:(1)指定c标准为c99(2)链接<math.h>函数库gcc go_nolinear.c -lm -std=c99 -o go_nolinear执行程序:./go_nolinear 

2018-10-31 15:35:39 1422

转载 【ZYNQ-7000开发之六】使用PS控制DDR3的读写

 本编文章的目的主要用简明的方法在纯PS里对DDR3进行读写。本文所使用的开发板是Miz701 PC 开发环境版本:Vivado 2015.4 Xilinx SDK 2015.410.0本章难度系数★☆☆☆☆☆☆10.1 搭建硬件工程Step1:新建一个名为为Miz701_sys的工程Step2:选择RTL Project 勾选Do not specify sourc...

2018-10-26 09:29:48 3666

转载 【ZYNQ-7000开发之四】PS读写PL端BRAM

本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口终端显示。涉及到AXI BRAM Controller 和 Block Memery Generator等IP的使用。本系列文章尽可能的让每一个实验都相对独立,过程尽可能保证完整...

2018-10-26 09:24:08 2902

原创 【Python——opencv篇】 bitwise_and、bitwise_not等图像基本运算及掩膜

1.图像基本运算图像的基本运算有很多种,比如两幅图像可以相加、相减、相乘、相除、位运算、平方根、对数、绝对值等;图像也可以放大、缩小、旋转,还可以截取其中的一部分作为ROI(感兴趣区域)进行操作,各个颜色通道还可以分别提取及对各个颜色通道进行各种运算操作。总之,对于图像可以进行的基本运算非常的多,只是挑了些常用的操作详解。void add(InputArray src1, InputAr...

2018-10-18 11:26:25 19202

原创 【Python——OpenCV】HSV颜色识别-HSV基本颜色分量范围

一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。H:  0 — 180S:  0 — 255V:  0 — 255此处把部分红色归为紫色范围: --------------------- 作者:Taily老段 来源:CSDN 原文:https:...

2018-10-17 17:49:01 12755

原创 【Python——opencv篇】图像显示、视频采集、图像处理

系统环境:win7旗舰版、 版本:python3.5.6 、opencv 3.2.0关于opencv_python库的安装,可浏览之前的博客,此处不再赘述。1.hello,opencvimport cv2 as cvimg=cv.imread("qie.jpg") #读取图像cv.imshow("who",img)cv.waitKey(0)cv.destroyAllWin...

2018-10-17 15:37:33 2830 1

原创 【Anaconda ——问题篇】Import cv2 ImportError:DLL load failed:找不到指定模块 解决方法

实验环境:系统版本:Win 7 旗舰版Anaconda :Python 3.5.6 | Anaconda 4.2.0(64-bit)问题描述:安装OpenCV后使用import cv2 时出现如下错误 :解决方法:1.检查Visual C++ Redistributable for Visual Studio 2015首先保证有Visual C++ Redistributa...

2018-10-17 09:07:11 6882

原创 【Anaconda——安装篇】Anaconda+Tensorflow环境搭建:快速指南

环境:win7 32位,anaconda 4.2.0 1.建立TensorFlow的运行环境打开anoconda navigator,点击左下角create键,创建tensorflow环境 2.在conda环境中安装TensorFlow2.1安装tensorflow同样,在anoconda navigator右侧搜索tensorflow,然后选中,右下角点击appl...

2018-10-16 20:17:06 551

转载 【Python——基础篇】二、 pip 常用命令

使用了这么就pip命令,但是一直是简单使用,很多命令都是用了查,查了用,今天把常用的命令汇总一下,方便使用。命令:pip由上图可以看到 pip 支持一下命令Commands: install Install packages. download Download packages. u...

2018-10-16 19:07:25 895

任意图片转LCD Image2Lcd

可以将任意图像转成二进制(bin)、C语言数组(c)、BMP、WBMP格式,也可以改变图像的颜色、大小等格式,是图像处理的好帮手

2017-10-13

空空如也

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

TA关注的人

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