您好,欢迎光临本网站![请登录][注册会员]  
文件名称: FPGA自学笔记——设计与验证VIP版.pdf
  所属分类: 硬件开发
  开发工具:
  文件大小: 16mb
  下载次数: 0
  上传时间: 2019-09-03
  提 供 者: qq_30******
 详细说明:开始有计划写这本书的时候, Altera 还叫 Altera, 还没有加入 Intel 的大家庭, Xilinx 的 ZYNQ 也才刚刚开始有人探索, Altera 大学计划第一次将亚洲创新大赛由传统的 SOPC 大赛 换成了 SOC 大赛,软核变硬核,性能翻几番。 那个时候,能出一本认认真真讲 FPGA 设计的 书, 会得到非常高的评价。 而我,则由于工作变动, 中间拖沓了半年,当半年后再来准备动 笔时,才恍然领悟到, Altera 即将成为 Intel 的可编程事业部, 基于嵌入式硬核的 SOC FPGA 芯片开始获得了大量的关注,已经有不少大的小的公司在着手这方面的教学内容与板卡设 计。原本计划编写的内容在新技术新产品面前,好像显得非常的不值一提。 总感觉当大家把 目光都投在了前沿的可编程 SOC 上的时候,我再编写这样一本单纯讲解 FPGA 数字逻辑设计 的书会显得与时代脱节。 于是,编书的动力没有了那么强烈, 这事,又这么放了下来。 在这期间,我也向着 SOC FPGA 做了积极努力的探索, 学习了 Cyclone V SOC 的开发流 程, 从裸机到基于 Linux 嵌入式系统,实现了 FPGA 和 ARM Cortex-A9 CPU 之间的双向控制和 数据传输。 在做完这之后,就感觉遇到了瓶颈, 瓶颈主要来自于两个方面,第一是对 Linux 软件开发不熟悉,而 SOC FPGA 的处理器端应用又恰好需要对 Linux 的底层和应用都需要一 定的了解。 另一方面是对 FPGA 设计经验的欠缺,使用到 SOC FPGA 架构的场合,往往都是 一些较为复杂的系统,在系统中,本身就对 FPGA 的设计内容要求较高, 如视频流的处理, 运算加速逻辑的设计, 通信接口的实现等。 所以, 欠缺了任何一方面的知识, 在使用 SOC FPGA 架构的时候都会困难重重。如果 FPGA 方面没有踏实的功底,那么使用 SOC FPGA 也仅 仅只能是当做通用的嵌入式处理器使用, 无法将其结构的优势发挥出来 。 如果没有 ARM 嵌 入式处理器方面的踏实功底, SOC FPGA 也仅仅只能是个 FPGA。 所以, 编写这样一本单纯讲解 FPGA 数字逻辑的书还是非常有意义的,因为这才是真正合理应用 SOC FPGA 优势架构的 基础。其中部分I0支持LVDS标准。以下为 Cyclone IV E的结构图。 PLI LOES PLI 9 储/辐K辑IO 阵存阵 阵 S 列 列 列 器 PLL LOES PLL 通过该图可以看到,在器件的四周,分布着4个锁相坏(PL),因此可以知道外部参考 时钟进入FPGA器件后,如果需要,就可以立即进入PLL单元,以实现最短的时钟源路径, 从而获得较髙的生成时钟质量。另外,也由于PLL属于模拟电路,放在器件的边缘更加利于 生 逻辑阵列和MK存储器交替分布,这样,可以缩短数据的传输路径,以获得更加优异 的吋序性能。 IOEs是lO单元,分布在器件的4周, Altera推荐的效据流向策略是数据流由左侧1o输 入,然后进过处理、运算和存储,最终由右侧输出,而控制信号由上下O单元输入输岀。 丶面我们以一个典型的数据采集实例,来分析这种资源分布的优势。数据由外部高速 ADC采集,通过10口输入到FPGA内部,接着经过一定的逻辑电路预处理后写入到由存储 器组成的缓存如fifo或双∏ram中,然后,再由逻辑电路从存储器中读出,进行相应的处 理,在处理的过程中,可能会需要高速的乘法运算,因此,该部分数据可以直接送给片上集 成的18*18硬件乘法器进行运算,运算完成后,再由逻辑电路处理后送入储器组成的缓存如 fifo或双口ram中,等待其他电路如数据发送电路将数据从缓存中读取岀来并最终通过IO 口上连接的通信电路传输出去 对两个通 苣的AC数 将FIFO中 从fifo中 据进行偏 的数据读 将运算结 读取数据 Fifo 移校正 果写入到 并送给 IS传 进行FIR FIFO中 LSB2.0设 然后写入 输电路 FIFO中 运算 备 如果我们将整个数据流从左向右分析,就会发现数据流中每一级所需要的资源都刚好和 α CycloneⅣE中的各个资源的分布位置对应。因此,按照官方推荐的数据流向策略将上述设 计布置到α cloneⅣNE的对应资源上,则能够得到时序优化∫的布局布线,从而使改计能够 工作在较高的时钟频率下 Cyclone iVE扩展资源介绍 接下来我们总结 Cyclone IVE在经典FPGA架构上增加的资源的用处。 锁相环PLL PLL的英文全称为 中文名叫锁相环,属于模拟电路。该电路的一个 特性就是能够将输入的周期信号进行分频和倍频,并最终输出一个或多个稳定的,与输入信号频 率和相位相关的信号。例如,我们将一个 的有源晶振产生的时钟信号接到的输入 端,然后设置的一路输出的倍频和分频系数分别为和,则当对输入信号完成锁定 后,就能在该路输出上得到 的时钟,然后,我们就可以使用该时钟信号作为千兆以太网的 时钟信号。另外,对于 存储器,需要两路频率相同,理论相位相差 度的时钟信号,α cloneⅣvE的一路PL最多可以支持5路输出,因此,我们可以配置一个PLl 两路输出的倍频和分频系数相冋,但是第二路信号的输出相位较第一路相差度,这样就 能产生 存储器和 控制器工作时分别所需的时钟信号。总结下来就是能够 通过对输入的时钟信号进行分频、倍频、相位控制,从而得到一路或多路更高或更低的时钟信号。 需要注意的是, Cyclone IVE中,除∫EP4CE6和EP4CE10两个容量等级的器件只含有两个PLL 单元外,其他更高容量的器件均含有4个PLL M9K存储器 从名词可知,该存储器的每个存储块的存储容量为 每个 Cyclone IVE器件中都有多 个M9K存储块,具体数量与对应的器件型号相关,例如EP4CE6含有30个M9K块,而 EP4CE115则含有432个M9K块。这些存储器块可以被配置为单端口、简单双端口、真双端口 RAM以及FIF0缓冲器或者ROM。例如当我们进行数据采集时,为了保证数据生产方和数据消 费方能够协调读写速度,则可以使用嵌入式块RAM存储器配置为先进先出存储器(FIFO),数据 生产方仅在FIFO为非满的情況下才将数据写入到FIFO中,而数据消费方则在FIFO为非空的时 候才去读取其中的数据并处理,通过这种方式实现了不同数据速率之间的匹 18*18硬件乘法器 所谓18*18乘法器,就是乘数和被乘数输入宽度最大为18位的乘法器,由于乘法器电路实 现起来较为复杂,如果使用通用逻辑电路来搭建,虽然也能实现相应的功能,但是性能会受到较 大的限制,无法运行在较高的时钟频率,从而拉低整个设计的时序性能。同时,使用通用逻辑搭 建乘法器,也会消耗较多的芯片面积,不利于降低成本和功耗。因此, CycloneⅣE中集成了一 定数量的硬件乘法器,数量视FPGA具体型号,从15个到266个不等,这些硬件乘法器默 认都是18位的输入位宽。而所谓的硬件乘法器,就是该乘法器电路使用了硬线逻辑设计 在芯片版图设计时功能和布局已经固定,即使不使用,这些乘法器电路也是存在的。每个18 位的硬件乘法器都可以拆分成2个9位的便件乘法器使用,或者也可以使用多个使件乘法 器级联实现更高位宽的乘法运算。当我们需要使用FPGA进行高速的乘法运算的时候,使用 嵌入的硬件乘法器无疑是比较经济且高效的选择 各容量等级资源数量介绍 通过以上内容,我们了解了 CycloneⅣ E FPGA屮常见的硬件资源,根据器件型号的不同 每个器件中存在的这些硬件资源的数量也是不相同的,下表为 CycloneⅣE系列各个容量等 级的FPGA芯片中拥有的各种硬件资源的数量。用户可根据实际设计实际资源消耗,合理选 择满足需求的FPGA型号。 资源 一 逻辑单元(LE 6,27210,32015,4082,232028,84839,60055,85675,40811,.480 嵌入式存储器(Kits) 270 414 504 594 5941,1342,3402,7453,888 嵌入式18×18乘法器15 23 56 66 116 154 200 266 通用PII 4 4 全局时钟网络 用户L0块 最大用户I/0 注释D 179 179 343 153 532 374 426 528 以上我们通过对 CycloneⅣ E FPGA的整体硬件资源进行分析,介绍了 CycloneⅣ E FPGA 的硬件结构。该结构包括逻辑单元(LE)、嵌入式存储器(M9K)、嵌入式18X18乘法器、 通用PL、全局时钟网络以及输入输出单元(IO)。∫鮮尜件的只体结构,有助于我们在设计 时根据器件提供的瓷源,对设计进行合理的优化,以达到最佳的性价比。具体这些瓷源在设 计中怎么使用,我们将在后续章节为大家介绍。如果读者希望了解这些资源的具体硬件电路 结构,也可参看《 Cyclone IV Device Handbook》。 重点电路设计 通过前面内容的学习,我们了解了 cloneⅣ VEFPGA的芯片硬件资源架构,接下米,我 们将选取一个只体的 Cyclone IV E FPGA芯片EP4CE10F17C8,讲斛其应用电路设计 电源设计 CycloneⅣ E FPGA需要三组供电,分别为内核供电、PL模拟电路供电和|o单元供电。 其中,内核供电电压根据器件是否为低电压版本区分,低电压版本,内核供电为10V,非低 电压版本供电为1.2V。PL模拟部分供电为固定的2.5V。1O供电电压值从1.2V~3.3V,共有 6种可选值。下图为 CycloneⅣ E FPGA器件供电示意图。 内核 1.2 C) 内核供电电源 PLL数字供电 PLL模拟供电 C⊥One PLL模找电源 后彐彐 1V15③1v④5④333v IO供电电源 图 Cyclone IV E FPGA器件供电示意图 内核供电: Cyclone IVEFPGA内核所需供电电压为12V,内核工作所需最大电流随芯片上运行的设 计工作频率和资源占用而不同。具体每个设计的功耗可以使用 Quartus软件提供的功耗分析 工具“ Power Play power analyzer tool进行分析,例如,对于·个资漂占用率为95%吋钟频 率为100MHz的设计,分析出的内核静态功耗为4984mW、内核动态功耗为45.83mW,即 整个内核功耗不到100mW。可见对于EP4CE10F17C8这款器件,其内核供电电流范围要求并 不太高,设计时使用常见的LDo器件如AMS117-1.2就可以满足一般的需求。当然,我们 也可以使用更加高效的DCDC电路来实现。 o Summary Flon taus Succcssful Tuc M 11 15: 50: 06 20 Quarts [I 6+-3it version 0.0 Build 15604)24/2013S] Full Version ACE20_Board_Test Tup -eve Erlily Ndme ACE20 BodIu Tesl CyconeI/E EP4CE10F17C8 I Iming Modes Fn引 Total logic elements 9769/10,320(95% Tota combinational furctions 3 131/10, 320(82 %) Dedicated logic registers 001/10,220(57% Total registers Total pins 17/18(7% Antal vir h tannins Total memory bits 36415142393556%) EmDedded Multiplier 9-bit e ements 4/46(9% Total PLLe 1/2(50%) 图资源利用率 PowerPlay PowER Analyzer tatIs Sucressfid-TuP Ma 14 1550:06 2017 wartE江64 Bit version 13.0.0Bd1550424/2013s5- Full version ame AC620 Board Test op-evel Enti-y Name AC620 Board Test Cyclone IvE Power Models Final Tolal T ler mdl Put Dissipdliur 174,m Core Dynamlc Therma Power Dissipation 45.83 mw Core S:atic Themal Power Dissipation I O Thermal Power Dissipation 7880m國 Powcr Eatimation Confidence Low: uscr provided suffcient toggle ratc data 图功耗分析结果 使用DCDC电路,在提供更大输出电流的同时,可以提高电源转换电路效率,更加节能。 在设计时,可以使用NCP1529型专用DCDC降压器来改计该转换电路。NCP1529输入电压范 围为2.八~5.5V,输出电压范围为09γ~3.9V,可持续稳定的输出高达1A的电流。其输出电 压可通过反馈电阻R1和R2不同的阻值组合来设置。输出电压 Vont=V×( 其中VFB为反馈电压,固定为06V,为了实现低功耗和低噪声,要求R2的阻值大小在 100K到600K之间。 VIN SW QUT OUT R1 什f OFF ON EN FB GND R2 图NCP1529典型应用电路 当我们希望输出电压为1.2时,只需选择R1和R2阻值相同即可。下图所式为AC620 开发板上使用的12V电源电路,该电路使用NCP1529实现从33V电源到12V电源的转换, R23和R25为反馈电阻,设置两者阻值均为100K,即可实现稳定的12V输出。为了实现电 源和实际FPGA供电管脚之间的隔离,1.ν∨输岀端还使用了一颗功率磁珠,当调试硬件需要 将1.2V从FPGA管脚上断开时,只需拆掉FB4即可,这种设计思路在硬件设计中非常的常 见。 ⅤDD.2TP5 VDD3.3 NCP1529ASNTIG VDDI. 2 R2110K SWAy VLS401 3R3M, 3.3HH 3.3oh/3A 47uF/16V vNH人5 22uF104 C55 GND GND GND GND 图AC620开发板12V供电电路 内核供电引脚在器件中被标识为 VCCINT,因此,在设计时需要将标沣为Ⅴ CCINT的引脚 都连接到内核供电电源1V上,如下图所示。这些电源引脚附近一般需要加高频滤波电容, VDD3 3 ⅤDD12 UIK E3 G6 VCCIO1 CCINT VCCIO1VCCINT A G7 Ⅴ CCINT G8 K3 G I M3 VCCIO2 VCCINT G10 VCCIO2 VCCINT H6 P4 VCCINT HIl VCCIO3 VCCINT K7 VCCIO3 VCCINT VCCIO3 图 cloneⅣVE内核供电管肽 PLL模拟供电 CycloneⅣ E FPGA器件中,PL电路需要两种供电,分别为模拟部分和数字部分供电 数字部分供电电压为1.2∨,可直接使用内核供电电源提供。PLL模拟部分仅需最大200mA的 供电电流,不过由于是模拟电路,对电源稳定性要求较高,不能有较人的纹波。该供电适合 使用LDO提供,例如使用LP5900SD-2.5器件,或者其他可选LDO。 PLL供电管脚根据每个器件实际具有的PLL数量而不同,上要就是EP4CE6和EP4CE10两 个器件例外,由于这两个器件片上只有两个PL,因此也只有两个PLL模拟供电脚和数字供 电脚,其他容量的器件,都是4个PLL。PLL模拟供电管脚在器件中被标注为 VCCAX,数宁供 电管肜被标注为 VCCD PLL,设计时,请将CCAⅹ引脚连接到2.5V的PLL模拟供电专用电 源上,VCCD_PL连接到12V内核供电上。 VDDI. 2 FBI VCCD PLL VDD2. 5 VCCA2.5 FB BLM18AG22ISNID BLMI8AG22ISNID 05 C405 GND GND VCCD PLL VCCA25 UIM M5 N4 VCCAI GNDAI F12 VCCA2 E12 D13 GNDA2 Ⅴ CCD PLL2 EP4CE1OF17C8 GND 图EP4CE10具有2个PLL的PLL供电引脚 T6 VOCAl U5 GNDA1 VCCD PLLL F18 VCCA2 E17 GNDA2AE18 VCCD PLL2 GNDA3 F6 VCCA3 VCCD PLL3 U18 V18 VCCA4 GNDA4 VCCD PLLA EP4CE30F23C8 图EP4CE30具有4个PL的PLL供电引脚 IO Bank供电 每个器件的0口都分成了8组,每一组称为一个| o Bank,同一个Bank中的所有O供 电相同,各个Bank的|O供电都可以不同,1o供电支持1.2V、1.5V、1.8V、25V、3.0V、3.3V 多种电平标准。具体的可根据该Bank上的lO功能确定,如某个| 0 Bank上连接的是DDR2 存储器,则该| O Bank的供电要求为1.8V。同理,若某 IO Bank被确定为使用LDS功能,则 该 O Bank的供电需要被配置为2.5V。1O供电在器件中别标注为 VCCIOX,其中x为| 0 Bank 编号,如卜图为带DDR2和vDS接口的开发板o供电电路,由于Bank3、Bank4被设计用 于连接DDR2 SDRAM存储器,因此VCO3和VCCo4连接到了1.8V的供电电源上。Bank5 被配置为LDS或普通扩展IO,当Bank5上的O作为通用o口时,可以使用33V供电,当 Bank5上的1o用作 LVDS功能时,则只能使用2.5V供电,因此使用P9实现VCO5的供电 电压进行切换。 W5 VCCIO3VCCINT VCCl& W9 VCCIO3 VCCINT W111 VCCIO3 VCCINT AA6 VCCIO3 VCO VCCIO3 VCCINT VACaNT ⅤCCIO4 CCINT VCC1. 8 W12 VCCIO4VCCINT VCC25 CFG 14 Pg ⅤCCIO4 VCCINT VACANT ⅤCcIO5 VCCINT 2 VIg VCCIOS VCCINT T19 VCCIO5 VCCINT Header 3 VCCIOS VCCINT F19 VACANT VCC3 3 VCC3.3 GioⅤccIo6Ⅴ CCINT T19ⅤCCIO6 I20 VCCIO6 ⅤCCIO6 p12 VCC3 D14 VCCIO VCCIO D18 VCCIO7 VCCIOT 使用跳线直接切换是一种简易的方式,适合于供电切换可选项比较少的情况。另一种拄 荐的切换方式是使用可调降压电路,通过跳线直接切换不通的分压反馈电阻来设置降压电路 的输出值,例如对于上述提到的NCP1529,可以通过跳线选择接入电路的不同的R1阻值来 实现不同电压输出。此种方式在亩对需要调整的选择比较多时,比较方便。如下图JP16,通 过短接不通的短接线,就能选择接入反馈电路的分压电阻的阻值,从而设定不同的 GPIO VCO|O的电压值 ADJ/1A for Bank 4 l/ 0 voltage/1A VCC3P3 □ GPIO VCCIO GPIO VCCIO VIN VOUT 10uR177 0.1 VEN LP38692MP-ADJ HEADER 2X4 VCC3P3 R53 J1357 P2468 配置电路设计 CycloneⅣ E FPGA要能够正常的工作,除了需要合理的供电外,还需要有正确的配置电 路。 cloneⅣ∨ E EPGA是基于SRAM的结构的,而SRAM中的数据掉电就会丢失,因此系统 上电后,必须要由配置电路将正确的配置数据加载到SRAM中,然后FPGA才能够正常的运 行。 CycloneⅣE支持5种配置方式,分别为: 配置方式 配置方法 AS FGA主动串行方式串行配置器件(串行 FLASH储器) AP FGA丰动并行方式并行 FLASH存储器 FPGA被动串行方式带 FLASH存储器的外部主控制器 载电缆( USB Blaster) FPP 快速被动并行方式 带 FLASH存储器的外部主控制器 JTAG方式 带 FLASH存储器的外部主控制器 下电缆( USB Blaster 主动串行方式(AS) 在FPGA主动串行方式(AS)下,由FGA主动输出控制和同步信号给专用的串行配芯片 (EPCS系列或兼容芯片),在串行配置器件收到命令后,把配置数据发送到FPGA,完成配置 过程配置器件可使用原厂提供的专用EPCS芯片(EPCS4、EPCS8、EPC516、EPCS64、EPCS128), 也可以使用通用的串行 SPI FLASH芯片如M25P40、M25P16、W25Q16等。由」电路简单 成本低廉,该种方式在中小容量FPGA系统中使用较为广泛。下图为AS配置方式时的应用
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: