我是靠谱客的博主 秀丽衬衫,最近开发中收集的这篇文章主要介绍数字电路基础知识(六) FPGA的逻辑实现——结构和原理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

看网上的资料一大堆讲FPGA的逻辑实现的,讲的云里雾里。看完之后还不是很了解,于是自己买了本FPGA原理的书,总结一下FPGA的逻辑实现的原理和方法。
FPGA的逻辑结构:
在这里插入图片描述
FPGA由三大要素构成:

  1. 可编程逻辑块要素(Configurable Logic Block,CLB)
  2. 输入/输出块要素(Input Output Block,IOB)连接I/O引脚和内部布线,包括接口协议,控制电路等
  3. 布线要素(Routing Resource,RR),包括开关块、连接块、布线通道

一、 可编程技术

首先说一下FPGA配置存储器的技术。
主要分为三类:

  • SRAM型。
    能够使用最先进的CMOS工艺,目前FPGA可编程技术的主流。
  • 闪存型。
  • 反熔丝型。
    在这里插入图片描述
    下面介绍一下FPGA的逻辑实现方式。

二、 FPGA的逻辑实现

目前FPGA使用最广泛的逻辑实现方式是查找表的实现方式(LUT)。
PLD(CPLD)用的最多的逻辑实现方式为与或整列
下面介绍几种可以实现逻辑的方式。

  1. 基于查找表的逻辑实现
    查找表(Look-Up-Table), 一个字(word)只有一位的内存表。字数取决于地址的位数。FPGA中的查找表大多都是基于SRAM实现。
    下图中使用的是3输入的查找表,可以实现任意三输入的逻辑函数。(目前FPGA中的LUT单元中一般使用4,5,6输入的结构)
    k输入的查找表由2 k 个SRAM单元和一个2 k 输入的数据选择器组成。查找表的输入就是内存表的地址信号,输出就是该地址所选字的一位数据。k输入的查找表可以实现2^(2 k) 种逻辑函数。
    k=2 : 16种
    k=3 : 256种
    k=4 : 65536种在这里插入图片描述
    下图采用查找表实现逻辑表达式M=AB+AC+BC。
    先依据查找表的输入数对真值表进行转换,然后将函数f直接写入内存。当所要实现的逻辑函数的输入数比查找表的输入数大时,FPGA可以联合其他LUT来实现。

在这里插入图片描述

  1. 基于乘积项的逻辑实现
    以乘积项为例介绍PLA(PLD)中逻辑实现原理。下图是PLA的简化结构.此结构有一个AND整列和OR整列构成。使用乘积项实现电路时,需要计算逻辑函数的最小项之和,因此这种方式在设计时逻辑简化非常重要。积之和形式的逻辑函数可以分为积项与项
    在这里插入图片描述 大大撒
    乘积项的内部结构如下图所示:
    在AND整列里,输入信号和各个AND门的输入通过可编程开关控制连接。AND整列里可以实现k个最大输入数为n的逻辑与项。之后k个输出在作为OR整列的输入,可以实现m个k输入的逻辑或。下图实现了四个三输入的乘积项逻辑函数
    在这里插入图片描述
    对于逻辑表达式M=AB+AC+BC,下图展示了电路的实现方式。图中交差点代表可编程开关。
    在这里插入图片描述

  2. 基于数据选择器的逻辑实现
    下图是3个2输入的数据选择器(2-MUX)和一个或门。可以实现多种8输入1输出的逻辑电路。
    但是此种电路并不能像以上两种一样能够实现输入数量的所有逻辑电路。因此需要通过组合来实现。

在这里插入图片描述
2-1MUX能实现所有的逻辑函数如下表:

在这里插入图片描述
继续对逻辑表达式:M=AB+AC+BC分析,如下:
首先,瞎弄变量A对逻辑表达式进行香农展开,得到的部分函数F1和F2。所以可以分别用AND和OR门。这两个前面表中已经存在。因此只需要一个MUX就可以实现。
在这里插入图片描述
参考资料:
在这里插入图片描述

最后

以上就是秀丽衬衫为你收集整理的数字电路基础知识(六) FPGA的逻辑实现——结构和原理的全部内容,希望文章能够帮你解决数字电路基础知识(六) FPGA的逻辑实现——结构和原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部