EDA基础概念

EDA基础概念FPGA Field Programmable 即现场可编程门阵列 它是在 PAL GAL CPLD 等可编程器件的基础上进一步发展出来的产物

大家好,欢迎来到IT知识分享网。

EDA和CAD

CAD工具

计算机辅助设计工具,主要作用:绘图工具,使用者:遍布各个行业。电气CAD系统的目标与范围有:机械产品电气设计包括电路图、接线图、安装图、接线盒和电柜以及按钮站的设计。这五个部分之间不是孤立存在的,而是互相联系,这五个部分既能单独运行又能实现信息共享。为此电气CAD系统的目标与范围是:建立适应完成以上功能要求、保证设计质量又能提高效率、缩短设计周期、减少人工劳动的电气CAD系统,包括电路图、接线图、安装图、接线盒和电柜、按钮站的设计。

EDA工具

EDA技术实现目标

可编程逻辑器件简称PLD发展历程

  • 1985年,美国Xilinx公司推出了现场可编程门阵列(FPGA,Field Programmable Gate Array)
  • CPLD(Complex Programmable Logic Device),即复杂可编程逻辑器件,是从Altera 的 EPLD 改进而来的。

CPLD简介

早期的CPLD是从GAL的结构扩展而来,但针对GAL的缺点进行了改进。CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于 CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。到90年代,CPLD发展更为迅速,不仅具有电擦除特性,而且出现了边缘扫描及在线可编程等高级特性。较常用的有Xilinx公司的EPLD和Altera公司的CPLD。

FPGA简介

  • FPGA(Field- Programmable Gate Array),即现场可编程门阵列,它是在 PAL、GAL、CPLD等可编程器件的基础上进一步发展出来的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
  • FPGA 普遍用于实现数字电路模块,用户可对 FPGA 内部的逻辑模块和 I/O模块重新配置,以实现用户的需求。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。
  • FPGA的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块 RAM,布线资源,内嵌专用硬核,底层内嵌功能单元。
  • FPGA 的设计流程包括算法设计、代码仿真以及设计、板级调试,设计者以及实际需求建立算法架构,利用 EDA 建立设计方案或 HD 编写设计代码,通过代码仿真保证设计方案符合实际要求,最后进行板级调试,利用配置电路将相关文件下载至 FPGA 芯片中,验证实际运行效果。

FPGA 可支持许多种 I/O 标准,因而可以为系统设计提供理想的接口桥接。FPGA 内的 I/O 按 bank 分组,每个 bank 能独立支持不同的 I/O 标准。目前最先进的 FPGA 提供了十多个 I/O bank,能够提供灵活的 I/O 支持。

CLB 提供了逻辑性能,灵活的互连布线则负责在 CLB 和 I/O 之间传递信号。布线有几种类型,从设计用于专门实现 CLB 互连(短线资源)、到器件内的高速水平和垂直长线(长线资源)、再到时钟与其它全局信号的全局低 skew 布线(全局性专用布线资源)。

CLB、Slice、logic cell、LUT概念

LC —Logic Cell—逻辑单元

The “logic cell” is supposed to represent a 4-input LUT with no other functionality. In older Xilinx technologies (with 4-input LUTs) they used to use 1.25 as the multiplier to get from LUTs to Logic Cells, since the Xilinx slice also had the carry chain and wide MUX, which made it possible to do more than a simple 4-input LUT would be able to do.

In later technologies, which use the 6-input LUT, they use the multiplier 1.6.

大概意思就是说“logic cells” 是 Xilinx 创造提出来的一个市场说法,可以用来衡量不同内部结构甚至不同厂商的FPGA芯片的资源情况。

“logic cells”代表的是一个没有其他任何功能的4输入LUT,在老一些的Xilinx的FPGA中,他们使用LUT的数目乘以1.2来计算LC的数目,因为一个LUT中还有一个进位链和MUX,这样可以使一个LC比淡出的4输入LUT实现更多功能。

在较新的FPGA中,Xilinx采用了6输入LUT,这时他们采用系数1.6。

另外请记住一个LUT对应这两个FF,也就是一个查找表对应两个寄存器。

CLB—Configurable Logic Block

