總結一下FPGA的邏輯實現的原理和方法
FPGA的邏輯結構:
FPGA由三大要素構成:
可編程邏輯塊要素(Configurable Logic Block,CLB)
輸入/輸出塊要素(Input Output Block,IOB)連接I/O引腳和内部布線,包括接口協議,控制電路等
布線要素(Routing Resource,RR),包括開關塊、連接塊、布線通道
一、 可編程技術
首先說一下FPGA配置存儲器的技術。
主要分為三類:
SRAM型
能夠使用最先進的CMOS工藝,目前FPGA可編程技術的主流。
閃存型
反熔絲型
下面介紹一下FPGA的邏輯實現方式。
二、 FPGA的邏輯實現
目前FPGA使用最廣泛的邏輯實現方式是查找表的實現方式(LUT)。
PLD(CPLD)用的最多的邏輯實現方式為與或整列
下面介紹幾種可以實現邏輯的方式。
基于查找表的邏輯實現
查找表(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來實現。
基于乘積項的邏輯實現
以乘積項為例介紹PLA(PLD)中邏輯實現原理。下圖是PLA的簡化結構.此結構有一個AND整列和OR整列構成。使用乘積項實現電路時,需要計算邏輯函數的最小項之和,因此這種方式在設計時邏輯簡化非常重要。積之和形式的邏輯函數可以分為積項和與項。
乘積項的内部結構如下圖所示:
在AND整列裡,輸入信号和各個AND門的輸入通過可編程開關控制連接。AND整列裡可以實現k個最大輸入數為n的邏輯與項。之後k個輸出在作為OR整列的輸入,可以實現m個k輸入的邏輯或。下圖實現了四個三輸入的乘積項邏輯函數
對于邏輯表達式M=AB AC BC,下圖展示了電路的實現方式。圖中交差點代表可編程開關。
基于數據選擇器的邏輯實現
下圖是3個2輸入的數據選擇器(2-MUX)和一個或門。可以實現多種8輸入1輸出的邏輯電路。
但是此種電路并不能像以上兩種一樣能夠實現輸入數量的所有邏輯電路。因此需要通過組合來實現。
2-1MUX能實現所有的邏輯函數如下表:
繼續對邏輯表達式:M=AB AC BC分析,如下:
首先,瞎弄變量A對邏輯表達式進行香農展開,得到的部分函數F1和F2。所以可以分别用AND和OR門。這兩個前面表中已經存在。因此隻需要一個MUX就可以實現。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!