Vivado综合属性系列之六 MAX_FANOUT

目录

一、前言

二、MAX_FANOUT

    ​    ​2.1 工程代码

    ​    ​2.2 工程结果

一、前言

    ​    ​在时序违例的工程中,有一个很常见的原因:高扇出,此时就需要降低信号的扇出,可通过属性MAX_FANOUT来控制信号的扇出值,当扇出大于设置值时,会进行寄存器复制来降低单个寄存器的扇出值。

二、MAX_FANOUT

    ​    ​MAX_FANOUT使用格式:(*MAX_FANOUT=VALUE*) reg  reg_test;

该属性只能用于RTL中,不能用于XDC中,并且输入端口,black boxes,EDIF,NGC文件不支持。

    ​    ​2.1 工程代码

设计一个寄存器reg_driver的输出连接到30个寄存器,同时MAX_FANOUT设置为10,

module MAX_FANOUT( d,d0,clk,ce,c,rs,out );

input [29:0] d,ce;

input d0,clk,c,rs;

output [29:0] out;

(*MAX_FANOUT=10*) reg reg_driver;

// Design Name: 

always@(posedge clk)

begin

if(ce)

reg_driver<=0;

else

reg_driver<=d0;

end

genvar i;

generate 

for(i=0;i<30;i=i+1)

   begin

   FDRE FDRE_inst1 (.Q(out[i]),  .C(c),.CE(ce[i]), .R(rs),  .D(reg_driver) );

   end

endgenerate

endmodule

    ​    ​2.2 工程结果

左侧的网表中reg_driver_reg_rep,reg_driver_reg_rep_0为自动复制出来的两个寄存器,右侧网表连接中可看出此时由3个寄存器来共同驱动30个寄存器

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值