FPGA入门8.6

目录

8.6  基于LUT的可编程逻辑单元的工作原理

       与CPLD器件的区别

       总结各个可编程单元如逻辑单元,IO,存储等演进过程。

一、可编程逻辑器件发展历程

       可编程逻辑器件最初的形态是 programmable array logic (PAL),如图所示。输入是和门的阵列,输出是或门的阵列,通过逻辑变换,它可以实现任意逻辑表达式。但随着逻辑表达式的复杂程度增加,会导致需要的逻辑门数量指数级增多,同时导线也会越来越长造成器件延迟变大。     

       在此基础上加以改进,出现了complex programmable logic devices  (CPLDs) ,CPLD器件是通过在一个芯片上集成多个PAL来提升可扩展性,本质上还是逻辑门阵列的组合。

       Xilinx 于 1984 年率先推出了第一款基于look-up table ( LUT)的 FPGA。基于LUT的可编程逻辑单元与CPLD不同,LUT是一个静态存储器SRAM,里面存储的数据相当于器件输入与输出的真值表,在接收到输入数据后,FPGA会将这个数据作为地址通过查表LUT索引到对应的输出值。

       总结来说,基于LUT的可编程逻辑单元与CPLD有以下几点不同:

       1.实现功能的工作原理不同,CPLD本质上是逻辑门阵列的组合,LUT本质上是一个RAM。

       2.CPLD速度较快、功耗较低,基于LUT的可编程逻辑单元具有高度的灵活性,但功耗和延迟可能较高。

       3.CPLD的逻辑资源相对有限,适用于中小规模的逻辑设计,基于LUT的可编程逻辑单元适用于复杂和高密度的逻辑设计。

二、基本可编程单元

      FPGA有三个主要部分-可编程逻辑IC、互连路由和可编程I/O块。

   

      逻辑块是包含逻辑门的地方,这些逻辑门经过编程来确定结果并修改内部的硬件。路由器运行在逻辑块之间,并将它们连接在一起,同时也连接到输出和输入,使所有块成为一个统一的单元。I/O块将FPGA连接到外部电路和设备,使其能够传递逻辑规则并修改硬件功能。

  

      FPGA由6部分组成,分别为可编程输入/输出单元(IOB)、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。

•  可编程输入/输出单元(IOB)

        可编程输入/输出单元是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA内部的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适应不同的电气标准与I/O物理特性,可以调整匹配阻抗特性,可以改变上、下拉电阻,可以调整驱动电流的大小。

        为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。

  •  基本可编程逻辑单元 / 可配置逻辑块(CLB)   

FPGA的基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的,查找表完成纯组合逻辑功能。FPGA内部寄存器可配置为带同步/异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。FPGA一般依赖寄存器完成同步时序逻辑设计。一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。

CLB是FPGA内的基本逻辑单元。CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些 选型电路(多路复用器等)和触发器组成。 开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个) 相同的Slice和附加逻辑构成,如图1-3所示。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。

CLB可配置逻辑块是指实现各种逻辑功能的电路,是xilinx基本逻辑单元
在Xilinx FPGA中,每个可配置逻辑块包含2个Slice
每个Slice 包含查找表、寄存器、进位链和多个多数选择器构成。

而Slice又有两种不同的逻辑片:SLICEM和SLICEL。SLICEM有多功能的LUT,可配置成移位寄存器,或者ROM和RAM。

1)一个CLB 等于2个Slice
2)一个Slice等于4个6输入LUT+8个触发器(flip-flop)+算数运算逻辑 ——每个Slice的4个触发器(虽然有8个flip-flop,但是每个LUT分配一个flip-flop)可以配置成锁存器,这样会有4个触发器(flip-flop)未被使用。
3)这里还有一点需要特别注意的,XILINX FPGA 的slice还不都是长一样的,FPGA中三分之二的slice是SLICEL而剩余的是SLICEM。


原文链接:https://blog.csdn.net/vivid117/article/details/102841135

Slice是Xilinx公司定义的基本逻辑单位,其内部结构如图1-4所示,一个Slice由两个4输入的函数、进位 逻辑、算术逻辑、存储逻辑和函数复用器组成。算术逻辑包括一个异或门(XORG)和一个专用与门(MULTAND),一个异或门可以使一个Slice实现 2bit全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作;4输入函数发生 器用于实现4输入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的两个输入函数为6输入,可以实现6输入LUT或 64比特移位寄存器);进位逻辑包括两条快速进位链,用于提高CLB模块的处理速度

  •  丰富的布线资源

布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别:

  • 全局性的专用布线资源:用以完成芯片内部全局时钟和全局复位/置位的布线;
  • 长线资源:用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线;
  • 短线资源:用来完成基本逻辑单元间的逻辑互连与布线;
  • 其他:在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。

由于在设计过程中,往往由布局布线器自动根据输入的逻辑网表的拓扑结构和约束条件选择可用的布线资源连通所用的底层单元模块,所以常常忽略布线资源。其实布线资源的优化与使用和实现结果有直接关系。

  •  底层内嵌功能单元

内嵌功能模块主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等软处理核(Soft Core)。现在越来越丰富的内嵌功能单元,使得单片FPGA成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC平台过渡。

DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。Xilinx公司生产的芯片上集成了DLL

  •  内嵌专用硬核

与“底层嵌入单元”是有区别的,这里指的硬核主要是那些通用性相对较弱,不是所有FPGA器件都包含的硬核。

内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流的FPGA中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps的收发速度。

Xilinx公司的高端产品不仅集成了ARM,还内嵌了DSP Core模块,并提出MPSoC、RFSoC等概念。

补充概念

(1) 软核  
       软核在EDA设计领域指的是综合之前的寄存器传输级(RTL)模型;具体在FPGA设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。 软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发 生错误的可能性,有一定的设计风险。软核是IP核应用最广泛的形式。   


   (2)固核  
      固核在EDA设计领域指的是带有平面规划信息的网表;具体在FPGA设计中可以看做带有布局规划的软核,通常以RTL代码和对应具体工艺网表的混合形式提 供。将RTL描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。和软核相比,固核的设计灵活性稍差,但在可靠性上有较 大提高。目前,固核也是IP核的主流形式之一。   


   (3)硬核  
       硬核在EDA设计领域指经过验证的设计版图;具体在FPGA设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有 两个:首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图;其次是保护知识产权的要求,不允许设计人员对其有任何改动。IP硬核的不许 修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值