LS—Logic Slice

SliceM

SliceM中的LUT可作为6输入1输出的LUT/相同5地址的双5输入2独立输出的LUT。同样可配置为64位/双32位(1个32位位移寄存器SRL32/2个可寻址的16位移寄存器SRL16s)的分布式RAM,在CLB中,每个LUT的输出可以及存在FF内。

SliceL

SliceX

Slice的组成

在SPANTAN-6中,一个Slice包含4个6输入LUT和8个FF以及多种逻辑。并包含SliceM(1/4),SliceL(1/4),SliceX(1/2)。1个LS包含6.4个LC,故3758*6.4=24051.2个LC。

因此,许许多多的slice相结合,再加上全局时钟就能实现复杂的数字功能。有的CLB由2个sliceL构成,有的则是由1个sliceL和一个sliceM构成。SliceM除了基本功能外,可以实现RAM和移位寄存器的功能,这两种功能很有用,通过工具软件可以自动实现,不用咱们操心。

LUT—Look Up Table

查找表是最FPGA中实现逻辑的基本单元,通常有4输入查找表和6输入查找表(4/6 input LUT)。

以4输入查找表为例,可以看成4位地址输入,1位数据输出的存储器,存储的内容是真值表,依照输入的地址的真值输出对应的数据。

LUT是组合的,如果RTL是时序电路,则实际上是LUT+FF组成。

LUT本质上就是一个RAM。它把数据事先写入RAM后, 每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。

LUT的重要作用-逻辑函数发生器:
Spartan-6中的函数生成器中,每个Slice中的四个函数生成器(A、B、C和D)有6个独立输入(A1-A6)和2个独立输出(O5-O6)。本质上,逻辑函数发生器存储的是真值表(Truth Table)的内容,而真值表则是通过布尔表达式获得。SPARTAN-6中函数生成器可以实现6输入布尔表达式(O6输出)或者5输入布尔表达式(O5和O6),只要这两个布尔表达式共享公共输入即可。
在这里插入图片描述
查找表的输出可以从O6直接输出,或者从AMUX, BMUX, CMUX, DMUX输出O5;O6输出也可进入专用异或门、O5也可进位逻辑链; O6输出进入进位逻辑多路复用器的选择线、或者存储单元的D输入;或者O6进入3输入D选择器。


存储单元(即触发器,Flip-flops)

每个slice有8个存储元素。

四个可以配置为边沿触发D型触发器或电平敏感锁存器。 D输入可以通过AFFMUX,BFFMUX,CFFMUX或DFFMUX的LUT输出直接驱动,也可以通过AX,BX,CX或DX输入绕过函数发生器的BYPASS slice输入直接驱动。 当配置为锁存器时,当CLK为低电平时,锁存器是透明的。对应如下右图

还有四个额外的存储单元,它们只能配置为边沿触发的D型触发器。 D输入可以由LUT的O5输出驱动,也可以由AX,BX,CX或DX输入的BYPASS slice输入驱动。 当原始的四个存储单元配置为闩锁时,这四个附加的存储单元将无法使用。对应如下左图

Distributed-RAM

移位寄存器(Shift Registers)

多路复用器(Multiplexers)

7系列FPGA中的函数发生器和相关的多路复用器可以实现以下功能:

  • 使用一个LUT的4:1多路复用器
  • 每片四个4:1 MUX
  • 使用两个LUT的8:1多路复用器
  • 每个slice两个8:1 MUX
  • 使用四个LUT的16:1多路复用器
  • 每片一个16:1 MUX

进位逻辑(Carry Logic)

FPGA容量评估

Altera 基本结构

在这里插入图片描述

FPGA中的HP Bank、HR Bank、HD Bank

在开发FPGA绑定管脚时,经常会看到HP Bank、HR Bank和HD Bank,它们分别是什么意思?分别可以适用于哪些应用个?

这几个概念都是在7系列之后才有的,其中7系列的FPGA中有HP Bank和HR Bank,UltraScale FPGA有HP Bank、HR Bank和HD Bank,但并不是一个FPGA中会同时包含HP/HR/HD Bank。

  • HP:High Performance
  • HR:High Range
  • HD:High Density

