欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

第二部分:FPGA多路采样系统设计详解与实用指南

最编程 2024-07-28 07:09:40
...

4.3.4串并输出选择控制

从AD控制模块输出的数据是并行16位数据。串行输出的原理是:通过一个16选1的数据选择器连续选择输出的并行16位数据,数据选择器的选择信号是一个对系统时钟记数的二进制模16的计数器输出,这样就可以实现将并行16位数据转换为串行数据。通过外部输入信号P/S可以实现是串行输出还是并行输出,如果P/S是低电平,就选通16选1的选择器,禁止16个与门的输出,此时为串行输出;如果P/S为高电平,则禁止16选1的选择器,同时打开16个与门,此时为并行16位输出。输出模式可选择性使得系统的应用相当广泛,串行输出可以用于通信信号的采集,方便调制后发射到远程接受端,远程接收端对采集的数据进行解调;而并行输出模式则可以通过高速存储器将采集的信号放到微机或者其他的处理器上,根据采集的数据进行相应的控制。

4.3.5 FIFO模块

本设计项目是利用FPGA直接控制AD7892来实现对音频信号的高速信号采集,在完成对一个周期的采样后,将数据存储到存储器中,然后从存储器中读出数据并显示出来,采样存储器可以有多种方式实现:

(1)外部随机存储器RAM,其优点是存储量大,缺点是需要外接芯片,且常用的RAM读写速度较低;与FPGA间的连接线过长;特别是在存储数据时需要对地址进行加一操作,影响读写速度。

(2)内部随机存储器RAM,在Altera的大部分FPGA器件中都含有EAB模块,由此可配置成不同类型的内部高速RAM。与外部RAM相比,尽管内部RAM有更大的优势,但使用中仍然存在需要对地址加一的操作,而影响数据读写速度的缺点。

(3)内部FIFO,相比之下,FIFO更适合与用做高速AD采样的数据存储器,因为FIFO的写入时间只有一个时钟周期,因此决定使用LPM_FIFO作为采样存储器。

由计算公式:数据量(字节) =(采样频率×量化精度×声道数)/8×时间(秒)以及本次设计的采样频率为62.5KHz,量化精度为12位,声道是单声道,可以计算出一分种采样所需要的存储空间是5625000个字节,而FPGA芯片的内部RAM最多只有49152位(每个EAB有4096位),不足以存储一分种需要的存储容量,所以我们选择FIFO作为暂存器,设计FIFO的容量是512×16=8192位,每次锁存数字数据后,状态机在下一个状态(状态6)进入写指令,将锁存的数据写入FIFO队列中,由于FIFO的读写操作都只需要一个时钟周期,所以在状态机再下一个状态(状态7)进入读操作,从FIFO队列中读出数据,将数据送到输出端口,其实FIFO队列只需要16位的存储容量就足够了,但设计让整个EAB块都用来储存,这也是为了存储中有多余空间。采用FIFO队列就不需要存储容量为5626000个字节的存储器了,更有效得利用了FPGA芯片资源。

如果采样先将256个数据存到FIFO队列中,由于从FIFO队列中读数据只需要一个时钟,而在串行输出的模式下,在进行串并转换的时候,需要最少16个时钟周期,而FIFO端口的数据只出现一个周期就会发生改变,这样就体现出FIFO的高速特性,而在一个AD采样周期中完成一次串并转换时间是足够的。

本次设计是通过调用MAX+PlusⅡ的参数可设置LPM兆功能块来实现FIFO队列的。LPM是参数可设置模块库的英文缩写(Library of Parameterized Modules),这些可以以图形或硬件描述语言模块形式方便调用的兆功能块,使得基于EDA技术的电子设计的效率和可靠性有了很大的提高。设计者可以根据实际电路的设计需要,选择LPM库中的适当模块,并为其设定适当的参数,就能满足自己的设计需要。从而在自己的项目中十分方便调用了优秀电子工程技术人员的硬件设计成果。在MAX+PlusⅡ中,进入LPM元件定制器界面,按照电路需要设计各个参数,最后完成FIFO的设计,通过调用生成的图形来调用FIFO队列模块。

4.3.6AD采样系统顶层电路设计

通道选择模块、AD采样控制模块、延时模块、串并输出控制模块以及FIFO模块设计完毕以后,我们就可以将设计的各个模块连接起来,可以得到整个系统的顶层电路。顶层电路见附录。

4.4 FPGA的硬件设计

