ViTeX-E,SpartanIILVDS/LVPECL -我如何使用LVDS/LVPECL I/O标准?-Xilinx-AMD社区-FPGA CPLD-ChipDebug

ViTeX-E,SpartanIILVDS/LVPECL -我如何使用LVDS/LVPECL I/O标准?

描述

如何设计ViTeX-E/Sptri IILVDS或LVPECL I/OS?

解决方案

当使用LVDS IOFFAST时,必须创建具有完整PUNLC信息的UCF或NCF文件,以确保不违反I/OBank规则。如果未使用UCF或NCF文件,PAR将发布错误。使用LVDS标准有两种方法:

1。在UCF文件中使用IOntRead属性。
2。实例化LVDS输入和输出缓冲器。

LVDS输入缓冲器:

LVDS输入缓冲器可以放置在广泛的IOB位置。确切的位置取决于所使用的软件包。ViTEX-E/SpTAN-IIE包信息列出了可能的位置,作为p侧的IOAL L p p,以及n侧的IOIL Lαn(其中“α”是对数)。

使用UCF文件:

下面的语法可以在UCF文件中使用,以将IONT设置为LVDS:

输入网络名称&标准IV= LVDS;
输入网络名称GT;LOC= P(PIN名称);

以上是一个LVDS输入引脚的例子。在真正的设计中,用户必须锁定UCF文件中的所有I/O引脚。否则,PAR将发布错误。

HDL实例化:

在设计中只需要输入一个输入缓冲器,并放置在正确的IOIL L p位置。缓冲器的N侧将被保留,并且不允许其他IOB放置在该位置上。

在物理器件中,启用一个配置选项,该路由选项将焊盘线从IOIL L IN IOB路由到位于IOIL L P P IOB中的差分输入缓冲器。该缓冲器的输出然后驱动IOIL L P P单元或IOIOL L P P IOB中的输入寄存器的输出。在FPGA编辑器中,将显示第二个缓冲区未被使用。然而,任何企图使用这个位置的另一个目的将导致软件中的DRC错误。

–VHDL实例化:
DATA0SIP:IFDFLVDS端口映射(I=& Gt;数据(0),O= & Gt;DATAAIN(0));

——Verilog实例化:
IbfFiLVDS DATA0Pp(.i(Data(0)),o(DATAAIN [ 0)];

位置约束:

所有LVDS缓冲器必须显式地放置在器件上。对于输入缓冲区,可以在“.UCF”或“.NCF”文件中执行以下约束。

NET数据lt;0 & gt;LOC= D28;

创建LVDS输出缓冲器

LVDS输出缓冲器可以放置在广泛的IOB位置。确切的位置取决于所使用的软件包。ViTEX-E/Sptri IIE包信息列出了可能的位置,作为p侧的IOAL L p,以及n侧的IOIL Lαn(其中“α”是对数)。

使用UCF文件:

下面的语法可以在UCF文件中使用,以指定输出的LVDS IO标准。

注释这两个输出必须在UCF文件中指定,并锁定到正、负输出引脚。

输出焊盘网络名称正负gt;
输出焊盘网名称为负值gt;
输出焊盘网名称正值gt;LOC=p22;
输出焊盘网名称为负值gt;LOC=p23;

以上是一对LVDS输出的例子。在真正的设计中,用户必须锁定所有的I/O引脚。否则,PAR将发布错误。

HDL实例化

两个输出缓冲器都需要在设计中被实例化,并且放置在正确的IOIL L P和IOL LαN位置上。此外,输出(O)引脚必须彼此相反(一个高和一个低)。不遵守这些规则会导致DRC软件错误。

——VHDL实例化

DATA0SIP:OUFFFILVDS端口映射(I=& Gt;DATAAIN(0),O= & GT;DATAYP(0));
DATA0IIN:IV端口映射(I=& Gt;DATAAIN(0),O= & GT;DATAYNNIN(0));
DATA0IN:OBUFFILVDS端口映射(I= & Gt;DATAYNNIN(0),O= & GT;DATAYN(0));

——Verilog实例化

OBFFYLVDS DATA0P P(.I(DATAIN IT[ 0)],O(DATAYP〔0〕);
IV DATA0IIN(I)(DATAIN IT[ 0 ],O(DATAYNNIN国际标准〔0〕);
OBFFYLVDS DATA0N(I)(DATAYNNIN〔0〕),O(DATAYN〔0〕);

位置约束

所有LVDS缓冲器必须显式地放置在器件上。对于输出缓冲区,可以在“.UCF”或“.NCF”文件中用以下约束完成:

NET DATAYP & lt;0和gt;LOC= D28;γIOILL0P
NET DATAN & lt;0和gt;LOC= B29;

同步与异步输出

如果输出是同步的(在IOB中注册),那么可以使用任何IOIL Lπn对。如果输出是异步的(无输出寄存器),则必须使用器件中一行或列结束时的相同IOB组的一对。

可以用作异步输出的LVDS对在VITEX-E或SMTAN-IIE PIN OUT表中列出。一些对被标记为对于该包中的所有器件都是异步的,并且其他标记仅针对包中的特定器件可用。如果器件的大小可能在产品生命周期的某个时间点发生变化,那么只需要使用所有包的公共对。

添加输出寄存器(同步输出)

所有的LVDS缓冲器可以在IOB中具有输出寄存器。输出寄存器必须在p侧和n侧IOBs中。所有正常的IOB寄存器选项是可用的(FD,FDE,FDC,FDCE,FDP,FDPE,FDR,FDRE,FDS,FDSE,LD,LDE,LDC,LDCE,LDP,LDPE)。寄存器元件可以在HDL代码中推断或显式实例化。

必须特别注意确保寄存器的D引脚被反转,并且寄存器的init状态彼此相反。时钟引脚(C),时钟使能(CE)和SET/RESET(CLR/PROR或S/R)引脚必须连接到同一个源。如果不这样做,就会导致软件中的DRC错误。

寄存器元件可以在IOB中使用寄存器上的IOB属性“true”或使用“map -PR[i o o b] ](其中“i”)仅为输入,“O”是输出,而“B”是输入和输出。

下面是VHDL代码的例子,使用LVDS注册输出和LVDS输入“A”,以V100EPQ240为目标。它使用LVDS实例化和UCF IOntRead属性:

库IEEE;
使用IEEE.STDYLogiCy1164.ALL;

实体复用器

端口(A、B、C、D、E、F、G、H、CLK、RESET):在STDYLogic中;
在StdLogLogic向量中(2下降到0);
q,qyn:OUT STDYLogic;
结束实体;

多路复用器的体系结构

组件OBUFFLVDS端口
I:在STDYLogic中;
o:输出STDYLogic);
端部元件;

信号aaIn,qyIt,MuxIOUT,MuxOutOutn,MuxOutnnReg:STDyLogic;

开始

过程(A、B、C、D、E、F、G、H、S)
开始

案例S
当“000”=gt;
QuiTn& lt;
当“001”=gt;
QuiTn& lt;
当“010”=gt;
QuiTn& lt;
当“011”=gt;
QuiTn& lt;
当“100”=gt;
QuiTn& lt;
当“101”=gt;
QuiTn& lt;
当“110”=gt;
QuiTn& lt;
当“111”=gt;
QuiTn& lt;
当别人= & gt;
Q’In & lt;
结束情况;
结束过程;

进程(CLK,复位)
开始
如果(重置=‘1’)
MuxIOUT & lt;= ‘0’;
然后ELSIF(CLK’事件和CLK = ‘1))
MuxIOUT & lt;
如果结束;
结束过程;
MuxOxOutn & lt;

