自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OpenCV-Python[第三章]——性能测量与优化技巧

简介使用OpenCV自带的函数getTickCount可以得到周期数,getTickFrequency可以得到频率,其单位是cycles per second。示例代码如下:import numpy as npimport cv2import matplotlib.pyplot as plt# Load two imagesimg1 = cv2.imread('Desert.jpg')e1

2016-12-06 20:37:38 744

原创 OpenCV-Python[第三章]——位操作

说明OpenCV提供了4种位操作,AND,OR,NOT,XOR。函数为相关的操作加“cv2.bitwise_”前缀。如:cv2.bitwise_not。对于2元操作而言,至少两个参数,src1,src2;dst参数返回结果可选,msk参数也是可选,指定msk区域进行相关操作。如下: bitwise_and(src1, src2[, dst[, mask]]) -> dst 因此,可以使用参数返回

2016-12-06 20:01:38 6513 3

原创 OpenCV-Python[第三章]——加法操作与alpha blending

说明普通的python加法’+’是溢出操作,opencv的加法函数cv2.add是饱和操作。x = np.uint8([250])y = np.uint8([10])print x+y # got 4print cv2.add(x,y) # got 255此外,OpenCV提供了权重加法函数cv2.addWeighted,其进行如下操作: 使用Win7系统自带的两张图片做测试,其结果如

2016-12-05 21:46:36 4354

原创 OpenCV-Python[第三章]——图像格式及操作方法

理解图像完整代码补充说明理解图像图像其实就是一个2维数组,因此可以使用行列坐标对图像像素点进行定位。对于彩色图像,每个像素点对应的是一个包含bgr(cv2.imread读取的图像为BGR模式)的三元素的数组,灰度图像则每个像素对应一个灰度值。px = img[100,100] #access pixelprint px #print the pilxe value 此外

2016-12-05 20:43:37 3147

原创 OpenCV-Python[第二章]——画图函数

简介相关说明画线画矩形画园画椭圆画多边形添加文本完整代码简介学习使用OpenCV画几何图形,主要的函数为:cv2.line(),cv2.circle(),cv2.rectangle(),cv2.ellipse(),cv2.putText等。相关说明上述几个函数具有如下的相同类型的参数:img: 背景图像color: 形状的颜色。格式为BGR,是一个元组,如(255,0,0)表示蓝

2016-10-27 19:47:36 9635

原创 OpenCV-Python[第二章]——视频初步

简介捕捉视频保存视频示例代码简介本小节学习读取/显示/保存视频。涉及到的主要函数是cv2.VideoCapture(),cv2.VideoWriter().捕捉视频使用cv2.VideoCapture即可捕捉视频,它的参数可以是数字或者文件名,并且可以返回一个VideoCapture对象。如果是数字则代表连接的摄像头,有多个摄像头的情况依次为0,1,2.文件名则表示从本地视频文件获取视频流。之

2016-10-26 20:21:00 1229

原创 OpenCV-Python[第二章]——图像初步

目标使用OpenCV显示图像读取图像显示图像保存图像使用Matplotlib显示图像目标学习读取图像、显示图像以及保存图像学习3个OpenCV函数:cv2.imread(),cv2.imshow(),cv2.imwrite()学习使用Matplotlib显示图像使用OpenCV显示图像读取图像使用cv2.imread()读取图像,图像必须在当前工作目录否则需要提供完整路径。impo

2016-10-23 11:46:43 2745

原创 OpenCV-Python[第一章]——开发环境搭建(Windows)

Python开发环境OpenCV-Python库安装Python开发环境Windows平台有许多优秀的Python集成开发环境,这里推荐Python(x,y)。spyder不仅集成了代码编辑,类似MATLAB的变量窗口,交互式调试等,内部还集成了大量的需要的Python库如Numpy/Scipy/Matplotlib等。 下载Python(x,y)的Windows版本,按步骤进行安装即可。因为不

2016-10-22 00:27:01 784

原创 OpenCV-Python[第一章]——简介

