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/07/29 05:09:23
xN@_+T$i (RE#"uՅ[" "&0NLwAs3o&|Ϝ'S~|!@#fmG_v#Ow<>2&5 z@L-^5@=2an:QS*[o^n(\R'%JTDR?!IK$ u,{ 9/k^]\dI1
zxJ=/);-dj[xw1V5TQc&QCG3ؾd#*hyQD\{L9VZ3Zf~%xYd.x76@W4[C0oDl`314'a($lSPwT|'">rxo
5P%N^:F[s
WBEǏ%;;ETHƱԌݱ y$^WCS,lng<2`
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]变化,所以结果就跟顺序执行的结果一样.
如果换成