| 查看: 337 | 回复: 0 | ||
[求助]
刚学verilog,请帮解释一个小程序。
|
|
module fullAS4(A,B, S, Co, C,V,M); input [3:0] A,B; output [3:0] S; input Co; output C,V; input M; reg [3:0]S,S2; 这个S2是什么? reg C,V; reg [1:0]R; 这个R是什么意思? always @(A,B,Co,M) if(M) begin {C,S}=A+B+Co; {R,S2[3],S[2],S[1]}={A[3],A[3],A[2],A[1],A[0]}+{B[3],B[3],B[2],B[1],B[0]}+Co; 这句是什么意思? V=(R[1])^(R[0]); 还有这句话。 end else begin B2=~B+1; {C,S}=A+B2-Co; {R,S2}={A[3],A}+{B2[3],B2}-Co; V=(R[1])^(R[0]); 这句话的意思。 end endmodule 1.刚得到一个全加减器的code,不是很明白,所以找知道的大神问下。 对于程序不理解的地方,我写在句子后边了。 2.还有一个问题就是,全加减器按照我的印象来说,只需要4个输入(3个输入和一个控制全加或全减的M),两个输出,总共6个就够了,怎么这个程序里7个?(A,B, S, Co, C,V,M ) 3.还有就是,如果编test beach的话,怎么编呢? 4.还有最后一个问题,上面这个应该是dataflow level方法编的吧?如果用gate level编,应该怎么编呢? 以上就是这些了。各位看着顺手的回答吧,金币实在不多,问题确实不少,很不好意思。 [ Last edited by hkumjnsz on 2013-6-29 at 15:52 ] |














回复此楼