OpenCV介绍OpenCV-Python有用的链接ReferenceOpenCV介绍OpenCV是由intel的Gary Bradsky在1999年发起,第1版在2000年发布。OpenCV是一个开放的计算视觉库,支持大量的计算视觉、机器学习算法。 目前,OpenCV已经支持主流的编程语言如C++,Python,Java等;并且能够夸平台,在Windows/Linux/OS X/Andro

2016-10-21 23:05:25 512

原创 文本处理小工具SED用法

SED是什么 SED是Stream EDitor的缩写,也就是SED是一个流编辑器。它的处理方式和Gvim/emacs完全不一样。更多的是将SED用作文本处理而不是文本编辑。 SED用法说明 一般linux系统都会内置SED命令。输入sed会打印出help信息。从help信息可以看到其用法如下:sed [options]... 'command' files...sed的options

2016-10-12 20:55:34 415

原创 使用SVN构建自己的本地代码库

0. 引言现在项目开发通常以团队进行,因此团队之间需要进行分工协作,为了统一管理项目,一般使用版本管理工具来方便彼此的代码提交管理。此时,代码一旦提交,整个工程都会受到影响。因此,在提交代码之前一定要自己先充分进行测试,至少确保没有一些很基本的问题。在代码修改测试的过程中,会有代码的迭代修改,因此也有必要使用版本管理软件对本地的代码进行管理,它能让你方便的回到几天前的一个修改。1. 版本管

2016-10-03 10:37:32 3622

原创 学习使用LATEX排版

0.说明本文使用的LATEX排版工具为CTEX套件,具体可参看上一篇博文。1.排版实练1)换行每行最后加“\\”可进行换行,也可以使用\newline指令。\\换行还可以进行行距控制。this is a line \\[1cm]this is a new line上述内容表示在原来行间距上加上1cm,值可以是负数,表示减去对应的行间距。不使用换行控制,即使进行回

2016-05-08 11:28:12 761

原创 科学论文写作工具TEX/LaTEX/CTEX

0.TEX陈年往事    Knuth教授在写作TAOCP(The Art of Computer Programming)时,发现书商把他书中的数学式排的太难看,于是决定自行开发一个非常适合排数学式的排版语言,于是有了TEX,并且迅速流行并吸引了很多的科学工作者使用TEX作为科学论文写作。(大牛就是大牛)ps:TAOCP介绍的网站,主要是关于算法的。http://www-cs-staff.

2016-05-08 11:28:08 3229

原创 FPGA约束设置

0.引言在使用FPGA进行设计时,当电路频率较低(小于50Mhz)时,可以不用进行时序约束,而当频率较高时,不进行约束无法让时序满足要求。目前主流的FPGA厂家有Xilinx和Altera,不同厂家的FPGA使用的软件不一样,约束设置也不同,目前,altera的Quartus II软件已经能够支持Synposys的TCL语法格式的约束,其约束设置的命令与语法与ASIC几乎一致;Xilinx的I

2016-05-08 11:28:03 2621

原创 国密杂凑算法SM3

