找回密码
 注册
关于网站域名变更的通知
查看: 189|回复: 3
打印 上一主题 下一主题

FPGA/SOPC开发快速入门教程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-5 10:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
第一章 cpld/FPGA 的基本知识
; m" }  c8 N% j/ {(一)可编程逻辑器件的历史和概述 / b% L. h" F* }9 h
随着数字电路应用越来越广泛,传统通用的数字集成芯片已经难以满足系统的功能要求,而且随着系统复杂程度的提高,所需通用集成电路的数量呈爆炸性增值,使得电路的体积膨大,可靠性难以保证。此外,现代产品的生命周期都很短,一个电路可能需要在很短的周期内作改动以满足新的功能需求,对于采用通用的数字集成电路设计的电路系统来说即意味着重新设计和重新布线。
: {# x2 g+ X0 g0 C: \  @1 `! s9 Q因此,系统设计师们希望自己设计专用集成电路(ASIC)芯片,而且希望 ASIC 的设计周期尽可能短,最好是在实验室里就能设计出合适的 ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
4 l' J" d" z3 L9 x8 X  {$ g0 @$ W4 m早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。
0 R2 `! h4 p. }$ @其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的 PLD 由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以, PLD能以乘积和的形式完成大量的组合逻辑功能。
9 v' Q: [6 I7 `) `# t8 Z这一阶段的产品主要有 PAL(可编程阵列逻辑)和 GAL(通用阵列逻辑)。PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。 PAL 器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM 技术和 EEPROM 技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。 PLA 器件既有现场可编程的,也有掩膜可编程的。 在 PAL 的基础上,又发展了一种通用阵列逻辑 GAL (Generic ArrayLogic),如 GAL16V8,GAL22V10 等。它采用了 EEPROM 工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。 这些早期的 PLD 器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。
! r$ y$ r. T0 N+ @9 j! ~* B为了弥补这一缺陷,20 世纪 80 年代中期。 Altera 和 Xilinx 分别推出了类似于 PAL 结构的扩展型 CPLD(Complex Programmab1e Logic Dvice)和与标准门阵列类似的 FPGA(Field Programmable Gate Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。 这两种器件兼容了 PLD 和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和小批量产品生产(一般在 10,000 件以下)之中。几乎所有应用门阵列、PLD 和中小规模通用数字集成电路的场合均可应用 FPGA 和 CPLD 器件。, \9 b% Q9 u. X9 V

5 E9 L6 J0 o; f4 I! D! Z% L  d(二)FPGA/CPLD 概述
, b7 |3 [4 p* T8 {4 Y: G, _FPGA(现场可编程门阵列)与 CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它们是在 PAL,GAL 等逻辑器件的基础之上发展起来的。同以往的 PAL,GAL等相比较,FPGA/CPLD 的规模比较大,它可以替代几十甚至几千块通用 IC 芯片。
$ w  o  `1 |& I0 s0 L$ y3 N  t/ c这样的 FPGA/CPLD 实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是 Altera 公司和 Xilinx 公司的 CPLD器件系列和 FPGA 器件系列,它们开发较早,占用了较大的 PLD 市场。通常来说,在欧洲用 Xilinx 的人多,在日本和亚太地区用 ALTERA 的人多,在美国则是平分秋色。全球 PLD/FPGA 产品 60%以上是由 Altera 和 Xilinx 提供的。可以讲Altera 和 Xilinx 共同决定了 PLD 技术的发展方向。当然还有许多其它类型器件,如:Lattice,Vantis,Actel,Quicklogic,Lucent 等。 (99 年 Lattice 收购了 Vantis,成为第三大 PLD 供应商。
% {/ v2 K- N. a! N# a9 ^+ d2 C8 D1 p" P
对用户而言,虽然 CPLD 与 FPGA 的内部结构稍有不同,但其用法都一样,所以多数情况下,不加以区分。FPGA/CPLD 芯片都是特殊的 ASIC 芯片,它们除了具有 ASIC 的特点之外,还具有以下几个优点: . X) c' x- t$ v' A1 z
(1) 随着 VlSI(Very Large Scale IC,超大规模集成电路)工艺的不断提高单一芯片内部可以容纳上百万个晶体管, FPGA/CPLD 芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所能实现的功能也越来越强,同时也可以实现系统集成,即片上系统 SOC。
! m. Z6 S( v, J: G- c4 ^  q(2) FPGA/CPLD 芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投片风险和费用,设计人员只需在自己的实验室里就可以通过相关的软硬件环境来完成芯片的最终功能设计。所以, FPGA/CPLD 的资金投入小,节省了许多潜在的花费。
( N4 R) a) r  x( X(3) 用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。所以,用 FPGA/PLD 试制样片,能以最快的速度占领市场。 FPGA/CPLD 软件包中有各种输入工具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。 当电路有少量改动时,更能显示出 FPGA/CPLD 的优势。电路设计人员使用 FPGA/CPLD 进行电路设计时,不需要具备专门的 IC(集成电路)深层次的知识, FPGA/CPLD 软件易学易用,可以使设计人员更能集中精力进行电路设计,快速将产品推向市场。
( ?6 c" Z$ z- W* q8 E5 n8 S(4) 在线可编程技术(ISP)使得使用 CPLD/FPGA 的产品可以做到远程升级。(以上内容参照西电《CPLD 技术及其应用》,有改动)
( d# N! b) ~  ?' X& B$ M4 L! C" v) u4 k- M& P4 h
(三)PLD/FPGA 结构与原理初步
0 d# O; ^2 `% M: f; D- k( v( @& r一. 基于乘积项(product-Term)的 PLD 结构4 D9 @4 L/ @7 a$ ?  @) u9 U
采用这种结构的 PLD 芯片有:Altera 的 MAX7000,MAX3000 系列(EEPROM 工艺),Xilinx 的 XC9500 系列(Flash 工艺)和 Lattice,Cypress 的大部分产品(EEPROM 工艺)。我们先看一下这种 PLD 的总体结构(以 MAX7000 为例,其他型号的结构与此都非常相似):
9 R7 Y- ^% i5 G8 a
9 Z$ b" @# {1 _. f: S' H这种 PLD 可分为三块结构:宏单元(Marocell),可编程连线(PIA)和 I/O控制块。 宏单元是 PLD 的基本结构,由它来实现基本的逻辑功能。图 1.3.1 中阴影部分是多个宏单元的集合(因为宏单元较多,没有一一画出)。可编程连线负责信号传递,连接所有的宏单元。I/O 控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。 图 1.3.1 左上的INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2 是全局时钟,清零和输出使能信号,这几个信号有专用连线与 PLD 中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。宏单元的具体结构见下图:
: g3 ~% [$ [; T7 C   P; ^/ B- w" s  M
左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。后面的乘积项选择矩阵是一个“或”阵列。两者一起完成组合逻辑。图右侧是一个可编程 D 触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输给 PIA 或输出到 I/O 脚。
  g' a& T6 Z" V1 d
: `( C; J: e, w' C& p9 T/ }$ t请下载附件查看  w) Y* n! p  \

" o+ u- B1 @1 ^, C8 ?7 ?- ?7 t' J( q% z) n  ]0 w' s% M8 Z

fpga快速入门_decrypted.pdf

2.32 MB, 下载次数: 0, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2022-9-5 11:04 | 只看该作者
本帖最后由 RGB_lamp 于 2022-9-10 09:33 编辑 - `) e! A2 j7 L1 L4 B

' p: B6 Y8 j$ V文章资料很丰富,特别的专业

该用户从未签到

3#
发表于 2022-9-5 13:50 | 只看该作者
本帖最后由 Terran 于 2022-9-10 09:48 编辑
5 u* f. n  Q$ b8 i
9 _5 l; K% ^0 F文章的质量很棒,提高了技术水平。
  • TA的每日心情
    开心
    2025-10-2 15:42
  • 签到天数: 1185 天

    [LV.10]以坛为家III

    4#
    发表于 2022-9-5 15:21 | 只看该作者
    不错不错,很是专业和地道,很有指导价值
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-6 03:25 , Processed in 0.125000 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表