进程(CLK,复位)
开始
如果(重置=‘1’)
MuxOutnnReg & lt;
然后ELSIF(CLK’事件和CLK = ‘1))
MuxOutnnReg & lt;=MuxGuxOutn;
如果结束;
结束过程;

U1:OBuFFLVDS端口映射(I=& Gt;MuxIOUT,O=& gt;q);
U2:OBuFFLVDS端口映射(I=& Gt;MuxOutnnReg,O= & Gt;qyn);

结束语;

以下是UCF约束:

网Q LOC=P20;
净QYN LOC=P21;
净A标准=LVDS;
NET A LOC= P27;
Nb LOC=P168;
NET C LOC=P167;
净D LOC=P163;
NET E LOC=P162;
净FLC= P161;
Ng LOC=P160;
NH-LOC=P159;
NET CLK LOC=210;
净复位LOC=P157;
净S(0)LOC=P156;
NET S(1)LOC=P155;
NET S(2)LOC=P154;

确保MAP -PR选项用于确保FFS被推到I/O块内。

用LVPECL标准设计与LVDS设计相同。用户必须在HDL代码中实例化I/O缓冲区名称。

有关更详细的信息,请参阅Xilinx VelTeX-E数据表,可在:
HTTP://www. Spult.xILIX.COM/XLNX/XWeb/XILIPu外宣SyDePas.jSP?SGulalNavPox&=;SdiaLaNavaPoice=&类别=-18776和iLangaGID=1

Xilinx应用笔记“使用ViTeX选择/ O资源”Xilinx XAP133):
HTTP://www. xLimx.COM/Sputto/DooptActudio/AppultIs/NoSe/XAPP133.PDF

有关更详细的信息,请参阅XilinxSpartanIIE数据表,可在:
HTTP://www. Spult.xILIX.COM/XLNX/XWeb/XILIPu外宣SyDePas.jSP?SGulalNavPox&=;SdiaLaNavaPoice=&类别=-18778和iLangaGID=1

Xilinx应用笔记“在SpartanII和SpartanIIFPGA中使用SCORITI/O接口”赛灵思XAPP179):
HTTP://www. xLimx.COM/Sputto/DooptActual/AppultTys/NAPES/XAPP179PDF

请登录后发表评论

    没有回复内容