集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1671|回复: 0

关于FPGA和CPLD,选择哪一个比较好?

[复制链接]
20080067 发表于 2010-5-9 13:20:32 | 显示全部楼层 |阅读模式
关于FPGA和CPLD,选择哪一个比较好?
FPGA:Field Programmable Gate Array(现场可编程门阵列)
CPLD:Complex programmable logic devices(复杂可编程逻辑器件)

这两者之间的主要区别是什么?对于高速的电路系统,选择哪一个比较好?

笼统的说,两者的区别在于资源的规模和芯片工作速度。FPGA规模大于CPLD,但系统工作频率低于CPLD。此外,PIN的延迟上,CPLD比FPGA要好。

由于FPGA内部资源比较丰富,如大量的寄存器,RAM,因此特别适合算法实现,如FFT,网络通讯协议等。

CPLD的工作速度高,延迟更容易确定,通常也比较小,因此适合作控制系统、译码部分,如总线控制器、开关网络等。

但是不要把这两者绝对起来,具体问题需要具体分析。例如很多人就用FPGA实现PCI总线接口。
   

用altera的flex 10ke 做了一个sdram 控制器但用max9000系列去编译设计,然后仿真, 时序一塌糊涂!按理说, max9000的fmax也很高呀。

无论是在FPGA还是在CPLD上进行设计,都必须充分利用所用芯片的体系结构才能设计一个高速的系统。MAX9000的速度确实比10KE快,但也不意味着就一定可行。

我姑且假设你的10KE逻辑的已经调试好了。因此你可能针对10KE的体系结构进行了优化。而这种优化对于9000来说很有可能是无效的,而且说不定会引入新的麻烦。例如,在10KE中,状态机通常用ONE-HOT编码方式效率会比较高,而在MAX9000中如果仍然采用ONE-HOT是否会同样有效呢?

此外,由于器件的结构特点,在进行大规模设计时,通常都会最初的行为设计进行一定程度的调整,例如一个大的状态机改变为几个层次小状态机等,否则是无法达到系统速度的。因此,通常不能指望最初的行为设计就是最终的逻辑设计,两者通常会有一定程度的差别。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-20 16:53 , Processed in 0.070696 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表