大型FPGA设计中的多时钟设计策略.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大型FPGA设计中的多时钟设计策略.doc

  利用FPGA实现大型设计时,可能需要FPGA具有以多个时钟运行的多重数据通路,这种多时钟FPGA设计必须特别小心,需要注意最大时钟速率、抖动、最大时钟数、异步时钟设计和时钟/数据关系。设计过程中最重要的一步是确定要用多少个不同的时钟,以及如何进行布线,本文将对这些设计策略深入阐述。   FPGA设计的第一步是决定需要什么样的时钟速率,设计中最快的时钟将确定FPGA必须能处理的时钟速率。最快时钟速率由设计中两个触发器之间一个信号的传输时间P来决定,如果P大于时钟周期T,则当信号在一个触发器上改变后,在下一个逻辑级上将不会改变,直到两个时钟周期以后才改变,如图1所示。   传输时间为信号在第一个触发器输出处所需的保持时间加上两级之间的任何组合逻辑的延迟,再加两级之间的布线延迟以及信号进入第二级触发器的设置时间。无论时钟速率为多少,每一个FPGA设计所用的时钟必须具有低抖动特性。抖动S是触发器的一个时钟输入到另一个触发器的时钟输入之间的最大延迟。为使电路正常工作,抖动必须小于两个触发器之间的传输时间。   图2显示了如果抖动大于传输时间(S>P)将出现的情况,该电路用时钟的两个上升沿来延迟信号1。然而,信号1上的一个改变会在相同的时钟周期上传输到的信号3上,从而引起信号2的改变。因为S>P,电路将不能不正常。   须注意的是,时钟速率与传输延时并没有什么关系,甚至普通的100bps时钟也会出现抖动问题。这意味着虽然FPGA供应商宣称他们的芯片具有较短的传输时间和很高的时钟速率,但抖动问题可能会严重,甚至那些没有运行在最高速率上的设计也是如此。   好在FPGA供应商已经认识到时钟抖动的影响,并在他们的芯片中提供低抖动的布线资源。这些特殊的布线能够在芯片中一个给定范围内的任何两个触发器之间提供一个确定的最大抖动。部分产品的低抖动资源覆盖了整个芯片,而其它的则可能只覆盖了FPGA逻辑块中的一个特定的行或列。对于一个需要很多不同时钟源的设计,这些低抖动FPGA是比较理想的选择。   多时钟设计的最严重问题之一是用异步时钟将两级逻辑结合在一起。由于异步时钟会产生亚稳态,从而严重降低设计性能,或完全破坏设计所能实现的功能。在触发器的时序要求产生冲突时(设置时间和保持时间)将产生亚稳态,触发器的最终输出是未知的,并使整个设计处于不确定状态。如果有一级逻辑要将数据异步地发送到另一级,图3所示的情形将不能满足触发器的设置和保持时间要求。确切地说,如果设计中含有异步逻辑将有可能会产生亚稳态。在处置异步资源时必需非常小心,因为这可能产生一些很严重的问题。   多时钟设计   本文以电信应用中的E3多路复用/解复用设计为例。如图4所示,多路复用器接收来自一组独立线路接口芯片的16个独立E1信道,每一个信道都工作于2.048MHz;经复用后,这些E1流组合成4个E2流,分别工作在8.0448MHz;4个E2流最后组合成一个E3流,以34.368Mbps的速率串行发送出去。在接收端执行相反的操作:解复用器从E3流提取4个E2数据流,然后从E2流提取16个E1流,最终将E1流发送到接收端的线路接口芯片。   这些E1线路接口在发送和接收时都独立工作,因此2.048MHz的时钟速率可以有+/-20ppm的偏差。同样,因为大多数系统同时发送和接收数据,分立的多路复用器和多路解复用器将提供2个独立的E3流(发送和接收)。因此,两个34.368MHz的时钟可以存在细微的差异。   由于E2流是在芯片上产生的,这些E2多路复用器可以共享同一个8.448MHz时钟。然而,由于接收的数据速率与我们所设计的板无关(且不能假定所有E2多路复用器使用相同时钟),所以E2解复用器时钟必须能工作在略为不同的速率下。   此外,假定设计中需要一个由工作频率为1MHz的处理器控制的独立SPI(串行外围接口)总线接口,该接口用于状态和控制。这样一来,设计中总共用了32个2.048MHz时钟,5个8.448MHz时钟,2个34.368MHz时钟和一个1MHz时钟,总共多达40个时钟。   本设计中最快时钟是34.368MHz   E3时钟。FPGA的最大时钟速率的确定很重要,因为设计的差异将影响到该最大值。然而,在芯片商的资料手册中常常可以看到“全局时钟设置及保持时间和“至CLB输出的时钟两个参数,将这两个参数的最大值相加,再增加25%就能可以得到最小时钟周期的初略值,在最大时钟速率条件下允许10%的余量,以保证过热条件下能正常工作。因此,我们设置的最小速率为40MHz,很多较新的FPGA都能够很容易地支持该频率。事实上,FPGA供应商已经推出了超过300MHz的器件。   在确定了能满足最大频率要求的FPGA后,就需要保证有足够的空间来实现你的设计。如果所选的FPGA没有足够的余量,就

文档评论(0)

aiwendang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档