SpuliTys:如何应用XF9500器件的BUFG属性?

描述

关键词:9500,SypPerimes,Verilog,VHDL,BUFG

紧迫性:标准

遗传描述:
如何在Spple中应用XF9500器件的BUFG属性?

BUFG属性可以应用于任何输入缓冲器(IBF)、输入焊盘。
NET或内部网络驱动CLK、OE或SR PIN。

当应用于输入缓冲器或输入PAD网时,TH BUFG属性映射
标记的信号到全局网络。当应用于内部网络时,
标记信号被带到全局器件控制引脚,然后路由。
通过全局网络连接到内部控制引脚。路由控制
结果对受影响的控制路径具有更高的速度和减少。
产品术语的使用。改进性能的成本是
器件输入引脚。功能性行为保持不变。

BUFG属性具有以下值:CLK、OE或SR,其中CLK,
OE和SR分别指示时钟、输出使能或SET/RESET。

在A1.5软件中,BUFG属性只能应用于输入端口。
这意味着希望控制总线输出的用户可以从内部逻辑实现。
CPLD(所有9500 - 9500,9500 XL,9500×V)将需要通过信号输出。
在连接到OE控制点之前向器件引脚和返回。

在A2.1i中,BUFG属性可以直接应用于内部网。fitter
然后通过“GTS”类型(或其他指定)自动路由信号。
键入I/O引脚来控制OES。

笔记:
当时钟网络有16扇出时,Sypulistic 5.3和较早地推断BUFG组件用于9500种设计。
这对于外部输入时钟是很好的。但是,不会对内部时钟工作。
为了解决这个问题,你需要做两件事:
1。内置的SynNoCox属性,以防止BUFG推理。
2。在内部网络上附加的BUFG=CLK属性。
参见下面的内部时钟的VHDL/Verilog示例。

-时钟反转在每个宏单元中都适用于9500 XL器件;在9500(非XL)器件中
每个时钟边缘使用一条全局线来实现。因此,当两个Bufg都使用时
时钟的边缘被使用。例如,如果在设计和使用中有两个时钟(CLKA和CLKB)
每个时钟的两个边沿;您将使用总共4个全局时钟,并且设计将不适合。
(9500个XL器件中只有3个全局时钟可用)。
若要禁用Bufg插入到特定时钟,请设置SynNoCnCuBuf属性。

解决方案

/ Verilog

模块BUFGGEX1(DIN,CLK,QOUT);
输入[1:0] DIN;
输入CLK;
输出QOUT;

Reg [1:0] QuuttIn;

线节点/*综合SyiStIn=1 xCpPROPS=“BUFG=OE”*/

总是@(POSEDGE CLK)
QuuthIn=Din;

赋值节点=和;

分配QOUT =(节点)?QuutiTin〔0〕:1’BZ;

终端模块

——VHDL语言

库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
库同步化;
使用SypIFIF.AtvestTo.ALL;

实体BufgxEX1是
端口(DIN:在STdLogLogic向量中(1下降到0);
CLK:在STDYLogic中;
QUOT:输出STDYLogic);
末端BUFGEX1;

BuffgxEX1的体系结构Xilinx

信号QUTUTIN:STDYLogLogic向量(1下降到0);

信号节点:STDYLogic;
节点的属性同步保持:信号为真;
节点的XCI属性:信号为“BUFG=OE”;

开始

过程(CLK)
开始
如果上升沿(CLK),那么
Quuthin It & lt;
如果结束;
结束过程;

节点& lt;=qOutiTin(1)和QuutiTin(0);

qOut<=QuutiTin(0)当(节点=‘1’)否则“z”;

末端Xilinx;

——用SDC文件进行内部时钟的VHDL示例。
SDC文件需要将BUFG=CLK属性附加到适当的信号上

库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
使用SypIFIF.AtvestTo.ALL;

实体ItBufg是端口(I1:在STDYLogic中;
CLKA:在STDYLogic中;
DA:在StdLogLogic向量(17下降到0);
dB:在StdLogLogic向量中(17下降到0);
QA:外STDLogLogic向量(17下降到0);
QB:ExtSdLogLogic向量(17下降到0);
结束语;

因特福格建筑Xilinx

信号CKB: STDYLogic;

开始
过程(CLKA)
开始
如果CLKA'事件和CLKA=“1”,那么
QA & lt;
Clkb=I1;
如果结束;
结束过程;

过程(CLKB)
开始
如果CLKB'事件和CLKB=“1”,那么
qb& lt;
如果结束;
结束过程;

末端Xilinx;

第二课
SDC实例
注:N:CKB表示属性将附加到“Net”CLKB。
没有“n:”,属性将附加到FD(FLOP)实例。

定义属性{CKKB} SynOnCnNOBUFF { 1 }
定义属性{n:CLKB} XCpPROP{BUFG=CLK}


//verilog示例,用于带有SDC文件的内部时钟。
//sDC文件需要将BUFG=CLK属性附加到适当的信号上

模块ItBufg(I1,CLKA,DA,DB,QA,QB);
输入CKA,I1;
输入[17:0] DA,db;
输出[17:0] QA,QB;

RG[17:0] QA,QB;
CRKB;

总是@(Press Celk)
开始
QA=DA;
CLKB= I1;
结束

总是@(PASEDGE CLKB)
QB=DB;

终端模块

第二课
SDC实例
注:N:CKB表示属性将附加到“Net”CLKB。
没有“n:”,属性将附加到FD(FLOP)实例。

定义属性{CKKB} SynOnCnNOBUFF { 1 }
定义属性{n:CLKB} XCpPROP{BUFG=CLK}

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-29 19:20:28 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它