找回密码
 注册
关于网站域名变更的通知
查看: 639|回复: 2
打印 上一主题 下一主题

(Xilinx)在FPGA中LVDS差分高速传输是怎样实现的(中)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-8-8 09:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

Spartan-3E系列FPGA器件差分I/O接口输出工作的特性参数:

% z2 s/ W# S9 F8 y. f5 v1 p- @0 _

From:Spartan-3E FPGA Family:Complete Data Sheet    p127

Xilinx公司差分原语的使用

(原语,其英文名字为Primitive,是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的库函数,类似于C++中的“cout”等关键字,是芯片中的基本元件,代表FPGA中实际拥有的硬件逻辑单元,如LUT,D触发器,RAM等,相当于软件中的机器语言。在实现过程中的翻译步骤时,要将所有的设计单元都转译为目标器件中的基本元件,否则就是不可实现的。原语在设计中可以直接例化使用,是最直接的代码输入方式,其和HDL语言的关系,类似于汇编语言和C语言的关系。)

关于Xilinx原语的详细介绍,可以参考下面文章

1)FPGA开发实用教程  第4节 Xilinx公司原语的使用方法

2)ISE的Help—sofeware Manuals


( k7 y/ e! b2 [3 D- B+ V* E

差分I/O端口组件

1)           IBUFDS

IBUFDS原语用于将差分输入信号转化成标准单端信号,且可加入可选延迟。在IBUFDS原语中,输入信号为I、IB,一个为主,一个为从,二者相位相反。 # c- D+ K7 y) O. o6 i7 q& L
IBUFDS的逻辑真值表所列,其中“-*”表示输出维持上一次的输出值,保持不变。

表IBUFDS原语的输入、输出真值表 ' {* ?3 b  ]# v3 V( k8 R! B' X

IBUFDS原语的例化代码模板如下所示: * j0 j$ O6 \5 w$ X1 N% F

0 ?; J( a; O# X// IBUFDS: 差分输入缓冲器(Differential Input Buffer)
. C& o, A: }3 _* p7 s, N& i// 适用芯片:Virtex-II/II-Pro/4, Spartan-3/3E ( Z7 G  d" b8 A( `5 ?& T/ @
// Xilinx HDL库向导版本,ISE 9.1 $ S7 j$ h. E+ f! D% V
IBUFDS #( : ]7 P4 Q) W1 b; S& i
.DIFF_TERM("FALSE"), ) k- Z3 i9 R( q8 `* Q: c+ l
// 差分终端,只有Virtex-4系列芯片才有,可设置为True/Flase
/ P" ?" s/ j2 j/ c! W& Y.IOSTANDARD("DEFAULT")
! w: ]7 ]% ?# A9 [// 指定输入端口的电平标准,如果不确定,可设为DEFAULT 7 Q$ F& Z4 I4 G8 ?! u. H3 I
) IBUFDS_inst (
0 `  n, f3 s$ S, ~$ U' X5 k.O(O), // 时钟缓冲输出 + n7 _+ Y% Z6 o4 O7 t: M
.I(I), // 差分时钟的正端输入,需要和顶层模块的端口直接连接 2 B. n# i( R/ Q/ v
.IB(IB) // 差分时钟的负端输入,需要和顶层模块的端口直接连接   b5 Z+ a8 G; Z, }# d5 P/ i/ R
);
( S0 @  k( V) H* e9 H// 结束IBUFDS模块的例化过程 : g9 |" O7 p- u( n$ L3 `$ }  I

  Z0 }. V! l2 M  V8 T

http://www.xilinx.com/itp/xilinx6/books/data/docs/lib/lib0229_197.html

( w" {0 R0 d  z% ^

Verilog Instantiation Template

IBUFDS instance_name (.O (user_O),

                                  .I (user_I),

                                  .IB (user_IB));

在综合结果分析时,IBUFDS的RTL结构如图所示。

" w0 U3 ]8 `9 m$ u
图IBUFDS原语的RTL结构图

2)        OBUFDS

OBUFDS将标准单端信号转换成差分信号,输出端口需要直接对应到顶层模块的输出信号,和IBUFDS为一对互逆操作。OBUFDS原语的真值表如表所列。

表OBUFDS原语的真值表
4 D6 t3 S9 K+ C/ ?/ X4 T

OBUFDS原语的例化代码模板如下所示: 1 E1 y: b& r2 `" X8 }

6 @! x3 s) D9 L$ @1 D9 G$ ^' J! T// OBUFDS: 差分输出缓冲器(Differential Output Buffer) ) ?. Z: Q& J5 d* x& h
// 适用芯片:Virtex-II/II-Pro/4, Spartan-3/3E 9 s8 u1 r  _) Y8 D/ o' k
// Xilinx HDL库向导版本,ISE 9.1
+ y6 e; D! a/ R3 lOBUFDS #( / z% S; k; l! s- i9 f
.IOSTANDARD("DEFAULT") $ }( z6 v! H, v+ D. G, C
// 指名输出端口的电平标准 6 l8 g; e+ I6 d% t+ w: H% O  R, Y
) OBUFDS_inst ( 2 b' ]6 h# p' I8 l3 y
.O(O), // 差分正端输出,直接连接到顶层模块端口 " f0 I0 s" k; Y
.OB(OB), // 差分负端输出,直接连接到顶层模块端口 . q: Q+ k' p% {/ w5 }( Z/ F
.I(I) // 缓冲器输入 $ i+ g+ H" b0 V  s: i1 ^
);
0 U6 }3 k8 n6 s9 D6 h, V5 x8 Q! `// 结束OBUFDS模块的例化过程


0 \% ?. z  B! }" j

http://www.xilinx.com/itp/xilinx5/data/docs/lib/lib0317_301.html


% N0 ^7 d$ c, b; Q0 |7 K. m

Verilog Instantiation Template

OBUFDS instance_name (.O (user_O),

                                  .OB (user_OB),

                                  .I (user_I));

在综合结果分析时,OBUFDS原语的RTL结构如图所示。

* g" s2 X- W4 q* }+ P9 J
图OBUFDS的RTL结构图

3) IOBUFDS

IOBUFDS原语真值表

IOBUFDS的RTL结构图


8 N6 p9 B6 A4 j" T& g7 U% T


" H. c( `' D- D: j' T; m


! b9 R# h! a9 L0 t7 V
9 K  b' c% E% z: {0 b, _* O( S
5 E/ m' T& c* @! a- u4 R

该用户从未签到

3#
发表于 2022-4-12 15:03 | 只看该作者
在FPGA中LVDS差分高速传输是怎样实现的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-5 21:52 , Processed in 0.156250 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表