Xilinx器件中,寄存器型时序变量如果不指定初始值,配置完成后是全零值还是随机值?
时间:10-02
整理:3721RD
点击:
在《xilinx可编程逻辑器件技术详解》中提到,如果不进行初始化,默认值为全零,但又无法从Xilinx官网上找到相应支持,其综合手册里只提到初始化的有效性,
我自己试验的结果似乎确实如该书提到的这样,但一个同事又说他碰到不是这样的,大家有权威些的解答吗?
我自己试验的结果似乎确实如该书提到的这样,但一个同事又说他碰到不是这样的,大家有权威些的解答吗?
http://www.eefocus.com/article/10-03/94264s.html,该书的相关链接
默认是零,但如果改变初值可以更省资源,理论上会变更初始值。
默认都是全零。包括没有连接输入的信号。
基本是是默认为0,如果你人品不好,也可以为1,所以一定要有初始化
各位大大有权威的资料解答吗?为这个问题困扰一段时间了,目前看来,加上初始化还是必不可少的
不一定的,跟你逻辑设计有关。
如果你的寄存器是使用的置位功能,SRINIT1,初始即为1
如使用复位功能,SRINIT0,初始即为0,
如两个都没有使用,默认为SRINIT0,初始为0
其实,xilinx的fpga存在一个配置后全局复位,该信号会在配置后驱动所有DFF的SR端,所以配置后的DFF初始值就跟你设计中DFF所配置的SRINIT值相关了。
小编的意思我明白,但这是Slice的底层接口,而事实上多数寄存器型变量是通过代码推断出来的,即用户自己编写的时序型变量,对这样的变量,没有初始化,没有复位,配置完成后其初始值能保证是全零吗?
能的,如果你不放心,可以使用INIT约束
比如说你要寄存器i初始值为0,可以在verilog里面这样描述
(* INIT = "0" *)
reg i;
mark一下 这个也不是很清楚