本次毕业设计选用的FPGA芯片是ALTERA公司的ACEX1K系列的EP1K30TC144-3。由于它的高密度和易于在设计中实现复杂宏函数和存储器,因此可以把一个子系统集成在单一芯片上,EP1K30包括一个嵌入式阵列,这为设计人员提供了有效的嵌入式门阵列和灵活的可编程逻辑。嵌入式阵列是由一系列嵌入式阵列块(EAB)组成的,它能够用来实现各种存储器和复杂逻辑功能;该器件也提供多电压I/O接口操作。它允许器件桥架在不同电压工作的系统中。比如本次系统设计器件的I/O输出就是2.5V,这样不但使FPGA芯片工作安全,也可以让AD7892能工作安全状态。

4.4.1EP1K30TC144-3芯片介绍

EP1K30TC144-3芯片特性:

有30000个典型门,最大的系统门可达119000个;

1728个逻辑单元(LE);

6个嵌入式阵列块(EAB);

具有实现宏函数的嵌入式阵列和普通功能的逻辑器件;

高达49152位的内部RAM(每个EAB有4096位),使得RAM并不影响或减少其他逻辑功能;

支持多电压I/O接口,低功耗(维持状态小于0.5mA);

器件可在2.5V和3.3V电源电压下工作;

多种系统配置方式;

时钟锁定和时钟自举选项有助于减少时钟延迟/变形和对时钟进行倍频;

快速、可预测连线延时的快速通道(Fast Track)连续式布线结构;

实现快速加法器、计数器和比较器的专用进位链;

每个引脚都有一个独立的三态输出使能控制;

每个引脚都有漏极开路选择;

具有快速建立时间的寄存器;

提供多种其他EDA产品的设计文件输出;

4.4.2芯片组成描述

ACEX1K系列的EP1K30主要有嵌入式阵列块,逻辑阵列块,Fast Track和I/O单元四部分组成。

(1)嵌入式阵列

嵌入式阵列是由一系列嵌入式阵列块(EAB)构成的。当要实现有关存储器功能时,每个EAB提供2048位用来构造RAM,ROM,FIFO或者双口RAM等功能。当EAB用来实现乘法器、微控制器、状态机以及DSP等复杂逻辑时,每个EAB可贡献出100-600个门。EAB可以单独使用,也可以组合起来使用。

 (2)逻辑阵列

逻辑阵列是由一系列逻辑阵列块(LAB)构成的,每个LAB包括8个LE和一些连接线,每个LE含有一个4输入查找表(LUT)、一个可编程触发器、进位链和级联链、LE的结构能有效实现各种逻辑。每个LAB是一个独立的结构,它具有共同的输入,互连与控制信号,LAB的这种“粗粒度”结构有利于布线和实现器件的高性能,例如8位计数器、地址译码器或者状态机。多个LAB组合起来也可以构成更大的逻辑块,每个LAB代表大约96个可用逻辑门。

 3快速通道Fast Track

器件内部信号的互连和器件引脚之间的信号互连是由快速通道连线提供的,它是贯通器件长、宽的快速连续通道。

(4) I/O单元

EP1K30器件的I/O引脚是有一些I/O单元(IOE)驱动的,IOE位于快速通道的行和列的末端,每个IOE有一个双向I/O缓冲器和一个既可作输入寄存器也可作输出寄存器的触发器。当IOE作为专用时钟引脚时,这些寄存器提供了特殊的性能。当它作为输入时,可提供少于4.2ns的建立时间和0ns的保持时间;而作为输出时,这些寄存器可提供少于5.7ns的“时钟到输出”的时间。

EP1K30还提供了6个专用输入引脚,这些引脚用来驱动触发器的控制端,以确保控制信号高速、低偏移(1.2ns)地有效分配。这些信号使用了专用的布线支路,以便具有比快速通道更短的延时和更小的偏移。专用输入中的4个输入引脚可用来驱动全局信号,这4个全局信号也能由内部逻辑驱动,它为时钟分配或产生用以清除器件内部多个寄存器的异步清除信号提供了一个理想的方法。

4.4.3芯片工作电压设计

由于芯片对工作电压有很高的要求,所以选择三端稳压器LM317,LM317是美国国家半导体公司的三端可调稳压器集成电路,它的使用非常简单,仅需要两个外接电阻来设置输出电压。此外它的线性调整率和负载调整率也比标准的固定稳压器要好,它还内置有过载保护、安全区保护和多种保护电路。由于设计FPGA芯片的I/O口的引脚电压设为2.5V,所以把LM317的电压设计为2.5V为整个FPGA芯片提供工作电压。LM317的典型应用电路如图4.12所示:

网络异常,图片无法展示
|

4.12 三端稳压器LM317的典型应用

