verilog 一个assign的简单问题在4位超前进位加法器的程序里面,有这么一段句子assign c[0] = (p[0] & ci) | g[0];assign c[1] = (p[1] & c[0]) | g[1];assign c[2] = (p[2] & c[1]) | g[2];这几个assign不是并行执行的吗?那第

来源:学生作业帮助网 编辑:六六作业网 时间:2024/05/02 08:24:37
verilog一个assign的简单问题在4位超前进位加法器的程序里面,有这么一段句子assignc[0]=(p[0]&ci)|g[0];assignc[1]=(p[1]&c[0])|g[1];ass

verilog 一个assign的简单问题在4位超前进位加法器的程序里面,有这么一段句子assign c[0] = (p[0] & ci) | g[0];assign c[1] = (p[1] & c[0]) | g[1];assign c[2] = (p[2] & c[1]) | g[2];这几个assign不是并行执行的吗?那第
verilog 一个assign的简单问题
在4位超前进位加法器的程序里面,有这么一段句子
assign c[0] = (p[0] & ci) | g[0];
assign c[1] = (p[1] & c[0]) | g[1];
assign c[2] = (p[2] & c[1]) | g[2];
这几个assign不是并行执行的吗?那第二,第三个式子中用到了c[0],c[1]不都是按顺序前面执行过的结果再运算吗?这个地方不太懂.
如果换成

verilog 一个assign的简单问题在4位超前进位加法器的程序里面,有这么一段句子assign c[0] = (p[0] & ci) | g[0];assign c[1] = (p[1] & c[0]) | g[1];assign c[2] = (p[2] & c[1]) | g[2];这几个assign不是并行执行的吗?那第
都是并行的没有错,但是assign是阻塞赋值,“阻塞”即是在当前的赋值完成之前阻塞其他赋值任务,当然有延时语句除外.所以c[0]先赋值,c[0]的值发生变化,激励c[1]变化,c[1]变化触发c[2]变化,所以结果就跟顺序执行的结果一样.
如果换成