Altera fast output register和Xilinx IOB register详解

 测试代码如下:

 1  module led(
 2             CLOCK, 
 3             RESET, 
 4             LED
 5 );
 6 
 7     input CLOCK;
 8     input RESET;
 9     output reg [3:0] LED;
10     
11     always @(posedge CLOCK)
12     begin
13         if(RESET)
14             LED <= 4'h0;
15         else
16             LED <= 4'hf;
17     end
18 
19 endmodule

 在quartus中设置fast output register方法是:Assignment Editor - 找到管脚 - 选Fast Input/Output Register - On,如图所示:

下图是没有设置fast output register的Route结果:

下图是设置fast output register的Route结果:

可以看到两者的不同之处在于设置了fast output register会使用左下角的OUT FF,这个就是fast output register。从这个register输出到PAD的延时相对固定,所以如果输出是多路并行输出,使用fast output register可以使并行数据输出的延时基本保持一致并且相对固定。

在Xilinx中具有类似功能的是IOB register,在Vivado中设置IOB register的方法之一是在代码中增加(*IOB = “TRUE”*),例如,把代码输出部分改为:

   (*IOB = "TRUE"*) output reg [3:0] LED;

下图是没有设置IOB register的Route结果:

下图是设置IOB register的Route结果,与上图对比可以发现register被放置到了IOB中。

 总结一下,当输出数据是多路并行数据时,可以使用fast output register或IOB register来使并行数据之间的延时基本保持一致并且相对固定。输入同理。转载请注明出处。

转载于:https://www.cnblogs.com/fimwest/p/8413651.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值