||
FPGA和CPLD都是可编程逻辑器件,可以代替几十甚至几千块通用IC芯片。世界三大公司是Altera、Xilinx、Vantis,在欧洲使用Xilinx居多,在日本和亚太市Altera居多。
FPGA和CPLD由三大部分组成:
l 一个二维的逻辑块阵列;
l 输入\输出块;
l 连接逻辑块的互联资源。
PLD:基于乘积项(Product-Term)结构。
采用这种结构的PLD芯片有:Altera的MAX7000、MAX3000系列,Xilinx的XC9500系列。分为三块结构:宏单元、可编程连线和I/O控制块。
基于乘积项的PLD基本由EEPROM和Flash工艺制造,上电就可以工作,无需其他芯片配合。
FPAG:基于查找表(Look-Up-Table)结构
例如Altera的ACEX、APEX系列,Xilinx的Spartan、Virtex系列等。该结构主要包括LAB、I/O块、RAM块和可编程行/列连线。
基于查找表的FPGA都是基于SRAM工艺的,掉电后信息会丢失,一定要有专用配置芯片。
CPLD适合用于设计译码等复杂组合逻辑;
FPGA适合用于使用大量触发器,设计复杂的时序逻辑。
PLD可以完成任何数字器件的功能。
开发PLD需要了解两个部分:PLD开发软件和PLD本身。
l 建立工程;
l 建立顶层图(尽量采用ALTERA公司提供的LPM功能模块);
l 建立自己的功能模块;
l 将顶层图的各个功能模块连接;
l 选择芯片类型,分配管脚,设置编译选项;
l 编译,生成文件,下载;
l 对于复杂的设计,可以采用Q2的仿真功能或者其他软件,如Modelsim对设计进行仿真。
SOPC (System-on-a-Programmable-Chip)即可编程片上系统,用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。、
可编程片上系统(SOPC)是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。
SOPC结合了SOC和PLD、FPGA各自的优点,一般具备以下基本特征:
l 至少包含一个嵌入式处理器内核;
l 具有小容量片内高速RAM资源;
l 丰富的IP Core资源可供选择;
l 足够的片上可编程逻辑资源;
l 处理器调试接口和FPGA编程接口;
l 可能包含部分可编程模拟电路;
l 单芯片、低功耗、微封装。
SOPC设计技术涵盖了嵌入式系统设计技术的全部内容,除了以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以PCB和信号完整性分析为基础的高速电路设计技术以外,SOPC还涉及目前以引起普遍关注的软硬件协同设计技术。
SOPC可以将MCU、DSP和FPGA完美结合:
l 在大容量FPGA中可以嵌入16位或者32位以上的MCU,例如ALTERA公司的FPGA可以嵌入一个或者多个软核CPU(Nios或者NiosII),或者嵌入ARM等微处理器。
l 实现各种DSP算法的IP核已经相当丰富和成熟,利用相关工具,例如DSP Builder可以把现有的数字信号处理IP添加到FPGA的工程中去。
l SOPC一般采用大容量FPGA为载体,例如可以采用ALTERA公司的Cyclone、Startix、StartixII等大容量FPGA实现片上系统。
SOPC开发流程比FPGA的开发流程增加了处理器及其外设接口的定制步骤以及软件开发的步骤。这些新增加的步骤需要SOPC Buider、NiosII IDE工具的协助下开发。