关于verilog 中 assign 用法的一个问题

我的一个程序里有这样一句 assign shift = (fsm==SHIFT) && en_tx ;
那这句可不可以改成
assign shift = (fsm==SHIFT) ;
assign shift = en_tx ;
为什么?

不可以,Verilog是并行的,对电路进行描述,也就是一个变量名仅仅能赋值一次,不要和C混淆了追问

那如果这样写是不是编译会报错呢?如果不报错,两条语句是不是并行执行的呢?

追答

不可以,两条语句的是并行的。就像硬件电路,两条信号都连接到同一条线上,得到结果也不是你想要的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-20
assign 就是连线 一根线不可以有两个驱动
相似回答