- 博客(62)
- 资源 (8)
- 收藏
- 关注

原创 因为喜欢,所以坚持
这一段时间调代码的总结。先是最开始调的ZYNQ,到给同学写的51密码锁,再到ARM9,linux,然后是做的FPGA数字示波器和矩阵乘法器,感觉学到很多的东西,在程序设计上学到了很多的调试方法,特别是在FPGA方面;从ZYNQ开始吧,ZYNQ是XILINX的ARM+FPGA产品,有很大时间我用在了了解这个芯片上,因为板子没有配套的资料,所以用起来比较烦,从网上查资料是必不可少的,网上的博客永远
2015-04-08 22:39:11
517
转载 字节序之大小端模式
全文http://hjctty.blog.51cto.com/1031616/550626 在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节
2017-02-19 11:21:39
537
转载 白话经典算法系列之九 从归并排序到数列的逆序数对(微软笔试题)
首先来看看原题 微软2010年笔试题在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序数对。一个排列中逆序的总数就称为这个排列的逆序数。如{2,4,3,1}中,2和1,4和3,4和1,3和1是逆序数对,因此整个数组的逆序数对个数为4,现在给定一数组,要求统计出该数组的逆序数对个数。 计算数列的逆序数对个数最简单的方便就最从前向后依次
2017-02-18 21:45:00
453
转载 白话经典算法系列之七 堆与堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节
2017-02-18 21:34:26
426
转载 白话经典算法系列之八 MoreWindows白话经典算法之七大排序总结篇
在我的博客对冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法进行了详细的讲解,并做成了电子书以供大家下载。下载地址为:http://download.youkuaiyun.com/detail/morewindows/4443208。 有网友提议到这本《MoreWindows白话经典算法之七大排序》电子书讲解细致用来平时学习是非常好的,但是页数有2
2017-02-18 21:32:37
325
转载 白话经典算法系列之五 归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plain copy
2017-02-18 20:48:54
332
转载 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。1. 初始时,数组全为无序区为a[0..n-1]。令i=02. 在无序区a[i…n-1]中选取一个最小的元素,将其与a[i]交换。
2017-02-18 20:28:12
235
转载 白话经典算法系列之三 希尔排序的实现
希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因
2017-02-18 20:08:02
238
转载 白话经典算法系列之二 直接插入排序的三种实现
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=12. 将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。3.
2017-02-18 19:43:07
413
转载 白话经典算法系列之一 冒泡排序的三种实现
冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。 按照定义很容易写出代码:[cpp] view plai
2017-02-18 15:15:21
388
转载 白话经典算法系列之六 快速排序 快速搞定
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序
2017-02-17 18:49:27
235
转载 C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plain copyprint?int a = 100; int b = a; int a = 100;int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面
2017-02-17 11:04:20
219
转载 静态类型与动态类型
以下文章系转载,慎重使用,尊重作者 转载地址:http://www.oschina.net/question/54100_20313为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误,需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。 2、对象的动态类型:目前所指对象的类型。是在运行
2017-02-17 09:47:33
346
原创 一种FPGA整数除法器
假设被除数与除数都是八位数据,这里的算法是: 将被除数,扩展成16位的数据,低8位为被除数的值,高八位的值全为0。有开始信号,对16位数据data赋值,然后开始运算。比较data的高八位和除数的值,如果大于0,说明被除数大,将此时商置1,赋值给data的最低位,然后将被除数高八位减去除数。然后将data向左移位一位,继续比较。最终计算8次后。Data的高8位数据就为所求的余数,低八位就为所
2016-07-18 20:07:20
11412
1
转载 用MATLAB生成MIF文件
程序:close allclear allclcdepth =256; %存储器的单元数widths = 8;%数据宽度为8位N = 0 :255;s =sin(2*pi *N/256);%计算0 ~2*pi之间的sin值fidc = fopen('sine.mif','wt')fprintf(fidc , 'depth = %d;\n',depth);fprintf(fidc, '
2016-07-15 10:16:10
3442
原创 syms使用错误
出错误的函数原型t=linspace(-T/2+dt,T/2,N);h1 = subs(h,symbol_t,t);修改方法是:t=linspace(-T/2+dt,T/2,N) + eps;
2016-06-26 16:37:18
3088
转载 FFT算法8点12位硬件实现 (verilog)
*FFT算法8点12位硬件实现 (verilog) 1 一.功能描述: 1 二.设计结构: 2 三.设计模块介绍 3 1.蝶形运算(第一级) 3 2.矢量角度旋转(W) 4 3.CORDIC 结果处理 除法单元模块 8 4.蝶形运算(第二,三级) 9 5.Vectoring CORDIC 模块 10 6.输出并转串模块 11 四.工程纵览 12 五.功能测试 13 六.工程结
2016-06-19 19:02:22
8739
3
转载 MATLAB 与Modelsim之间对测试系统的联合仿真
** 1. Link for ModelSim介绍** Link for ModelSim®是一个把MATLAB/Simulink和针对FPGA 和ASIC的硬件设计流程无缝连结起来的联合仿真的接口扩展模块。它提供一个快速的双向连接将MATLAB/Simulink和硬件描述语言仿真器Modelsim连接起来。使二者之间直接的联合仿真成为可能,并且让你更高效的在MATLAB/Simuli
2016-06-19 17:19:23
3527
原创 diff和gradient求数值近似导数的异同
diff diff是导数的符号运算命令,使用时要加上syms的定义变量命令; diff(f) 求表达式f对默认自变量的一次微分值; diff(f, t) 求表达式f对自变量t的一次微分值; diff(f,n) 求表达式f对默认自变量的n次微分值; diff(f,t,n) 求表达式f对自变量t的n次微分值。若对于数组,就变成数值差分运算;gradient gradien
2016-06-07 11:38:31
11458
转载 MATLAB 求导diff
diff Differentiate symbolic expression_r_r 求符号表达式的微分 Syntax diff(expr) diff(expr, v) diff(expr, sym(‘v’)) diff(expr, n) diff(expr, v, n) diff(expr, n, v) Description diff(expr) differentiate
2016-06-07 11:18:29
3098
转载 将有符号十进制数转换成二进制
function [numbin] = dec2binPN(numdec,N) %判断输入数正负 if (numdec >= 0) %正数转二进制 numbin1 = dec2bin(numdec,N); else %负数转二进制 numbin1 = dec2bin(abs(numdec),N);
2016-05-28 11:48:56
5152
原创 调试的一段小代码
main(){int c=2;//coutprintf("%d\n",EOF);printf("%d\n",c);//printf("%d\n",c==1);while(c=getchar()!=EOF) //c==getchar()!=EOFprintf("%d\n",c);//printf("%d -at EOF\n",c);retur
2016-05-26 15:50:13
408
原创 Modelsim文件读取问题与matlab文件写入
reg [15:0] data_mem[3:0];//[1239:0];initial begin $readmemh("ztq1.txt",data_mem); //将sin.txt中的数据读入存储器data_mem end reg [11:0] i;always @(posedge clk or negedge rst_n) begin if(!rst_n)
2016-05-11 15:10:40
3066
转载 MATLAB信号处理仿真-基带脉冲成形的数字滤波器
本次我们探讨另外一个在本科阶段让我们头痛的东西,通信原理之必考曲目,拼死也要背下来的内容,基带脉冲成形。然而俺对这个东西的理解和认识却是在本科以后的事情。早年(比如[黑][社][会]大佬用摩托罗拉的手机砸人的时代)的基带成形都是用模拟电路做的,那会儿的数字电路密度极低,想想大学本科数电实验里面的各种74系列芯片,如果用这个东西拼个数字滤波器估计会疯掉。况且,就算有数字滤波器,高速高精度的A
2016-05-09 10:08:01
1880
转载 Systemverilog的一个牛人总结
Systemverilog数据类型l 合并数组和非合并数组1)合并数组:存储方式是连续的,中间没有闲置空间。例如,32bit的寄存器,可以看成是4个8bit的数据,或者也可以看成是1个32bit的数据。表示方法:数组大小和位,必须在变量名前指定,数组大小必须是【msb:lsb】Bit[3:0] [7:0] bytes ; 2)二维数组和合
2016-05-04 01:14:01
6198
转载 关于建立时间和保持时间
建立时间(Tsu:set up time)是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器;保持时间(Th:hold time)是指数据稳定后保持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入触发器。建立与保持时间的简单示意图如下图1所示。图1 保持时间与建立时间的示意图
2016-04-28 21:46:34
1941
转载 接口电平标准
现在常用的电平标准有TTL、CMOS、LVTTL、LVCMOS、ECL、PECL、LVPECL、RS232、RS485等,还有一些速度比较高的LVDS、GTL、PGTL、CML、HSTL、SSTL等。 TTL:Transistor-Transistor Logic 三极管结构。 Vcc:5V;VOH>=2.4V;VOL=2V;VIL<=0.8V。 因为2.4V与5V之
2016-04-28 21:41:20
4856
原创 chipscope使用中遇到的一些问题
问题一:waiting for ...to be armed这个问题产生的原因是采样时钟的设置有问题,有效的解决办法是 系统的时钟输入不要直接使用,而是作为端口信号, 系统时钟一般要被用来产生可用进程时钟,处理方法是将进程时钟作为一个单独的模块拉出来,在系统顶层中调用,系统顶层文件中不要使用时钟逻辑问题二:找不到想要观察的信号这个问题产生的原因可能是软件本身的一些规则,但是调
2016-03-01 19:34:00
3449
1
转载 一路PN码串行捕获设计--基于《通信收发信机的verilog实现与仿真》实例
这篇日子是参考《通信收发机的Verilog实现与仿真》第五章 Verilog在扩频通信中的应用。网路上有关PN码产生以及捕获资料很多,但是介于本人对其原理的模糊,实在不知道设计时每一步的具体操作如何。所以花点时间学习一下,放在这里,以防忘记。如果以后做移动通信,或许用的到。就这个东西,前前后后断断续续看了一个星期,花了时间,也算学习了东西。 譬如《通信收发信机的verilo
2016-02-17 16:40:34
3843
原创 Modelsim自动仿真
1、http://www.cnblogs.com/LJWJL/archive/2013/01/14/simulation.html2、http://blog.sina.com.cn/s/blog_7e2e98ad0101gxx7.html
2015-12-05 13:26:41
487
原创 ADS2014 Win7 64位破解
请将license.lic里面的myserver 替换 为你的计算机名将112233445566 全部替换为你的hostid 就是ipconfig出现的第一个网卡的mac地址将EEsof_License_Tools.rar 解压 ,复制替换你的 EEsof_License_Tools\bin下相应的文件将crack.rar解压复制替换你ads目录相应的文件完了之后执行EEsof_
2015-11-19 01:14:41
2924
转载 在ModelSim中添加Xilinx仿真库
1、首先,在modelsim安装目录下找到modelsim.ini,右击属性。取消只读前的勾,然后应用,确定。2、然后,在xilinx安装目录xilinx/13.4/ISE_DS/ISE/bin/nt64下找到 compxlib.exe.双击打开3、选定ModelSim的版本,以及指定ModelSim的安装路径。4、选择Both VHDL and Verilog。
2015-11-01 16:15:12
1407
转载 Allegro 16.5详细破解步骤
Cadence Allegro 16.5 详细破解步骤具体的步骤: 1、下载SPB16.5下来后,点setup.exe,先安装第一项licensemanager,问license时,单击cancel,然后finish. 2、接下来安装cadence的product,即第二项,直到安装结束这个时间有点长,装过以前版本的人都知道. 3、在任务管理器中确认一下是否有这
2015-07-09 19:29:13
1059
原创 为你我想做更好的人
生活像一个黑洞吞噬掉左右美梦让爱情的光泽在现实中消磨可是我知道你懂在困难的背后还有一万种坚持下去的理由这地球天高地厚陪你的是我 等我的是我为你我想做更好的人你完整了我的灵魂只想你了解 爱可以多深你的完美 让我完成你是我始终 最好的人我为你等 天堂开门你不是我的生 却给我一生 你让我的宇宙没有恨每一次争辩太久 我比谁都还失落是我不够成熟如果我们都曾经为彼此而难
2015-05-06 23:26:20
536
转载 多级树集合分裂(SPIHT)算法的过程详解与Matlab实现
上星期我们讨论了EZW算法,很高兴收到了一些朋友的email,对算法进行探讨、交流。这也是我开这个博客的源动力之一,学习就应该开诚布公、交流互助,在探讨中加深对所学知识的理解和掌握。在弄懂了EZW算法原理并用Matlab实现后,我继续学习EZW的改进算法。至今有一周的时间没更新博客、写新文章了,其实就是把时间用在EZW的一个改进算法——多级树集合分裂(Set Partitioning in Hier
2015-04-15 18:18:15
6203
1
基于FPGA的别踩白块儿游戏
2014-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人