目录
一、前言
二、CLOCK_BUFFER_TYPE
2.1 属性说明
2.2 工程代码
2.3 结果
一、前言
在设计中,对于时钟端口驱动时钟单元时,工具会自动综合出全局时钟BUFG连接时钟源和时钟负载。当存在全局时钟BUFG不足或者因为某些原因不想使用BUFG时,想使用其他时钟BUF如BUFH,BUFR等,可通过属性CLOCK_BUFFER_TYPE来实现。
二、CLOCK_BUFFER_TYPE
2.1 属性说明
CLOCK_BUFFER_TYPE用于指定时钟BUFFER的类型,通常未指定是,默认为BUFG,属性可直接代码中设置也可在XDC文件中使用。
使用模板:(* CLOCK_BUFFER_TYPE=VALUE*) input clk;
VALUE可设置为BUFG、BUFH、BUFR、BUFMR、BUFIO、NONE六个值,分别对应全局时钟,水平时钟,区域时钟,跨区域时钟,IO时钟,默认值。
2.2 工程代码
设计中对3个触发器使用BUFG、BUFH、BUFR作为示例
module DIRECT_ENABLE_test( d,ce,clkbufg,clkbufh,clkbufr,out );
(*CLOCK_BUFFER_TYPE="BUFG"*)input clkbufg;
(*CLOCK_BUFFER_TYPE="BUFH"*)input clkbufh;
(*CLOCK_BUFFER_TYPE="BUFR"*)input clkbufr;
input ce;
input [2:0]d;
output out;
reg [2:0] out;
always@(posedge clkbufg)
begin
if(ce)
out[0]<=d[0];
end
always@(posedge clkbufh)
begin
if(ce)
out[1]<=d[1];
end
always@(posedge clkbufr)
begin
if(ce)
out[2]<=d[2];
end
endmodule
2.3 结果
如下图,时钟端口最终综合为CLOCK_BUFFER_TYPE设置的类型