打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CPLD和FPGA基础概念和区别

CPLD和FPGA基础概念和区别


  字号: 订阅

(1)什么是前仿和后仿
前仿:系统级仿真,对模块行为仿真,验证其功能
后仿:电路级仿真,验证时序

(2)阵列型pld器件
prom
:与阵列固定,或阵列可编程,输出固定
pla
:与阵列可编程,或阵列固定,输出固定
pal
:与阵列可编程,或阵列固定,可组态(反馈)
gal
:与阵列可编程,或阵列固定,可组态,含存储器

符号:黑点是固定连接,星花是可编程,无标记是固定断开

(3)cpldfpga
CPLD
集成度相对小一点,多用于2万门规模以下的设计,适合实现较复杂的组合逻辑,如编、译码设计
FPGA
,集成度较高,内部触发器多,多用于1万门以上的大规模系统设计,适合做复杂的时序逻辑设计
基于乘积项技术、E2PROM(或Flash MEM)存储工艺的可编程逻辑器件CPLD
基于查找表技术、SRAM存储工艺的可编程逻辑器件FPGA

(4)CPLD结构:逻辑块(LB) 或称逻辑阵列块(LAB(但是LAB是由LE组成的可编程内连线(PI可编程I/O控制块(I/O B
CPLD
的逻辑宏单元主要包括与或阵列触发器多路选择器等电路,能独立地配置为组合或时序工作方式。
CPLD
的逻辑宏单元(也可称为逻辑单元LEGALOLMC结构非常类似。
GAL
器件一般分配给每个宏单元的乘积项的数量是固定的,一般为810121416个。
CPLD
的宏单元有固定的乘积项(如MAX系列为4个),同时允许一组扩展乘积项可单独地分配给一个宏单元或多个宏单元使用,扩展乘积项比固定乘积项延时要长
乘积项共享:并联扩展乘积项,共享扩展乘积项。
每个逻辑宏单元内含有两个或两个以上的触发器。(GALOLMC只有1个触发器。)通过对输出触发器编程,
可实现4种不同类型触发器结构:DTJ-KR-S触发器。

可编程内连线PI在各个逻辑宏单元之间以及逻辑宏单元与I/O单元之间提供可编程的信号连接网络。
可编程的I/O控制块:主要由触发器和缓冲器组成。每个IOB控制一个外部引脚,可将其编程为输入、输出或双向I/O功能,或集电极开路、三态门等。

(5)fpga
FPGA
都采用查找表(Look-Up-Table,LUT)来实现逻辑函数FPGA编程配置元件都是SRAM。(重要:FPGALAB一般由一个4输入LUTCarry LogicReg组成。)
CPLD相比,FPGA具有更高的集成度、更强的逻辑功能和更大的灵活性。
结构:可编程逻辑块(CLB可编程输入输出块(IOB可编程连线资源(PIR
      
每个CLB中包含1个或2个逻辑单元(LE)。
LE
主要由一个组合逻辑函数发生器、几个触发器、若干个多路选选择器及控制电路组成
查找表(LUT就是一个有N根,一般是4根地址线的16x1RAM存储器

当用户通过原理图或HDL 语言描述了一个4输入的逻辑电路后,EDA软件就会按设计要求自动计算逻辑电路的所有可能的结果,并把该结果事先写入这个RAM存储器。这样,当输入变量作为RAM的地址信号输入时,预期的结果(输出逻辑函数)就作为RAM的存储数据输出了。(查找表存储组合逻辑值)

一个LUT无法完成的N>4的多输入电路,就需要通过进位和级联的方法将多个LUT单元相连,
这样FPGA就可以实现复杂的逻辑。
特点:结构灵活,内部的CLBIOBPI均可编程。

(6)FPGACPLD的区别
通常FPGA采用SRAM进行功能配置,可以重复编程,但系统掉电后,SRAM中的数据丢失。
因此,需在FPGA外加EPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。
而一般CPLD器件采用EEPROM存储技术,可重复编程,且系统掉电后,EEPROM中的数据不会丢失,适于数据的保密。
FPGA
器件由于含有丰富的触发器资源,容易实现时序逻辑,若要求实现比较复杂的组合电路则需要几个CLB结合起来实现。
CPLD
的与或阵列结构,使它更适合于实现大规模的组合逻辑功能,而它的触发器资源相对比较少。
FPGA
多为细粒度结构。FPGA内部有丰富连线资源,CLB分块比较小,芯片利用率比较高。
CPLD
多为粗粒度结构。CPLD宏单元的与或阵列较大,通常不能完全被应用,而且宏单元之间主要通过高速数据通道连接,
容量有限,限制了器件的灵活布线,因此CPLD利用率比FPGA低。

(7)标准的边界扫描测试只需要五根信号线,能够对电路板上所有支持边界扫描的芯片内部逻辑和边界管脚进行测试。
应用边界扫描技术能够增强芯片、电路板甚至系统的可测试性。
TDI
--测试数据输入
TDO
--测试数据输出
TMS
--测试模式选择
TCK
--测试时钟输入

TRST--测试复位输入(可以不需要
添加=======
 
异步清0的描述方法:
process(rst,clk)
begin
if rst=’1’ then
count<=(others=>’0’);
elsif clk’event and clk=’1’ then
count<=count+1;
end if;
end process;
同步清0的描述方法:
process
begin
wait until clk’event and clk=’1’;
if rst=’1’ then
count<=(others=>’0’);
else
count<=count+1;
end if;
end process;  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
PLD/FPGA 结构与原理初步(一)
CPLD,CPLD的分类,CPLD参数指标等|维库电子通
《数字系统设计》第二章 EDA开发软件与硬件平台
【转】FPGA与CPLD的区别 来自 强强博客
PAL和 GAL
EDA技术与VHDL程序设计基础教程习题答案
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服