HP Bank,从名字就可以看出来,应用于高性能也就是速度比较高的场景,比如DDR或者其它高速差分总线(不是gtx),由于速率比较高,Bank电压最高也只能到1.8V。

HR Bank表示支持wider range of I/O standards,最高能够支持到3.3V的电压。

单端I/O标准包括LVCMOS、LVTTL、HSTL、SSTL、HSUL和POD等。

差分I/O标准包括LVDS、Mini_LVDS、RSDS、PPDS、BLVDS、TMDS、SLVS、LVPECL、SUB_LVDS以及差分 HSTL、POD、HSUL和SSTL等。

Xilinx 7系列FPGA用户BANK

Notes: 所谓伪差分电平,就是信号在接收端是一个差分的接收器,但其中一端固定接参考电压,而另一端接单端信号线。输入信号电压与参考电压之间进行比较,作为判断输入信号高低的标准。

HR和HP BANKS的LVDS电平

FPGA和CPLD区别

Xilinx把SRAM工艺,要外挂配置用的EPROM的PLD叫FPGA,把Flash工艺(类似EEPROM工艺),乘积项结构的PLD叫CPLD;

2、 由于是EEPROM或者Flash工艺决定了CPLD是有一定的擦写次数限制的。而FPGA在实际使用中几乎可以说是无配置次数限制。

3、CPLD由于采用的是EEPROM或者Flash工艺所以配置掉电后不丢失,也就不需要外挂配置芯片。而FPGA采用的是SRAM工艺,配置在掉电后就没有了,因此需要一个外部配置芯片。

4、CPLD的安全性更高。由于配置芯片的存在,FPGA的保密性就会比CPLD略差。逻辑数据有可能被读取。(当然FPGA芯片会有一定的加密措施)

5、 CPLD由于不需要上电重新配置,所以上电后可以马上工作。而FPGA上电后需要配置时间,逻辑量的大小配置方式的区别也会影响配置时间的长短。

6、由于CPLD的连续式布线结构,决定了它的时序延时是均匀和固定的。而FPGA采用的分段式布线结构造成了延时不固定。

7、由于工艺难度的差异,CPLD一般集成度较低,大多为几千门或几万门的芯片规模,做到几十万门已经很困难。而FPGA基于SRAM工艺,集成度更高,可以轻松做到几十万门甚至几百万门的芯片规模,最新的FPGA产品已经接近千万门的规模。

8、 同样由于结构的差异,CPLD更适合完成的是复杂的组合逻辑,如编、译码的工作。而FPGA更适合做复杂的时序逻辑。换句话说就是FPGA更适合触发器丰富的逻辑结构,CPLD适合于触发器有限但是乘积项丰富的逻辑结构。

9、也是由于工艺的原因,一般CPLD会比FPGA的功耗高。

是否需要同时学习FPGA和CPLD

完全没有必要,因为FPGA和CPLD的设计语言都是Verilog,至于CPLD和FPGA内部结构不一样,在编码阶段完全看不出来,软件会根据CPLD还是FPGA自动生成编程文件,所以学习的话建议值学习FPGA即可,FPGA学会了,基本就会用CPLD了。另外现在的电路设计规模越来越大,动不动都是上万个或者几十万个甚至上百万个寄存器规模,这种规模下,CPLD资源太少,不会被考虑。

Xilinx(赛灵思)公司介绍(AMD收购)

XILINX成立于1984年位于美国,是全球领先的可编程逻辑完整解决方案的供应商,也是目前排名第一的FPGA解决方案提供商。首创了现场可编程逻辑阵列(FPGA)并催生了一个新的行业,并于1985年首次推出商业化产品。1994年,Xilinx发布了Virtex®FPGA,完成了其原始FPGA在架构和性能方面的突破。2012年,Xilinx推出了第一款28nmZynq®器件,这是一款支持应用处理器并包含缓存、内存控制器、外设、FPGA逻辑、DSP模块和SerDes模块的完整SoC系统。Xilinx第二代ZynqSoC(异构MPSoC)于2017年问世,并添加了新的处理引擎,目标是为正确的任务启用正确的硬件引擎,优化复杂系统的处理要求。2018年,Xilinx发布了Alveo™数据中心加速卡,简化了数据中心高性能、适应性强的FPGA加速的开发和部署。2019年,Xilinx发布了第一个自适应计算加速平台(ACAP)Versal。Versal®ACAP支持多种特定领域架构(DSA)和计算结构,其核心优势在于其作为多核通用SoC的功能,包括额外的硬件和软件可编程引擎,以实现最佳的功率和性能权衡。

