1.FPGA简介

        FPGA的官方解释是 :** Field-Programmable Gate Array**,即现场可编程门阵列,它是在PAL、GAL、CPLD(不用读系列)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点

​        可以将FPGA理解为大量的逻辑门阵列,用户可以自由组合以实现不同的电路功能,即FPGA的可编程特性。相比于冯诺依曼结构的CPU、GPU等通用处理器,FPGA具有效率更高速度更快的优点;相比于专职专用的ASIC,FPGA则具有开发难度小,开发周期更短的优势,更适用于复杂多变的数据中心等应用。

2.FPGA学习

1.硬件描述性语言

​        硬件描述语言(英文: Hardware Description Language ,简称: HDL )是电子系统硬件行为描述、结构描述、数据流描述的语言。利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。

​        其中主流的硬件描述语言主要包括VHDL,Verilog

(1)VHDL

​ VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由[美国国防部]开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。

​ VHDL主要用于描述[数字系统]的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

(2) Verilog

​        Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。

         Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。  

        Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。

2.EDA设计软件

​ 目前来说主流的FPGA生产厂家分别为Altera(已经被Intel收购)和XILINX,其中XILINX作为FPGA的发明者,在FPGA的生产和支持中占据了大头。

(1)XILINX

​  xilinx的EDA设计软件有三个,ISE,Vivado和Planahead(ISE和Planahead一般是捆绑在一起的)

​ ISE和Plana支持原理图,硬件描述性语言输入,vivado支持硬件描述性语言和c/c++输入。

ISE和Planahead官方下载地址(不要下载ISE win10版)

https://china.xilinx.com/support/download/index.html/content/xilinx/zh/downloadNav/design-tools.html

vivado官方下载地址

https://china.xilinx.com/support/download/index.html/content/xilinx/zh/downloadNav/vivado-design-tools.html

(2)Altera

​ alter旗下只有一款EDA设计软件quartus

quartus和ISE类似支持原理图和硬件描述性语言输入

quartus 官方下载地址

https://www.intel.cn/content/www/cn/zh/software/programmable/quartus-prime/download.html

3.学习思路

相比于单片机和纯软件编程来说,FPGA设计与其最大的不同在于我们在编写程序时我们是在构建真是的电路,你所编写的程序应该是一个个你所知道的微小电路,比如是一个触发器,加法器或者是寄存器,所以要求设计者需要一定的数字逻辑电路基础。

入门的书籍推荐:

夏宇闻-Verilog经典教程

EDA实用技术教程——VHDL/Verilog HDL

1 个评论

  1. 通告:Quartus II软件安装与创建工程 – 通信科协

发表评论