早教吧作业答案频道 -->其他-->
写了个用Verilog描述的无符号加法器,用移位加实现,但是加法不能用Verilog的加号,只能用自己的加法器模modulemul4bit(A,B,M);//四位乘以四位,结果M为8位.inputwire[3:0]A,B;outputreg[7:0]M;wireCo;regC;wi
题目详情
写了个用Verilog描述的无符号加法器,用移位加实现,但是加法不能用Verilog的加号,只能用自己的加法器模
module mul_4bit(A,B,M); //四位乘以四位,结果M为8位.
input wire [3:0] A,B;
output reg [7:0] M;
wire Co;
reg C;
wire [3:0] S;
adder_4bit a0(M[7:4],A,1'b0,S,Co); // S是四位的结果,Co是进位标志
always @(*) begin
M = {4'b0000,B};
repeat (4)
if(M[0]) begin
C = Co;
M[7:4] = S;
M = M >> 1;
M[7] = C;
end
else M = M >> 1;
end
endmodule
可以保证加法器没错,但是结果是错的...如果把加法器换成加好,也就是
repeat (4)
if(M[0]) begin
{C,M[7:4]} = M[7:4]+A;
M = M >> 1;
M[7] = C;
end
结果就是对的..
感觉我的写法时序有点混乱,请问问题出在哪,应该怎么写?
module mul_4bit(A,B,M); //四位乘以四位,结果M为8位.
input wire [3:0] A,B;
output reg [7:0] M;
wire Co;
reg C;
wire [3:0] S;
adder_4bit a0(M[7:4],A,1'b0,S,Co); // S是四位的结果,Co是进位标志
always @(*) begin
M = {4'b0000,B};
repeat (4)
if(M[0]) begin
C = Co;
M[7:4] = S;
M = M >> 1;
M[7] = C;
end
else M = M >> 1;
end
endmodule
可以保证加法器没错,但是结果是错的...如果把加法器换成加好,也就是
repeat (4)
if(M[0]) begin
{C,M[7:4]} = M[7:4]+A;
M = M >> 1;
M[7] = C;
end
结果就是对的..
感觉我的写法时序有点混乱,请问问题出在哪,应该怎么写?
▼优质解答
答案和解析
这个加法器不是时序加法器,最好加一个时钟信号方便全局时钟统一,很有可能是这一个原因.还有always@(*)括号里面为啥是*
还有一个问题,这个repeat是综合出4个加法器,但是你那个却只是调用了一个加法器.verilog不是C语言,一个always模块内部只要是平行条件的,是并行执行的.千万不要忘了这一点.
还有一个问题,这个repeat是综合出4个加法器,但是你那个却只是调用了一个加法器.verilog不是C语言,一个always模块内部只要是平行条件的,是并行执行的.千万不要忘了这一点.
看了写了个用Verilog描述的无...的网友还看了以下:
岸边停靠着a、b、c、d四只汽艇,它们的船速不同,如果单独开到对岸。a艇需1分钟,b艇需2分钟,c 2020-06-12 …
有一个长方形通道(如下图).一只老鼠从A点出发,沿着A→D→C的方向逃跑,同时一只猫也从A点出发, 2020-06-20 …
从A,B,C,D,E,F六人中选出四人参加运动会,要求:(1)A,B两人中至少有一个人选上.(2) 2020-06-20 …
ABCD中2个做好事,4人回答:A:CD做好事B:C做了,我没做C:A,D中只有一人做D:B说的是 2020-06-26 …
逻辑推理题目A.B.C.D4个同学中有2个同学在假日为街道做好事,班主任把这4个人找来了解情况,4个 2020-10-31 …
将一条形磁铁分成三段,取中间一段,则A.一定没有磁性,因为没有磁极B.一定有磁性,但只有N极C.一定 2020-11-02 …
如图所示,将条形磁体从中间分开,则左边的一段[]A.一定没有磁性B.一定有磁性,但只有N极C.一定有 2020-11-02 …
从前有个人叫A,它想过河去见恋人B.但只有两条船,一条是C的,它一见A就爱上A,如果A和它相爱才把船 2020-11-02 …
对“但闻屏障中抚尺一下”理解正确的一项是[]A.但是听到屏风里面拍了一下抚尺。B.只是听到屏障中抚尺 2020-11-08 …
某项任务需要在A,B,C,D,E五个人中派一些人去完成,但派人需要受下列条件的约束:(1)若A去,则 2020-11-10 …