自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ascend的专栏

纸上得来终觉浅,绝知此事要躬行

  • 博客(291)
  • 资源 (2)
  • 收藏
  • 关注

转载 python中数组(numpy.array)的基本操作【转载】

为什么要用numpy Python中提供了list容器,可以当作数组使用。但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简单的列表[1,2,3]。就需要三个指针和三个整数对象。对于数值运算来说,这种结构显然不够高效。 Python虽然也提供了array模块,但其只支持一维数组,不支持多维数组(在TensorFlow里面偏向于矩阵理解),也没有各种运算函数。因而不适合数值运算。 NumPy的出现弥补了这些不足。(——摘自张若愚的《Python科学计算》

2022-06-12 00:44:45 2593

转载 Tcl在Vivado中的应用

转自:http://forums.xilinx.com/t5/Vivado专区/Vivado使用误区与进阶-Tcl在Vivado中的应用/td-p/525003Xilinx的新一代设计套件Vivado相比上一代产品ISE,在运行速度、算法优化和功能整合等很多方面都有了显著地改进。但是对初学者来说,新的约束语言XDC以及脚本语言Tcl的引入则成为了快速掌握Vivado使用技巧的最大障碍,以至

2015-02-03 10:34:38 4284

转载 安装,卸载或重装Vmware Workstation时失败的官方解决方案

转自http://blog.csdn.net/wdjhzw/article/details/24498521最近VMware Workstation又放出更新,遂更新之。安装时提示先卸载旧版本。控制面板和其他软件管理器都不能正常卸载,提示“ The MSI '' failed”,索性直接删除文件夹,清理了一下注册表,重启。再次安装,仍提示卸载旧版本,到网上找各种解决方法,也用了各种所谓

2015-01-30 13:19:34 2220

转载 强大的Vivado IP工具——自定义IP的使用(IP packager)

转自http://blog.chinaaet.com/detail/37169首先,要指出,本文不描述任何IP的功能与使用。在开发一个大型FPGA项目时,多人协作是必不可少的。这个时候,如何提交设计给负责集成的人,是项目开发中最关键的问题之一。常用的一个方法是,提交网表。网表的提交可以算是相当方便的操作了,这在ISE的时期还体会不到,但到了Vivad

2015-01-24 15:31:27 12530 1

转载 Vivado IP核剖析

转自http://blog.chinaaet.com/detail/37167正像我之前所说的,较XPS的IP核而言,Vivado IP核在创建、打包、使用等各方面都更加简单便捷,同样的Vivado IP核抛弃了以往复杂的IP核文件组织模式,仅使用一个component.xml文件对IP核进行描述。下面,我们就看一下这个component.xml如何替代*.mpd,*.pao等文件的。

2015-01-10 20:51:25 5936

转载 【Vivado使用误区与进阶】XDC约束技巧——时钟篇

转自http://www.globalicnet.com/bbs/question/detail_3102.htmlXilinx 的新一代设计套件Vivado中引入了全新的约束文件XDC,在很多规则和技巧上都跟上一代产品ISE中支持的UCF大不相同,给使用者带来许多额外挑战。Xilinx工具专家告诉你,其实用好XDC很容易,只需掌握几点核心技巧,并且时刻牢记:XDC的语法其实就是Tcl

2015-01-09 17:20:42 19103 1

原创 各种排序方法对比(补充中)

重点从时间复杂度、空间复杂度、适用情况等多个方面进行综合比较。1.简单选择排序(1)基本原理:对于给定的一组记录,经过第一轮比较后得到最小的值,然后将该记录与第一个记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小记录并与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个为止。(2)特点:交换移动的数据次数比较少。(3)算法时间复杂

2014-09-30 16:38:21 595

转载 如何计算C++中结构体的存储空间

#include "stdafx.h"#include struct A{int a;unsigned __int64 b;short c;}Test_a;struct B{int a;short c;unsigned __int64 b;}Test_b;struct C{short a;short b;s

2014-09-22 11:27:43 616

转载 X10示波器探头的重要性

转自http://blog.sina.com.cn/s/blog_6792ec490101ab7i.htmlX10示波器探头的重要性    也许你经历过这种情况:你用触发器构建了一个简单的数字电路,比如行波计数器,它似乎工作OK。但一旦你用示波器去看其中一个Q输出,有趣的事情发生了。你看不到你期待看到的,计数器甚至停止了工作。发生什么了?

2014-09-12 16:20:34 2385

原创 移位实现除法(除数不是2的幂次方)

#include #include int Division(int y,int x){ int sum=0; int i=0; while(y>x)//向左移位直到x>=y { x=x<<1; ++i;//记录左移的次数 } x=x>>1; //使x<=y --i; while(i >= 0) { if(y >= x) { sum += 1<<i

2014-09-06 09:08:36 1813 1

转载 用两个栈实现一个队列

两年前从网上看到一道面试题:用两个栈(Stack)实现一个队列(Queue)。觉得不错,就经常拿来面试,几年下来,做此题的应该有几十人了。通过对面试者的表现和反应,有一些统计和感受,在此做个小结。 用C++描述,题目大致是这样的: 已知下面Stack类及其3个方法Push、Pop和 Count,请用2个Stack实现Queue类的入队(Enqueue)出队(Dequeue)方法。

2014-09-04 20:22:14 474

转载 IP地址、子网掩码、网络号、主机号、网络地址、主机地址

IP地址:4段十进制,共32位二进制,如:192.168.1.1 二进制就是:11000000|10101000|00000001|00000001子网掩码可以看出有多少位是网络号,有多少位是主机号: 255.255.255.0 二进制是:11111111 11111111 11111111 00000000网络号24位,即全是1 主机号8位,即全是0129.168.1.1

2014-09-03 21:26:05 845

原创 顺时针打印矩阵与二维数组作为函数参数

1.顺时针#includevoid PrintMatrixInCircle(int (*data)[3],int rows,int columns,int start){ int endx=columns-start-1; int endy=rows-start-1; //从左到右打印一行 for(int i=start;i<=endx;++i) { int number=dat

2014-09-02 20:00:33 778 1

原创 指针作为函数参数传递时需要注意的问题

#include#include#includevoid GetMemory(char *p,int num){ p=(char*)malloc(num);}int main(){ char *str=NULL; GetMemory(&str,100); strcpy(str,"hello"); printf(str); return 0;}

2014-09-02 09:45:25 2813 1

转载 关于“using namespace std”

对于一个存在着标准输入输出的C++控制台程序,一般会在#include 的下一行发现一句话,using namespace std。这句话其实就表示了所有的标准库函数都在标准命名空间std中进行了定义。其作用就在于避免发生重命名的问题。  1. 关于namespace  C++引入了命名空间namespace主要解决了多个程序员在编写同一个项目中可能出现的函数等重名的现象。解决方法

2014-09-01 14:32:27 502

转载 c/c++ int _tmain(int argc, _TCHAR* argv[])

在visual c++ 2005/8 中,当选择编辑一个32位Win32控制台应用程序时.初始状态下系统自带函数:  int _tmain(int argc, _TCHAR* argv[])  {  return 0;  }   上述Win32控制台应用程序的入口程序是用来存放机器的一个环境变量的,如:机器名,系统信息等.  其中:  int

2014-08-31 16:08:21 2138

原创 软件研发知识点总结(更新中)

1.以太网中根据MAC地址区分不同的设备。2.static的用途:(1)在函数体内,一个被声明为静态的变量在函数被调用的过程中维持其值不变。(2)在模块内(函数体外),一个被声明为静态的变量可以被模块内的函数访问,但不能被模块外其他的函数访问,它是一个本地的全局变量。(3)在模块内,一个被声明为静态的函数只能被这一模块内的其他函数调用。3.引用和指针的区别:(1)引用必

2014-08-31 16:06:28 535

转载 内排序算法小结

从以下几个方面来比较排序算法:1. 算法的时间和空间复杂度2. 排序的稳定性3. 算法结构的复杂度4. 参加排序的数据规模排序的稳定性:稳定排序方法: 插入排序、冒泡排序、二路归并排序、基数排序是稳定排序算法;不稳定排序方法: 选择排序、谢尔排序、快速排序、堆积排序是不稳定排序算法。算法复杂度比较:

2014-08-31 16:06:05 475

原创 简单选择排序

(1)基本原理:对于给定的一组记录,经过第一轮比较后得到最小的值,然后将该记录与第一个记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小记录并与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个为止。(2)特点:交换移动的数据次数比较少。(3)算法时间复杂度:O(n^2)。辅助空间O(1)。(4)程序设计要点:嵌套循环,记录最小数和最小

2014-08-31 16:04:37 517

原创 快速排序

(1)基本原理:先在数组中选择一个数字,接下来把数组中的数字分为两部分,比选择的数字小的数字移动到数组的左边,比选择的数字大的数字移到数组的右边。然后用递归的思路分别对每次选中的数字左右两边进行排序。      当初始序列整体或者局部有序时,快速排序的性能会下降,此时快速排序将退化为冒泡排序。(2)算法最好时间复杂度O(nlogn)(每次区间划分,基准关键字为待排序的记录中间值) 

2014-08-31 15:54:28 526

转载 TCP/IP协议中的三次握手与四次挥手流程详解

TCP/IP协议三次握手与四次握手流程解析 一、TCP报文格式  TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式  上图中有几个字段需要重点介绍下:  (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。  (2)确认序号:Ack序号,占32位,只有

2014-08-30 20:12:43 536

转载 嵌入式Linux C笔试题积累

1.   嵌入式系统中断服务子程序(ISR)  中断是嵌入式系统中重要的组成部分,这导致了很 多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。 __interrupt double compute_area (double

2014-08-30 19:36:07 528

转载 可重入和不可重入

重入一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象。一般浮点运算都是由专门的硬件来完成,举个例子假设有个硬件寄存器名字叫做FLOAT,用来计算和存放浮点数的中间运算结果假设有这么个函数void fun(){//...这个函数对FLOAT寄存器进行操作}假如第一次执行,有个对浮点数操作运算的结果临时存在FLOAT寄存

2014-08-30 17:27:05 460

转载 linux中fork()函数详解

一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来

2014-08-30 16:25:03 455

原创 C++中的system("pause");

C++中的system命令主要是调用所在系统的命令行,pause会输出"请按任意键继续. . ."然后等你敲一下键盘一般是为了看清楚输出的结果,因为程序运行完以后窗口就会关闭,这样就看不到输出的结果了.所以可以把这个system("pause");放在main函数的return之前.

2014-08-30 11:34:42 32377 3

转载 互换两个变量,不使用中间变量

第一种方法:a=a+b;b=a-b;a=a-b; 代码如下: [cpp] view plaincopy#include "stdio.h"  int main(void)  {      int a,b;      printf("请输入两个变量a和b:/n");      scanf("%d %d",&a,&b);      printf("a和b

2014-08-30 09:42:15 515

转载 sprintf函数详解

sprintf 将字串格式化。  头文件 #include  语法: int sprintf(string format, mixed [args]...);       返回值:字符串长度(strlen)  1. 处理字符方向。-负号时表时从后向前处理。  2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。  3. 字符总

2014-08-30 09:37:15 3999

转载 程序在内存中的分布

在现代的操作系统中,当我们说到内存,往往需要分两部分来讲:物理内存和虚拟内存。从硬件上讲,虚拟空间是CPU内部的寻址空间,位于MMU之前,物理空间是总线上的寻址空间,是经过MMU转换之后的空间。一般我们所说的程序在内存中的分布指的就是程序在虚拟内存中的存储方式。从低地址到高地址,可分为下面几段: 预留内存地址(操作系统维护的内存地址,不可访问) 程序代码区(只读,存代码和一

2014-08-30 09:34:07 414

转载 c++模板类学习

1、模板的概念我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y){  return(x>y)?x:y ; }//函数2.

2014-08-30 09:28:04 590

转载 LPC1768@100MHz和LPC1788@120MHz的PLL0设置

对于搞软件开发的来说,弄一些硬件相关参数总觉得有点没底。做了几年,总算知道锁相环(PLL)的作用是把一个输入频率“放大”后输出,虽然对PLL的电路原理还是一窍不通。最近研究LPC1788和LPC1768的主频时发现两者的PLL0配置相差挺多的,于是耐着性子啃了User manual,总算理清楚了(作为软件开发者,某些太细节的硬件原理就不去深究了)。        首先LPC1788工作在1

2014-08-29 23:54:36 1073

转载 C++中return语句的用法

C++中的return语句是函数中一个重要的语句,return语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数。return语句有两种形式:return;return expression;1、没有返回值的函数不带返回值的return语句只能用于返回类型为void的函数,return语句是为了引起函数的强制结束,这种用法类似于循环结构中的br

2014-08-29 20:47:56 846

转载 make_pair

【好记性不如烂笔头:在《C++ Templates》看到这个函数,发现正是前段时间写项目程序所要用到的,可惜当时还不知道有这个用法,当时是自己写了个结构体。。】Utilities  由短小精干的类和函数构成,执行最一般性的工作。 这些工具包括: general types 一些重要的C函数 numeric limitsPairs C++标准程序库中凡是“必须返回

2014-08-29 20:47:36 395

转载 vector(C++)讲解

使用需要的头文件:#include vector:不是一种数据类型。 vector是一种数据类型。vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象)。vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。一、 定义和初始化templateexplicit vector(); // 默认构造函数,vector对象为空e

2014-08-28 22:17:31 505

转载 C++中的引用

对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式指针&的用法,其实这两个概念是统一的。引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、

2014-08-28 20:01:15 419

转载 C++ 虚函数表解析

C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R

2014-08-28 11:36:57 408

转载 浅谈C++多态性

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。  多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。  C++多态性是通过虚函数来实现的,虚函数允许子类重新定

2014-08-28 11:26:55 365

转载 C++ 继承

C++继承编辑本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。目录▪ 定义1

2014-08-28 11:01:14 377

转载 类和结构的区别

目录:Ø 类和结构的示例比较Ø 类和结构的差别Ø 如何选择使用类还是使用结构 一 类和结构的示例比较结构示例: public struct Person   {       string Name;       public int height;       int weight;        public bool overWe

2014-08-28 10:51:23 388

转载 确定一个变量是有符号数还是无符号数

读《C专家编程》,其中一段讲面试,说是微软曾经有一道面试题:写一段代码,确定一个变量是有符号数还是无符号数?书上给出了两个宏:#define ISUNSIGNED(a) (a>=0 && ~a>=0)#define ISUNSIGNED(type) ((type)0-1 > 0)第二个从类型来判断,没有问题。而第一个只能用在K&R C里,在ANSI C里就不行了

2014-08-28 09:14:33 1616 1

转载 堆和栈的区别

堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态

2014-08-28 08:35:52 443

DE2引脚配置CSV文件

DE2开发板引脚配置信息,可以直接通过quartus ii 软件 assignments->import assignments导入,使用时注意引脚信息的对应关系。

2014-02-17

crc5_verilog

crc5的verilog实现和仿真。文件包括crc5.v和testbench文件crc5.vt以及仿真效果图。

2013-10-06

空空如也

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

TA关注的人

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