2.1.2基本可编程逻辑单元
CLB是FPGA内的基本逻辑单元。虽然不同的器件当中CLB的数量和特性会有所差异,但是每个CLB都具有的共性是:包含一个可配置开关矩阵,并且此矩阵都具有4或6个输入、和一些选型电路以及一定量的触发器。由于开关矩阵具有高度灵活的特性,所以便可以通过进行配置来完成组合逻辑以及构造移位寄存器或是RAM。
图2.2 CLB结构图
2.1.3其他部分模块
数字时钟管理模块(DCM)。基本上所有的FPGA芯片中都会有时钟管理模块。Xilinx公司目前推出的最先进的FPGA提供数字时钟管理和相位环路锁定。相相位环路锁定能够提供精确的时钟综合,还具有降低抖动和实现过滤功能。
嵌入式块RAM(BRAM)。内嵌的块RAM对于FPGA的应用范围和灵活性的扩展有着十分重要的作用。BRAM可被配置为多种常用的存储结构。其中在CAM存储器的内部包含有一系列的存储单元与此同时每一个小的存储单元都会有比较逻辑,这样写入CAM中的数据会和内部的每一个存储单元的数据进行对比,并返回与端口数据相同的所有数据的地址。
丰富的布线资源。FPGA芯片内部有着丰富的布线资源每一个类别的布线都发挥着十分重要的作用,例如,全局布线可以用于芯片内部全局时钟和全局复位/置位。
底层内嵌功能单元。内嵌功能模块主要指延迟锁定环、相位锁定环、数字信号处理器和中央处理单元等软处理核。丰富的内嵌功能模块可以使FPGA完成系统级的设计,并且也赋予了FPGA软硬结合设计的能力。向SOC平台过渡逐步成为了FPGA的发展趋势。
2.1.4 FPGA的应用
在数据采集和接口逻辑领域一般对于低速的A/D和D/A转换器人们可以采用SPI接口来与MCU或者DSP通信。但是在需要高速的A/D和D/A转换芯片时MCU和DSP显然便会变得力不从心这时相比于以上二者FPGA可以完成高速数据采集的粘合。
在逻辑接口领域的应用, 传统的设计中往往需要专用的接口芯片这就会带来如果接口多的时候,就需要较多的外围芯片同时导致器件的体积、功耗相应增大的问题。FPGA的出现就为这一问题提供了解决的方案,在FPGA内部就可以实现接口逻辑,这样便会大大简化了外围电路的设计。因为FPGA有着可编程的自主设计能力,所以我们还可以利用这一特点制造或者创建存储单元的控制模块。
在电平接口领域的应用,总所周知混合电平环境会导致在使用传统的电平转换器件时电路的复杂程度会十分高。这时如果利用FPGA支持多电平共存的特性就可以大大降低电路的复杂程度同时也会相应地提高设计的可靠性。
在高性能数字信号处理领域,许多功能的实现都需要大规模数据进行运算。然后传统的多处理器系统会因此变得难以设计,系统的功耗由于复杂程度的提升也会相应增大这就导致了系统稳定性的降低。FPGA支持的并行计算,对于解决大规模高密度数据提供了很好的便利,在很多领域它都替代了传统的多DSP解决方案。
2.1.5 FPGA的开发过程
典型的FPGA开发流程包括功能定义/器件选择,设计输入,功能仿真,综合优化,综合后仿真,实现,布线后仿真,板级仿真以及芯片编程与调试等主要步骤。
1)功能定义/器件选择
在项目开始之前要有系统功能的定义和模块的划分,并且要根据任务的要求如系统的复杂程度,连线的可部性等方面进行权衡,之后再选择与之匹配的设计方案和器件类型。一般采用自顶向下的设计方法,把整个的系统分成几个可以完成所有任务的模块,然后再将这些模块依据它们要完成的功能再细分为几个相应的子模块,这样就会像树干与树枝那样延伸下去。 基于FPGA的Camera Link数字相机接口设计(3):http://www.751com.cn/tongxin/lunwen_29823.html