FPGA与CPLD的区别 [ November 6th, 2008 ] Posted in » Uncategorized

FPGA与CPLD的区别
尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:
①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。

③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。

④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。

⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。

⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

⑧CPLD保密性好,FPGA保密性差。

⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。

This post was submitted by 找工作.

百度聊天工具hi公测中,需要邀请信的请留下邮箱

百度聊天工具hi公测中,需要邀请信的请留下邮箱.

March 28th, 2008 | 4 Comments

μCOS-II 在ARM处理器上的移植要点

1. 设置OS_CPU.H 中与处理器和编译器相关的代码 /********************************************************************
*
* 与编译器相关的数据类型
*********************************************************************
/
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U; //8 位无符号整数
typedef signed char INT8S; //8 位有符号整数
typedef unsigned int INT16U; //16 位无符号整数
typedef signed int INT16S; //16 位有符号整数
typedef unsigned long INT32U; //32 位无符号整数
typedef signed long INT32S; //32 位有符号整数
typedef float FP32; //单精度浮点数
typedef double FP64; //双精度浮点数
typedef unsigned int OS_STK; //堆栈入口宽度为16 位
#define BYTE INT8S //字节型
#define UBYTE INT8U //为了与uC/OS V1.xx.兼容
#define WORD INT16S // … uC/OS-II.
#define UWORD INT16U
#define LONG INT32S
#define ULONG INT32U

Read More …

March 26th, 2008 | Leave a Comment

C语言宏定义技巧

写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。
1,防止一个头文件被重复包含
#ifndef COMDEF_H
#define COMDEF_H
  //头文件内容
#endif
2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。
typedef  unsigned char      boolean;     /* Boolean value type. */
typedef  unsigned long int  uint32;      /* Unsigned 32 bit value */
typedef  unsigned short     uint16;      /* Unsigned 16 bit value */
typedef  unsigned char      uint8;       /* Unsigned 8  bit value */
typedef  signed long int    int32;       /* Signed 32 bit value */
typedef  signed short       int16;       /* Signed 16 bit value */
typedef  signed char        int8;        /* Signed 8  bit value */

Read More …

March 26th, 2008 | Leave a Comment

STARTUP.S: Philips LPC2000 龙啸苍天注释修改版

;/*****************************************************************************/
;/* STARTUP.S: Philips LPC2000 龙啸苍天注释修改版
;/* 修改 内容: 将一些英文的注释根据自己的理解进行修改(水平有限难免有难,还请谅解)
;/*            加入了PINSEL0和PINSEL1的设置
;/* 修改 目的: 便于阅读
;/* 修改 人员: 龙     
;/* 修改 日期: 2008-1-24   
;/*****************************************************************************/

Mode_USR        EQU     0×10   ; 定义用户模式标志代码
Mode_FIQ        EQU     0×11   ; 定义快速中断模式标志代码
Mode_IRQ        EQU     0×12   ; 定义普通中断模式标志代码
Mode_SVC        EQU     0×13   ; 定义管理模式标志代码
Mode_ABT        EQU     0×17   ; 定义中止模式标志代码
Mode_UND        EQU     0×1B   ; 定义未定义模式标志代码
Mode_SYS        EQU     0×1F   ; 定义系统模式(特权模式)标志代码
          ;
I_Bit           EQU     0×80   ; 设置普通中断是否有效
F_Bit           EQU     0×40   ; 设置快速中断是否有效

;// <h> 堆栈大小设置(字节)
;//   <o0> 未定义模式堆栈大小  <0×0-0xFFFFFFFF:8>
;//   <o1> 管理模式堆栈大小   <0×0-0xFFFFFFFF:8>
;//   <o2> 中止模式堆栈大小   <0×0-0xFFFFFFFF:8>
;//   <o3> 快速中断模式堆栈大小  <0×0-0xFFFFFFFF:8>
;//   <o4> 普通中断模式堆栈大小  <0×0-0xFFFFFFFF:8>
;//   <o5> 用户模式堆栈大小   <0×0-0xFFFFFFFF:8>
;// </h>

Read More …

March 19th, 2008 | 1 Comment

苏联和俄罗斯历任领导人

列宁:            秃头
斯大林:        不秃
赫鲁晓夫:     秃头
勃列日涅夫:  不秃
安德罗波夫:  秃头
契尔年科:     不秃
戈尔巴乔夫:  秃头
叶利钦:        不秃
普京:           秃头
梅德韦杰夫:   不秃

March 13th, 2008 | Leave a Comment

解决KEIL MDK ARM开发环境光标位置不准问题的简洁办法

Keil解决光标问题    转贴
Keil 一直难用的原因就是那个光标和中文注释问题,在实难忍受的情况下,百度,终于找到了最佳的解决方案。
通过改字体的方式,起码,在我这是行不通的。

但在 Keil 的Tool.ini中增加如下参数 (ANSI=1) (去掉原来AMSI=1),可以很好的解决这个问题。

[UV2]
ORGANIZATION=”Wuse”
NAME=”Wei”, “Song”
EMAIL=” xxx “        
ANSI=1
BOOK0=UV3\RELEASE_NOTES.HTM(”uVision Release Notes”)

March 10th, 2008 | 5 Comments

Powered by WordPress | Blue Weed by Blog Oh! Blog | Entries (RSS) and Comments (RSS).