|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
[FPGA的13条重点知识详解
& c) m4 @6 _+ g2 @0 ]
$ n( G. [% ?* k3 X% W/ o1、查找表 LUT 和编程方式
6 g) \) _9 V) r/ r- m* N y$ W第一部分: 查找表 LUT* @2 J# x8 B; n; ~1 P1 D
FPGA 是在 PAL、GAL、EPLD、cpld 等可编程器件的基础上进一步发展的产物。它是作为 ASIC 领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。 * m# L, u5 X2 p6 {7 t) T! O' r
2 \# C" r" @% [, h; w由于 FPGA 需要被反复烧写,它实现组合逻辑的基本结构不可能像 ASIC 那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好 地满足这一要求,目前主流 FPGA 都采用了基于 SRAM 工艺的查找表结构,也有一些军品和宇航级 FPGA 采用 Flash 或者熔丝与反熔丝工艺的查找表结 构。通过烧写文件改变查找表内容的方法来实现对 FPGA 的重复配置。 " a+ [1 }3 F" D. G
* z" |5 u6 `# d4 ^, B0 U7 g o9 l' i7 N
根据数字电路的基本知识可以知道,对于一个 n 输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在 2n 种结果。所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。FPGA 的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。
) T# J, Y8 r# m" u) m+ T' Y3 ~ % j- u+ o) g& H% ?" X! x5 j Z6 q$ e" B
查找表(Look-Up-Table)简称为 LUT,LUT 本质上就是一个 RAM。目前 FPGA 中多使用 4 输入的 LUT,所以每一个 LUT 可以看成一个有 4 位地址线的 的 RAM。 当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,PLD/FPGA 开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
( m# f" x( `, v! k6 z0 a# M. |5 a & N$ U0 | D% x; p: L. b! Q
下面给出一个 4 与门电路的例子来说明 LUT 实现逻辑功能的原理。
N: K: O3 r: w * d+ q9 f$ ^/ u
l# E0 q3 C, L
例 1-1:给出一个使用 LUT 实现 4 输入与门电路的真值表。
$ Q/ f* N) S/ m/ Z' B) Q 4 W4 |2 ^2 g# _ m& _) [% }% x
从中可以看到,LUT 具有和逻辑电路相同的功能。实际上,LUT 具有更快的执行速度和更大的规模。 $ G8 Q$ J, g# t9 j% N5 a
: m6 G2 K t: m9 H* p2 k第二部分: 编程方式/ r$ Z& `9 q5 e% G2 ^! C1 ]3 E( C$ ]
......) b$ W& |: P3 J
|
|