2 Lily_9

尚未进行身份认证

小硕,FPGA与deep learning学习者。

等级
博文 79
排名 7w+

【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

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

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

2019-05-09 16:53:17

关于CPLD与FPGA的对比分析

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

2019-05-07 10:46:43

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

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

2019-04-16 09:20:07

【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

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

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

2019-03-13 17:19:57

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

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

2019-03-02 16:36:16

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

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

2019-03-02 15:57:50

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

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

2019-03-02 14:23:00

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

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

2019-02-28 15:57:53

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

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

2019-02-28 15:48:04

100 条经典C语言笔试题目

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

2019-02-28 15:34:18

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

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

2019-02-27 17:30:07

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

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

2019-02-27 15:41:41

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

publicclasssort{privatestaticintcount=0;publicstaticvoidmain(String[]args){int[]a={4,2,1,6,3,6,0,-5,1,-2};//Bubble(a);//冒泡//Select...

2019-02-27 11:22:02

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

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

2019-02-23 16:02:26

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

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

2019-02-23 15:18:31

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

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

2019-02-23 15:03:18

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

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

2019-02-23 11:30:04

【数据结构——数组(二)】查找数组中第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
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!