- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大型设计中FPGA的多时钟设计策略详解
大型设计中 FPGA 的多时钟设计策略
Tim Behne 软件与信号处理部经理 Microwave Networks 公司
Email: timothyb@
利用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 的最大时钟速率的确定很重要
文档评论(0)