基于ARM核心的STM32F103VCT6微控制器设计的简易数码相机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Pu I se I nterva I Modu I at i on - Dua I Header (PIM-DH)引言
在通信系统的科研实验中,常常需要用到多种不同频率和相位的信号,如正弦波、三角波、方波和锯齿波等,因此多波形信号发生器的应用十分广泛。
传统的波形发生器多采用模拟分立元件实现,产生的波形种类要受到电路硬件的限制,体积大,灵活性和稳定性也相对较差。
近年来,以数字技术为基础的波形发生器得到了飞速的发展,性能指标都达到了一个新的水平。
现场可编程门阵列器件具有容量大、运算速度快、现场可编程等优点,使得许多复杂的电路有了新的实现途径,越来越被广泛地应用到实际系统中。
本文参考直接数字频率合成原理, 利用Max-PIUSII软件和Mat lab数学工具,基于FPGA配合相应外围器件实现多波形信号发生器,电路结构简单、易于扩展,具有极大的灵活性和方便性。
实现的多波形发生器可产生正弦波、三角波、锯齿波和方波等信号,输出信号频率在0 Hz —lOOKHz范围内可调。
1设计任务
设计一基于FPGA的多波形发生器。
设计•目标为,可以实现稳定的正弦波、三
角波、方波的输出,输出频率范围:lHz~100KHz,且频率可调(步进lHz)o 2设计思路及原理
DDS的工作原理是以数控振荡器的方式产生频率、相位可控制的正弦波。
电路一般包括基准时钟、频率累加器、相位累加器、幅度/相位转换电路、D/A转换器和低通滤波器(LPF)o频率累加器对输入信号进行累加运算,产生频率控制数据X (frequency data或相位步进量)。
相位累加器山N位全加器和N位累加寄存器级联而成,对代表频率的2进制码进行累加运算,是典型的反馈电路,产生累加结果Y。
幅度/相位转换电路实质上是一个波形寄存器,以供查表使用。
读出的数据送入D/A转换器和低通滤波器。
市场上U前专用的DDS芯片种类比较多,虽然他们的输出频率高、输出波形好,但是输出波形比较单一,一般只有正弦(余弦)波和方波;另外专用DDS芯片的输入已经固定,当需要一个变化灵活的频率或相位时,可能无法通过这些输入信息达到要求;这些都限制了专用DDS芯片的使用范臥而用FPGA实现的DDS电路则不一样,由于波形信息存储在RoM中,可以通过改变RoM中的存储内容达到实现不同波形的要求。
同样波形是和频率、相位有关系的,因此也可以通过修改ROH中的波形数据来实现比较灵活的频率和相位要求。
另外专用DDS芯片的功耗大,价格高,相比而言用FPGA实现的电路在这些方面同样具有很大的优势。
而且山于FPGA自身的特点,能够很容易在FPGA内部生成多个基本模块,从而开发出功能强大的芯片。
另外
FLEX10K器件还提供了可供选择的时钟锁定和时钟自举电路,这两种电路中均含有用来提高设计速度和减少资源占用的锁相环,可以支持高速设计。
通过MAX+PLUS I或者QUARTUS软件可以调用FPGA的内部模块或者VHDL语言设讣电路,使电路的设
讣、修改变得简单方便
2.1 DDS工作原理及原理框图
直接数字频率合成(DDS)技术是60年代末出现的第三代频率合成技术,以Nyquist 时域采样定理为基础,在时域中进行频率合成。
DDS具有相对带宽很宽,频率转换时间极短(可小于20ns),频率分辨率可以做到很高(典型值为0. 001Hz)等优点;另外,全数字化结构便于集成,输出相位连续,频率、相位、幅度都可以实现程控,通过更换波形数据可以轻易实现任意波形功能。
总的来说,新一代的直接数字频率合成器采用全数字的方式实现频率合成,与传统的频率合成技术相比,具有以下特点:(1)频率转换快。
直接数字频率合成是一个开环系统,无任何反馈环节,其频率转换时间主要山频率控制字状态改变所需的时间及各电路的延时时间所决定,转换时间很短。
(2)频率分辨率高、频点数多。
DDS输出频率的分辨率和频点数随机位累加器的位数的增长而呈指数增长。
分辨率高达uHzo (3)相位连续。
DDS在改变频率时只需改变频率控制字(即累加器累加步长),而不需改变原有的累加值,故改变频率时相位是连续的。
(4)相位噪声小。
DDS的相位噪声主要取决于参考源的相位噪声。
(5)控制容易、稳定可靠。
高集成度、高速和高可鼎是FPGA/CPLD最明显的特点,其时钟延迟可达纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。
在高可靠应用领域,如果设计得当,将不会存在类似于MCU的复位不可靠和PC可能跑飞等问题。
CPLD/FPGA的高可靠性还表现在,儿乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。
所以,釆用FPGA来实现DDS有明显的好处。
2. 2具体工作过程
图2-1 DDS结构
上图所示是一个基于的DDS电路的工作原理框图
DDS的工作原理是以数控振荡器的方式产生频率、相位可控制的正弦波。
电路一般包括基准时钟、频率累加器、相位累加器、幅度/相位转换电路、D/A转换器和低通滤波器(LPF)。
频率累加器对输入信号进行累加运算,产生频率控制数据X (frequency data 或相位步进量)。
相位累加器山'位全加器和\位累加寄存器级联而成,对代表频率的2进制码进行累加运算,是典型的反馈电路,产生累加结果Y。
幅度/相位转换电路实质上是一个波形寄存器,以供查表使用。
读出的数据送入D/A转换器和低通滤波器。
每来一个时钟脉冲Fclk, X位加法器将频率控制数据X与累加寄存器输出的累加相位数据相加,把相加后的结果Y送至累加寄存器的输入端。
累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据X相加;另一方面将这个值作为取样地址值送入幅度/相位转换电路,幅度/相位转换电路根据这个地址输出相应的波形数据。
最后经D/A 转换器和低通滤波器将波形数据转换成所需要的模拟波形。
相位累加器在基准时钟的作用下,进行线性相位累加,当相位累加器加满量时就会产生一次溢出,这样就完成了一个周期,这个周期也就是DDS信号的频率周期。
DDS输出信号的频率山下式给定:
(2-1)
假定基准时钟为fcik = 16Mhz ,累加器为24位,则再假定X=1000000Mhz,则f oul = (1000000/1 6777216) *16000000 « IMhz
可见,通过设定相位累加器位数、频率控制字X和基准时钟的值,就可以产生任意频率的输出。
DDS的频率分辨率定义为:
Fout二Fclk/Y (2-2)
山于基准时钟一般固定,因此相位累加器的位数就决定了频率分辨率。
如上面的例子,相位累加器为24位,那么频率分辨率就可以认为是24位。
位数越多,分频率越高。
3系统电路的设计及原理
3. 1系统原理
用FP GA实现多波形信号发生器基于直接数字频率合成技术。
图1以正弦输出为例,概括了直接数字频率合成器的结构和原理。
图1中频率控制字和相位控制字分别控制DDS输出波形的频率和相位。
DDS系统的核心是N bit相位累加器。
相位累加器以频率控制字为步长进行地址抽取,以参考时钟周期为采样率,产生待合成信号的数字化相位取样值。
随后通过查表变换,数字相位取样值被转化为信号波形的数字幅度序列,再山数/模变换器(DAC)将代表波形幅度的数字序列转化为模拟电丿玉,最后经山低通滤波器将DAC输出的阶梯状波形平滑为所需的连续波形。
若频率控制字设为K,相位累加器为N位,参考时钟频率fc,则输出频率为
最小频率分辨率为
(3-2) DDS的输出频率下限对应于频率控制字K二0的情形,即
fout=0
根据奈奎斯特抽样定律,DDS的输出上限频率为时钟频率的1/2,即
九皿0£/2:(3-3)但山于实际输出低通滤波器的非理想特性,工程上可实现的频率上限为
(3—4)即若参考频率为fc, DDS的输出频率范围是0~2/5fc。
由于DDS的模块化结构,其输出波形111波形查找表中的数据来决定,因此,只需改变查找表中的数据,即可以方便地利用DDS产生出正弦波之外的其他波形,如余弦波、方波、三角波、锯齿波甚至调频、调相波以及带限的噪声信号。
系统总框图如(图3-1)所示。
图3-1系统整体框图
3. 2各模块具体实现原理分析和说明
3.2.1外围电路
FPGA的外围电路如(图3-2)所示
图3-2 FPGA的外国电路
单片机是用来控制整个电路的,他负责输入FPGA的频率、相位信息,对键盘和显示模块的控制。
键盘用来输入需要的频率和相位信息,经单片机再输入FPGA。
显示模块用来显示输入的频率、相位信息以及输出频率等状态。
DAC用来将FPGA 输出的数字信息转换成模拟信息。
LPF滤除不必要的频率,使波形更加平滑。
3.2.2频率控制模块
这一模块是lllFPGA实现的,FPGA完成相位累加器的功能,而频率控制字X是由外部拨码开关给出的。
相位累加器(见图3-3)是实现DDS的核心,它由一个N位字长的二进制加法器和一个固定时钟脉冲取样的M立相位寄存器组成。
相位寄存器的输出与加法器的一个输入端在
I fc
图3-3相位累加器结构
内部相连,加法器的另一个输入端是外部输入的频率控制字X。
这样,在每个时钟到达时,相位寄存器采样上个时钟周期内相位寄存器的值与频率控制字X之和, 并作为相位累加器在这一时钟周期的输出。
频率控制字X决定了相应的相位增量, 相位累加器则不断地对该相位增量进行线性累加,当相位累加器积满两时就会产生一次溢出,
从而完成一个周期性的动作,这个动作周期即是DDS合成信号的一个频率周期。
于是,输出信号波形的频率表示式为
f o=(f c xK)/2N(3-5)由该式可知,输出信号频率主要取决于频率控制字X,当X增大时,九可以不断的增高,山抽样定理,最高输出频率不得大于人/2,而根据实验所得,实际工作频率小于£./3时较为合适。
由于受到FPGA芯片资源限制,所能达到的频率不是很高,范围也不是很广。
根据设计訂标,决定取人二51200Hz,选取4.096MHz有源晶振,经过80分频,得到基准频率为51200Hz。
N为9位。
这样,频率分辨率为
/mi n=Z-/2jV =51200 /29 = 100 Hz
可以达到的最高最佳频率为51200/3~17KHz。
另外Altera还在它们公司的VHDL设计平台MAX +PLU S上提供了LPM_ADD_SUB核和LPM_DFF核,利用MAX+PLUS综合可以自动编译包含LPM_ADD_SUB和LPM_DFF元件的文件,本设计利
用LPM_ADD_SUB核以及LPM.DFF核在FPGA上实现相位累加器。
3.2.3 ROM查找表设计
FPGA的结构是由基于半定制门陈列的设计思想而得到的。
从本质上讲,
FPGA是一种比半定制还方便的ASIC设计技术。
FPGA的结构主要分为三部分:可编程逻辑块、可编程厂0模块、可编程内部连线。
可编程逻辑块的构造主要有两种类型:即基于查找表
的结构类型和基于乘积项的结构类型。
查找表型FPGA的可编程逻辑单元是III功能为查找表的SRAM构成逻辑函数发生器,实现与其它功能块的可编程连接。
在此,选用FLEX10K系列FPGA作为口标芯片,FLEX10K系列是Altera公司于1995年推出的产品,它的集成度达到了10万门,而且在FPGA中首次集成了嵌入式存储器块的芯片。
它是查找表型FPGA ,由输入-输出控制模块(I0C )、嵌入式阵列块(EAB )、逻辑阵列块(LAB )和快速通道(FASTTRACK)构成。
其中EAB是一种输入输出端带有寄存器的非常灵活的RAM ,它既可以用来作为存储器使用,也可以用来实现逻辑功能。
每一个EAB有容量为2048位的RAM ,可配置为存储器或逻辑函数,FLEX10K系列中不同型号的芯片其中包含的EAB 的数訂不同,FLEX10K10有 3 个EABo另外Altera还在它们公司的VHDL设计平台MAX +PLUS上提供了LPMROM核, 利用MAX+PLUS综合可以自动编译包含LPM ROM元件的文件,在FLEX10K10的EAB上产生ROM功能。
本设讣利用LPM ROM核预置正弦查找表在FPGA上。
LPM 2R0M核简介:输入端口:address[ ROM的地址信号;输出端口:q[]〜ROM 的输出数据。
具体参数:LPMJVIDTH:输出数据的宽度(1〜64任选);LPM.WIDTHAD:输入
地址的宽度(1〜12任选);LPM.FILE:存储器初始化文件名(.m辻or • hex)o本设计中各参数设置如下:
LPM_WIDTH: =>8;
LPM_WIDTHAD=>9:
LPM_OUTDATA=>,,UNREGISTERED,,; LPM_ADDRESS_CONTROL=>"UNREGISTERED M;
其中LPM_FILE的ndf”中存放正弦的值,可由文本形式生成,也可由高级语言如C 语言生成。
ROM查找表在整个设计中是一个比较重要的部分。
为了保证波形的平滑,设计时可将一个周期分为512个点。
但是,点数太多时,用文本方式输入可能有很多困难。
因此,应当用C语言描述正弦方程式,最后再将其转化为所需的mif文件。
下面是用TC来在512. mif文件里产生512个点的正弦波数据的源程序:
#include<stdio.h>
#include"math.h"
int main()
{ int s;
int i;
FILE *fp;
fp二fopen("512.mif“,”r+”);
fprintf(fp," ― MAX+plus II - generated Memory Initialization File\ii "); fprintf(fp,” - By 00022809\n\n\n\n\n H);
fprintf(fp,”WIDTH=8;\n\n”);
fprintf(fp,n DEPTH=512;\n\n”);
fprintf(fp,”ADDRESS_RADIX二HEX;\n\n”); fprintf(fp,"DATA_RADIX=HEX;\n\n");
fprintf(fp,"CONTENT BEGINS');
for(i=0;i<512;i++)
{s=abs(sin(atan( 1.0)*8/512*i)*255);
fprintf(fp,"%x\t:\t%x;\n",i,s);
}
fprintf(fp/'END;\n");
fclose(fp);
这样就可以得到一个周期512个点的波形数据。
ROM存储器是设计人员在许多设计电路中不可缺少的关键部件,特别是在一些特殊的运算场合,设计人员通常利用ROM改造出各种各样的查找表,以简化电路,提高
电路的处理速度和稳定性。
在FPGA器件中实现存储器功能,需要占用芯片的存储单元,而这种资源是十分有限的,如何在FPGA器件的存储单元和逻辑单元的使用效率上取得最佳折衷是设计人员必须细心考虑的问题。
一个好的设计应该是速度、可靠性和资源利用率三者的最佳结合。
对于锯齿波、三角波、方波等相位/幅度对应关系比较简单的信号,则可以通过直接讣算得到幅度数据,无需占用有限的ROM资源。
这一部分相位/幅度转换采用Verilog HDL语言完成。
3.2.4数模转换模块
数模转换。
本来欲打算采用转换速度为85ns,带宽为10MHz的8位单调高速乘法器AD DAC08或者是DACOSOOo但山于都购买不到,而改为使用转换速度为lus 带宽为1MHz 的DAC0832,这样最高频率就不是很高。
DAC0832为电流输出型D/A转换器,需要外接运算放大器进行电流电压变换才能得到模拟电圧输出。
输出方式为单极性输出方式的时候,输出级接一低电压温漂运放op07作为电压电流转换器,在运算放大器的输出端就可以得到单极性模拟电压:
V OUT=~I OUT R fb(3-6)3.2.5滤波输出电路模块
D/A输出后,通过滤波电路,使信号平滑。
滤波器在通带内的平坦程度对我们而言,比其衰减更为重要,而且,巴特沃斯滤波器的元件值也较合乎实际情况, 不像绝大多数其他类型滤波器对元件值要求那么苛刻。
在截I匕频率附近,频率响应钝化可能使这些滤波器在要求锐截止的地方不合要求。
二阶巴特沃斯有源低通滤波器设计(图3-4):
正弦波的输出频率小于lOKHz,为保证lOKHz频带内输出幅度平坦,乂要尽可能抑制谐波和高频噪声,综合考虑取
Rl = 1 KQ, R2 二 1 KQ, C1 = 100 pF, C 二100pF
vcc
图3-4有源低通滤波器设汁
3.3设计所用关键元器件的介绍
3.3.1 FLEX10K 系列FPGA
(1)概述。
FLEX10K是工业界笫一个嵌入式的可编程逻辑器件,采用可重构的CMOS SRAM 工艺,把连续的快速通道互连与独特的嵌入式阵列结构相结合,同时也结合了众多可编程器件的优点来完成普通门阵列的宏功能。
由于其具有高密度、低成本、低功率等特点,所以脱颖而出成为当今Altera PLD中应用最好的器件系列。
其集成度已达到25万门。
它能让设计人员轻松地开发出集存储器、数字信号处理器及特殊逻辑包括32位多总线系统等强大功能于一身的芯片。
到LI前为止,已经推出了FLEX10K、FLEX10KA、FLEX10KV、FLEX1OKE等分支系列。
FLEX1OK结构类似于嵌入式门阵列,是门阵列市场中成长最快的器件。
像标准门阵列一样,嵌入式门阵列采用一般的门海(sea of gates)结构实现普通逻辑,因此,在实现大的特殊逻辑时会有潜在死区。
与标准门阵列相比,嵌入式门阵列通过在硅片中嵌入逻辑块的方法来减少死区,提高速度。
然而,典型的嵌入式宏功能模块通常是不能改变的,这就限制了设计人员的选择。
相反,FLEX10K器件是可编程的,在调试时它允许设计人员全面控制嵌入式宏功能模块和一般的逻辑,可以方便地反复修改设计。
每个FLEX10K器件包含一个嵌入式阵列和一个逻辑阵列。
嵌入式阵列用来实现
各种存储器及复杂的逻辑功能,如数字信号处理、微控制器、数据传输等。
逻辑阵列用来实现普通逻辑功能,如汁数器、加法器、状态机、多路选择器等。
嵌入式阵列和逻辑阵列结合而成的嵌入式门阵列的高性能和高密度特性,使得设讣人员可在单个器件中实现一个完整的系统。
FLEX10K器件的配置通常是在系统上电时,通过存储于一个串行PROM中的配置数据或者山系统控制器提供的配置数据来完成。
Altera提供EPCI、EPC2、EPC16 和
EPC1441等配置用的PROM器件,配置数据也能从系统RAM和BitBlaster$行下载电缆或ByteBlasteHW并行下载电缆获得。
对于配置过的器件,可以通过重新复位器件、加载新数据的方法实现在线可配置(ICR , In-C让cuit Reconfigurab订ity)。
山于重新配置要求少
于320ms,因此可在系统工作时实时改变配置。
FLEX10K器件山MAX+PLUS II开发软件支持。
(2) FLEX10K器件系列的特点。
®FLEX10K是工业界第一种嵌入式的PLD器件系列,具有实现宏功能的嵌入式阵列(例如实现高效存储器和特殊的逻辑功能)和实现普通功能的逻辑阵列,可提供可编程单芯片系统(SOPC)集成。
②高密度:1万~25万个可用门。
高达40960位内部RAM (每个EAB有2048位), 所有这些都可在不减少逻辑能力的情况下使用。
③系统级特点:支持多电压接口;在FLEX10KA器件中允许输入的引脚电压为5.
0V,在FLEX10KB器件中允许输入的引脚电压为3. 3V和5. 0V;低功耗(维持状态小于0. 5mA);遵守PCI总线规定;内带JTAG边界扫描测试电路;边界扫描测试电路;器件采用先进的工艺制造并可在2.5V、3.3V、5. 0V电源电压下工作。
所有器件都100%经过功能测试。
④灵活的内部连接:快速、可预测连线延时的快速通道(Fast Track)连续式布线结构;
实现快速加法器、计数器和比较器的专用进位链;实现高速、多输入逻辑函数的专用级联链:实现内部三态总线的三态模拟:多达六个全局时钟信号和四个全局清除信号。
⑤强大的I/O引脚功能:每个引脚都有一个独立的三态输出使能控制及漏极开路配置选项(Open-drain option);可编程输出电压的摆率控制,可有减少开关噪声。
FLEX10KA、FLEX10KE、FLEX10KS器件支持热拔插。
⑥多种封装方式:用户可任意选择84~600引脚的各种封装。
封装形式有PLCC、TQFP、PQFP、RQFP、PGA、BGA等,同一种封装中的各种FLEX10K系列器件的引脚相兼容。
FLEX10K还包括了一个优化界面,允许微处理器以串行方式或并行方式、同步方式或异步方式对FLEX10K器件进行配置。
FLEX10K的这些特点使得FLEX10K器件成为替代传统门阵列专用的理想选择,其使用非常广泛;乂由于FLEX10K系列的芯片都带有JTAG口(Joint Test Action Group—联合测试行动组),能够使用JTAG PROGRAM指令进行配置;为了尽量简化电路,所以本设汁釆用FLEX10K系列产品中的FLEX10K器件,该型号芯片采用PLCC封装,有84个管脚,其中I/O引脚个数为59。
FLEX10K的主要引脚和引脚名称的对应关系如(表3-1)所示。
注:
(1)没有列出所有的用户I/O引脚。
(2)该引脚为专用引脚,不能用作用户I/O引脚。
(3)该引脚如果没有用于器件配置功能,则它可用作用户I/O引脚。
(4)该引脚在器件配置后可用作用户I/O引脚。
(5)该引脚在用户模式中是三态。
(6)用户I/O引脚数包括专用输入引脚、专用时钟引脚和所有I/O引脚。
(3) FPGA结构与原理
①查找表(Look-Up-Table)的原理与结构
米用这种结构的PLD芯片我们也可以称之为FPGA:如altera的ACEX, APEX系列,xilinx 的Spartan, Virtex 系列等。
查找表(Look-Up-Table)简称为LUT, LUT本质上就是一个RAMo U前FPGA 中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。
当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动讣算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
(表3-2)是一个4输入与门的例子,
表3-2
实际逻辑电路LUT的实现方式
a 1 / ------------------
h [ j
-------------- 1 > out
地址线
a
h l&xl RAM
(LUT)
输出
c 1 > -----------------
d 1 __ 、-------------------- c ---------------------
d ---------------------
a, b, c, d 输入逻辑输出地址RAM中存储的内容0000000000
0001000010
• • • •0• • •0
mi1ini1
②基于查找表(LUT)的FPGA的结构
我们看一看xilinx Spartan-II的内部结构,如下图:
GOUT
Y8
疸Spar tail-II心片內亡降H拘Q CINCLXCE
x4i^S
Slices结枸宀
.CLOT)
XO
S o o --------------------- XO
图3-5 xilinx Spartan-II 的内部结构
Spartan-II主要包括CLBs, I/O块,RAM块和可编程连线(未表示出)。
在spartan-II 中,一个CLB包括2个Slices,每个slices包括两个LUT,两个触发器和相关逻辑。
Slices可以看成是Spartanil实现逻辑的最基本结构(xilinx其他系列,如SpartanXL, Virtex的结构与此稍有不同,具体请参阅数据手册)altera的FLEX/ACEX等芯片的结构如下图:
图3-6 altera FLEX/ACEX芯片的内部结构
图3-7逻辑单元(LE)内部结构
FLEX/ACEX的结构主要包括LAB, I/O块,RAM块(未表示岀)和可编程行/ 列连线。
在FLEX/ACEX中,一个LAB包括8个逻辑单元(LE),每个LE包括一个LUT, 一个触发器
和相关的相关逻辑。
LE是FLEX/ACEX芯片实现逻辑的最基本结构(altera其他系列,如APEX的结构与此基本相同,具体请参阅数据手册)
③查找表结构的FPGA逻辑实现原理
我们还是以这个电路的为例:
OR2
V
图3-8
A, B, C, D 111 FPGA芯片的管脚输入后进入可编程连线,然后作为地址线连到到LUT, LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,这样组合逻辑就实现了。
该电路中D触发器是直接利用LUT后面D触发器来实现。
时钟信号CLK山I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。
触发器的输出与I/O脚相连,把结果输出到芯片管脚。
这样PLD就完成了图3所示电路的功能。
(以上这些步骤都是山软件自动完成的,不需要人为干预)这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。
对于一个LUT无法完成的的电路,就需要通过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻辑。
山于LUT主要适合SRAM工艺生产,所以口前大部分FPGA都是基于SRAM工艺的,而SRAMX艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,山于配置时间很短, 不会影响系统正常工作。
也有少数FPGA釆用反熔丝或Flash T艺,对这种FPGA, 就不需要外加专用的配置芯片。
④ 其他类型的FPGA和PLD
随着技术的发展,在2004年以后,一些厂家推出了一些新的PLD和FPGA, 这些产品模糊了PLD和FPGA的区别。
例如Altera最新的MAXII系列PLD,这是一种基于FPGA (LUT)结构,集成配置芯片的PLD,在本质上它就是一种在内部集成了配置芯片的FPGA,但山于配置时间极短,上电就可以工作,所以对用户来说,感觉不到配置过程,可以传统的PLD 一样使用,加上容量和传统PLD类似, 所以altera把它归作PLD。
还有像Lattice 的XP系列FPGA,也是使用了同样的原理,将外部配置芯片集成到内部,在使用方法上和PLD类似,但是因为容量大,性能和传统FPGA相同,也是LUT架构,所以Lattice仍把它归为FPGA。