基础XVHDL:使用全局缓冲区

描述


版本:F6.,F1.3/F1.4



紧迫性:标准



一般描述:



Xilinx FPGA具有提供低偏移量的全局缓冲器

高时钟和其他控制信号的高驱动

扇出。查阅Xilinx库指南更多

可用的各种类型的全局缓冲区的信息

与各种FPGA家族。



使用基础XVHDL使用全局缓冲区有3种方法:

1。自动插入

2。西林X-BUFG属性

三。实例化



也见(Xilinx解决方案1473)有关信息

控制推断的全局缓冲区的数量。



**注意此解决方案适用于Meta Maxor XVHDL编译器。

只有。如果使用Express HDL编译器,则可以控制

使用Express约束GUI插入全局缓冲区。

解决方案


自动插入

------------------

XVHDL自动将BUFG附加到任何输入端口信号上

它直接驱动时钟引脚。取决于哪一个Xilinx

器件家族是在基础项目管理器中选择的,

对BUFGs的最大数目可以设置一个极限。

自动插入到综合的XNF文件中,基于

关于器件的建筑能力。



当XVHDL在时钟网络上插入BUFG时,如上所述,

BUFG取代了iBF。因此,一个专用的

使用器件上的全局缓冲器输入焊盘。



西林X-BUFG属性

--------------------

XVHDL也可以插入任何一个BUFG。

指定输入端口信号,不管它是否是

时钟信号与否。使用“XILIXX-BUFG”属性作为

下面显示了访问此特性。再次,这个BUFG

替换了iBF,因此使用专用的全局缓冲器。

衬垫。此属性不会将BUFG附加到内部。

信号。只将此属性应用于顶级端口信号。



属性XILIXXBUFG:布尔;

属性的XILNXXBUFG;PoTr.No.G::信号是真的;



使用XILIXX-BUFG属性的例子



库IEEE;

使用IEEE.STDYLogiCy1164.ALL;



实体使用

端口(CLK,IN1,CE:在STDYLogic中;

OUT1:输出STDYLogic);



属性XILIXXBUFG:BooLeIn;-声明属性

CE:XILNXXBUFG的信号是真的;

--CE将使用BUFG

最终用途;



Buffg的体系结构测试

开始

过程(CLK)

开始

如果(CLK'事件和CLK = '1’)

如果Ce=1

OUT1和LIN= IN1;

如果结束;

如果结束;

结束过程;

结束测试;



实例化

--------------

也可以实例化全局缓冲区。用这个方法

用内部生成的信号驱动全局缓冲器,或

来控制使用的特定类型的全局缓冲区。如果,为了

实例中,在XC4000设计中,您希望指定使用

一个BUFGP而不是通用BUFG,你可以实例化

BUFGP,如下面的例子所示。



如果您希望使用专用输入焊盘

实例化的全局缓冲区,必须使用“抑制素BUF”

在输入信号端口上防止XVHDL的属性

在输入端插入一个iBF。这种iBF可以防止

使用专用输入焊盘的全局缓冲器。如果你

希望使用专用全球以外的输入焊盘

缓冲区输入垫,不要使用“抑止BUF”属性。

XVHDL将像普通输入和插入一样对待信号

在PAD和全局缓冲器之间的IGBF。



——实例化全局缓冲器的示例



库IEEE;

使用IEEE.STDYLogiCy1164.ALL;



实体使用

端口(CLK,IN1):在STDYLogic中;

OUT1:输出STDYLogic);



属性抑制物Buf:BooLeIn;-声明属性

CLK的属性抑制BUF:信号是真的;

-此属性防止XVHDL推断出一个iBF

——在CLK端口上,允许Xilinx软件

--使用专用时钟输入引脚。

最终用途;



Buffg的体系结构测试

信号BUFGPUOUT:STDYLogic;

组件BFGP

端口(I):在STDYLogic中;

o:输出STDYLogic);

端部元件;

开始



U1:BUFGP端口映射(I=& Gt;CLK,O= & Gt;BUFGPUOUT);



过程(BUFGPU-OUT)

开始

如果(BufgppOut'事件和BufgpExOUT=‘1’)

OUT1和LIN= IN1;

如果结束;

结束过程;



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

提问于 2018-07-29 13:55:24 +0800

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

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