自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

re_call的博客

补码计算

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

原创 数字芯片设计中FIFO问题总结

在数字芯片设计中FIFO是经常遇到的,但是如果但把FIFO相关问题拿出来提问别人,有时候不一定能块速解答,下面总结经常遇到的一些问题。1.一个读写时钟相同的FIFO,每100个时钟周期会写入10个数据,写入的时间是随机的。每10个时钟周期会读1个数据,输出没有反压,计算FIFO最小深度。既然是计算FIFO最小深度,那么我们就要考虑极端情况,保证在极端情况下FIFO可以满足需求。基本要求就是来的数据都能存下,不能丢。那么当在第一个100时钟周期后的10个cycle和第二个100时钟周期的前10个cyc

2021-03-15 12:09:00 1790

原创 Matlab使用textread读取文本数据

Matlab中可以使用textread函数读取文本数据,语法简单,方便数据操作;比如test.txt中有如下数据:12 23 43 34f 12c 38ard_dt = textread('test.txt','%s');即可把test中的文本读到,同时我们也可以对rd_dt直接做形状转换,如rd_dt = reshape(rd_dt,2,3)则把1行rd_dt转换成2行3列的数。如果想把rd_dt中16进制的数转换为10进制,则可以使用rd_dt=hex2dec(rd_dt)。.

2021-02-26 20:45:45 2500

原创 Matlab两种求相位的方法

在matlab中有两种求相位方法。1.使用phase函数。比如a = 1+j*2phase(a),则可以就a的相位。这个函数取实部为x轴,虚部为y轴。2.使用函数atan2。atan2(y,x),注意y轴的数是放在前面的。atan2(2,1) 和刚才phase(a)结果是一样的。或者直接使用atan2(imag(a),real(a))。...

2021-02-07 16:53:01 38872 1

原创 svn diff比对指定版本号差异

使用svn diff可以比较指定版本号文件的差异,具体使用方法如下:svn diff -r02:01 file则可以比较file版本号02和01之间的区别。

2021-02-07 14:11:32 3193

原创 Matlab在一张图上画多条曲线或分别画

1.在plot曲线时,有时想在一张图上重合画多条曲线,我们只需要在画图命令之前加上hold on就好,比如:t = 1:0.1:10;y1 = sin(2*pi*t);y1 = cos(2*pi*t);plot(y1);hold on;plot(y2);运行结果如下:那么y1和y2就画在一张图上。2.有时我们想在一张图上分别画多张曲线,可以使用subplot,比如:t = 1:0.1:10;y1 = sin(2*pi*t);y1 = cos(2*pi*t);

2021-02-06 12:25:44 68271 4

原创 Matlab添加取消注释快捷键

添加注释符号:Ctrl+R;取消注释符号:Ctrl+T。

2021-02-04 10:42:53 668

原创 Matlab中常用的清除命令clc,clear,clf等

matlab中常用的一些清除命令如下:1.clc即可清空命令窗口中的内容。2.clf清除当前figure中的内容。3.close关闭当前打开的figure图形界面。4.clear清空workspace中的变量。5.exit退出MATLAB,执行后直接退出软件。...

2021-02-04 10:35:17 9451

原创 Verilog中的逻辑移位和算术移位仿真

逻辑移位逻辑移位的操作符为右移(>>)高位不够的bit位补0。左移(<<),低位补0。算术移位算术以为呃的操作符为右移动(>>>)高位用呼号位补。左移(<<<),低位补0。实例仿真结果结论对于无符号数,逻辑移位和算术移位结果是一样的。对于有符号数,逻辑右移和算术右移是不一样的。算术右移时,高位需要用符号位补。...

2021-02-03 11:07:42 2138 1

原创 python numpy中mgrid使用方法