美国当地时间2022年2月14日,AMD宣布以全股份交易(all-stock transaction)方式完成对赛灵思(Xilinx)的收购。

开发工具

Xilinx目前开发工具包括ISE和Vivado。ISE是老开发软件了,目前基本上已经被vivado取代,只有xilinx公司的一些十几年前生产的FPGA才使用ISE开发,新的FPGA都支持更好用的vivado。

ISE® design suite 支持 Spartan®-6、 Virtex®-6、和 CoolRunner™ 器件,及其上一代器件系列。

Xilinx 推荐 Vivado® Design Suite ,针对 Virtex-7、Kintex-7、Artix-7、和 Zynq®-7000 起的全新设计。

FPGA厂家的开发工具都有第三方仿真平台的接口,调用最多的第三方仿真软件就是Modelsim,ISim是ISE自身集成的仿真工具,两者功能差不多。用modelsim的人比较多,然后教程也多,容易学。跑大型的工程,Modelsim快很多。所以我们在以后的教程中使用Modelsim演示。

Xilinx产品

2、Artix系列:Xilinx推出Artix系列FPGA产品,其目的应该是作为低端Spartan和中高端Kintex系列FPGA的过渡产品,尤其在通信接口方面,Artix系列相比Spartan有很大优势,所以,如果设计不是仅仅需要逻辑资源,而是需要先进的高速接口,不妨考虑Artix系列。

3、Kintex和Virtex系列为Xilinx的中、高端产品,包含有28nm的Kintex7和Virtex7系列,20nm的Kintex7 Ultrascale和Virtex7 Ultrascale系列,还有16nm的Kintex7 Ultrascale+ 和Virtex7 Ultrascale+系列。其拥有丰富的高速接口,主要用于通信,雷达,信号处理,IC验证等高端领域。

Altera(阿尔特拉)公司介绍(Intel收购)

业界与Xilinx齐名的FPGA供应商,2015年被CPU芯片届的大佬Intel收购了,因此现在也称为Intel的FPGA。

开发工具

QuartusII。Intel的FPGA软件是Quartus,目前最新的版本已经到了19版本。

其中精简版是免费的,无需付费许可,而且内置了modelsim仿真软件。

Altera产品

Xilinx和Altera产品对比

Intel:
Intel目前在售的FPGA产品系列主要有MAX系列、Cyclone系列、Arria系列、Stratix系列、Agilex系列以及SoC FPGA系列产品。

两大企业占据近90%的市场份额

Lattice公司(中文:莱迪思)

著名的可编程逻辑解决方案供应商,实力仅次于Xilinx和Altera。2015年Lattice以6亿美元收购Silicon Image公司;基于保护国家战略资产的考虑,16年底美国总统特朗普下达行政指令,宣布停止具有中资背景的私募股权基金(Canyon Bridge)收购美国FPGA芯片制造商Lattice(莱迪思)的交易,要求买卖双方完全、永久性地放弃收购。

开发工具:ISPLEVER

Microsemi(中文:美高森美)

并购了actel,专注于美国军工和航空领域,产品为反熔丝结构FPGA和基于Flash的FPGA为主,具有抗辐照和可靠性高的优势,最近Microsemi又被Microchip(微芯)并购。

开发工具:Libero

“两小”厂家 Lattice和Microsemi主攻的是特殊市场,比如军工、航天市场所用的反熔丝FPGA。反熔丝FPGA价格十分昂贵,只能烧录一次,抗辐照能力比较强。

Xilinx ZYNQ简介

ZYNQ 的全称是 Zynq-7000 All Programmable SoC,也就是说,ZYNQ 实际上是一个片上系统(System on Chip,SoC),ZYNQ 是赛灵思公司(Xilinx)推出的新一代全可编程片上系统(APSoC),它将处理器的软件可编程性与 FPGA 的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。与传统 SoC解决方案不同的是,高度灵活的可编程逻辑(FPGA)可以实现系统的优化和差异化,允许添加定制外设与加速器,从而适应各种广泛的应用。

