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! }" jhttp://www.xilinx.com/itp/xilinx5/data/docs/lib/lib0317_301.html
% N0 ^7 d$ c, b; Q0 |7 K. mVerilog 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 |