基于FPGA的FSK编码的VHDL实现 下载本文

xxxx大学本科毕业设计(论文)

0B

前 言

FPGA技术经过20多年的发展,现在已经被应用到各个领域,并且正在逐渐成为越来越多领先技术的系统级解决方案。本文通过对FSK调制的FPGA实现,了解系统仿真和实际实现的方法,加深对数字调制原理的理解,掌握基于FPGA开发的一般流程,并通过此过程学习了VHDL语言在可编程逻辑器件上的应用,为以后的电子技术开发打下基础。

- 4 -

xxxx大学本科毕业设计(论文)

1B

第一章 FPGA和VHDL语言

8B

第一节 FPGA基本原理和设计基础

一、 FPGA的基本工作原理

16B

1、FPGA的基本结构

①可编程输入/输出单元:简称I/O 单元,是芯片与外部电路的接口部分,完成不同电气特性下对输入/输出信号驱动和匹配需求。

②基本可编程逻辑单元:它是可编程逻辑的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能。

③嵌入式块RAM:目前大多数FPGA都有内嵌的块RAM(Block RAM),它大大拓展了FPGA的应用范围和使用灵活性。

④丰富的布线资源:布线资源连通FPGA内部所有的单元,连接的长度和工艺决定着信号在连线上的驱动能力和传输速度。

⑤底层嵌入功能单元:所指的是那些通用程度较高的嵌入式功能模块,比如PLL(Phase Locked Loop)、DLL(Delay Locked Loop)、DSP和CPU等。⑥内核专用硬核:这里所指的是通用性相对较弱,不是所有FPGA器件都包含硬核(Hard Core)Altera的FPGA有高密度FPGA和Altera低成本FPGA之分:

⑦Altera高密度FPGA:Altera高密度FPGA主要用于高端,其中Stratix和Stratix GX被大量应用于高端的路由器和交换机中做复杂的协议处理和流量调度,有的在3G系统中做高速DSP算法的实现,也有的用在高清晰电视系统中做高速图像处理和传输等等。

⑧Altera低成本FPGA:Altera低成本FPGA有ACEX,之后推出了飓风(Cyclone)系列,还有基于90nm工艺的飓风Ⅱ。低成本FPGA主要定位在大量且对成本敏感的设计中,如数字终端和手提设备等,另外在PC、消费类产品和工业控制领域,FPGA还不是特别普及,主要是以前其成本相对较高。

- 5 -

xxxx大学本科毕业设计(论文)

2、FPGA的工作原理

在可编程逻辑器件当中,诸如GAL、CPLD之类都是基于乘积项的可编程结构,即可编程的与阵列和固定的或阵列组成。由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构,查找表可以很好地满足这一要求。目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。SRAM工艺的FPGA芯片不具备非易失特性,因此断电后将丢失内部逻辑配置。在每次上电后,都需要从外部非易失存储器(PROM、Flash存储器等)中导入配置比特流。

根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n种结果。所以如果事先将相应的结果存放于一个存储单元,就相当于实现了与非门电路的功能。显然N不可能很大,否则LUT的利用率很低,输入多余N个的逻辑函数,必须用几个查找表分开实现

查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。图1.1是4输入LUT:

输入1 输入2 输入3 输入4

查找表 LUT 输出

图1.1 4输入LUT

目前Xilinx的最新产品Virtex 5 FPGA芯片采用6输入的LUT,而其余所有芯片都使用4输入的LUT。对于一个6/4 LUT可以看成一个有6/4位地址线的64/ 的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

3、FPGA的编程与配置

编程:FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时, FPGA芯片将EPROM中数据读入片内编程RAM中,配置完

- 6 -

xxxx大学本科毕业设计(论文)

成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA 有多种搭配方式:并行主模式为一片 FPGA 加一片 EPROM 的方式;主从模式可以支持一片 PROM 编程多片 FPGA ;串行模式可以采用串行 PROM 编程 FPGA ;外设模式可以将 FPGA 作为微处理器的外设,由微处理器对其编程。

配置:与CPLD不同,FPGA是基于门阵列方式为用户提供可编程资源的,其内部逻辑结构的形成是由配置数据决定的。这些配置数据通过外部控制电路或微处理器加载到FPGA内部的SRAM中,由于SRAM的易失性,每次上电时,都必须对FPGA进行重新配置,在不掉电的情况下,这些逻辑结构将会始终被保持,从而完成用户编程所要实现的功能。

FPGA的配置方式分为主动式和被动式,数据宽度有8位并行方式和串行方式两种。在主动模式下,FPGA在上电后,自动将配置数据从相应的外存储器读入到SRAM中,实现内部结构映射;而在被动模式下,FPGA则作为从属器件,由相应的控制电路或微处理器提供配置所需的时序,实现配置数据的下载。

使用并行EPROM对FPGA进行配置时,速度相对较快,存储容量较大;而在一些对空间较为敏感,速度要求不太高的应用中,利用串行方法进行配置,可以减小电路板的面积,同时可以简化系统结构。

二、 FPGA设计基础

17B

FPGA设计流程如图,包括电路功能设计、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以及芯片编程与调试等主要步骤。

1、FPGA典型设计流程

- 7 -