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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于verilog 中 assign 用法的一个问题相关的知识,希望对你有一定的参考价值。

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

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

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

追答

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

参考技术A assign 就是连线 一根线不可以有两个驱动

以上是关于关于verilog 中 assign 用法的一个问题的主要内容,如果未能解决你的问题,请参考以下文章

verilog语言中assign怎么用?

verilog中assign 是啥意思

verilog语言问题三个。 一,M=A^B,N=A&B 那么为啥assign M,N=A+

Verilog中如何用assign条件判断语句构造三选一数据选择器?

verilog语法,有关case语句

为啥在verilog中要定义wire?