Verilog中的几个问题

没有复位的FPGA中一些寄存器如何初始化,可以在声明的时候就给它一个初始值吗,如reg FLAG=1‘b0;
使用不完全的条件判断语句会产生latch,这个锁存器会带来什么不好的东西,为什么要避免

第1个回答  推荐于2016-01-01
写可综合代码时,最好要想一想,这个如何转换成电路。

在声明时赋除值,好像只有在仿真时有用;实际电路,还是需要复位来赋初值的。

不完全的条件判断语句,实际上,综合以后,综合软件会补充else的分支,不过是使用自己赋值给自己。
在时序电路,自己赋值给自己,是没有问题的,但组合逻辑,就会产生latch。
latch本身不是一个稳定的电路,其状态容易改变,因此要避免。追问

哦,谢谢,这个Reset怎么产生,应该需要外部复位电路吧,但是好像板子上没有,这是不是说就不能使用这些寄存器呢,因为他们都不能赋初值。如果是reg型,它也应该有个默认的值吧
还有就是latch本身不是一个稳定的电路,状态容易改变是什么意思,锁存器的状态为什么不稳定

本回答被提问者采纳
第2个回答  2014-07-09
一般在初始化的时候,就是那个Reset,你这明显软件编多了,思路明显不对。
你做个仿真啊,不完全条件判断的电路和完全判断的电路都不一样好不,几乎完全不同。
你以为是c语言啊,硬件描述语言是描述硬件电路的,电路才是关键大哥!追问

如果没有Reset,就不能初始化了吗

追答

电路没电管脚输入的是什么态? z?x?还是你接地线啊

电路没电管脚输入的是什么态? z?x?还是你接地线啊

追问

就是没有复位电平

追答

不行

相似回答