EDN China > 设计实例 > EDA工具与服务 > 正文
?

(多图) Spartan-3 FPGA系列中高效PCB布局的LVDS信号倒相

赛灵思公司/Nick Sawyer等?? 2008年07月24日 ?? 收藏0

  提要

  在比较简单的未大量使用过孔的四层或六层 PCB 上,可能很难对 LVDS 或 LVPECL 这类差分信号布线。其原因是,驱动器上的正极引脚必须驱动接收器上的相应正极引脚,而负极引脚则必须驱动接收器的负极引脚。有时迹线以错误的方向结束,这实际上是向电路中添加了一个倒相器。本应用指南说明 Spartan?- 3 FPGA 系列如何仅通过在接收器数据通路中加入一个倒相器即可避免大量使用过孔,并且在不要求 PCB 重新设计的情况下即可解决意外的 PCB 迹线交换问题。这项技术同样适用于将 FPGA 用作驱动器的情况,而且交换迹线可使得在其他器件或连接器上的 PCB 布线更容易。

  简介

  图1 所示为一个 PCB 示例,其中正极引脚驱动接收器的正极引脚,负极引脚驱动接收器的负极引脚。如果引脚被意外交换,那么 PCB 迹线实际上就变成了一个倒相器,这就可能需要电路板重新设计。

  图2 说明 Spartan-3 FPGA 系列如何通过在接收器数据通路中加入必要的倒相器来解决这一问题。有此功能,设计人员便可以为简化布线而任意交换迹线。因此,PCB 设计人员可以为实现最大信号完整性而自由布置差分对;所发生的任何交换都可以在 FPGA 内部得到校正。如果使用 DCM (请参阅“异步输入”),则这一布线的自由仅适用于数据线,而“不”适用于时钟线。交换线路绝对不会损坏器件。

PCB 示例

  吸收倒相器示例

  在两种情况下,可以向前吸收倒相器:

1. 当直接驱动触发器输入时
2. 当驱动到逻辑函数中时

  在第一种情况下,Spartan-3 FPGA 系列在 CLB 触发器的直接 (D) 输入路径上有一个多路复用器(如图3 所示)。此多路复用器在真实输入信号和补充输入信号之间进行选择。它通过一个配置单元进行配置,该单元由加载到此器件中的比特流进行初始化。用户在操作过程中不能访问多路复用器。

输入路径上有一个多路复用器

  在第二种情况下,倒相器直接就被吸收了。例如,如果一个执行“B = ~A”的倒相器后面紧跟着一个执行“D = B 与 C”的与门,那么一种简单的替代方式就是一个无倒相器的执行“D =~A 与 C”的与门;换句话说,就逻辑的利用和延迟而言,倒相器吸收永远是“自由”的。

  这种倒相器吸收的机制也适用于 IOB 输出触发器。同样,如果是为简化 PCB 布局所需,这种吸收可以“自由”地在 FPGA 的输出通路中加入倒相器。如果 FPGA 驱动某接插件,而此接插件带有与此 FPGA 的 N 和 P 两个 LVDS 输出直接匹配的预定义引脚,则此机制可以起到帮助作用。

  异步输入

  图2 是可以考虑的最简单的示例。接收到的经过交换的 LVDS 信号将用在 FPGA 内部的组合逻辑中。在此例中,只需将一个简单的倒相器添加到代码中。此倒相器的代码以 Verilog 和 VHDL语言表述如下:

  Verilog: assign rx_input_fix = ~rx_input;
VHDL: rx_input_fix <= not rx_input;

  可以将此倒相器吸收到由输入信号驱动的组合逻辑中,也可以将其吸收到 FPGA 内部的某个触发器的 D 输入中,但不能将其吸收到 FPGA 的 IOB 内的触发器、DCM 或 BUFGMUX 时钟缓冲器中。因此,引脚交换的灵活性无法用到将用于数据时钟的时钟信号上。如果上述时钟只是系统的振荡器,那么可以交换线路并且不需要再倒相,这样做不会产生任何负面效应。

  图4 所示示例中的输入实际上是一条由“n”个信号对组成的总线。其中某些信号对是正确的,而其他信号对则为了方便而进行了交换。此例中,在设计中最好定义一个对应这“n”个输入的掩码。该掩码用来有选择地反转(事实上不包括“与”)那些需要校正的位,但不反转接收无误的位。在图4 中,位 0 和 2 是正确的,而位 1 需要倒相。在代码中处理校正的最好方式是使用生成环,它们可以例化输入缓冲器并且有选择地逐位执行倒相。

例化输入缓冲器


上一页1234下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

Spartan? FPGA? PCB? LVDS?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