毕业论文通用型FPGA开发板设计.docx
《毕业论文通用型FPGA开发板设计.docx》由会员分享,可在线阅读,更多相关《毕业论文通用型FPGA开发板设计.docx(45页珍藏版)》请在冰豆网上搜索。
毕业论文通用型FPGA开发板设计
摘要
近年来,FPGA应用技术发展迅速,由此产生了对FPGA开发应用人才的迫切需求。
因此,掌握FPGA的发展现状,了解FPGA的功能应用尤为重要。
运用protel开发软件,通过对通用型FPGA开发板的原理图设计与PCB印制电路板的制作,深入了解FPGA的接口功能与拓展电路的功能原理及应用,对出现的问题进行分析与解决,从而对FPGA芯片功能的认识以及对FPGA拓展电路的认识,进而学会FPGA产品的开发与应用。
ABSTRACT
Inrecentyears,thedevelopmentofFPGAapplicationtechnologyisveryquickly,asaresult,thereisurgentneedofqualifiedpersonnelatFPGAdevelopmentandapplication.Therefore,toknowthecurrentsituationofFPGAdevelopmentandunderstandthefunctionofFPGAapplicationisparticularlyimportant.UsetheProtelsoftwaretodesigntheschematicofthegeneral-purposeFPGAdevelopmentboardandprintedcircuitboard,depthunderstandingoftheFPGAinterfacefunctionsandtheapplicationofexpandcircuit,analysisandsolutionstheproblems,thusknowthefunctionofFPGAchipandtheexpandcircuit,andthenunderstandinghowtodevelopandapplyoftheFPGAproduct.
第1章引言
FPGA在复杂逻辑电路以及数字信号处理领域扮演着越来越重要的角色。
目前,FPGA应用技术的发展十分迅速,如果要在FPGA应用领域有所作为,则必须具备快速掌握新知识的能力。
掌握FPGA应用最重要的是实践的积累。
我们具备了一定的基础知识,就应该马上投入实践,否则,很多理论知识都会难以理解。
有很多电子开发的人,他们的理论知识比不上别人,但是,他们却能开发出很不错的电子产品。
通过实践去掌握新技术的速度是很惊人的。
本文通过第FPGA的认识,对FPGA管脚功能的了解分析,再到FPGA开发板原理图的设计与研究,以及对开发板的PCB印制电路板的设计与研究,掌握FPGA的应用原理,熟悉FPGA的开发应用过程,在实践中检验理论知识,又通过理论知识去改善和发展实践,以便能在FPGA应用领域有更大的创新。
第2章FPGA及开发板
2.1FPGA
FPGA是英文Field-ProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA是一种可以通过编程,改变系统连线,达到系统重构的器件,该器件可以现场编程,就是说当该器件安装到电路板上后,可以对它的功能进行重新设置,这样就可以非常方便的进行数字系统的设计与制作。
由于可编程逻辑器件的价格不断降低,门密度不断增大,所以该器件取代中小规模数字集成电路只是时间问题。
可编程逻辑器件是数字系统设计中的首选器件,它增加系统可靠性、减少系统体积和功耗、缩短设计周期并降低系统成本,由于它的工作速度快,所以在数字信号处理、自动控制、计算机接口板等方面应用非常广泛。
2.2FPGA工作原理
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
FPGA的基本特点主要有:
(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
(3)FPGA内部有丰富的触发器和I/O引脚。
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
2.3FPGA的配置模式
FPGA有多种配置模式:
并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。
如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。
2.4FPGA开发板
FPGA开发板就是把FPGA芯片以及基于FPGA芯片而设计的各种外围配置电路集成在一块板子上以满足一定功能的电路板。
根据要求的不同可以开发出不同功能,不同用途的板子。
我们可以设计作于学习用途的开发板,学生可以编程对FPGA芯片进行电路配置,结合外围电路完成一定的功能,以加强对电路系统知识的认识。
第3章EP1C20F324C8芯片介绍
这个通用型FPGA开发板我们用的芯片是Altera公司生产的属于低功耗cyclone系列的芯片,型号是EP1C20F324C8。
3.1EP1C20F324C8芯片简介
EP1C20F324C8是属于Altera公司的Cyclone®系列FPGA芯片,Cyclone®系列FPGA从根本上针对低成本进行设计,它具有低成本和低功耗的特点。
这些低成本器件具有专业应用特性,例如嵌入式存储器、外部存储器接口和时钟管理电路等。
Cyclone系列FPGA是成本敏感大批量应用的最佳方案。
3.2芯片的技术资料
EP1C20F324C8芯片的特征如下:
(1)2,910to20,060LEs
(2)Upto294,912RAMbits(36,864bytes)
(3)Supportsconfigurationthroughlow-costserialconfigurationdevice
(4)SupportforLVTTL,LVCMOS,SSTL-2,andSSTL-3I/Ostandards
(5)Supportfor66-MHz,32-bitPCIstandard
(6)Lowspeed(311Mbps)LVDSI/Osupport
(7)UptotwoPLLsperdeviceprovideclockmultiplicationandphaseshifting
(8)Uptoeightglobalclocklineswithsixclockresourcesavailableperlogicarrayblock(LAB)row
(9)Supportforexternalmemory,includingDDRSDRAM(133MHz),FCRAM,andsingledatarate(SDR)SDRAM
(10)Supportformultipleintellectualproperty(IP)cores,includingAltera(MegaCore)functionsandAlteraMegafunctionsPartnersProgram(AMPPSM)megafunctions
该开发板用的是具有324个引脚的EP1C20F324C8芯片,它采用BGA封装形式,长19mm,宽19mm,高1mm,面积361平方毫米。
I/O口电平是3.3伏,内部逻辑电平是1.5伏,拥有两个锁相环,最大用户I/O口是249个。
图3-1是EP1C20F324C8芯片的平面图:
图3-1EP1C20F324C8芯片的平面图
3.3芯片的端口及功能分析
表3-1列出芯片的管脚名称及功能描述。
表3-1EP1C20F324C8芯片端口详情
管脚名称
管脚类型(第一,第二,第三功能)
管脚描写
VCCIO[1..4]
电源端
这是第1到第4芯片边的I/O口电压供应端脚,能向每个片边提供不同的电压标准,VCCIO向所有标准I/O口的输出缓存器提供电源,也向;LVTTL,LVCMOS等输入缓存器提供1.5伏,1.8伏,2.5伏的电压,和标准的PCII/O提供3.3伏的电压。
VCCINT
电源端
这是内部逻辑电压供应管脚,它也向LVDS,SSTL2,SSTL3标准I/O口的输入缓存器提供电压。
VREF[1..2]B[1..4]
I/O口,输入端
向4个芯片边提供输入基准电压,当有一片边I/O口需要基准电压时,它就被用作那个片边的基准电压端,否则它就可用作I/O口而闲置着。
VCCA_PLL[1..2]
电源端
PLLs[1..2]的模拟电压,即使不使用,设计者也要把它接到1.5伏电压。
GNDA_PLL[1..2]
接地端
PLLs[1..2]的模拟地端,设计者能够把它接到板上的地端。
GNDG_PLL[1..2]
接地端
PLLs[1..2]的接地保护端,设计者能够把它接到板上的地端。
CONF_DONE
双向性(开—关)
它是一个专用配置端,不能作为用户的I/O口使用。
·
nSTATUS
双向性(开—关)
它是一个专用配置端,不能作为用户的I/O口使用。
nCONFIG
输入端
配置控制引脚:
由0-1的跳变开始配置,由1-0跳变则复位器件;当设定本管脚为0时,所有I/O为三态。
DCLK
PS模式为输入,AS模式为输出。
在被动模式下,他作为外部时钟源输入端,在主动模式下,它是内部时钟输出端,这是一个专用配置端。
DATA0
输入端
专用结构数据输入端。
nCE
输入端
低电平芯片启动动端,芯片启动输入端,用于检测被激活的器件,当它为低电平时相应的器件被激活,当它为高电平时,相应的器件被禁用。
nCEO
输出端
向已经完成配置的器件输出低电平,在多器件配置时,它与nCE配合使用。
ASDO
I/O口,输出端
主动串行数据输出端,他被用在主动串行配置模式,由芯片控制配置和地址以及控制外面ASDO信息,在被动模式下,它可作为用户I/O口使用。
nCSO
I/O口,输出端
激活和禁止一序列配置器件的片选输出端,他被用在主动串行配置模式,由芯片控制配置和激活序列配置器件通过驱动nCSO低电压,在被动配置时,它可作为用户I/O口使用。
CRC_ERROR
I/O口,输出端
高电平有效信号时,表明检错电路检测到SRAM配置出现错误,当CRC检错电路被激活时该端脚是可选的和习惯用的。
INIT_DONE
I/O口,输出端
这是一个双用途管脚,没被启用为INIT_DONE时,它可以用作用户I/O口使用,
CLKUSR
I/O口,输入端
可选的用户时钟输入端,使一个或多个器件同时初始化,经过配置后,它也可用作用户I/O口使用。
DEV_CLRn
I/O口,输入端
这是一个复用端脚,他能够改写所有已知的寄存器,当它由低电平驱动时,所有寄存器都被清零。
由高电平驱动时,所有寄存器都处于程序控制状态。
DEV_OE
I/O口,输入端
这是一个复用端脚,能够改写器件的三态模式,当这个管脚由低电平驱动时,所有I/O都处于三态,高电平驱动时,所有I/O在正常的程序控制状态。
MSEL[1..0]
输入端
设置器件的状态模式,是一个专用的模式状态控制端。
MSEL1MSEL0配置模式
00串行配置或使用配置器件模式10并行同步模式
11并行异步模式
TMS
模式选择输入端
这是一个专用的JTAG输入口。
TDI
测试数据输入端
这是一个专用的JTAG输入口。
TCK
时钟输入端
这是一个专用的JTAG输入口。
TDO
测试数据输出端
这是一个专用的JTAG输入口。
CLK0
输入端,LVDS输入端
专用的全局时钟输入端,它的复用功能是LVDSCLK1p,用于PLL1的微分输入端。
CLK1
输入端,LVDS输入端
专用的全局时钟输入端,它的复用功能是LVDSCLK1n,用于PLL1的微分输入端。
CLK2
输入端,LVDS输入端
专用的全局时钟输入端,它的复用功能是LVDSCLK1p,用于PLL2的微分输入端。
CLK3
输入端,LVDS输入端
专用的全局时钟输入端,它的复用功能是LVDSCLK1n,用于PLL2的微分输入端。
DPCLK[7..0]
I/O口
复用时钟口,它能够和全局时钟网络连接,他可被用于高电平输出控制信号,例如时钟,clears,IRDY,TRDY,或者DQS信号,它们都可以用在用户I/O口使用。
PLL1_OUTp
I/O口,输入端
来自PLL1的外部时钟输出,它可用作微分或单端I/O口,未用PLL1外部时钟输出时,它可用作用户I/O口使用。
PLL1_OUTn
I/O口,输入端
来自PLL1的外部时钟输出负端接脚,当时钟是单端输出时,它可用作用户I/O口使用。
PLL2_OUTp
I/O口,输入端
来自PLL2的外部时钟输出,它可用作微分或单端I/O口,未用PLL2外部时钟输出时,它可用作用户I/O口使用。
PLL2_OUTn
I/O口,输入端
来自PLL2的外部时钟输出负端接脚,当时钟是单端输出时,它可用作用户I/O口使用。
LVDS[0..128]p
I/O,LVDS收发端
0到128的复用LVDSI/O通道,它可用作收发与LVDS兼容的信号,带p后缀的是差分信道的正端信号,如果不用于LVDS的接口连接,它也可用作用作用户I/O使用。
LVDS[0..128]n
I/O,LVDS收发端
0到128的复用LVDSI/O通道,它可用作收发与LVDS兼容的信号,带n后缀的是差分信道的负端信号,如果不用于LVDS的接口连接,它也可用作用作用户I/O使用。
LVDSCLK1p
输入端,LVDS输入端
向PLL1的复用LVDS时钟输入端,如果向PLL1的差分输入没必要,它可以用作时钟CLK0的输入端。
LVDSCLK1n
输入端,LVDS输入端
向PLL1的复用LVDS时钟输入端,如果向PLL1的差分输入没必要,它可以用作时钟CLK1的输入端。
LVDSCLK2p
输入端,LVDS输入端
向PLL2的复用LVDS时钟输入端,如果向PLL2的差分输入没必要,它可以用作时钟CLK2的输入端。
LVDSCLK2n
输入端,LVDS输入端
向PLL2的复用LVDS时钟输入端,如果向PLL2的差分输入没必要,它可以用作时钟CLK3的输入端。
DQS[0..1][L,R,T,B]
I/O口
外部存储器的可选的数据选通接口,它也可以作为DPCLK接口,所有,DQS信号就可以接到全局时钟网络,一个可编程的延时信道把DQS信号改变90°或者72°。
DQ[0..7][L,R,T,B]
I/O口
外部存储器的可选数据信号接口。
DM[0..1][L,R,T,B]
I/O口
外部存储器的可选数据信号屏蔽接口。
第4章FPGA开发板原理图设计
4.1FPGA开发板设计目标
1.具有4位数码管功能(可做动态扫描及静态显示实验)。
2.具有8位LED发光二极管功能(可做流水灯实验)。
3.具有蜂鸣器功能(可做开发板发声实验)。
4.具有4*4矩阵键盘功能(可做键盘检测实验)。
5.具有四个独立按键开关功能(可做按键开关相关的实验)。
6.具有复位功能(可用于复位芯片)。
7.具有电源供电电路,电平转换适应和稳压电路,电源滤波电路(为系统供应电源)。
8.具有时钟电路。
9用EPCS4作为片外静态存储器(用于存放FPGA芯片的工作配置程序)。
10.MAX232芯片RS232通讯接口(可以做为与计算机通迅的接口同时也可做为开发板下载程序的接口)。
11.具有JTAG配置接口。
12.具有ATERA_AS芯片(用于配置FPGA芯片的工作模式)。
4.2FPGA开发板结构框图
图4-1是开发板的结构框图
FPGA芯片
四位数码管
8个LED发光二极管
4*4键盘矩阵
四个独立开关
蜂鸣器
有源晶振时钟
复位
FPGA模式配置芯片
MAX232芯片
RS232接口
EPCS4外部存储器
JTAG接口
电源供应
为所有模块供应电源
图4-1FPGA开发板结构框图
4.3子模块原理图设计
画电路原理图是每个电子技术人才必须掌握的一门技术,画电路原理图本身就是设计电路,设计的结果是一张原理图,元件列表和原理图网络表。
原理图网络表是画电路板图的基础。
若是从最终结果是得到电路板图的角度来看原理图,则画原理图的目的就是画电路板而不是原理图本身。
4.3.1电源电路及原理图设计
开发板的工作需要有电源供应,我们由芯片手册得知,该FPGA的I/O口基准电压是3.3伏,内部逻辑使用电压是1.5伏。
因此,我们需要对输入电压进行电平转换,把输入5伏或者9伏的电压转换为3.3伏和1.5伏的电压,并且具有稳压功能。
这里我们选用的稳压芯片是深圳微雪电子有限公司生产的稳压芯片AMS1085,其中,我们选用固定输出3.3伏电压的芯片AMS1085-3.3作为3.3伏电压供应来源,选用可调输出电压的芯片AMS1085-ADJ作为1.5伏电压供应来源。
AMS1085CM-3.3的型号标识和参数如表4-1所示:
表4-1AMS1085CM-3.3的型号标识和参数
AMS1085CM-3.3型号标识
AMS
AMS品牌标识
1085C
基本型号
M
封装类型,T0-263
3.3
输出电压3.3V
AMS1085CM-3.3参数特性
输出电流(A)
3
输出电压(V)
3.3
压差(V)
1.3
温度等级(℃)
0~125
AMS1085CM-3.3的封装为:
类型:
TO-263
引脚:
3
体宽:
8.382-9.398mm
长度:
9.906-10.541mm
厚度:
4.191-4.572mm
引脚间距:
2.286-2.794mm(3引脚)
AMS1085CM-3.3有三个引脚,分别是Vin,ADJ,Vout。
其中,Vin是第三引脚,接5V~12V的输入电压,Vout是第二引脚,输出3.3V电压,ADJ为接地端。
我们应该在输入和输出端加上接地电容进行滤波,其电路原理图如图4-2所示。
图4-23.3V稳压块电路原理图
C49,C55,C53和C57是滤波电容,它们使得输入和输出电压的波纹更平稳,波动更小,这样就得到更加稳定的电压值。
AMS1085CM-ADJ的型号标识和参数如表4-2所示:
表4-2AMS1085CM-ADJ的型号标识和参数
AMS1085CM-ADJ型号标识
AMS
AMS品牌标识
1085C
基本型号
M
封装类型,T0-263
ADJ
输出电压可调节版
AMS1085CM-ADJ参数特性
输出电流(A)
3
输出电压(V)
VREF(1+R2/R1)+IADJR2
压差(V)
1.3
温度等级(℃)
0~125
AMS1085CM-ADJ的封装为:
类型:
TO-263
引脚:
3
体宽:
8.382-9.398mm
长度:
9.906-10.541mm
厚度:
4.191-4.572mm
引脚间距:
2.286-2.794mm(3引脚)
AMS1085CM-ADJ有三个引脚,分别是Vin,ADJ,Vout。
其中,Vin是第三引脚,接3V~12V的输入电压,Vout是第二引脚,输出电压根据电阻R2和R1的比值不同而输出不同的电压值,其输出电压公式为Vout=Vref(1+R2/R1)+IadjR2,ADJ为接地端。
我们应该在输入和输出端加上接地电容进行滤波,其电路原理图如图4-3所示
图4-31.5V稳压块电路原理图
其中,R2电阻是图中的R38电阻,R1电阻是图中的R37电阻,
以上电路是属于电源电路,电源的供应关系到整个系统的正常运行,我们每时每刻都应该知道电源是否在工作,如果系统出现问题,也方便检测电路,因此,我们应该在3.3v电源输出处接上led发光二极管,上电后,发光二极管点亮,表示电源正常工作,直到关闭电源时,led发光二极管熄灭,led发光二级管被称为电源指示灯,我们通过观看电源指示灯的亮与灭,就可以很直观的看到电源的工作状态。
为了得到更小的电压波纹,更稳定的电压值,我们最好在1.5v和3.3v输出电压处再接上多个滤波电容,其电路原理图图4-4所示。
图4-41.5V和3.5V滤波电路原理图
EP1C20F324C8芯片有两个锁相环PLL1和PLL2,它们的电压输入是1.5v。
锁相环需要得到更加稳定的电压和电流,因此,我们需要对输入电流1.5v电压进行净化后在输给锁相环的电压输入口VCC_PLL1和VCC_PLL2。
其电路原理图图4-5所示。
图4-51.5V稳流滤波电路原理图
4.3.2EP1C20F324C8芯片电源接口
1、VCCIO电源口
芯片的四个边上分别有五个VCCIO口,它们接3.3v电压,分别向芯片的四个边的I/O口提供电压。
2、VCCINT电源口
EP1C20F324C8芯片有20个VCCINT电源接口,分布在芯片的四个边上,它们是芯片的内部逻辑电压供应接口。
它们接1.5v电压。
3、VREF电源口
芯片的每一个边上都有四个VREF电压接口,它们向芯片输入基准电压,如果芯片I/O口不需要输入基准电压时,它们还可以被用作I/O口使用。
4、VCCA_PLL电源口
这是锁相环的电压供应接口,即使不使用,设计者也要把它接到1.5v电压端。
5、GND接地端和GNDA_PLL接地端以及GNDG_PLL接地端