自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白羊座

站住,别跑,我是彭于晏。。。

  • 博客(20)
  • 收藏
  • 关注

原创 Leetcode每日一题

学习目标:随机刷题,补充基础知识学习内容:链表的基本知识和操作学习产出:leetcode1题 技术博客 1篇

2022-05-31 18:53:56 150 1

原创 spi、uart、iic总线区别

1、UART总线详解Universival Asychronous Receiver/Transmitter(通用异步串行口),UART 是一种较为通用的数据传输的方法(即 Start Bit+Data+Check+StopBit),而 COM 口中 Rx、Tx 的数据格式即为 UART。UART 和 RS232是两种异步数据传输标准。计算机中的 COM1和 COM2都是 RS232串行通...

2018-08-01 15:28:14 1897

原创 C++ --- 静态数据成员

静态数据成员多个同类的对象之间实现数据共享,但是不用全局变量,可以用静态数据结构成员。因为全局变量的值可以在各处随意的修改,很可能因为一处失误,导致整个程序失败。#include <iostream>using namespace std;class Box{ public: Box(int, int); int volume(...

2018-07-31 23:35:09 2377 2

原创 advanced FPGA --- 优秀的代码风格

Achievements provide the only real pleasure in life.同一个实现,会有各种各样的代码风格,那么就会有优劣,下面说一下,什么是优秀的代码风格。总体来说,分为两大方向:第一性能最优,第二就是功耗最低。1.关键路径的高扇出采用寄存器复制的方式。具体来说,分为两种:综合工具选项和用户控制。综合工具选项是使用扇出阈值来自动判断是否需要逻辑复制,但...

2018-07-31 16:33:46 906

转载 advancedFPGA --- 时序分析

Achievements provide the only preasure in life.静态时序分析(Static Timing)是数字 IC 设计中不可避免的话题,也是一个菜鸟成长必须掌握的技术。本文先总结 STA 中常见的定义、名词等。Clock时钟是数字电路的动力系统,可以说数字电路中最重要的信号就是时钟信号了。一般时钟信号的时序特性分为: 偏移 Skew ...

2018-07-31 15:30:24 6349

原创 对象的操作 --- 动态建立/释放/赋值/复制

1. 动态建立与释放一般方法定义的对象是静态的,在程序运行中,对象所占用的空间不能随时释放的。C++/C语言中,可以用new运算符动态建立一个对象,用delete运算符撤销对象。new Box;系统开辟了一段内存空间,存放一个Box类对象,同时调用该类的构造函数,完成对象初始化。用new运算符动态分配内存后,将返回一个指向新对象的指针的值,即所分配的内存空间的起始地址。需要定义一个指...

2018-07-30 23:29:07 369

转载 Amdahl(阿姆达尔定律) Law

推导 局限性 串行程序的优化 和边际收益递减规律的关系 举例 阿姆达尔定律给出了任务在固定负载的情况下,随着系统资源的提升,执行速度的理论上限。以计算机科学家Gene Amdahl命名。 Slatency(s)=1(1−p)+psSlatency(s)=1(1−p)+ps 其中 SlatencySlatency: 整个任务的提速比。 s: 部分任务得益于系统资源升...

2018-07-29 23:03:32 1472

原创 vivado深入理解 --- advanced synthesis

Achievements provide the only real pleasure in life.综合就是RTL设计转换为门级表示,是由时序驱动和优化的。vivado支持可综合的语言子集:SystemVerilog、Verilog、VHDL以及三者的混合语言。systhesis支持两种设计模式:project mode 和 non-project mode。vivado有四种大的综合...

2018-07-25 14:23:40 8043

转载 C++ ---- 公用数据的保护

Achievements provide the only real pleasure in life.C++虽然采用了不少有效的措施(如设private保护)以增强数据的安全性,但是不同场合往往会不同的途经访问同一个数据对象。既要数据能在一定范围内共享,又要保证它不被任意修改,这时可以使用const,即有关的数据定义为常量。<1> 常对象定义对象时指定的对象为常对象。常对...

2018-07-24 23:39:35 429

原创 C++ --- 对象指针

