描述
关键字:PCII33、GTL、I/O、IO标准、缓冲器、TCL脚本、LVDS、LVPECL、IO标准
紧迫性:标准
一般描述:
我想在我的设计中使用一个特定的I/O标准。如何在我的HDL代码中使用示例TCL脚本(命令行)来使用I/O标准缓冲区?
解决方案
一
若要为非差分I/O标准使用TCL脚本,您需要知道顶级端口名,然后可以使用命令行或脚本中的属性。
例子
下面的示例具有DATAIIN的顶级端口名称:
设置部分V50ECS144
-使用VXTEX“XCV”库和VXTEX-E的“XCVE”:
加载库XCVE
-读取VHDL/Verilog文件:
读取DyReal.V.
-将PAD属性设置为“DATAIIN”端口:
PAIF总线
优化目标XCVE
自动写入
二
使用VHDL属性配置LVDS I/O标准
-使用LVPECL,用“LVPECL”替换“LVDS”。
使用此示例使用TCL脚本,删除代码中的PAD属性并将其设置在TCL文件中。
例子
下面的示例说明了输入、输出和双向I/O:
库IEEE,范例;
使用IEEE.STDYLogiCy1164.ALL;
使用示例。
实体LVDSIOYATT是
端口(CLK,数据,TIN):在STDYLogic中;
IODATAYP,IODATAYN:IOUT STDYLogic;
QQP,QYN:缓冲STDYLogic
;
属性焊盘:字符串;
CLK的属性PAD:信号是“iBFGGLVDS”;
数据属性垫:信号为“iBFFLVDS”;
TIN属性PAD:信号为“iBFFLVDS”;
QPEP的属性垫:信号为“OBufl LVDS”;
QQN的属性垫:信号为“OBufl LVDS”;
IODATAYP的属性PAD:信号为“IOBUFIL LVDS”;
IODATAYN的属性PAD:信号为“OBUFTTL LVDS”;
CLK的属性Buffer-Sigg:信号是“BUFG”;
结束语;
LVDSIO-YATT的建筑行为
信号IODATAIIN:STDYLogic;
信号IODATAXOUT:STDYLogic;
信号IODATAXNUOUT:STDYLogic;
开始
MyyddReg:进程(CLK,数据)
开始
如果(CLK’事件和CLK = ‘1’)
QPp & lt=数据;
如果结束;
结束过程;
qnn& lt;
IODATAXOUT和LT;=数据和IODATAIGIN;
IODATAILIN和LT;
IODATAYNOXOUT & LT;=不IODATAXOUT;
IOYP:工艺(锡)
开始
如果(TiN=0)那么
IODATAYP<= IODATAOXOUT;
其他的
IODATAYP<=“Z”;
如果结束;
结束过程;
IOIN:过程(锡)
开始
如果(TiN=0)那么
IODATAYN<=IODATAXNSOUT;
其他的
IODATAYN<=“Z”;
如果结束;
结束过程;
结束行为;
三
使用Verilog属性配置LVDS I/O标准
-使用LVPECL,用“LVPECL”替换“LVDS”。
使用此示例使用TCL脚本,删除代码中的PAD属性并将其设置在TCL文件中。
例子
下面的示例说明了输入、输出和双向I/O:
模块LVDSIO-ATATT(CLK,数据,TIN,IODATAYP,IODATAYN,QYP,QYN);
输入CLK;//示例性属性CLK PAD
/*我想为CLK添加另一个属性来推断Bufg*/
输入数据;//示例性属性数据垫
输入TIN;//示例属性
IOUDATAYP;//示例性属性IODATAYP PAD IOBUFILLVDS
IOUDIATAYN;//示例性属性IODATAYN PAD OBUFTTHLVDS
输出QQP;//示例属性QYP PAD OBUFFLVDS
输出QYN;//示例属性QYN PAD OBUFFLVDS
线碘;
导线输出;
金属丝;
雷格;
总是@(POSEDGE CLK)
开始
QPp & lt=数据;
结束
赋值qnn= qqp;
指定IODATAXOUT =数据和;
指定IODATAIIN=IODATAYP;
指定IODATAXNUOUT= ~IODATAXOUT;
分配IODATAYP =(TiN=1’B0)?IODATAXOUT:1’BZ;
分配IODATAYN =(TIN=1’B0)?IODATAXNXOUT:1’BZ;
终端模块
没有回复内容