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

技术分类: EDA工具与服务  | 2008-07-24
赛灵思公司 | Nick Sawyer等

  以下 Verilog 代码用生成环来执行接收倒相
.
parameter [2:0] SWAP_MASK = 3'b010;
.
.
genvar i;
generate
for (i = 0; i <= 2; i = i + 1)
begin: loop0
IBUFDS
#(.IOSTANDARD("LVDS_25"), .IBUF_DELAY_VALUE("0"), .DIFF_TERM("FALSE"))
ibuf_d (.I(datain_p[i]), .IB(datain_n[i]), .O(rx_input[i]));
assign rx_input_fix[i] = rx_input[i] ^ SWAP_MASK[i];
end
endgenerate

  以下 VHDL 代码用生成环来执行接收倒相:
.
constant SWAP_MASK : std_logic_vector(2 downto 0):= "010";
.
.
loop0: for i in 0 to 2 generate
ibuf_d: ibufds generic map
(IOSTANDARD => "LVDS_25", IBUF_DELAY_VALUE => "0", DIFF_TERM => FALSE)
port map
(i => datain_p(i), iB => datain_n(i), o => ; rx_input(i));
rx_input_fix(i) <= rx_input(i) xor SWAP_MASK(i);
end generate;

  通过修改红色的粗体字符,可以方便地将此机制扩展到不同的位宽。

  IOB 输入触发器的同步使用

  通常,输入信号寄存在 IOB 触发器中,因为高速数据传输是使用 LVDS 的最常见的原因。可使用下列技术之一来寄存数据:

单数据速率 (SDR) 技术,这种技术在 IOB 中只使用一个(通常是正沿触发的)触发器或者
双数据速率 (DDR) 技术,这种技术使用正沿和负沿都触发的触发器对输入数据线进行采样

  在两种情况下都不可能在输入放大器和触发器之间反转输入信号,因为 IOB 模块中的触发器没有可倒相的输入。倒相器需要添加到 IOB 输入触发器后,它们可以被吸收到其后的寄存逻辑或组合逻辑中。

  SDR 示例

  图5 所示为 IOB 中带有一个触发器的 SDR 方案。

SDR 方案

  以下代码说明针对相同生成环示例的 SDR 寄存情况。唯一的变化是增加了触发器例示。
Verilog 语言代码:
.
parameter [2:0] SWAP_MASK = 3'b010;
.
.
genvar i;
generate
for (i = 0; i <= 2; i = i + 1)
begin: loop0
IBUFDS#(.IOSTANDARD("LVDS_25"), .IFD_DELAY_VALUE("0"), .DIFF_TERM("FALSE"))
ibuf_d (.I(datain_p[i]), .IB(datain_n[i]), .O(rx_input[i]));
FD fd_d (.C(clkin), .D(rx_input[i]), .Q(rx_input_reg[i]));
assign rx_input_fix[i] = rx_input_reg[i] ^ SWAP_MASK[i];
end
endgenerate

  VHDL 语言代码:
.
constant SWAP_MASK : std_logic_vector(2 downto 0):= "010";
.
.
loop0: for i in 0 to 2 generate
ibuf_d: ibufds
generic map (IOSTANDARD => "LVDS_25", IFD_DELAY_VALUE => "0", DIFF_TERM => FALSE)
port map (i => datain_p(i), iB => datain_n(i), o => rx_input(i));
fd_d: fd port map (c => clkin, d => rx_input(i), q => rx_input_reg(i));
rx_input_fix(i) <= rx_input_reg(i) xor SWAP_MASK(i);
end generate;

  通过修改红色的粗体字符,可以方便地将此机制扩展到不同的位宽。

  输入 DDR 示例

  图 6 所示为接收 DDR 方案,其中每条输入线生成两条可能需要倒相的内部数据线。对于Spartan-3E FPGA 的 DDR 输入,推荐使用新型的 IDDR2 输入触发器结构。这种结构去除了从下降沿到下一上升沿的所有通路,从而可以使内部逻辑更容易设计。要了解有关 IDDR2 的详情,请参阅 DS312 《Spartan-3E FPGA 系列数据手册》。

DDR 方案

0
0
(请您对文章做出评价)
1】【2】【3】【4
加载中

对文章的评论

更多评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

  • 博客推荐

  • 论坛推荐

  • 在线研讨会