import numpy as np基本介绍np.mgrid[start:end:Sj]上述表达中start表示开始数,end表示结束数。Sj表示总共个数。实例:生成的数组是包含end和start这两个数的。np.mgrid[start:end:S]上述表达中start表示开始数,end表示结束数。S表示step,步长。实例:生成的数组包含但是start这个数,但是没有end这个数,数组中的数都是不小于end这个数的。np.mgrid[start:..

2021-02-02 22:35:02 1805

原创 python中使用glob匹配指定文件

glob包是python中非常简单和实用的文件匹配模块。如果我们想查找指定文件下的所有文件,操作如下:import globglob.glob('*')如果想查找以jpg为后缀的图片:glog.glob('*.jpg')如果想匹配以数字开头的文件:glog.glob('[0-9].jpg')...

2021-01-29 09:14:06 559

原创 python使用os.system调用linux命令

在python中调用linux命令的方法,使用os.sytem('command'),command就是linux命令。例如os.sytem('ls'),就可以一调用linux ls命令;os.system('pwd'),打印当前工作目录。

2021-01-28 09:31:54 1681

原创 python查看指定文件的绝对路径和当前工作路径

查看某一指定文件的绝对路径使用os.path.abspath('指定文件名'),举例如下:在python窗口输入os.path.abspath('edge_detect.py'),则输入了我指定的edge_detect.py这个文件的绝对路径。

2021-01-28 09:07:41 4008

原创 python实现一种相似图片搜索算法

下文中介绍了一种相似图片搜索的算法,算法的思路如下:1.把所有操作图片转换为8×8的灰度图片;2.计算每张图片的指纹。把8x8总共64个像素点和其平均灰度值比较,大于平均值返回1,否则返回0,这样每张图都可以用64bit二进制数表示。3.比较指定图片和搜索图片的指纹。通过汉明距来表征其差异。汉明距越大,表示这两幅图片差异越大。代码如下:import globimport osfrom functools import reducefrom PIL import Image

2021-01-25 10:26:18 1348 2

原创 matlab中使用save和load保存和加载文件

把对象保存在mat文件中。save filename object可以保存的对象包括,1.对象的全名,包括任何包限定符;2.动态属性的值;3.所有属性的名称和值。load filename object

2021-01-08 20:02:27 909

原创 matlab中文件是否存在判断和操作

如果想判断某文件是否使用exist函数。a = exist('file'),如果file存在则a返回一个非0的数。删除一个文件使用delete函数。建立一个目录使用mkdir file。

2021-01-08 19:38:51 3400

原创 matlab中min和max的使用

比较两个数的大小max和min基础的用途是,求两数中最大的或最小的一个。比如,max(a,b)。如果a>b,则返回值为a。min(a,b)则返回b。求矩阵中每列的最大最小值如果a是一个m行n列的矩阵。max(a)则求每列中的最大值,返回值为1行n列数。如下程序:求最大值的运行结果如下:求最小值:求矩阵中的最大最小值我们可以看到用矩阵中的最大值为434,最小值为1。求矩阵中极值和位置运行结果如下,其中返回的位置是在列中的位置。...

2021-01-08 19:15:01 7288 1

原创 能量,功率,能量谱和功率谱密度

以下定性的介绍一下我们在信号处理和通信中常见的名词。通过定性的介绍,我们可以对复杂的计算有一个直观的感觉和理解。能量和功率对于能量我们不陌生,功率对时间的积分就是能量。以电流通过电阻举例。能量W = R^2*I*t。那么功率就是单位时间内产生的能量,也即是能量对时间的微分。能量普和功率谱密度以上是在时域上分析能量。如果我们在频率分析信号。那么信号的能量就是不同频率能量的总和。那么不同频率的能量分布就是能量普。在进一步,如果我们能对不同频率下的能量分布微分,那么求得的就是功率的分布了。能量

2020-12-30 09:07:43 3651

原创 数字电路中锁存器,触发器和寄存器的区别

锁存器(Latch)锁存器是电平敏感,即在电平有效时,被赋值的数跟赋值数变化而变化。触发器(Flip-flop)对脉冲的边沿敏感,被赋值的数只在时钟脉冲的上升沿或者下降沿的瞬间改变。寄存器能够寄存数据的单元的统称。从名字来看,不管是锁存器还是触发器都是寄存器。寄存器是最小的存储单元。在一般设计中要避免Latch的产生。因为1.Latch对输入电平敏感,受布线延时影响比较大,容易产生毛刺。2.时序分析难。...

2020-12-16 19:59:36 834 1

原创 简单理解Verilog中的阻塞赋值和非阻塞赋值

在做芯片设计写硬件描述语言时,对于初学者必然面对的一个问题是,该如何使用阻塞赋值和非阻塞赋值。对于个问题,首先要理解什么是阻塞赋值?什么是非阻塞赋值?阻塞赋值从形式上来看,阻塞赋值用等号(=)表示。从字面意思上来看,赋值时被阻塞了。比如a=b,意思是把b值赋给a,从表达上来看a永远和b的值是相等的。但是如果b是一个表达式,比如b=c+d+e,或者其他复杂表达形式,那么要想让b值赋到a上,那么b必须完成c+d+e计算。那么这样a被赋值是有一个阻塞的过程。非阻塞赋值从形式上来看,非阻塞赋值用小于

2020-12-16 09:50:30 2414

原创 matlab中int32,int64,single和double区别

int32和single类型的数据都是32bit。int32不仅定义了数据的位宽,还定义的数据是整型。int64和double类型的数据都是64bit。

2020-10-24 15:33:37 7087

原创 matlab class和whos区别和使用

class可以查看变量的类型。使用方式,class(object),即可查看object的类型。示例如下:whoswhos用于列出当前工作空间中所有变量,以及它们的名字、尺寸(比如一个矩阵或数组的行列维数)、所占字节数、属性等信息。使用方式,whos object。...

2020-10-24 15:02:38 1087

原创 matlab 移位bitshift的使用

bitshift是移位操作,是截位操作。使用语法为bitshift(a,b)其中a是被移位数,b是移的位数。a只能是正数。b是正数时,表示向左移位。b是负数时,表示向右移位。如bitshift(5,1),即把5向左移1bit。如bitshift(5,-1),即把5向右移1bit。...

2020-10-22 08:17:35 13426 1

原创 linux查看服务器状态命令--lsload

一般公司有多个服务器,有些服务器用的人比较多,如果再使用,势必会很慢,如果知道每台服务器使用情况,那可以避开拥堵,提高自己的工作效率。使用lsload可以显示各个可用服务器的状态。显示如下:...

2020-10-22 08:11:43 3230

原创 什么是IQ调制

对于做通信的朋友来说,肯定都听过IQ调制,但是对于什么是IQ调制,或者IQ调制是什么,都是不清楚的。坦白讲,如果不是实际操练,我也是不清楚的。现在整理一下相关知识。对于一些知识,我们一方面要认为他们是神奇的,这样可以激起我们的兴趣。但是另一方面,我也不要觉得他们神秘,对于未知的知识,我们只要保持冷静,慢慢分析和理解,都是可以认知的。IQ调制简单来说就是两路数据,一路是I(In-phase,同相),一路是Q(Quadrature,正交)。他们是分别进行载波调制的结果,两路载波是相互正交的,所以调制出来

2020-10-19 09:56:08 2302

原创 AHB总线技能提升版

简介不管是什么总线,都是为了模块之间通信,传输数据。既然是两个模块之间通信,那么就必须有一种两个模块都遵守的规则,这个规则就是协议。不同的协议有不同的规则。用不同的规则是服务于不同的应用,不同的模块的。AHB是Advanced Peripheral Bus的首字母缩写,它是AMBA总线规范的一部分。AHB具有高性能特点,常用在ARM核与系统内部的高速RAM,NAND FLASH,DMA和Bridge的连接。与APB相比,APB主要用于连接外部设备,而且对性能要求不高但是在意功耗的系统。AHB主要

2020-10-08 19:12:14 444

原创 由JD客服改变引发的思考

在京东商订购了一台冰箱,想预约一下送货时间,于是打了客服电话。让我吃惊的是,1.现在的服务选择直接用语音描述,而不是之前像其他公司客服电话一样,需要手动选择0,选择1。。。刚开始时候还是有点不适应。但是这波操作之后,感觉这样还是比较方便。语音说之后,他能给出比较好的结果。2.在服务等待期间,没有盲音,而是放一段音乐。这2点变化,给我感觉很好。从技术上看,有这种改变得益于人工智能的发展。从服务上来看,是在最求最好的用户体验。希望以后有更智能,更好的发展和用户体验。企业都在不停的追求改变和发展,那么

2020-09-29 09:42:41 216

原创 奋斗和发力

在华为时,听到这样一个故事。以为外国工作人员问中午领导,什么是奋斗?由于语言的差异,这位领导解释不了,于是就请假任总。任总跟他说,你就跟人家外国人说,在华为奋斗就是,你干的越多,获得的就越多。这样,外国人就懂了。现在一些小公司,事多,钱少,离家远。可以老板还一直push,不停的说,加油,发力。这样的口号对于喜欢老实干活的人来说,是干不长久的。...

2020-09-28 08:35:01 195

原创 浅析芯片中握手设计

握手,我们熟悉的动作了,虽然动作简单,但是握手里面有好多学问和细节。今天我们看的不是日常交往中的握手,而是说这芯片设计中的握手处理。在芯片中模块之间会经常用到握手处理,这样各自模块可以处理自己的事,提高整体的效率。一般握手用两个信号线,比如A模块和B模块握手。A发出一个valid信号,B模块有ready信号。A准备好了valid会有效,B准备好了B的ready会有效。在A的valid和B的ready同时有效时,完成握手。在设计中要特别注意A的valid不能依赖B的ready,同样B的ready不能依

2020-09-25 08:13:50 989

原创 svn revert批量撤回本地修改操作

revert的作用是撤回本地文件的修改,有时候我们修改的文件过多,又想给恢复到之前,就需要批量操作了。使用如下:svn revert --depth=infinity file可以对file目录下的所有文件做revert操作。

2020-09-23 09:04:02 2518

原创 python查看包的安装路径和版本信息

查看某安装包的安装路径和相关信息。比如想看Theano的信息,在terminal中输入pip show Theano则显示:

2020-09-22 14:39:51 566

原创 svn查看本地和库上文件是否有修改

查看本地文件是否有变动使用:svn st如果在文件显示‘M’,表示本地有修改。如果什么不显示,表示没有修改。查看库上文件是否有变动使用:svn st -qu如果文件前面有‘*’,表示库上有更新文件,在修改本地文件前,要先更新本地文件。...

2020-09-22 10:24:50 4773

原创 svn比较本地文件和库上指定版本的差别

比对本地文件和库上指定版本文件的差别,方法如下:svn diff -r 版本号 文件名如果想把比对的结果打印到文本中方法如下:svn diff -r 版本号 文件名 > diff.log则不会在屏幕上打印比对的结果,而是把比对的结果输入到diff.log中。...

2020-09-22 09:28:47 4227

原创 python获取键盘输入函数input

用input函数可以获取键盘的输入,这样可以动态的改变一个变量的值。比如:a = input("Enter a number\n")运行结果如下:

2020-09-21 19:46:19 1422

原创 linux中find的使用

最简单的使用是 find file -name file_name,就会从file及其子目录中查找名字为file_name的文件。创作中心

2020-09-15 09:04:29 97

原创 python中read,readline和readlines实例比较

read()全部取出,放到字符串里。 readline()方法会将内存空间里的内容一次性只读一行,放到一个字符串里。 readlines()方法会将内存空间里的内容一次性全部取出来,放到一个列表里。 下面我们实例一下:我们用下面程序看一下他们的类型。运行结果如下:从结果我看可以看出,fid.read()和fid.readline()是一个字符串。fid.readlines()是一个列表。在看看他们读取一次的内容。test.txt的内如如下,里面有4...

2020-09-15 08:54:01 756

原创 python os.path常用的方法

下面列出了os.path常用的方法,主要是对文件的操作。比如获取文件的名字,获取文件的路径,把文件路径组合,判断文件是否存在,判断文件是否为目录等等。os.path.basename()去掉目录路径,返回文件名。os.path.dirname()去掉文件名,返回目录路径。os.path.join()将分离的各部分组合成一个路径名。os.path.getsize()返回文件大小。os.path.exists()判断文件是否存在。os.path.isabs()判读

2020-09-15 08:18:44 241 1

原创 python os模块中常见的方法和使用

os.remove()删除文件,比如os.remove('file'),file必须是文件。os.rename()重命名文件。os.rename("file","file1"),会把文件file改为file1。os.walk()生成目录树下的所有文件名。os.chdir():改变目录os.mkdir/makedirs:创建目录/多层目录os.rmdir/removedirs:删除目录/多层目录os.listdir():列出指定目录的文件os.getcwd():取得当前

2020-09-14 21:21:36 319

原创 linux ls按着文件数字大小排列

如下文件:想按着a后面的数字大小排列,如果直接用ls -l a*,会显示如下:这没有达到效果,用ls -lv a*,显示如下:达到想要的效果。

2020-09-14 20:34:59 3784

原创 python使用linux命令复制文件示例

在linux系统中,我们经常批量复制一些文件,如果一个个手动复制,会非常慢。下面写了一个python脚本来批量复制文件。主要利用python的 os包,复制32个文件,代码如下:第1行,导入os包第4行,新复制的文件夹名称第5行,判断改文件夹是否存在,当改文件夹不存在时候,才建一个第7行,要复制的文件夹第8行,执行复制...

2020-09-14 13:39:49 2720

原创 I2C接口简介和时序

简介I2C,Inter-Integrated Circuit,是两根线,SDA(数据)和SCL(时钟),也是一种同步传输协议。主机在发送开始信号之后,先发送7个比特的地址位和1个比特的读写位,每个从机有自己的I2C地址,当发现该条指令是发给自己的时候,拉低SDA线(即回复ACK信号),然后主机发送或接收数据,完成传输。传输完成之后,主机发送停止位,完成该次传输。时序(1) master发起始信号后,总线上所有的slave开始等待主机紧接下来的地址广播。总线上每个设备的地址都是唯一的,..

2020-09-11 09:29:02 1934

空空如也

空空如也

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

TA关注的人

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