0. 引言SM3杂凑算法是中国国家密码局公布的hash算法商用标准,能应用于数字签名与验证、消息认证码的生成以及伪随机数的生成。1. 常数与函数1.1 初始值IV = 7380166f 4914b2b9 172442d7 da8a0600 a96f30bc 163138aa e38dee4d b0fb0e4e1.2 常量Tj={ 79cc4519    0≤j≤15;7a8

2016-05-08 11:27:59 16632 1

原创 AES加密算法C代码分析

0.引言对于加密算法的软件实现,通常已经有很多的成熟的库可供选择,只需要根据自己的要求进行选择即可相应的库即可(有的可能需要进行些许修改)。这里选择的是C语言实现的一个开源密码库mbedTLS,mbedTLS由XySSL发展而来,后改为PolarSSL,PolarSSL被ARM公司收购后改成了mbedTLS,主要用于物联网等安全嵌入式领域。mbedTLS实现了常见的分组加密算法、hash算法、

2016-05-08 11:27:54 4156

原创 verilog PLI简介

0.简介Verilog PLI(Programming Language Interface )是一种Verilog代码调用C/C++函数的机制。它能让Verilog像调用一些系统调用(如$display/$stop/$random)一样调用用户编写的C/C++函数。PLI可以完成如下功能:功耗分析代码覆盖率工具修改Verilog仿真数据结构(如修改为更精确的延时,即sdf反标

2016-05-08 11:27:50 10533

原创 VCS仿真器加密代码方法

代码加密对于IP而言非常重要,起到保护知识产权的作用。VCS提供了代码加密功能,当然,使用VCS加密的代码只能在VCS中使用。方法1:代码中加入编译器代码保护指令,指令之间的代码将被加密,VCS加密使用的是AES128算法。对于Verilog代码而言,编译器指令为:`protect128/`endprotect128;VHDL则为--protect128/--endprotect128。方

2016-05-08 11:27:47 10351 1

原创 常见的串行通信协议

1.UARTUART是通用异步收发传输器,使用RxD和TxD两根线实现异步全双工通信;为确保通信可靠,可以在通信两边接共地;因此,完整的UART通信只需最少3根线即可。RxD是发送数据线,TxD是接收数据线,通信双方使用交叉互联,RxD接对方TxD,TxD接对方RxD。UART使用标准的TTL/CMOS电平(0~5V,0~3.3V,0~2.5V,0~1.8V)来表示数据,高电平表示1,低电

2016-05-08 11:27:43 20139

原创 常见的传输码型

1.不归零码NRZ、双极性不归零码BNRZ不归零码在一个码型传输过程中不会归零,用“高电平”表示1,“零电平”表示0;双极性不归零码BNRZ同样是不归零码,用“高电平”表示1,“负电平”表示0;上述编码信道密度高,但无法从码型中提取同步信息,需要外同步,否则会累积误差。波形如下:2.归零码RZ,BRZ归零码RZ也使用“高电平”表示1,但在一个周期内,高电平需要归零,“零

2016-05-08 11:27:38 9764

原创 FIFO那些事儿

0.引言FIFO尤其是异步FIFO几乎是数字IC设计工程师面试必备,几乎每年都有9~10月份都能听到关于异步FIFO的讨论。而异步FIFO在接口电路设计或高速数据传输中也非常常用,在实际工程应用中,一般很少去自己设计异步FIFO,因为其太复杂,处理很繁琐,容易出错;一般是使用DW的IP,使用FPGA的也有对应的FIFO的IP供免费使用。好的FIFO有两条标准:写满不溢出,读空不多读。一定要

2016-05-08 11:27:33 5905

原创 异步电路处理的若干问题

0.引言大四保研到实验室正好碰到师兄师姐们找工作,听到的一些面试常问的内容就是“跨时钟域”、”异步处理“、”异步FIFO“等。然而我看的一些经典的书籍都是这样说的”异步电路很难设计,最好全部使用同步技术进行设计,所有寄存器器使用一个全局时钟驱动“。可在实际项目中,我又发现现代芯片设计中很难只使用一个时钟,时钟分频逻辑、时钟选择多路器,除了多时钟,有时还必须在两个不同的时钟间传递数据。也就是异步

2016-05-08 11:27:29 4003

原创 AXI总线简介

0.绪论AXI是高级扩展接口,在AMBA3.0中提出,AMBA4.0将其修改升级为AXI4.0。AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-streamAXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输

2016-05-08 11:27:24 18888

原创 TCL语法简介1

1,脚本构成 set a 2set b 3//set a 2;set b 3TCL脚本可以包括多个命令,命令间使用换行符或者分号分开,一个命令使用空格分开命令、变量等其他参数。2,置换变量置换  set c $a+$b //c = a+b=2+3使用美元符号$进行变量置换,上式中c=2+3而不是5,要让c=5需要使用命令置换。

2016-05-08 11:27:19 1625

原创 AMBA总线概述

一、概述高级微控制器总线体系(AMBA)规范定义了在设计高性能嵌入式微控制器时的一种片上通信标准。AMBA2.0标准定义了3种不同的总线:l 高级高性能总线(AHB)l 高级系统总线(ASB)l 高级外设总线(APB)一般的系统会选择AHB/ASB+APB的总线架构,图1是一个典型的AMBA系统 图 1 典型AMBA系统 AMBA AHB用于高性能、高时

2016-05-08 11:27:15 7727

原创 OC8051内部逻辑分析(1)

采用数据流的方式进行OC8051内部的逻辑分析,需要首先理解其存储器架构,然后追踪程序到再到数据流。  前面有提到过,OC8051程序和数据存储器逻辑分离,在物理上,其可能有4种存储器,分别为内部程序存储器irom,内部数据存储器iram,外部程序存储器器xrom,外部数据程序存储器xram,其中访问xram和访问iram的指令不同(mov、movx,并要通过DPTR寄存器)。OC8051使用

2016-05-08 11:27:10 1232 1

原创 OC8051软件编程说明

1、复位  复位通过复位引脚RST输入,复位必须达到两个周期的高电平才能将系统复位。复位后,PC指针为0000H,因此0000H即为复位向量入口,复位后从此处开始运行程序。复位后P口(P0,P1,P2,P3)被设置为FFH,堆栈指针值为07H,其他特殊功能寄存器的初值均为00H,内部RAM的值不受复位影响,复位后,其值不确定。2、寄存器列表  图1为OC8051的寄存器列表: 

2016-05-08 11:27:08 829

原创 OC8051简介

引言:本来想写一个OC8051系列的博客,作为自己学习研究OC8051的一个记录,可实在是惭愧,距离上一次篇OC8051过去实在太久了。我得抓紧了。一、简介  8051微控制器是MCS-51系列,最初的设计由intel在80年代完成。8051一经推出就风靡全球,在大量的嵌入式产品中使用。  基本的8051包括一些片上外设,像定时器/计数器,128B片上RAM和高达4K片上ROM。 

2016-05-08 11:27:03 2186

原创 centos火狐浏览器安装flash player

无论是360还是百度的云盘,都没有linux的客户端,只能使用网页版,而使用网页版文件上传时提示需要安装flash player。优酷看视频也需要安装flash player,总之,现在网络应用,很多是采用的flash player。直接安装或火狐搜索插件安装均未能安装成功。只能自己下载安装。安装文件我的网盘有备份:http://yunpan.cn/QNhzXVYAEjJAR (提取码

2016-05-08 11:26:59 299

原创 centos 安装ntfs-3g

我的操作系统是centos 5.8默认不支持ntfs文件格式,由于是双系统,有时候需要访问windows下的文件(ntfs格式的)。可以安装ntfs-3g来增加对ntfs文件格式的支持。需安装软件:fuse ,ntfs-3g(ntfs-3g依赖fuse)软件下载可以网上搜索下载,我在网盘有一个备份:http://yunpan.cn/QNhzXVYAEjJAR (提取码:4b85)安

2016-05-08 11:26:56 573

原创 centos 分辨率设置

最近又实验安装了centos 5.8,装完后启动,界面太差了,看着费劲。百度一查,原来是分辨率的问题。下面是分辨率设置方法。“系统->管理->显示“(英文版本的是system->adminstaration->display),打开后,hardware的monitor type 选择你的显示器对应类型,我的是LCD 1440x900。video card 显卡驱动,默认的都是用的lin

2016-05-08 11:26:54 5389

原创 Verilog case coding style

1、一般情况下,综合器将case语句综合成多路选择器,但也可能综合成优先级译码器。2、case语句中,如果条件列举不完全,将综合出不必要的锁存器。综合器指令://synopsys parallel_case & //synopsys full_case使用//synopsys parallel_case可以引导综合器生成多路选择器。1 always @(cs_state)2

2016-05-08 11:26:49 2151

原创 make the OC8051 run

好吧,我使用了一个洋气的标题,anyway,this's my begin of the oc8051。so,管它中文还是英文,我要开写了。作为开头,很多细节我就先略过了,主要简单的介绍几个步骤to make the OC8051 run。1、获取OC8051源代码。(opencore或某电子类论坛下载)。2、修改oc8051_defines.v。此文件可让用户对硬件进行裁剪和配置。

2016-05-08 11:26:45 655

原创 如何培养写博习惯

很庆幸大四那会儿,有大量空闲时间,当时到是潜心研究了一大堆乱七八糟的技术,只是随着进入研究生阶段,跟着导师做项目,渐渐忙起来了,而当时研究的技术也是多而且杂,并且没有做技术笔记,现在好多的都忘记了,只留下一点点思想、方法,具体的做法还得重新来过。细细想想,觉得还是挺没效率的,当时虽然快速学了很多,当由于没有应用,很多都随时间淡忘了,还有很多浅浅的学习的内容则基本忘光,重新研究几乎得

2016-05-08 11:26:40 243

原创 U盘安装redhat4.7

前段时间给实验室安装新的服务器,为了稳妥,我选择了刻盘,下好了系统,买了光盘,无奈的是不知是我刻盘方式有问题还是下载的镜像有错了,刻了几张都失败了,虽然光盘才1、2块,但老是刻坏也不划算啊,于是寻找U盘安装方式,U盘现在已经很便宜了,我的一个8G toshiba才20多米。好了,下面开始正题。准备:1.redhat4.7的镜像.iso(一定要下靠谱的镜像,我后来发现上面刻盘安装都失败其

2016-05-08 11:26:35 726

原创 使用ghost进行win系统安装

Xp由于前段时间突然奔溃了,一直用的ubuntu,今天有空了,想恢复一下XP,无奈之前没有做系统备份,所幸我的另一台电脑刚下了一个XP的ghost,文件是iso格式的,但主要是里面的.gho文件,其他一些是ghost设置需要用的,因为本人电脑之前装过一键ghost,所以只需要有gho文件即可。步骤如下:1.解压下载的xp的iso文件,将.gho文件拷入U盘。2.用ubuntu进入系统,

2016-05-08 11:26:33 327

原创 verilog文件读写

verilog内建提供了一些系统函数用于文件读写,常用的有$readmemh(),$readmemb(),$fopen(),$fdisplay();$readmemh/$readmemb函数通常用于对rom的行为模型建模,向rom中加载用户程序。用法如下:1 reg [31:0] mem[2047:0];2 initial3 begin4 $readmemh

2016-05-08 11:26:28 4743

原创 建立时间保持时间方程及其影响

(注:本文翻译自:http://www.edn.com/design/systems-design/4392195/Equations-and-Impacts-of-Setup-and-Hold-Time)在深入了解建立时间保持时间方程及其影响之前,先让我们简单的了解一下什么事建立时间和保持时间。建立时间:建立时间定义为为了使数据正确的锁存,其在时钟有效沿到来前必须稳定的最小时间。任何这一

2016-05-08 11:26:24 9968

原创 Ubuntu下安装apache

安装:sudo apt-get install apache2启动服务器:sudo /etc/init.d/apache2 start测试:在浏览器输入:127.0.0.1进行回环地址测试,结果如下:It works!This is the default web page for this server.The web server software is run

2016-05-08 11:26:19 238

原创 linux下音乐播放软件

虽然说大家用linux一般是工作,但工作累了总要休息吧,听听音乐还是不错的。  linux 下有很多免费的好用的音乐播放客户端,我用的系统是Ubuntu12.04LTS ,默认的播放器是Rhythmbox.个人感觉还不错,  如果没有安装,可以用“sudo apt-get install rhythmbox”来进行安装 ,官方说是用于gnome桌面,不知其他的桌面系统是否可用  。  

2016-05-08 11:26:17 861

Implementation and Timing of Reset Circuits v1.0

altera官网的关于复位电路设计的很好的一篇文章,详细的分析了同步复位,异步复位,同步复位异步释放等复位电路特点。注:此文档为英文。

2014-07-30

空空如也

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

TA关注的人

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