在建立对象时,编译系统会为每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象的指针。可以定义一个指针变量,用来存放对象的指针。class Time{ public: int hour; int sec; void get_time();}void Time::get_time(){cout << hour << ":" &...

2018-07-13 18:39:08 722

原创 C++ ---- 对象数组

数组不仅可以由简单变量组成(例如整型数组的每一个元素都是整型变量),也可以由对象组成(对象数组的每一个元素都是同类的对象)。在日常生活中,有许多实体的属性是共同的,只是属性的具体内容不同。每一个数组元素是一个“类”的对象。Student stu[50]; //定义了stud数组,有50个元素。在建立数组时,同样要调用构造函数。如果有50个元素,就要调用50次。在定义...

2018-07-08 22:29:41 753

原创 数据结构的基本术语

数据元素:数据中具有独立意义的个体。例如,工资表中的个人工资,成绩表中的学生的考试成绩。有些场合下也称为元素,记录,节点,顶点等。字段(域):字段是对元素更加详细的描述。通常情况下,元素可能包括多个字段,例如成绩中,包括序号、学号、姓名、成绩和备注5个字段。数据结构:各个元素之间具备一定的构成形式,这些构成形式被称为数据结构。是指组成数据的元素之间的结构关系,例如有线性关系、树形关系、图结构等。如...

2018-07-07 23:33:43 362

原创 C++ ---- 析构函数

析构函数(distructor)是一种特殊的成员函数,与构造函数相反,名字在类名前面加一个“~”符号。对象生命周期结束时,会自动执行析构函数。有如下情况:<1> 如果在一个函数中定义一个对象,当这个函数被调用结束时,对象应该释放,在对象释放前自动执行析构函数。<2> static局部对象在函数调用结束时,对象并不释放,因此也不调用析构函数,只在main函数结束或者exit函...

2018-07-07 22:16:39 1559

原创 C++深入学习---构造函数的几种应用场景

上一章对所有对象采用一致赋值的方法,即对象调用构造函数,设置初值。但是这样有时候非常不灵活,因为对所有的对象,他们的initial value 都是一致的。有时候我们需要不同对象可能需要不同的初值,如此场景下,有了带参数的构造函数。1. 带参数的构造函数构造函数的一般格式为:构造函数名(类型1 形参1,类型2 形参2,···)定义对象的一般格式:类名 对象名(实参1,实参2,···);#inclu...

2018-07-07 17:01:25 818

转载 FPGA静态时序理论基础

1. 亚稳态的概念说明是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态引时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。在同步系统中,如果触发器的setup time / hold time不满足,就可能产生亚稳...

2018-07-04 10:44:31 308

原创 C++深入了解类和对象 --- 构造函数(constructor)

类是一个抽象概念,abstract concept!甚至直接理解为void,并不占用memory。只有对象才是concrete concept,反映了客观事物的内在属性,是个具体值。所以不能在类的成员数据中对数据初始化。构造函数完美解决了对于多数据成员初始化的问题。构造函数是一种特殊的成员函数,不需要用户调用,而是在建立对象自动执行。构造函数的名字必须与类名相同,而不能由用户任意命名,以便编译系统...

2018-07-03 23:18:21 769

原创 C++初窥

之前做了几年的FPGA,期间也开发过STM32程序,仅限于根据需求点亮LED单色屏。可是随着工程的需求,以及越来越多的发现,虽然FPGA在做硬件(数据)加速尤其是算法层面数据预处理或者中间数据的处理有着非常天然的优势,也得益于FPGA特性---并行性以及一些高速接口,eg:DDR4/serDes/100G Ethernet...。但是在面对一些更加复杂算法时,实现难度也是几何级数的增加。并且现在x...

2018-07-01 22:49:14 168

原创 Xilinx-7系列FPGA架构学习 --- 深入理解LUT

Achievement provides the only real pleasure in life.有所成就是人生唯一的真正的樂趣。LUT的一个重要功能是逻辑函数发生器。本质上,逻辑函数发生器存储的是真值表(Truth Table)的内容,而真值表则是通过布尔表达式获得。在vivado中,打开网表文件,选择相应的LUT,在property窗口中可以看到真值表。从逻辑电路角度看,LUT是构成组合...

2018-06-15 17:16:54 14824 2

原创 Xilinx-7系列FPGA架构学习 --- CLB/LUT/...

Achievement provides the only real pleasure in life.有所成就是人生唯一的真正的樂趣。通过xilinx vivado提供给implementment,可以看到实际情况(vivado 2017.4 kintex 7为例):每个CLB包括两个slice(两个SLICEL或者一个SLICEM一个SLICEM·)---8个6输入LUTs(逻辑产生单元),1...

2018-06-11 14:18:18 5254

原创 Xilinx-7系列FPGA架构学习 --- CLB

xilinx-7系列底层架构分析与设计应用

2018-05-23 15:06:22 6846

空空如也

空空如也

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

TA关注的人

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