|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
关于FPGA,我想做硬件的或多或少都听过。从上世纪80年代算来,FPGA已走过了30多个年头。我们以FPGA两大生产厂商,两大巨头之一的INTEL(altera)公司的FPGA为例,为大家逐步介绍FPGA的前世今生。9 e! n# a' }$ \4 |' ?
6 p; ~! u5 h, G" @4 b p1 mFPGA(Field-Programmable Gate Array),直译为现场可编程门阵列。是在PAL、GAL、cpld等可编程器件的基础上进一步发展而来的。作为专用集成电路(ASIC)领域中的一种半定制电路出现,即解决定制电路的不足,又克服了原有可编程电路数有限的缺点。
% M9 D- R1 `$ S* ], ?* C
+ [: T+ y" y1 K u% N% f1 h% lALTERA FPGA内部主要结构是逻辑单元。以CYCLONE IV为例,16个逻辑单元组成一个逻辑阵列块(LAB),大量的LAB组成了FPGA的基本结构。
0 k) M$ B; j- {+ w$ i1 p/ I9 w- [0 n" T) N7 H8 K. ?
逻辑单元LE,内部主要由查找表(LUT),进位逻辑(C),和输出寄存器(通常为DFF)组成。
; U+ M7 r4 }0 Y' ?* ?
% L1 n1 U- a. D9 ~' T8 c现在的FPGA,我们不在会问内部的逻辑门数是多少,如果这么问,明显缺乏专业知识。我们通常会问这块FPGA内部逻辑单元有多少个。同样,逻辑单元已不在和逻辑门等效。逻辑单元内部包含了FPGA设计的最终要的结构,DFF。
+ z" t7 g ~- o+ C- N+ }& M4 l. @$ g( g
LUT,本质是个4输入的查找表,用硬件描述语言描述一个组合逻辑后,开发软件会自动计算所有结构放入RAM,4输入相当于4根地址线进行查表就可以了。LUT不仅可以实现逻辑运算,主要的算数运算也是由LUT实现的。在实现逻辑运算时,LUT是4输入的,在实现算数运算(主要是加法)时,LUT是2输入的。进位逻辑通常是在做加法的时候使用的。输出寄存器,也就是触发器,是FPGA同步设计的核心,时序电路的核心。
2 n0 w* y6 V9 m$ L ^8 ~3 M" t: ]: d3 [# Y2 N
一个LAB有16个LE,所以我们在设计多位计数器,时,应注意是否应当根据LAB的特点,将多位计数器分解成位宽较小的计数器,以提高电路频率。
4 W0 H5 G( q9 b0 A1 ~
+ W6 l6 a% y5 p8 u5 x上述,我们先介绍了FPGA最基本的结构和最基本的资源。后期,我们会慢慢介绍FPGA的其他资源。
. N+ Z% X8 j/ r- j3 b+ ~3 g: a+ l+ q% c. ^& w0 a/ A$ N
说到FPGA的前世今生,我想,对于它的前世,我们稍做了解就可以了。FPGA不过是大规模数字电路发展的产物。从二极管,到三极管,从门电路,到触发器,从宏阵列到逻辑单元,从组合逻辑,到时序逻辑,从几千个门数量,到千万级门数量,从微米技术到纳米技术,无不说明着数字集成电路的飞速发展。对于FPGA的今生,无非就是当下主流FPGA的核心结构以及最终发展的极限。2 I7 \' B7 p% q+ E
( u# A9 l5 F" q. v- u6 _FPGA的设计离不开数字电路。下面我们稍做一些学习建议。
6 o j, Q8 H$ B) V' ]0 q
* g7 |0 C+ H ^3 }3 a: H4 X对于初学者,特别是从软件转过来的,设计的程序既费资源又速度慢,而且很有可能综合不了,这就要求我们熟悉一些固定模块的写法,可综合的模块很多书上都有,语言介绍上都有,不要想当然的用软件的思想去写硬件。在学习FPGA开发过程,首先要对电路设计熟悉,明白电路的工作过程:电路是并行执行。9 c6 H9 D! x: C( C6 N- ]0 e
( p; N* n4 Q7 a, B% j
FPGA学习要多练习,多仿真,signaltapII是很好的工具,可以看到每个信号的真实值,建议初学者一定要自己多动手,光看书是没用的。关于英文文档问题,如果要学会Quartus II的所有功能,只要看它的handbook就可以了,很详细,对于IT行业的人,大部分知识来源都是英文文档,一定要耐心看,会从中收获很多的。当然,官网也有中文资料,但英文资料更加详细,而且很多东西一定要看英文原版资料,因为中文翻译不一定很准确。
. ]; ^1 A: O0 y, i---------------------
1 w3 t) b6 w7 O7 j' [! k$ }6 w作者:ALIFPGA
. T; C7 A3 U' _5 q# h% Y/ w3 M- f) Z* x1 |- f( d, c
|
|