下面对三端稳压器LM317的特性做简单的介绍。

保证1%的输出电压误差;

保证最大0.01%的线性调整率;

保证0.1%的负载调整率;

保证1.5A的输出电流;

可调整电压输出最低1.2V,最高可以调到37V;

输出短路保护,过流、过热保护;

80db的纹波抑制;

标准三端晶体管封装;

三端稳压器LM317在输出和稳压器的末端提供一个内部参考电压1.25V,这样就可以过两个电阻的比例关系来决定的输出的电压,输出电压和参考电压的关系如下式

网络异常,图片无法展示
|

网络异常,图片无法展示
|
       式(3-1)

器件设计

网络异常,图片无法展示
|
的最大值为100
网络异常,图片无法展示
|
,这个值是不随负载的变化而变化的,所以通常
网络异常,图片无法展示
|
可以忽略的。

   由于本设计需要2.5V的稳定电压,而

网络异常,图片无法展示
|
是1.25V,所以
网络异常,图片无法展示
|
=1,让R2=R1=240
网络异常,图片无法展示
|
即可达到输出2.5V的电压。

4.4.4芯片配置介绍

目前常见的大规模可编程逻辑器件的编程工艺有三种

① 基于电可擦除存储单元的EEPROM或FLASH技术,CPLD一般使用此技术进行编程。CPLD被编程后改变了电可擦除存储单元的信息,掉电后可保持。

② 基于SRAM查找表的编程单元,对该类器件,编程信息是保持在SRAM中的,SRAM在掉电后编程信息立即丢失,在下次上电后,还需要重新载入编程信息。因此该类器件的编程一般称为配置,大部分FPGA采用该种编程工艺。

③ 基于反熔断丝编程单元。Actel的FPGA;Xilinx部分早期的FPGA采用此种结构,现在Xilinx已不采用。反熔断技术编程方法是一次性可编程性。

相比之下,电可擦除编程工艺的优点是编程后信息不会因掉电而丢失,但编程次数有限,编程的速度不快。对于SRAM型的FPGA来说,配置次数为无限,在加电时可随时更改逻辑,但掉电后芯片中的信息即丢失,每次上电时必须重新载入信息,下载信息的保密性不如前者。

FPGA配置可以用专门的编程设备,也可以使用下载电缆。如Altera的ByteBlaster(MV)并行下载电缆,连接PC机的并行打印口和需要编程或配置的器件。并与MAX PlusⅡ配合可以对Altera 公司的多种CPLD、FPGA进行编程或编程。由于实验台上有一个FPGA的配置端口,所以在本次毕业设计中选用ByteBlaster(MV)配置方法。ByteBlaster(MV)下载电缆与Altera器件的接口一般都是10芯的,引脚对应关系如下表4.3所示,FPGA上配置引脚功能说明如表4.4所示。


表4.3:ByteBlaster(MV)下载电缆引脚信号名称

引脚

1

2

3

4

5

6

7

8

9

10

器件引脚

DCLK

GND

CONF_DONE

VCC

nCONFIG

-

nSTATUS

-

DATA0

GND

表4.4:芯片的配置引脚功能说明

DATA0

输出

配置数据

DCLK

输出

配置时钟

nCONFIG

输出

器件复位脚(该信号线的上升沿使配置开始)

CONF_DONE

输入

状态位(在配置完成后,该信号线为高)

nSTATUS

输入

状态位(如果该信号线为低,表明在配置过程中出现错误,需重新配置)

编程配置电路的设计图入图4.13所示:


网络异常,图片无法展示
|

图4.13 编程配置电路图

Altera的SRAM  LUT结构的器件中,FPGA可使用6中配置模式,这些模式通过FPGA上的两个模式选择引脚MSEL1和MSEL0上设定的电平来决定;

1.配置器件,如用EPC器件进行配置;

2.PS(Passive Serial 被动串行)模式:MSEL1=0,MSEL0=0;

3.PPS(Passive Parallel Synchronous 被动并行同步)模式:MSEL1=1,MSEL0=0;

4.PPA(Passive Parallel Asynchronous 被动并行异步)模式:MSEL1=1,MSEL0=1;

5.PSA(Passive Serial Asynchronous 被动串行异步)模式:MSEL1=1,MSEL0=0;

6.JTAG模式:MESL1=0,MESL0=0;

这6种配置模式中,PS模式可以利用PC机通过ByteBlaster(MV)下载电缆Altera器件应用ICR(电路可重配置)。在本次毕业设计中,选用第二种配置模式,即被动串行模式,配置时序如图4.14所示: