EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
5 t9 f3 s q# l; X Y
. ]# y3 S! z3 q4 h: l( g3 E
: F S) {3 V3 ]$ m2 k利用 FPGA 实现大型设计时,可能需要 FPGA 具有以多个时钟运行的多重数据通路,这种多时钟 FPGA 设计必须特别小心,需要注意最大时钟速率、抖动、最大时钟数、异步时钟设计和时钟/数据关系。设计过程中最重要的一步是确定要用多少个不同的时钟,以及如何进行布线,本文将对这些设计策略深入阐述。% Q3 j0 z# h9 p# W, H
& m$ ^5 m0 u! Q+ M8 \- w
3 s+ p& Y& E+ y# z3 Q, j
FPGA 设计的第一步是决定需要什么样的时钟速率,设计中最快的时钟将确定 FPGA 必须能处理的时钟速率。最快时钟速率由设计中两个触发器之间一个信号的传输时间 P 来决定,如果 P 大于时钟周期 T,则当信号在一个触发器上改变后,在下一个逻辑级上将不会改变,直到两个时钟周期以后才改变,如图 1 所示。
1 ~; I& r5 r6 K& |3 H8 }. P0 v3 w# Y. R, U
, S x; ~" X4 C- a8 L传输时间为信号在第一个触发器输出处所需的保持时间加上两级之间的任何组合逻辑的延迟,再加两级之间的布线延迟以及信号进入第二级触发器的设置时间。无论时钟速率为多少,每一个 FPGA 设计所用的时钟必须具有低抖动特性。抖动 S 是触发器的一个时钟输入到另一个触发器的时钟输入之间的最大延迟。为使电路正常工作,抖动必须小于两个触发器之间的传输时间。1 V- x" T, O! l' E, M9 O
# F7 }- @5 z4 I7 v4 g- L
* i- I% A/ P7 l9 l: `. i0 Z图 2 显示了如果抖动大于传输时间(S>P)将出现的情况,该电路用时钟的两个上升沿来延迟信号 1。然而,信号 1 上的一个改变会在相同的时钟周期上传输到的信号 3 上,从而引起信号 2 的改变。因为 S>P,电路将不能不正常。 6 k) @) H/ \0 E
& g" }% W7 T7 P6 [- D. s% n3 ]5 I
7 F3 \5 p( O1 E. I; t" K0 {: N( L0 m h8 q% v$ `/ N
|