DFF不给RESET值,也不给D端的值,每次上电后Q端值固定吗?
但是实际芯片是没有x值的,DFF会把x拉成1或者0。只不过在上电前,不知道会被拉成0还是1。
想求教一下,第1次上电时,假设这个DFF的Q端被拉成0了,以后再上电的话,Q端是仍然会被拉成0,还是0/1都有可能?
我问了问公司的前辈同事,有人说仍然是随机的,0/1都可能,有人说是固定的,第1次是0的话,那么以后都是0了,但不同的芯片在第1次上电时得到的值是随机的。
我个人比较认可第2种说法,毕竟芯片做好后,里面的单元参数都固定了,那么DFF把它拉成0或1也应该是固定的。
求教高手解答,谢谢。
随机
谢谢解答,能不能解释一下啊?
我觉得随机是不同芯片的随机
对同一芯片,应该是固定值
随机,同一芯片,每次工作的环境不可能完全相同,例如温度、外界的电磁干扰等等。
和上电速度也有关系,比如10us电源建立完毕和1ms建立完毕,结果很可能是不同的
对于一个芯片上的特定的这个DFF,如果加载输入的次序和温度不变,感觉都是0吧。
D端不给值是floating不接吗?那是z,对应到电路是0到1之间的电压,这样一是会漏电,二是q可能会随着噪声的干扰变换0和1的值
理论解释我不知道。但是实际情况就是随机,这个我有经验。我们这里有过这样一个
bug,一个16位的矢量,reset的时候只初始化了15位,最高位没有初始化。在实际应用
中,这个最高位就是有的时候是0,有的时候是1,有的板1的时候多,有的板0的时候多。
为什么会有这种电路?trng吗?
感谢!既然是实践出来的,感觉更加可靠一些。
也感谢楼上诸位大哥。
但是,你想用这个做随机数发生器是不行的。1和0的概率不是对等的。有的板就是死命出1,偶尔出个0;有的板就是死命出0
由于制造误差,不同的DFF会有不同的初始状态
有些会是恒0,有些会是恒1,也有很多会以各自不同的概率初始到0/1
每片实际芯片的pattern都会不同
有人用DFF初值pattern来做芯片的唯一识别
看具体的dff的电路。有的电路,不同环境,如电压温度都有可能初始化不同的值,cml divider的dff没做好,死在共模状态也就是x状态都有可能。
谢谢解答。
有的板死命出1,这个也是实际测的吗?
记得以前上研究生时,实验室有个项目,还真的就是这样产生随机数的。
同意,还有楼上的一个回答,上电事件,电磁环境等等,随机的原因太多。
是的。有的板出1的概率大,有的板出0的概率大。用这东西是不能产生真随机数的。1和0的概率不是对半分