Zynq-7000 系列是 Xilinx 于 2010 年 4 月推出的行业第一个可扩展处理平台,旨在为视频监视、汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理能力与计算性能。这款基于 ARM 处理器的 SoC可满足复杂嵌入式系统的高性能、低功耗和多核处理能力等要求。

ZYNQ 架构实现了工业标准的 AXI 接口,在芯片的两个部分之间实现了高带宽、低延迟的连接。这意味着处理器和逻辑部分各自都可以发挥最佳的用途,而不会产生在两个分立器件之间的接口开销。与此同时,又能获得系统被简化为单一芯片所带来的好处,包括物理尺寸和整体成本的降低。

FPGA/CPLD设计流程

在这里插入图片描述

硬件描述语言(HDL)

硬件描述语言HDL(Hardware Description Language ) 类似于高级程序设计语言. 它是一种以文本形式来描述数字系统硬件的结构和行为的语言, 用它可以表示逻辑电路图、逻辑表达式,复杂数字逻辑系统的逻辑功能。用HDL编写设计说明文档易于存储和修改,并能被计算机识别和处理.

HDL是高层次自动化设计的起点和基础,目前常用的HDL有VHDL、Verilog HDL、System Verilog和System C(C++语言的硬件描述扩展),VHDL和Verilog HDL是电子设计主流描述语言,同时也是IEEE推出的两种标准。

HDL综合

FPGA详细设计流程

设计定义

设计定义阶段主要进行方案验证、系统设计和FPGA芯片选择等准备工作。根据任务要求,评估系统的指标和复杂度,对工作速度和芯片本身的资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。

这个阶段往往会花费大量的时间,这个阶段之后一般已经完成了系统建模,功能划分,模块划分以及设计文档的撰写等工作。

代码实现

代码实现阶段是将划分好的各功能模块用硬件描述语言表达出来,常用的硬件描述语言有Verilog HDL和VHDL。以后的教程中我们主要讲解如何使用Verilog HDL进行FPGA设计。

功能仿真

逻辑综合

逻辑综合的概念是:将高级抽象层次的描述转化成较低层次的描述。

也就是说将语言描述的电路逻辑转化成与门、或门、非门、触发器等基本逻辑单元的互连关系。

前仿真

前仿真也叫做综合后仿真,仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去。

因为综合后只能体现基本的逻辑门之间的互连关系,并没有连线长度信息,所以前仿真只能评估门延时带来的影响,不能估计路径延时,前仿真结果和布线后实际情况还有一定的差距,并不十分准确。

目前的综合工具较为成熟,一般的设计可以省略这一步。但如果布局布线后发现电路功能与设计意图不符,就需要回溯到前仿真来确定问题所在。

布局布线

布线是利用FPGA中丰富的布线资源将CLB根据逻辑关系连接在一起。

布局布线策略有两种:速度优先和面积优先,布局布线时往往需要在速度最优和面积最优之间做出选择。

后仿真

后仿真也称为时序仿真,是将布局布线的延时信息反标注到设计网表中来检测有无时序违规。

经过布局布线后,门与门之间的连线长度也确定了,所以后仿真包含的延迟信息最全,也最精确,能更好的反映芯片的额实际工作情况。

现在我们可以总结一下功能仿真、前仿真和后仿真的区别了:
1、功能仿真:无延迟信息;
2、前仿真:只有门级的延迟;
3、后仿真:门级延迟和连线延迟;


板级调试

我们的FPGA设计不能只在电脑上跑仿真,最终还是要在电路板上应用起来的,设计的最后一步就是板级测试了,将EDA软件产生的数据文件(位数据流文件)下载到FPGA芯片中,进行实际的测试。

FPGA工程师还需要有一定的硬件知识,能够看懂电路板原理图设计和PCB是最低要求了,能够独立设计原理图是最好的了。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/130830.html

(0)
上一篇 2025-08-12 17:10
下一篇 2025-08-12 17:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信