06 2013 档案
摘要:2013-06-25 11:34:49转自:http://blog.sina.com.cn/s/blog_49a879e40100bd2w.html以此记录心得以及重要的知识点。1.FPGA器件是Xilinx公司于1985年首家退出的,它是一种新型的高密度PLD,采用CMOS-SRAM工艺制作。FPGA的结构与门阵列PLD不同,其内部有许多独立的可编程逻辑模块组成,逻辑模块之间可以灵活的相互连接。FPGA结构一般分为三部分:可编程逻辑模块、可编程I/O模块和可编程内部连线。配置数据存放在片内SRAM或熔丝图上,基于SRAM的FPGA器件工作前需要从芯片外部加载配置数据。配置数据可以存储在片外的
阅读全文
摘要:2013-06-25 11:27:18转自:http://blog.csdn.net/jbb0523/article/details/6534101结构化设计向导(Architecture Wizard)和IP核生成工具(Core Generator)分别是两个独立的模块,可以单独运行,也可以在ISE集成化开发平台中作为一个整体的模块来调用。由于这两个工具的功能和输出文件基 本上相同,所以可以将二者合而为一,作为一个工具来使用。当单独运行结构化设计向导时,所创建工程文件的后缀为.XAW,如图1所示。这两个工具都采用了 非常友好的GUI界面,使用起来简单、方便并直观。有一点需注意,由于Archi
阅读全文
摘要:2013-06-23 22:34:48转自:http://www.cnblogs.com/JamesLi2015/p/3151191.html做技术经常要查询资料,也有保存收藏资料的习惯。 博客园是个好地方,资料的质量比较高,整体关注某一个系列的资料,从这边入手会比较好。我自己也经常写博客,收集有用的技术资料。在前年,我设计了一套Data Solution解决方案,后来因多方原因搁浅,没有深入下去。具体内容请参考相关连接,地址是http://www.cnblogs.com/JamesLi2015/archive/2011/11.html。Data Solution中有一个重要的组件是爬虫。从博
阅读全文
摘要:2013-06-23 22:06:17转自:http://blog.sina.com.cn/s/blog_679f9356010115gs.华为-ASIC工程师需具备的几个技能
阅读全文
摘要:2013-06-23 19:10:05转自:http://www.cnblogs.com/youngforever/admin/EditArticles.aspx?opt=1最近公司在做Planahead的xilinx大学计划部的材料更新工作,本版有幸能够更进一步接触Planahead工具,之前一直听说PlanAhead拥有强大的设计环境和分析工具,提供了一个按钮式的RTL到比特流(RTL-to- bitstream)的设计流程,该流程拥有全新的、增强的用户界面和项目管理功能。此外,通过布局规划、运行多种不同实现策略,图形化浏览层层次结构,快速时序分析,以及基于模块的实现方式,让客户最大限度地
阅读全文
摘要:http://blog.sina.com.cn/s/blog_9a04a2ad01011573.htmlPlanAhead这个软件出现在ISE工具包里已经很久了。具体是什么时候集成进去的,我也不去深究了。但是,在ISE12里,PlanAhead的功能出现了很大的变化,不再仅仅是过去的约束软件,而是加入了RTL Design(Synthesize),Netlist Design(Implement),等传统上Project Navigator中的功能。现在,在PlanAhead中即可进行全部的FPGA设计。据称,Xilinx可能在14或者以后的版本中,取消Project Navigator。那么
阅读全文
摘要:转自:http://www.cnblogs.com/karlchen/archive/2008/09/23/1297169.htmlwarning: function declared implicitly原因就是函数没有声明,大部分情况下,也不影响函数的正常使用,所以往往被大家忽略,实际上,也是很危险的事情,比如如下的一个例子#include <stdlib.h>#include <stdio.h>int main(void) { int i; i = foo (2, 3); printf ("foo returns %d\n", i); exit
阅读全文
摘要:2013-06-20 21:36:00源自网络。之前在非BIOS下利用CSL库函数配置GPIO中断成功,后来由于工作需要,得在BIOS下使用Event事件来触发,于是开始了漫漫长路的征程。经过一番努力,终于取得成果,现在和大家一起分享一下。主函数中的外设接口的初始化就不多说了,直奔主题开始配置GPIO。初始化GPIO;void IntiGPIO(void){ GPIO_PERLOCK = GPIO_PERLOCK_Value; GPIO_PERCFG0 = GPIO_PERCFG0_Value; //Set GPIO to enabled mode //然后修改GPIO控制寄存器 GPIO_B
阅读全文
摘要:转自:http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/112/t/63395.aspx问题描述:Hello Ti's engineers, I want to use ECM module in DSP/BIOS, so I have followed the instructions at page 150 in the datasheet of TMS320C6000 DSP/BIOS 5.x Application Programming Interface Reference Guide. Be
阅读全文
摘要:转自:http://blog.csdn.net/zzsfqiuyigui/article/details/6940795DSP/BIOS中的线程和电脑中的线程有很大区别。关于DSP/BIOS的详细介绍请参考TMS320 DSP/BIOS User's Guide。下面简单地介绍一下DSP/BIOS的线程。 为了让DSP能够同时处理多个任务,DSP/BIOS提供了如下几种类型的线程。 HWI(硬件中断),SWI(软件中断),TSK(任务),IDL(空闲线程)。 HWI其实就是中断服务。当硬件中断产生之后,DSP/BIOS就会调用相应的HWI函数。如果把HWI设置为Dispatch的话..
阅读全文
摘要:转自:http://blog.csdn.net/gtatcs/article/details/8903509转自:http://blog.csdn.net/zzsfqiuyigui/article/details/694302664+的中断系统和以往的不同,中断是基于事件的。整个硬件CPU接收15个中断,实际用户可用12个可屏蔽中断,但系统可以支持最多128个中断源。64+将中断源视为事件"Event",128个事件可以分别通过配置连接到12个可屏蔽中断。而128个事件每连续32个可以合并到四个固定的事件中,即Event0(对应事件号0-31)、Event1(对应事件号32
阅读全文
摘要:转自:http://blog.21ic.com/user1/3128/archives/2009/60506.htmlDSP中断设置简明教程本文的Word文档和程序请从此处下载一、简述本文介绍TMS320C6000系列中断设置的简明方法。通过示例定时器中断,MCBSP串口接收中断及外部中断这三种中断实现过程,介绍如何实现中断各个寄存器的配置,中断向量表书写以及中断服务函数。最后提供一个简要的示例程序可供大家下载使用。此示例在DSK6416的TI官方实验板上通过测试。由于定时器和串口工作模式较繁,因此对中断无关部分不做介绍。二、实现DSP中断需要做哪些通用工作设置允许哪些非屏蔽中断设置各个允许的
阅读全文
摘要:2013-06-20 10:27:33转自:http://blog.csdn.net/zzsfqiuyigui/article/details/6944509CCS由于有软件仿真器功能,使得很多算法性的东西都可以在没有实际硬件的条件下进行验证,这大大缩小个人的开发成本;其实软件仿真器还可以模拟外部硬件的功能,这样使得我们在软件仿真器下能最大程序逼近实际项目,以下是软件仿真器所具有的功能:1.在主机上执行用户开发的DSP程序2.修改和检查寄存器3.外设,cache,流水线的时序仿真4.设置断点,单步执行,产生中断5.跟踪ACC,PC,AR表达式的值等。6.对非法操作码和无效数据提供出错信息7.文
阅读全文
摘要:转自:http://blog.csdn.net/xiangyuqxq/article/details/7272314我们的设计需要多大容量的芯片?我们的设计能跑多快?这是经常困扰工程师的两个问题。对于前一个问题,我们可能还能先以一个比较大的芯片实现原型,待原型完成再选用大小合适的芯片实现。对于后者,我们需要一个比较精确的预估,我们的设计能跑50M,100M 还是133M? 首先让我们先来看看Fmax 是如何计算出来的。图(1)是一个通用的模型用来计算FPGA的。我们可以看出,Fmax 受Tsu , Tco , Tlogic 和 Troute 四个参数影响。( 由于使用FPGA 全局时钟,时钟.
阅读全文
摘要:转自:http://www.cnblogs.com/foreveryoung/1.写在前面很早就想写这么篇短文,和大家交流学习的些许经验和心得。但一直有各种干扰,致使一拖再拖,这阵子赶上米国佬过圣诞,咱也忙里偷闲,赶紧把这篇短文码掉。。嘿嘿。2.为什么要写群里时常有新人呈周期性的问诸如,“我该如何学HDL?”,“非阻塞和阻塞有啥区别?”之类的问题。在此,笔者扯两句自己的学习体会,对这些问题一并予以回答。3.English required英文资料不一定能培养出优秀的FPGA工程师,但拒绝英文资料的工程师至多是个合格的工程师。如图所示,纵轴代表综合水平,横轴代表时间,理论决定了由经验带动的水平提
阅读全文
摘要:转自:http://blog.csdn.net/elegant_design/article/details/18281031.二叉排序树的概念:二叉排序树是一种动态树表。 二叉排序树的定义:二叉排序树或者是一棵空树, 或者是一棵具有如下性质的二叉树: ⑴ 若它的左子树非空,则左子树上所有结点的值均小于根结点的值; ⑵ 若它的右子树非空,则右子树上所有结点的值均大于根结点的值; ⑶ 左、右子树本身又各是一棵二叉排序树。二叉排序树的性质: 按中序遍历二叉排序树,所得到的中序遍历序列是一个递增有序序列2.二叉排序树的插入: 在二叉排序树中插入新结点,要保证插入后的二叉树仍符合二叉排序树的定义。 插
阅读全文
摘要:转自:http://blog.csdn.net/a14730497/article/details/8032804函数的功能和任务的功能类似,但二者还存在很大的不同。在 Verilog HDL 语法中也存在函数的定义和调用。1.函数的定义函数通过关键词 function 和 endfunction 定义,不允许输出端口声明(包括输出和双向端口) ,但可以有多个输入端口。函数定义的语法如下:function [range] function_id; input_declaration other_declarations procedural_statementendfunction其中,fun
阅读全文
摘要:转自:http://www.cnblogs.com/bmrs/archive/2010/08/19/SloveTree.html(解释部分来自http://www.slyar.com/blog/)这种题一般有二种形式,共同点是都已知中序序列。如果没有中序序列,是无法唯一确定一棵树的,证明略。一、已知二叉树的前序序列和中序序列,求解树。1、确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点
阅读全文
摘要:第一种当然很简单了,用中间变量int a=1,b=2,c;c=a;a=b;b=c;printf("%d,%d",a,b);不通过中间变量,交换两个整形变量的值的方法:1.加减法比如a=a+bb=a-ba=a-b当然 这种方法不怎么好 因为它可能会出现精度损失比如 a = 3.123456 b = 1234567.000000交换后各变量值变为:a = 1234567.000000 b = 3.125000所以说它适合于交换整型和浮点型数值的变量2.乘除法a = a * b;b = a / b;a = a / b;乘除法更像是加减法向乘除运算的映射,它与加减法类似:可以处理整
阅读全文
摘要:转自:http://blog.csdn.net/snlying/article/details/4005238最近在写source code时需要在数组的buffer小时重新申请一块buffer,故找了一些资料,乖乖,竟然原指针还可以“漂移”。。。。。。realloc原型:extern void *realloc(void *mem_address, unsigned int newsize);用法:#include <stdlib.h> 有些编译器需要#include <alloc.h>功能:改变mem_address所指内存区域的大小为newsize长度。说明:如果
阅读全文
摘要:转自:http://www.cnblogs.com/wenxp2006/archive/2012/10/18/2728967.html_alloc原型:void *_alloc(size_t size);本函数与上述的两个函数不同,因为它是在栈上分配了size大小的内存,因此使用此函数分配的内存不用再担心内存释放的情况了。但是使用此函数需要注意的是:在函数内部使用此函数分配的内存随着函数的终结不复存在,因此不能将此函数分配的内存供函数外部使用。malloc原型:void * malloc(size_t size);该函数将在堆上分配一个size byte大小的内存。它分配的单原完全按字节大小计
阅读全文
摘要:转自:http://blog.csdn.net/sunshinedabby/article/details/6240924标题:线性表上的基本操作实现时 限:1000 ms内存限制:10000 K总时限:1000 ms描述:在单链表存储结构上实现基本操作:初始化、创建、插入、删除、查找、遍历、逆置、合并运算。输入:输入线性表La的长度:n输入线性表La中的元素:a1 a2 a3 ...an(数值有序,为降序)输入要插入到线性表La中的元素x和插入的位置i:x i输入要删除元素的位置:i输入要查找的元素:x输入线性表Lb的长度:m输入线性表Lb中的元素:b1 b2...bm(数值有序,为升序)输
阅读全文
摘要:转自:http://blog.csdn.net/kougq819/article/details/5801919一、线性表的逻辑定义线性结构是最简单且最常用的数据结构。线性表是一种典型的线性结构。线性表的逻辑定义 线性表(Linear List)是由n(n≥0)个数据元素(结点)a1 ,a2 ,…,an 组成的有限序列。 ① 数据元素的个数n定义为表的长度(n=0时称为空表)。 ② 将非空的线性表(n>0)记作:(a1 ,a2 ,…,an ) ③ 数据元素ai (1≤i≤n)只是个抽象符号,其具体含义在不同情况下可以不同。 【例1】英文字母表(A,B,…,Z)是线性表,表中每个字母...
阅读全文
摘要:转自:http://blog.csdn.net/kougq819/article/details/5801919一、线性表的逻辑定义线性结构是最简单且最常用的数据结构。线性表是一种典型的线性结构。线性表的逻辑定义 线性表(Linear List)是由n(n≥0)个数据元素(结点)a1 ,a2 ,…,an 组成的有限序列。 ① 数据元素的个数n定义为表的长度(n=0时称为空表)。 ② 将非空的线性表(n>0)记作:(a1 ,a2 ,…,an ) ③ 数据元素ai (1≤i≤n)只是个抽象符号,其具体含义在不同情况下可以不同。 【例1】英文字母表(A,B,…,Z)是线性表,表中每个字母...
阅读全文
摘要:线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。线性表按照存储方式,有两种:1.顺序线性表 (也就是用数组实现的,在内存中有顺序排列,通过改变数组大小实现)2.链表 (不是用顺序实现的,用指针实现,在内存中不连续)转自:http://www.cnblogs.com/tianguook/archive/2012/02/14/2350845.html线性表,和链表。线性表在内存中是一块连续的存
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_4b61c2d701000c1r.html网友问题:#include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){int ival,searchvalue;vector<int> ivec;cout<<"enter some integers(ctrl+z to end):"<<endl;while(cin>>ival)
阅读全文
摘要:一、cin.clear()、cin.sync()
cin.clear()是用来更改cin的状态标示符的。
cin.sync()是用来清除缓存区的数据流的。
阅读全文
摘要:转自:http://blog.csdn.net/wuxiaoer717/article/details/6863113根据关键字的结构和分布的不同,可构造出许多不同的哈希函数,这里主要介绍两种常用的整数类型关键字的哈希函数构造方法。1)直接定址法H(Key) = key 或H(key) = a x key + b;2)除留余数法H(key) = key MOD p ——(p <= m)hash冲突的处理方法处理哈希冲突的方法可分为开放定址法和链地址法两大类:1)开放定制法:就是当冲突发生时,使用某种探测方法在哈希表中形成一个探测序列。沿此序列逐个单元地查找,直到找到给定的关键字,或者碰到
阅读全文
摘要:分块查找算法分块查找(BlockingSearch)又称索引顺序查找。它是一种性能介于顺序查找和二分查找之间的查找方法。1、分块查找表存储结构分块查找表由"分块有序"的线性表和索引表组成。(1)"分块有序"的线性表表R[1..n]均分为b块,前b-1块中结点个数为,第b块的结点数小于等于s;每一块中的关键字不一定有序,但前一块中的最大关键字必须小于后一块中的最小关键字,即表是"分块有序"的。(2)索引表抽取各块中的最大关键字及其起始位置构成一个索引表ID[l....b],即:ID[i](1≤i≤b)中存放第i块的最大关键字及该块在表R
阅读全文
摘要:转自:http://www.cnblogs.com/longyi1234/archive/2010/03/22/1691904.html关于排序,似乎很简单的很常见的概念,却蕴含着很多技术,下面是从不同的角度,对排序的总结:1 按照排序特性分类首先按照排序本身的操作特性可以分为下面几种:插入排序直接插入排序(Insert Sort) O(n^2)(稳定)折半插入排序(Binary Insert Sort)(不稳定)希尔排序(Shell Sort)(不稳定)交换排序冒泡排序(Bubble Sort) O(n^2)(稳定)快速排序(Quick Sort)?? O(nlogn)(不稳定)选择排序直接
阅读全文
摘要:转自:http://www.cnblogs.com/qianxun/archive/2011/07/03/2096773.html1.Hash介绍 Hash这个在实现某些功能的经常会用到的数据结构,在java和c++ 里面都有相应的封装好的数据结构:C++ STL Map java 有HashMap TreeMap。计算理论中,没有Hash函数的说法,只有单向函数的说法。所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据。用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很容易计算出其结果来;而当给定结果的时候,很难计算出输入来,这就是单项函数。各种加密
阅读全文
摘要:转自:http://blog.chinaunix.net/uid-24875436-id-2983300.htmlVerilog HDL是在C语言的基础上发展起来的,因而它保留了C语言所独有的结构特点。为便于对Verilog HDL有个大致的认识,在这里将它与C语言的异同作一比较:1.C语言是由函数组成的,而Verilog HDL则是由称之为module的模块组成的。2.C语言中的函数调用通过函数名相关联,函数之间的传值是通过端口变量实现的。相应地,Verilog HDL中地模块调用也通过模块名相关联,模块之间的联系同样通过端口之间的连接实现,所不同的是,它反映的是硬件之间的实际物理连接。3.
阅读全文
摘要:转自:http://www.cnblogs.com/kkun/archive/2011/11/23/2260299.html经典排序算法 - 计数排序Counting sort注意与基数排序区分,这是两个不同的排序计数排序的过程类似小学选班干部的过程,如某某人10票,作者9票,那某某人是班长,作者是副班长大体分两部分,第一部分是拉选票和投票,第二部分是根据你的票数入桶看下具体的过程,一共需要三个数组,分别是待排数组,票箱数组,和桶数组var unsorted = new int[] { 6, 2, 4, 1, 5, 9 }; //待排数组var ballot = new int[unsorte
阅读全文
摘要:转自:http://www.cnblogs.com/tanky_woo/archive/2011/04/24/2026059.html建议先看看前言 :http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html这一节讲的是非线性排序。一.计数排序(Counting Sort)基本思想:对每一个输入元素x,确定出小于x的元素个数。适用范围:适用于输入是由小范围的整数构成的序列。稳定性:算法是稳定的。具体实现:/*Author:TankyWooBlog:www.WuTianQi.comDescription:计数排序*/#inc
阅读全文
摘要:关于鸽巢排序的资料很少,下面是从网上找到的一些。转自:http://www.cnblogs.com/kkun/archive/2011/11/23/2260273.html经典排序算法 - 鸽巢排序Pigeonhole sort经典排序算法 - 鸽巢排序Pigeonhole sort原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了]鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现次数,如果全部为1次或0次那就是桶排序例如var pigeonHole = new int[100];pigeonHole[0]的值表示0的出现次数...pigeonHole[
阅读全文
摘要:转自:http://blog.csdn.net/houapple/article/details/6480100桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将阵列分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限的影响。例如要对大小为[1..1000]范围内的n个整数A[1..n]排序,可以把桶设为大小为10的范围,具体而言,设集合B[1]
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_5ee4bc000100ngyb.html原代码:module jiecheng(Reset,Start,Clk,Data,Done,Result,Exponent);input Reset,Start,Clk;input[4:0] Data;output Done;reg Done;output[7:0] Result,Exponent;reg[7:0] Result,Exponent;reg[4:0]InLatch;always@(posedgeClk)begin:BLOCK_Ainteger NextResult,J;i
阅读全文
摘要:转自:http://blog.21ic.com/user1/1472/archives/2006/32484.htmlVerilog语法需要注意的一些要点1. Testbench中时钟和数据比特流的简单设计方法always clock = ~clock;always @(posedge clock)begindata_in_a = {$radom} % 2; // 产生-1到1之间随机的比特流data_in_b = 16’b1101_1011_1110_0011; // 产生固定的比特流$display(“a= %d\n”, a); // 与C语言类似 end2. Verilog语法...
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_5ee4bc000100nyrk.htmlwritten by huigenb对于这样的组合逻辑电路always@(X)case(X)X1:X2:……endcase如果分支项包含变量X的所有取值情况,并且互相不重复,那么这样的情况,其实没有必要使用综合指令。(一)“//synthesis parallel_case”有一些书在介绍case语句时(例如《verilog HDL综合实用教程》)说“case语句的verilog HDL语义表明了选取case分支的优先顺序。case表达式首先与第一个分支项进行比较,依次类推……”但在Q
阅读全文
摘要:转自:http://www.cnblogs.com/GavinDai/archive/2011/12/02/2271998.html直接插入排序的基本方法:每步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止。插入排序(insert sorting)思想:当插入第i个元素时,前面的v[0],v[1],v[2]......v[i-1],已经排好序了.这时用v[i]的插入码与v[i-1],v[i-2],......排序码进行比较,找到插入的位置即插入v[i],原来位置上的元素从后向前依次后移。时间复杂度: 平均比较次数O(n2),平均移动次数
阅读全文
摘要:转自:http://blog.csdn.net/feixiaoxing/article/details/6876831 基数排序是另外一种比较有特色的排序方式,它是怎么排序的呢?我们可以按照下面的一组数字做出说明:12、 104、 13、 7、 9 (1)按个位数排序是12、13、104、7、9 (2)再根据十位排序104、7、9、12、13 (3)再根据百位排序7、9、12、13、104 这里注意,如果在某一位的数字相同,那么排序结果要根据上一轮的数组确定,举个例子来说:07和09在十分位都是0,但是上一轮排序的时候09是排在07后面的;同样举一个例子,12和13在十分位都是1,但是由于上一
阅读全文