欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    FPGA研发牛人心得总结(DOC55页)12688.docx

    • 资源ID:68767144       资源大小:461.06KB        全文页数:68页
    • 资源格式: DOCX        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FPGA研发牛人心得总结(DOC55页)12688.docx

    FPGA研发之道FPGA是是个什么玩玩意?FPGA是是个什么玩玩意?       首先来来说:        FPPGA是一一种器件。其其英文名 feilld prrograamablle  ggate arryy 。很长长,但不通通俗。通俗俗来说,是是一种功能能强大似乎乎无所不能能的器件。通通常用于通通信、网络络、图像处处理、工业业控制等不不同领域的的器件。就就像ARMM、DSPP等嵌入式式器件一样样,成为无无数码农码码工们情感感倾泻而出出的代码真真正获得生生命的地方方。只不过过,一样的的编程,却却是不一样样的思想。嵌嵌入式软件件人员看到到的是C。而而FPGAA工程师看看到是硬件件描述语言言,verrilogg或VHDDL。软件件看到是函函数、对象象、重构。FFPGA工工程师则是是模块、流流水、复用用。从现象象上看,都都是代码到到下载程序序再到硬件件上运行。不不能只看现现象而忽略略本质。FFPGA 开发本质质上是设计计一颗ICC,“*的身子,丫丫鬟的命”不不是所有vverillog/VVHDL代代码,都能能获得青睐睐去流片成成为真正的的芯片,而而更多的则则成为运行行在FPGGA器件上上,成为完完成相同功功能的替代代品。其实实现的功能能却一点也也不逊色于于百万身价价流片的近近亲。从而而成为独树树一帜的行行业。             FPPGA开发发的流程,是是通过veeriloog/VHHDL等硬硬件描述语语言通过EEDA工具具编译、综综合、布局局布线成为为下载文件件,最终加加载到FPPGA器件件中去,完完成所实现现的功能。那那硬件描述述语言描述述的是什么么?这里描描述的就是是组合逻辑辑电路和时时序逻辑电电路。组合合逻辑电路路就是大家家所熟知的的 与门、或或门、非门门。时序逻逻辑电路则则是触发器器。数字芯芯片上绝大大部分逻辑辑都是这两两种逻辑实实现的。也也就是基本本上每个电电子行业的的人所学过过的数字电电路。顺便便说一下,感感谢香农大大师,在其其硕士毕业业论文<继继电器与开开关电路的的符号分析析>就奠定定了数字电电路的的根根基。只不不过在FPPGA中,与与或非的操操作变成了了查找表的的操作。于于是所有的的数字电路路变成了查查找表和寄寄存器,这这就构成了了FPGAA的基础。查查找表负责责逻辑实现现,寄存器器存储电路路状态。二二者配合,双双剑合璧,天天衣无缝。这这是最初的的FPGAA的雏形。 现代FPPGA内部部出了查找找表和寄存存器之外,还还有RAMM块,用于于存储大量量的数据块块,这是因因为RAMM块较寄存存器来存储储大量数据据更能节省省芯片实现现的面积。FFPGA内内部的时序序电路则需需要时钟的的输入,通通常FPGGA内部需需要时钟种种类较多,因因此需要在在片内产生生所需的的的相关的时时钟,如不不同频率,不不同相位的的时钟,因因此时钟管管理单元DDCM/PPLL也是是必不可少少的内部部部件。除此此之外,FFPGA内内部还包括括接口I/O,I/O分为普普通I/OO和高速II/O,高高速I/OO支持例如如高速的SSERDEES,用于于实现XAAUI,PPCIE等等高速接口口,这些接接口动辄几几Gbpss到10GGbps以以上。此外外种类多种种多样的硬硬核IP也也是各FPPGA厂商商差异化竞竞争利器,例例如POWWERPCC、ARMM等硬核IIP。从而而构成CPPU+FPPGA于一一体的集可可编程性和和可重构的的处理平台台。因此,相相对来所,FFPGA虽虽然发展有有二三十年年的历史,其其基本架构构一直不变变不大。                 回回到问题开开始的地方方,FPGGA的英文文翻译过来来是现场可可编程门阵阵列。这是是相对ASSIC来说说的,ASSIC的硬硬件也可看看做是门阵阵列,但是是其是非可可编程的器器件。流片片完成其功功能就固化化了,而FFPGA的的可编程性性就在其能能够重新下下载配置文文件,来改改变其内在在的功能,这这就是其可可编程性的的由来。从从前端开发发流程来说说,FPGGA和ASSIC开发发并无二至至。由于AASIC开开发一次性性投入成本本较高,FFPGA无无疑是一种种经济的替替代方案,用用于实现的的高速的数数据并行处处理。如业业务能够支支撑大规模模应用并且且协议固化化,则能够够分摊成本本的ASIIC实现就就有成本的的优势。        FPPGA作为为一种器件件,技术上上主要垄断断在少数大大公司手中中,那就是是双巨头AALTERRA和XIILINXX。除此之之外还有一一些份额相相对较小的的公司,例例如ACTTEL和LLATTIICE。不不止是FPPGA的硬硬件芯片,其其配套的EEDA工具具技术壁垒垒更高。因因此相对于于CPU来来说,FPPGA的国国产化更不不乐观,不不过已经有有国内的厂厂商来从事事这一行业业,例如国国微和京微微雅格等,也也在一些细细分市场上上推出自己己的FPGGA产品。FPGA和和他那些小小伙伴们 (一) 系统架构构组成通常来讲,“一一个好汉三三个帮”,一一个完整的的嵌入式系系统中由单单独一个FFPGA使使用的情况况较少。通通常由多个个器件组合合完成,例例如由一个个FPGAA+CPUU来构成。通通常为一个个FPGAA+ARMM,ARMM负责软件件配置管理理,界面输输入外设操操作等操作作,FPGGA负责大大数据量运运算,可以以看做CPPU的专用用协处理器器来使用,也也常会用于于扩展外部部接口。常常用的有AARM+FFPGA,DDSP+FFPGA,或或者网络处处理器+FFPGA等等种种架构构形式,这这些架构形形式构成整整个高速嵌嵌入式设备备的处理形形态。      不得不说说的是,随随着技术的的进步,现现在CPUU中集成的的单元也随随之增加,例例如TI的的“达芬奇奇”架构的的处理器内内部通常由由ARM+DSP构构成。同时时异构的处处理器形态态业逐渐流流行,如AARM9+ARM77的结构。这这类一个主主要处理系系统(ARRM9)外外带辅助处处理系统(ARM77)的设计计,同样成成为现在处处理器设计计的流行方方向。主处处理系统运运行嵌入式式操作系统统,而辅助助处理单元元则专注某某一些的专专用领域的的处理。这这些系统的的应用减少少了FPGGA作为CCPU协处处理单元的的领域。因因为毕竟FFPGA相相比ARMM等流行嵌嵌入式处理理器价格要要相对较高高。      在这种情情形下,FFPGA的的厂商似乎乎也感受到到了压力,不不约而同推推出了带AARM硬核核的FPGGA,例如如ALTEERA的  和XIILINXX的ZYNNQ和ALLTERAA的SOCC FPGGA。这是是即是互相相竞争的需需要,也是是同众多CCPU厂商商一掰手腕腕的杰总。即即使在这两两种在趋势势下,经典典的处理器器+FPGGA的设计计仍然可看看做为高性性能嵌入式式系统的典典型配置。       经典的的处理器+FPGAA的配置中中有多种的的架构形式式,即多个个处理器单单元,可能能是ARMM,MIPPS,或者者DSP,FFPGA也也可能是多多片的配置置,具体架架构形式于于具体处理理的业务相相关和目标标设备的定定位也相关关。因为FFPGA作作为简单业业务流大数数据量的处处理形态仍仍然是CPPU无可比比拟的优势势,FPGGA内部可可以开发大大量业务数数据并行,从从而实现高高速的数据据处理。      在实现高高速处理方方面,CPPU的另一一个发展趋趋势是多核核,多核处处理器也能能处理大数数据量的业业务的并行行,例如业业界TERRILA已已推出644核的多核核处理器,采采用MIPPS处理器器,通过二二维MASSH网络连连接在一起起,形成NNOC的结结构。在性性能上已经经和现有的的高速FPPGA的处处理能力上上不相上下下。但是多多核处理器器的不得不不说的问题题就是,同同一业务流流分配到多多核处理上上后,如需需交互,例例如访问同同一资源,就就会造成读读写的缓存存一致的问问题,解决决的这一问问题的天然然思路是加加锁,即在在变量访问问上加自旋旋锁,但是是带来的问问题就是处处理性能的的急剧下降降。而FPPGA无论论并行处理理和同一变变量的访问问,都可以以变成工程程师的设计计水平的问问题,没有有原理性的的挑战。        没有有一种器件件可以满足足全人类的的众多需求求,因此不不用担心FFPGA没没有用武之之地。必定定是一系列列产品的组组合。下面面主要介绍绍一下FPPGA可以以作为现今今热门场景景的几种应应用。(1)网络络存储产品品,特别是是现在的NNAS,或或者SANN设备上,其其存储的时时间、接口口、安全性性等都要求求较高,而而FPGAA无论处理理性能还是是扩展接口口的能力都都使其在这这一领域大大有作为。现现在高端FFPGA单单片就可以以扩展322个或者更更多4G或或者8G的的FC接口口。并且其其协议处理理相对的固固定,也使使FPGAA在这一领领域有大量量的可能应应用。(2)高速速网络设备备,现在高高速网络设设备10GG、40/100GG以太网设设备领域,同同样FPGGA也是关关键的处理理部件。特特别是IPPv6的商商用化及大大数据对于于基础设施施的高要求求,都使这这一领域的的处理应用用会逐渐广广泛,这一一领域通常常是高速网网络处理器器(NP)+FPGAA的典型架架构。(3)4GG等通信设设备,对于于新一代通通信基站的的信号处理理,FPGGA+DSSP阵列的的架构就是是绝配。特特别是在专专用处理芯芯片面世之之前,这样样的架构可可以保证新新一代通信信基础设施施的迅速研研发和部署署。       没有完完美的架构构,只有合合适的组合合,各种芯芯片和架构构都是为应应用服务,互互相的渗透透是趋势,也也是必然。FFPGA相相对处理器器的可编程程领域,仍仍然属于小小众(虽然然人数也不不少)。但但是正像一一则笑话所所说:大腿腿虽然比根根命根子粗粗,但决没没有命子重重要。这算算开个玩笑笑。FPGGA的实现现为以后的的芯片化留留下了许多多可能和想想象空间,从从而在应用用大量爆发发时通过芯芯片化来大大幅降低成成本,这这这也正是其其他可编程程器件所不不能比拟的的。FPGA和和他那些小小伙伴们 (二) 器件互联联系统架构确确定,下一一步就是FFPGA与与各组成器器件之间互互联的问题题了。通常常来说,CCPU和FFPGA的的互联接口口,主要取取决两个要要素:    (11)CPUU所支持的的接口。    (22)交互的的业务。       通常来来说,FPPGA一般般支持与CCPU连接接的数字接接口,其常常用的有EEMIF,PPCI,PPCI-EE,UPPP,网口(MMII/GGMII/RGMIII),DDDR等接接口。作为为总线类接接口,FPPGA通常常作为从设设备与CPPU连接,CCPU作为为主设备通通过访问直直接映射的的地址对FFPGA进进行访问。根根据是否有有时钟同步步,通常总总线访问分分为同步或或异步的总总线,根据据CPU外外部总线协协议有所不不同,但数数据、地址址、控制信信号基本是是总线访问问类型中总总线信号所所不能省略略的。CPPU手册中中会对信号号定义和时时序控制有有着详细的的说明,FFPGA需需要根据这这些详细说说明来实现现相应的逻逻辑。同时时CPU还还可以对访访问时序进进行设置,比比如最快时时钟,甚至至所需的最最小建立时时间和保持持时间,这这些一般CCPU都可可以进行设设置,而这这些具体参参数,不仅仅影响FPPGA的实实现,也决决定总线访访问的速度度和效率。对对于同步总总线,只需需要根据输输入时钟进进行采样处处理即可,但但对于异步步总线,则则需要的对对进入的控控制信号进进行同步化化处理,通通常处理方方式是寄存存两拍,去去掉毛刺。因因此用于采采样的时钟钟就与CPPU所设置置的总线参参数相关,如如采样时钟钟较低,等等控制信号号稳定后在在译码后输输出,一个个总线操作作周期的时时间就会相相对较长,其其处理的效效率也相对对较低;假假如采样时时钟过快,则则对关键路路径又是一一个挑战,因因此合理设设定采样频频率,便于于接口的移移植并接口口的效率是是设计的关关键点和平平衡点。       对于总总线型的访访问来说,数数据信号通通常为三态态信号,用用于输入和和输出。这这种设计的的目的是为为了减少外外部连线的的数量。因因为数据信信号相对较较多一般为为8/166/32位位数据总线线。总线的的访问的优优势是直接接映射到系系统的地址址区间,访访问较为直直观。但相相对传输速速率不高,通通常在几十十到1000Mbpss以下。这这种原因的的造成主要要为以下因因素(1)受受制总线访访问的间隔隔,总线操操作周期等等因素,总总线访问间间隔即两次次访问之间间总线空闲闲的时间,而而总线操作作周期为从从发起到相相应的时间间。(2)不不支持双向向传输,并并且FPGGA需主动动发起对CCPU操作作时,一般般只有发起起CPU的的中断处理理一种方式式。这种总总线型操作作特点,使使其可以用用作系统的的管理操作作,例如FFPGA内内部寄存器器配置,运运行过程中中所需参数数配置,以以及数据流流量较小的的信息交互互等操作。这这些操作数数据量和所所需带宽适适中,可以以应对普通通的嵌入式式系统的处处理需求。     对于大数数据流量的的数据交互互,一般采采用专用的的总线交互互,其特点点是,支持持双向传输输,总线传传输速率较较快,例如如GMIII/RGMMII、UUpp、专专用LVDDS接口,及及SERDDES接口口。专用SSERDEES接口一一般支持的的有PCII-E,XXAUI,SSGMIII,SATTA,Innterllakenn接口等接接口。GMMII/RRGMIII,专用LLVDS接接口一般处处理在1GGbpS一一下的业务务形式,而而PCI-E,根据据其型号不不同,支持持几Gbpps的传输输速率。而而XAUII可支持到到10Gbbps的传传输速率,llnterrlakeen接口可可支持到440Gbpps的业务务传输。       对于不不同所需的的业务形式式及处理器器的类型,则则可选择相相应的接口口形式,来来传输具体体的业务。现现今主流FFPGA中中都提供的的各种接口口的IP。选选择FPGGA与各型型CPU互互联接口,一一般选择主主流的应用用交互方案案,特殊的的接口缺少少支撑IPP,导致开开发、调试试、维护和和兼容性的的成本都较较大,同时时注意系统统的持续演演进的需要要,如只在在本项目使使用一次,而而下一项目目或开发阶阶段已摒弃弃此类接口口,则需提提前规划技技术路线。毕毕竟一个稳稳定、高效效的接口互互联是一个个项目成功功的基础。     不是所有有的嵌入式式系统都需需要“高大大上”的接接口形式,各各类低速的的稳定接口口也同样在在FPGAA的接口互互联中有着着重要的角角色,其中中UARTT、SPII、I2CC等连接形形式也非常常的常见。毕毕竟,一个个优秀的设设计不是“高高大上”的的堆积,而而是对需求求最小成本本的满足。适适合的才是是最美的。灵活性的陷陷阱如果说用一一个词来描描述FPGGA的特性性,灵活性性肯定名列列前茅。         FFPGA的的灵活性在在于:           (一)II/O的灵灵活性,其其可以通过过其I/OO组成各种种接口与各各种器件连连接,并且且支持不同同的电气特特性。           (二)内内部存储器器灵活性,可可以通过IIP生成工工具生成各各种深度和和宽度的RRAM或者者FIFOO等。           (三)逻逻辑的灵活活性,内部部逻辑通可可生成的各各种类型IIP。              对于I/O接口来来说,FPPGA的II/O可以以支持不同同类型的电电平和驱动动能力,各各I/O未未定义之前前其地位平平等,例如如一个数据据信号可将将其约束在在任意引脚脚,只要其其电平符合合连接的规规范。因此此硬件工程程师基于这这种认识,在在PCB布布线时,基基于布线需需要,便调调整其布线线的顺序,例例如互换两两个信号的的位置。通通常情况上上,这种调调整是没有有任何问题题的。但是是随着FPPGA的接接口IP核核硬核化的的趋势,逐逐渐由很多多的接口IIP不能支支持这种调调整。例如如对于较早早的SDRRAM或者者DDRSSDRAMM来说,在在xiliinx和AALTERRA的FPPGA上,其其数据、地地址信号等等都是可调调的。但是是随着DDDR2,DDDR3接接口的出现现,其IPP接口,只只能支持在在某个BAANK并且且例化结束束后直接生生成相应的的约束文件件,而这些些的改动将将会导致布布局布线的的错误。另另一些例子子则是一些些高速SEERDESS的组合。例例如对于XXAUI接接口来说,其其硬核IPP(ALTTERA)上上就不支持持4组SEERDESS的顺序互互换,这将将会影响其其硬核FCCS的编码码。如果板板级连接上上与PHYY的顺序与与FPGAA例化IPP的约束不不一致,则则其硬核PPCS就不不能布局布布线通过(软软核FCSS可以支持持调整)。这这种灵活性性认识导致致硬件板级级互联的问问题可谓屡屡见不鲜,特特别是系统统复杂度的的上升,板板级连线的的增加,将将会导致设设计人员疏疏忽从而掉掉入“灵活活性的陷阱阱”。解决决此类问题题的方法。包包括(1)预预评估,在在设计之前前就在FPPGA上评评估所需的的接口的逻逻辑占用、约约束位置、时时钟需求等等等,预先先评估给系系统设计提提供相应的的数据支撑撑和设计参参考。(22)沟通,对对于设计的的变更,要要进行有效效沟通,不不能使铁路路警察,各各管一段。(33)设计评评审,虽然然老套,但但每个环节节上的评审审能有效减减少掉入类类似陷阱的的几率。         对对于内部存存储资源,大大多数FPPGA工程程师就是拿拿来就用的的状态。而而缺少整体体内部meemoryy规划,一一般来说,对对于单端口口、双端口口、假双端端口,各型型芯片手册册中都有明明确的定义义,例如xxilinnx的SPPATANN3系列中中最小RAAM单元为为18K。一一个RAMM例化最小小单位就是是18K。而而新的器件件中最小单单位一般为为9K。也也就是说虽虽然工程师师例化的较较小的RAAM,例如如256*16.只只有4K,但但是其也占占用一个最最小单元,根根据器件的的不同而不不同。而乱乱用双端口口导致RAAM资源的的过分占用用则是更常常见的设计计问题。FFPGA内内部对于单单个RAMM能够支持持的真双端端口是有限限制的。举举例说明,对对于ALTTERA的的9K的存存储单元一一般支持5512*118的双端端口RAMM。但如果果是一个2256*332的双端端口则需要要占用2个个9K的存存储RAMM。也就是是说,RAAM器件的的能力是有有限的,这这取决于RRAM的外外部互联线线是有限的的,以刚才才说的2556*322的双端口口RAM来来说,其需需要数据线线就是644根(双端端口),对对于单个RRAM的连连线资源来来说,这是是FPGAA内部逻辑辑资源难以以承受的。所所以根据器器件特定,合合理规划内内部memmory资资源,才能能在最大限限度的达到到高效的利利用。        FPPGA内部部可以例化化各型IPP,基于IIP的复用用的可以大大大增加研研发的进度度。但是各各种IP的的互联之间间则需对IIP的特性性了解清楚楚,明确IIP是否为为业务所需需的IP。有有的IP和和工程所需需可能只是是名称一致致,但其功功能却不是是你想要的的。例如网网口IP在在MII连连接方式下下,是用于于FPGAA连接PHHY的操作作。如果FFPGA与与CPU通通过MIII连接,现现有的IPP则难以满满足需求。这这是因为MMII连接接PHY其其所有的时时钟都是PPHY提供供的。CPPU的设计计也是与PPHY连接接,其时钟钟也有PHHY提供。而而如果二者者连接,就就变成都等等着对方提提供时钟,则则就变成没没有时钟。这这种调试问问题相对来来说容易解解决,不过过在系统规规划是,就就需要对整整个IP是是否能够满满足系统的的设计要求求,有着明明确的判断断。       灵活性性是FPGGA最大的的特性,在在设计中避避开那些灵灵活性的陷陷阱,才能能从FPGGA整体上上提升设计计能力,而而不是做只只会写Veeriloog的码农农。毕竟FFPGA设设计不是软软件设计,其其最终要成成为变成硬硬件承载的的,每一行行语句都要要考虑其综综合后的电电路,才能能真正领会会FPGAA设计的精精髓。从零开始调调试FPGGA “合抱之之木,生于于毫末;九九层之台,起起于垒土;千里之行行,始于足足下。”   老子子道德经经 对于新手来来说,如何何上手调试试FPGAA是关键的的一步。对于每一个个新设计的的FPGAA板卡,也也需要从零零开始调试试。那么如何开开始调试?下面介绍一一种简易的的调试方法法。(1) 至至少设定一一个输入时时钟 innput  syss_clkk;(2) 设设定输出 outpput N-1:0   led;(3)设定定32位计计数器 rreg 31:00  lled_ccnt;(4) 时时钟驱动计计数器开始始工作alwayys(pposeddge ssys_cclk)led_ccnt <<= leed_cnnt + 1(5)输出出led信信号。assiggn leed = led_cntM:N;程序完成。(6)设定定管教约束束如果为XIILINXX   FFPGA ,在UCCF文件中中   NNET “ssys_cclk”    LLOC   = 管脚脚名称如果为ALLTERAA  FPPGA ,在在QSF文文件中,添添加  sset_llocattion_assiignmeent   管脚名称称 -too  syys_cllk其他管脚,可可依次类推推。(7)编译译,布局、布布线,生成成配置文件件。XILINNX  生生成BITT文件。ALTERRA 生成成SOF文文件(8)连接接JTAGG,下载相相应的配置置文件。(9)观察察是否闪灯灯(肉眼可可见)。关于闪灯的的解释如下下:assiggn     leed = led_cntM:N;    ledd_cntt 为322bit的的信号,需需要几个闪闪灯,则根根据输入时时钟的频率率和肉眼能能够分辨的的时间(1100mss)。如输输出时钟为为25Mhhz。则闪闪灯看见的的位置能够够分批到110hz。需需分频2.5M= 32hh26255A0,因因此,则需需要输出至至少为leed_cnnt211位,才才能看到闪闪灯。虽然程序简简单,但是是,通过调调试可以确确认:(1)首先先可确定JJTAG下下载器的正正确连接,能能够正常下下载下载文文件。如不不能,常见见问题包括括(一)检查查是否安装装驱动。(二)下载载器是否由由红灯变成成黄灯/绿绿灯。如红红灯亮一般般情况下,JJTAG的的与电路板板VCC没没有供电。(三)检查查JTAGG连接的线线序。(四)检查查JTAGG电路,检检查原理图图上TMSS,TDII,TDOO的上拉和和下拉电阻阻是否与ddatassheett中一致。通过以上四四种方式,可可排除绝大大部分JTTAG下载载的错误。(2)可以以判断晶振振是否起振振,下载后后无灯闪。(一)首先先,示波器器查看晶振振频率,观观察晶振的的输出,如如无输出,查查看晶振的的电源和地地信号,如如电源正常常,而晶振振无反应,则则更换晶振振。(二)如无无示波器,也也有替代的的方法,通通过嵌入式式逻辑分析析仪抓信号号(任意信信号)。如如逻辑分析析仪点击采采样后无反反应,则无无时钟输入入。这是因为逻逻辑分析仪仪也需要时时钟进行逻逻辑值的存存储。(3)如正正常下载后后闪灯,证证明该FPPGA板卡卡硬件设计计上能够达达到最低限限度的FPPGA调试试状态。最后,说明明一下,为为什么是闪闪灯而不是是亮灯的程程序,这是是因为,首首先闪灯可可以判断外外部晶振工工作正常,并并且由于LLED等通通常为上拉拉,也就是是说逻辑值值0表示灯灯亮,而也也不排除某某硬件工程程师非要下下拉。逻辑辑1表示亮亮。因此采采用闪灯更更加方便。问题:为什什么LEDD灯值为什什么要上拉拉?这是因为:LED上上拉后,需需要灯亮时时电流由外外部电源提提供,而下下拉,灯亮亮时电流由由芯片的CCMOS电电路驱动。这这种在设计计中应避免免。架构设计漫漫谈(一)流流驱动和调调用式勿用讳言,现现在国内FFPGA开开发还处于于小作坊的的开发阶段段,一般都都是三、四四个人,七七八台机器器.小作坊坊如何也能能做出大成成果。这是是每个FPPGA工程程师都要面面临的问题题。架构设设计是面临临的第一关关。经常有有这样的项项目,需求求分析,架架构设计匆匆匆忙忙,号号称一两个个月开发完完毕,实际际上维护项项目就花了了一年半时时间。主要要包括几个个问题,一一,性能不不满足需求求。二,设设计频繁变变更。三,系系统不稳定定,调试问问题不收敛敛。         磨磨刀不误砍砍柴工,FFPGA设设计的需求求分析是整整个设计第第一步。如如何将系统统的功能需需求,转换换成FPGGA的设计计需求,是是FPGAA架构设计计的首要问问题。首先先, 需要要明确划分分软件和硬硬件的边界界。软件主主要处理输输入输出、界界面显示、系系统管理、设设备维护。而而FPGAA则负责大大数据流的的处理。           如果使用用几百元FFPGA实实现了一个个十几元单单片机就能能完成的功功能,就算算实现的非非常完美,那那么这是一一个什么样样的神设计计?任何一一个项目都都要考虑成成本,研发发成本、物物料成本、维维护成本等等等。FPPGA的使使用位置必必定是其他他器件难以以企及的优优势。         因因此对于一一个FPGGA架构设设计,其首首先需要考考虑就是性性能,如没没有性能的的需求,其其他的处理理器ARMM就可能替替代其功能能。其次就就是接口,用用于处理器器扩展其没没有的接口口,作为高高速接口转转换。最后后,需要考考虑就是可可维护性,FFPGA的的调试是非非常耗时的的,一个大大型的FPPGA的编编译时间在在几小时甚甚至更高(通通过嵌入式式分析仪抓抓信号,每每天工作88小时,只只能分析两两到三次)。而而软件调试试只需maake,编编译时间以以秒来记(这这个问题可可以通过提提升编译服服务器性能能改善而不不能消失,本本质上要考考虑可测性性设计)。如如果不考虑虑维护性和和可测性,调调试成本和和压力就非非常之大。           通常,FFPGA的的大部分架架构设计可可以采用数数据流驱动动的方式来来实现,例例子1,假假设一个实实现视频解解压缩FPPGA的设设计,输入入是无线接接口,输出出为显示屏屏。那么输输入输出的的接口基本本就能确定定。以数据据流为驱动动可以粗略略划分,输输入接口->解压缩缩模块->>视频转换换模块->>显示接口口。如需要要视频缓冲冲,则确定定是否需要要连接外部部存储器。那那就需要确确认在什么么位置进行行数据的缓缓冲。通过过要支持显显示的画面面的质量,就就能确认最最大码流,同同样可以计计算视频解解压模块和和转换模块块的计算能能力,从而而导出所需需的内部总总线宽度,系系统频率,以以及子模块块个数等等等。例子22,某支持持通过有线线电视网上上网电视IIP网关,同同样也是输输入的普通通IP网络络,输出为为有线调试试网的调试试解调器。将将IP报文文等长填充充后,在固固定时隙内内送入有线线电视网中中,同样也也是基于数数据流驱动动的方式。         数数据流驱动动式架构,可可以作为FFPGA设设计中一个个最重要的的架构。通通常来说应应用于IPP领域、存存储领域、数数字处理领领域等较大大型FPGGA设计都都是数据流流驱动式架架构,主要要包括输入入接口单元元,主处理理单元,输输出接口单单元。还可可能包括,辅辅助处理单单元、外部部存储单元元。这些单单元之间一一般采用流流水式处理理,即处理理完毕后,数数据打包发发完下一级级处理。其其中输入输输出可能有有多个,此此时还需要要架构内部部实现数据据的交换。         另另一种较为为常用的架架构方式为为调用式架架构,即一一般FPGGA通过标标准接口如如PCI、PPCI-EE,CPCCI,PCCI-X,EEMIF等等等。各种种接口,FFPGA内内部实现某某一加速单单元,如视视频加速,数数据处理,格格式转换等等操作。这这种结构基基本基本围围绕FPGGA接口、加加速单元展展开,属于于数据的反反馈类型,即即处理完数数据又反馈馈回接口模模块。        其他他虽然各型型各样,如如SOPCC,如各型型接口,但但本质上其其都是为上上述架构服服务的,或或做配置管管理替代外外部CPUU,或在数数据流中间间传递中间间参数。或或在内部实实现CPUU+协处理理器的架构构,因此说说,无他变变化。         孙孙子兵法云云:“兵无无常势,水水无常形”。但但是对于一一种设计技技术来说,没没有一种固固定演进的的架构和设设计,那么么项目的整整个设计层层次总是推推到重来,从从本质上说说,就是一一种低水平平重复。如如果总结规规律,提炼炼共性,才才能在提升升设计层次次,在小作作坊中取得得大成果。架构设计漫漫谈(二)稳稳定压倒一一切敏捷开发宣宣言中,有有一条定律律是“可以工作作的软件胜胜过面面俱俱到的文档档”。如何定定义可可以以工作的,这这就是需求求确定后架架构设计的的首要问题题。而大部部分看这句句话的同志志更喜欢后后半句,用用于作为不不写文档的的借口。FPGA的的架构设计计最首先可可以确定就就是外接接接口,就像像以前说的的,稳定可可靠的接口口是成功的的一半。接接口的选择择需要考虑虑几个问题题。1,  有有无外部成成熟IP。一般般来说,AALTERRA和XILIINX都提提供大量的的接口IPP,采用这这些IP能够提提升研发进进度,但不不同IP在不同同FPGAA上需要不不同liccensee,这个需需要通过代代理商来获获得(中国国国情,软软件是不卖卖钱的)。2,  自自研接口IIP,能否否满足时间间、进度、稳稳定性、及及兼容性的的要求。案例1设计计一个网络络接口在逻逻辑设计上上相对简单单,比如MMII接口口等同于44bit数数据线的225MHZZ样,而RGGMII可以使使用双沿1125Mhhz的采样样专用的双双沿采样寄寄存器完成成(使用寄寄存器原语语)。但是是如何支持持与不同PPHY连接接一个兼容容性问题(所所谓设计挑挑PHY的问问题,这个个问题后面面详述)。       案例2:CCPU通过过接口连接接FPGAA时,如果果CPU此时时软复位,则则有管脚会会上拉,此此时如果该该管脚连接接FPGAA接口是控控制信号且且控制信号号高电平有有效,则此此时FPGGA逻辑必必然出错。同同样FPGGA在配置置时,管教教输出高阻阻,如此时时CPU上电电且板级电电路管脚上上拉,则同同样会导致致CPU采样样出错(误误操作的问问题)。不能只是考考虑编写vverillog代码码仿真能对对就行,接接口设计应应该站在系系统的角度度来看问题题,问题不不是孤立的的,还是互互相联系。设计中,如如果需要存存储大量数数据,就需需要在外部部设计外部部存储器,这这是因为FFPGA内内部RAMM的数量是是有限的。是是采用SRRAM、DDR22、DDR33。这就需需要综合考考虑存储数数据大大小小,因为SSRAM的的容量也有有限,但是是其接口简简单,实现现简单方便便,且读取取延时较小小。DDRR2、DDR33的容量较较大,接口口复杂,但但FPGAA内部有成成熟IP可用,但但是读取的的延时较大大,从发起起读信号到到读回数据据一般在十十几个时钟钟周期以上上。如果对对数据时延延有要求,需需要上一次次存储数据据作为下一一次使用,且且数据量不不太大(几几百K到几兆),则则SRAMM是较好的的选择。而而其他方面面DDR22/DDRR3是较好好的选择。为为什么不用用SDRAAM或者DDRR。这是因因为设计完完毕,采购购会告诉你你,市场上上这样老的的芯片基本本都停产了了。FPGA接接口在设计计选择的原原则就是:能力够用用,简单易易用。特别别值得一提提的是高速速SERDDES接口口,最好使使用厂商给给的参考设设计,有硬硬核则不选选择软核,测测试稳定后后,一定要要专门的位位置约束,避避免后面添添加的逻辑辑拥挤后影影响到接口口时序,也也可避免接接口设计人人员与最终终的逻辑设设计人员扯扯皮(不添添加过多逻逻辑,接口口是好用的的)。一个个分析高速速SERDDES的示示波器,采采样频率至至少20GG甚至更高高以上,动动辄上百万万,出现问问题,不一一定有硬件件条件可调调试。回到开头,如如何定义“可用的”设计,稳稳定我想是是前提,而而接口的稳稳定性更是是前提的前前提。这里里稳定包括括,满负荷荷边界测试试,量产、环环境试验等等一系列稳稳定可靠。而而在架构设设计中,就就选择成熟熟的接口,能能有效的避避免后续流流程中的问问题,从源源头保证产产品的质量量。架构设计漫漫谈(三)时时钟和复位位接口确定以以后,FPPGA内部部如何规划划?首先需需要考虑就就是时钟和和复位。时钟:根据据时钟的分分类,可以以分为逻辑辑时钟,接接口时钟,存存储器时钟钟等;          (1)逻逻辑时钟取取决与逻辑辑的关键路路径,最终终值是设计计和优化的的结果,从从经验而不不是实际出出发:低端端FPGAA(cycclonee spaantann)工作频频率在400-80MMhz之间间,而高端端器件(sstrattix vvirteex)可达达100-200MMhz之间间,根据各各系列的先先后性能会会有所提升升,但不是是革命性的的。            (2)接口时钟钟,异步信信号的时序序一般也是是通过FPPGA片内内同步逻辑辑产生,一一般需要同同步化,即即接口的同同步化采样样。某些接接口的同步步时钟一般般是固定而而精确的,例例如下表所所示,如SSERDEES的时钟钟尽量由该该BANKK的专用时时钟管脚输输入,这样样可保证一一组SERRDES组组成的高速速接口时钟钟偏斜一致致。接口名称IP输入时时钟备注MII25Mhzz RGMIII/GMIII125Mhhz XAUI156.225Mhzz差分IP内部倍倍频使用PCI33Mhzz PCI-ee100Mzz差分输入IP内部倍倍频使用          (3)外外部存储器器时钟:这这里时钟主主要为LPPDDR/DDR22/DDRR3等器件件的时钟,一一般来说FFPGA的的接口不用用工作在相相应器件的的最高频率率。能够满满足系统缓缓存数据的的性能即可可,但是一一般这些IIP的接口口都规定了了相应的最最小时钟频频率,因为为这些接口口状态机需需不停进行行外部器件件的刷新(充充电),过过低的频率率可能会引引起刷新的的问题,造造成数据丢丢失或者不不稳定。          (4)另另外一些需需要输出的的低速时钟钟,例如II2C、MMDIO、低低速采样等等操作,可可以通过内内部分频得得到。不用用通过PLLL/DCCM产生所所需时钟。在在XILIINX的FFPGA中中,禁止PPLL产生生的时钟直直接输出到到管脚上,而而ALTEERA的器器件可以如如此操作。解解决此类问问题的方法法可通过OODDR器器件通过时时钟及其1180度相相位时钟(反反向)接入入的时钟管管脚分别采采样0、11逻辑得到到。因为有了DDCM/PPLL这些些专用产生生时钟的器器件,似乎乎产生任意意时钟输出出都是可能能是,但实实际例化的的结

    注意事项

    本文(FPGA研发牛人心得总结(DOC55页)12688.docx)为本站会员(you****now)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开