- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 跨时钟域问题
一、什么是跨时钟域问题只要FPGA设计中的所有资源不全属于一个时钟域,就可能存在跨时钟域问题。发送跨时钟域问题的必要条件是不同时钟域之间存在信息交互。二、解决跨时钟域问题的原理由于时钟频率等的不同,导致总有些时候,一个时钟的有效沿会采样到另一个时钟域信号的不稳定态,因此,应该采用恰当的方法来确保当我们跨时钟域取信号的时候,当前时钟的有效沿不会采样到另一个时钟域的不稳定态,就可确保FPG...
2018-08-13 21:13:47
4966
原创 网络编程之socket
一、系统调用与应用编程接口大多数操作系统使用系统调用(system call)的机制在应用程序和操作系统之间传递控制权。当某个应用进程启动系统调用时,控制权就从应用进程传递给了系统调用接口,此接口再把控制权传递给计算机的操作系统,操作系统把这个调用转给某个内部进程,并执行所请求的操作,内部过程一旦执行完毕,控制权就又通过系统调用接口返回给应用进程。系统调用接口实际上就是应用进程的控...
2018-08-02 21:38:42
437
原创 剑指offer之18:树的子结构
题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)分析:查找树A中是否存在和树B结构一样的子树,1、首先设置标志位result = false,因为一旦匹配成功result就设为true,剩下的代码不会执行,如果匹配不成功,默认返回false2、递归思想,如果根节点相同则递归调用DoesTree1HaveTree2(),如果...
2018-08-01 12:00:26
226
原创 函数wait和waitpid
一、当一个进程正常或者异常终止时,内核就向其父进程发送SIGCHLD信号。因为子进程终止是一个异步事件(可以在父进程运行的任何时候发生),所以这种信号也是内核向父进程发的异步通知。调用wait和waitpid的进程可能会发生什么?如果其所有子进程都还在运行,则阻塞; 如果一个子进程已终止,正等待父进程获取其终止状态,则取得该子进程的终止状态立即返回; 如果它没有任何子进程,则立即出...
2018-07-31 20:01:04
202
原创 详解TCP协议
一、TCP的基本概述1、TCP的基本特点TCP是面向连接的运输层协议 每条TCP连接只能有两个端点,TCP连接是点对点的。 TCP提供可靠交付的服务,通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达。 TCP提供全双工通信。 面向字节流2、TCP与UDP发送报文的方式TCP并不关心应用进程一次把多长的报文段发送到TCP的缓存中,而是根据对方给出的窗口值和当前网络...
2018-07-31 09:43:47
420
原创 剑指offer之6:重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析:前序遍历中,第一个数字是根节点的值;中序遍历根节点的值在中间,左子树的结点的值位于根节点的值的左边,而右子树的结点的值在根节点的右边。...
2018-07-29 11:36:11
144
原创 剑指offer·之30:最小的K个数
题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。分析:利用堆排序,O(N logK),适合处理海量数据(1) 遍历输入数组,将前k个数插入到推中;(利用multiset来做为堆的实现)用前k个数字来建立大顶堆,而后拿后面的后面的n-k个元素依次与大顶堆中的最大值(即堆顶)元素比较,(2) 继续从...
2018-07-28 15:19:49
183
翻译 进程的终止方式以及exit函数
一、进程的终止方式1、5种正常终止方式在main函数内执行return 语句; 调用exit函数,包括调用各终止处理程序,然后关闭所有标准IO流等; 调用_exit或_Exit函数; 进程的最后一个线程在其启动例程中执行return语句。但是,该线程的返回值不用作进程的返回值,当最后一个线程从其启动例程中返回时,该进程以终止状态0返回。 进程的最后一个线程调用pthread_exi...
2018-07-20 18:33:42
1737
原创 FPGA之面试基础知识
一、同步电路与异步电路的区别同步电路:存储电路状态的转换是在同一时钟脉冲源的同一边沿下同步动作的,同步时序电路的存储电路一般用触发器实现,所有触发器的时钟输入端应接在同一个时钟脉冲源上,而且他们的时钟脉冲触发沿也都应一致。异步电路:电路中触发器的时钟输入端没有连接在统一的时钟脉冲上,或电路中没有时钟脉冲(如SR锁存器构成的时序电路),从而电路中个存储单元的状态更新不是同时发生的。二、M...
2018-07-19 10:14:42
3086
原创 剑指offer之29:数组中出现次数超过一半的数字
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。分析:数组中有一个数字出现的次数超过数组长度的一半,也就是它出现的次数比其他所有数字出现次数的和还要多。在遍历数组时,保存两个值:一个是数组中的数字,一个是次数。当遍历...
2018-07-18 11:37:27
175
原创 FPGA之锁存器与触发器
一、双稳态电路锁存器与触发器均属于双稳态电路,双稳态电路具有0/1两种逻辑状态,一旦进入其中一种状态,就能长期保持不变的单元电路,最基本的双稳态电路如下所示:二、锁存器锁存器(latch)是一种对脉冲电平敏感的双稳态电路,它具有0和1两个稳定状态,一旦状态被确定,就能自行保持,直到有外部特定输入脉冲电平作用在电路一定位置时,才有可能改变状态。1、SR锁存器将上述双稳态电...
2018-07-18 10:59:32
1758
原创 剑指offer之28:字符串的排列
题目:输入一个字符串,打印出该字符串中字符的所以排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab、cba。分析:把这个字符串看成由两部分组成:第一部分为它的第一个字符,第二部分是后面的所有字符。首先,求出所有可能出现在第一个位置的字符,即把第一个字符和后面所有的字符交换。然后,固定第一个字符,求后面所有字符的排列...
2018-07-17 20:50:58
155
原创 FPGA面试题
1、什么是“线与逻辑”,在硬件特性上有什么具体要求?线与逻辑是两个输出端(包括两个以上)直接互连可以实现“与”逻辑的功能;在硬件上,可以使用集电极开路门(OC门)、漏极开路门(OD门)、三态输出门(TSL)来实现,用OC门实现线与,应在输出端口加一个上拉电阻(外接电阻的选择有一定的限制,会影响工作速度);三态门(TS门)主要应用于多个门输出共享数据总线,为避免多个门输出同时占用数据总线...
2018-07-17 15:58:01
12974
原创 剑指offer之25:二叉树中和为某一值的路径
题目:输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径,从树的根节点开始往下一直到叶节点所经过的结点形成一条路径。结点定义:struct BinaryTreeNode{ int val; BinaryTreeNode* left; BinaryTreeNode* right;};分析:举例,如下的二叉树,二叉树和整数22,打印出...
2018-07-17 12:04:42
163
原创 UNIX之fork与vfork函数
一、fork函数1、每个进程都有一个非负整数表示的唯一进程ID,进程ID是可复用的;ID为0的进程通常是调度进程,被称为交换进程(swapper),属于内核的一部分,并不执行任何磁盘上的程序,也被成为系统进程; ID为1的进程通常是init进程,init通常读取与系统有关的初始化文件。init进程绝不会终止,他是一个普通的用户进程,但是可以超级用户特权运行。 ID为2的是页守护进程,负...
2018-07-17 11:31:10
315
原创 关于线程的部分概念
一、线程存在的原因在许多应用中,同时发生着多种活动,其中某些活动随着时间的推移会被阻塞,通过将这些应用程序分解成可以准并行运行的多个顺序线程,程序设计模型会变得简单。线程比进程更轻量级,比进程更容易,容易创建,也容易撤销。二、线程的定义进程中的一条执行流程。进程的理解:1、从资源组合的角度进程把一组相关的资源组合起来,构成了一个资源平台(环境),包括地址空间(代码段、数据段)、打开的文件等各种资源...
2018-07-13 10:54:37
216
原创 FPGA原理结构以及内部资源
一、FPGA原理FPGA中的基本逻辑单元是CLB模块,一个CLB模块一般包含若干个基本的查找表、寄存器和多路选择器资源,因此FPGA中的逻辑表达式基于LUT的。FPGA内部的编程信息一般存储在SRAM单元中,因此通常的FPGA都是基于SRAM的,所以掉电后信息会丢失,下次上电需要先配置才能使用。着重介绍Xilinx FPGA,二、FPGA产品的速度等级速度等级一般反映一款芯片的性能,速度等级越高,...
2018-07-13 10:14:39
17566
原创 FPGA之FSM有关问题
一、首先明确FSM编码方法二进制编码(Binary code)格雷码(Gray code)独热码(one-hot code)二进制编码不用介绍,很熟悉,主要介绍格雷码和独热码;1、独热码(one-hot code)parameter idle = 4'b1000, start = 4'b0100, stop = 4'b0010, clea...
2018-07-03 22:02:08
595
原创 C++对象模型之function语意学
一、nonstatic member function(非静态成员函数)c++设计准则之一:nonstatic member function至少要和一般的nonmember function有相同的效率;对于如下的两个函数:float magnitude3d(const Point3d *_this) {...}//非成员函数float Point3d::magnitude3d()const ...
2018-07-02 15:29:02
230
原创 C++对象模型之Data语意学
对于下列程序,它们的sizeof结果:class x{};class y : public virtual x{};class z : public virtual x{};class a : public y, public z{};在visual studio 2013编译环境下:1、空类的sizeof是1 byte,是被编译器安插进去的一个char,这样使得class的两个object...
2018-07-02 09:40:28
282
转载 copy constructor的构造操作
一、调用copy constructor三种情况下,会以一个object的内容作为另一个class object的初值,即调用copy constructor。1、显式定义class X{...};X x;//显式地以一个object的内容作为另一个class object的初值X xx = x;2、当object被当做函数参数时extern void foo(X x);void bar...
2018-06-30 14:39:48
218
原创 CPP之对象模型
一、C++对象模型在c++中,class data members有两种:static、nonstatic;class member function有三种:static 、nonstatic、virtual;例如:下面这个class Pointclass Point{public: Point(float xval); virtual ~Point(); float x() con...
2018-06-29 17:17:49
453
原创 C++面试之交换变量值
不使用第三方变量,交换两个变量的值1、常用的交换变量值的方法是:int temp =a;a = b;b = temp;那么不使用第三方变量来交换两个值,方法如下:(1)算术法:利用普通的+与-运算符实现a = a + b;b = a - b;a = a - b;以 a = 3, b = 5为例,经第一行语句的执行,a = 3 + 5 =8, b 的值为 5;经第二行语句的执行,a 值不变,...
2018-06-13 10:23:36
211
原创 默认构造函数(Default Constructor)的构造操作
default constructors 是在需要的时候被编译器产生出来。被合成出来的default constructor只执行编译器所需的行动;C++标准:对于class X,如果没有任何 user defined constructor,那么会有一个default constructor被隐式(implicit)声明出来。一个被隐式声明出来的default constructor将是一个tr...
2018-06-11 10:49:03
3490
原创 TCP的三次握手和四次断开
TCP是面向连接的协议,面向连接是指通信双方任何一方向对方发送数据之前必须先建立安全通道,就像打电话一样,必须等到对方的手机响铃,并且对方接听电话时,才能与对方通信。UDP不是面向连接的协议,基于UDP的通信双方不需要事先与对方协商并建立连接,也不管对方的IP地址和端口号是否存在,就直接发送数据,这个处理方式有点像手机发短信,不管对方手机是否停机或者关机,只管发送信息,不管对方是否能收到消息。...
2018-06-08 10:07:18
339
原创 详解ARP协议
一、ARP(Address Resolution Protocol,地址解析协议)位于TCP/IP协议栈中的底层,一般归类在网络层,因为它要使用IP地址,它用于映射计算机的物理地址与网络IP地址。ARP的工作就是在主机发送帧之前,根据目标的IP地址获取MAC地址,以保证通信过程的顺畅。具体过程:每台主机都会在自己的ARP缓冲区建立一个ARP列表(也就是ARP高速缓存--ARP ...
2018-06-07 15:01:00
432
原创 c++面试之static与const的作用
一、static的作用(1)在函数体内,静态变量具有“记忆”功能,一个被声明为静态的变量在这一函数被调用的过程中,其值维持不变;(2)函数体外,模块内,它的作用范围是有限制的:静态变量:该变量可以被模块内所有函数访问,但不能被模块外其他函数访问,是一个本地的全局变量;静态函数:作用域与普通函数不同,它的作用域仅限于本文件中,只能被这一模块的其他函数调用,不能被模块外的其他函数调用。static全局...
2018-06-05 17:18:35
718
原创 TCP与UDP的差别
一、传输控制协议TCP特点(1)TCP是面向连接的运输层协议(2)每条TCP连接只能有两个端点,TCP连接是点对点的。(3)TCP提供可靠交付的服务,通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达。(4)TCP提供全双工通信。(5)面向字节流二、TCP与UDP的区别TCP是一种面向连接的、可靠地、基于字节流的通信协议,为传输大量数据或为需要接收数据许可的应用程序提供连接定向和可靠地...
2018-06-05 14:59:56
323
原创 UDP基本概述
一、UDP特点(1)UDP是无连接的,减少了开销和发送数据之前的时延。(2)UDP使用最大努力交付,不保证可靠交付。(3)UDP是面向报文的,对应用程序交下来的报文,在添加首部之后直接交付给IP层。应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。(4)UDP没有拥塞控制,对于实时应用很有效。(5)UDP支持一对一、一对多、多对一、多对多的交互通信。(6)UDP首部开销小,只有8个...
2018-06-05 14:35:16
1112
原创 路由选择的协议
一、路由选择协议的分类:内部网关协议IGP(Interior Gateway Protocol)在一个自治系统内部使用的路由选择协议,而这与互联网的其他自治系统选用什么路由选择协议无关。比如:RIP和OSPF协议。外部网关协议EGP(External Gateway Protocol)若源主机与目的主机处在不同的自治系统内,则需使用一种协议将路由选择信息传递到另一个自治系统中。如:边界网关协议BG...
2018-06-02 10:19:28
2671
1
原创 网络层协议之网际控制报文协议ICMP
一、ICMP(Internet Control Message Protocol)的功能架构IP网络时需要注意两点:确认网络是否正常工作,以及遇到异常时进行问题诊断。ICMP的主要功能是:确认IP包是否成功送达目标地址,通知在发送过程当中IP包被废弃的具体原因,改善网络设置等,可以有效的转发IP数据报和提高交付成功的机会。二、ICMP报文1、ICMP报文的格式2、ICMP报文的种类ICMP差错报告...
2018-06-01 15:36:31
1308
原创 平衡二叉树(AVL tree)概述
一、AVL tree基本概念AVL树前提是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。平衡因子BF(balance Factor):二叉树结点的左子树深度与右子树深度的值,AVL树上所有节点的BF只能是-1、0、1,如果二叉树上有一个节点的BF的绝对值大于1,那么这个二叉树就是不平衡的。最小不平衡子树:距离插入节点最近的,且平衡因子的绝对值大于1的结点为根的子树,被称为最小不...
2018-05-31 21:48:48
2217
1
原创 网络层IP基本概念
一、网际协议IP1、网际协议IP是最重要的因特网标准之一,与IP协议配套使用的有三个协议:地址解析协议ARP(Address Resolution Protocol)网际控制报文协议ICMP(Internet Control Message Protocol)网际组管理协议IGMP(Internet Group Management Protocol)2、一些中间设备:转发器:物理层使用的中间设备...
2018-05-31 16:19:22
1131
原创 关于二叉搜索树(BST)的总结
一、二叉搜索树的概念二叉搜索树(Binary Search Tree)节点放置:任何节点的键值一定大于其左子树的每一个节点的键值,并小于其右子树的每一个节点的键值。因此,找出BST树的最大元素和最小元素,就是从根节点一直往左走,直至无左路可走,即得最小元素;从根节点一直往右走,直至无右路可走,即得最大元素。二、二叉搜索树的查找操作1、二叉树结构定义//二叉树的二叉链表节点结构定义typedef ...
2018-05-31 11:13:35
802
原创 vector的增长方式以及与list、deque的区别
一、vector概述及增长方式vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新元素;vector与array的唯一区别就是空间运用的灵活性,array是静态空间,一旦配置就不能改变。vector的实现技术在于其对大小的控制以及重新配置时的数据移动效率。vector有三个迭代器:iterator start iterator start; //表示目...
2018-05-31 09:21:59
283
原创 数据链路层的基本概念
1、链路与数据链路的区别链路是从一个节点到相邻节点的一段物理线路,中间没有任何其他的交换节点。数据链路是除了一条物理线路之外,还必须有一些必要的通信协议来控制这些数据的传输。也就是说数据链路等于链路加上实现这些协议的硬件和软件。比如网络适配器(既有硬件,也有软件)。2、数据链路层的协议数据单元--帧点对点信道的数据链路层进行通信的步骤:(1)节点A的数据链路层把网络层交下来的IP数据报添加首部和尾...
2018-05-30 16:43:27
2881
1
原创 OSI与TCP/IP各层结构和功能,以及相应的协议
一、OSI的七层协议与TCP/IP体系结构如下图可见,是OSI七层协议体系与TCP/IP的体系结构,实际上,TCP/IP的体系结构是四层,如图b。但是一般在学习计算机网络的原理时往往会采取折中的方法,综合OSI与TCP/IP的优点,就会采用五层协议的体系结构(如图(c)).注:五层协议体系结构只是为了介绍网络原理设计的,实际应用的还是TCP/IP四层体系结构。二、各层协议和功能1、OSI模型各层功...
2018-05-30 14:47:41
11263
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人