早教吧作业答案频道 -->其他-->
写了个用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描述的无...的网友还看了以下:
一气球质量为M,下系一个质量为m的物体,此时气球以加速度a匀加速上升.则还…………一气球质量为M, 2020-05-16 …
质量为M,倾角为x的滑块A放于水平地面上.把质量为m的滑块B放在A的斜面上.有人求得B对地面的加速 2020-05-17 …
质量为M的长平板车放在光滑的倾角为α的斜面上,车上站着一个质量为m的人若要平板车静止在斜面上,车上 2020-05-17 …
形如根号M正负2根号N的化简,只要我们找出两个数A,B使a加b等于m,a乘以b等于n,使得(根号a 2020-06-06 …
设A是n阶方阵,且存在自然数M使A^M=A^(M-1),试证A的特征值只能是0或10,1是特征值好 2020-06-18 …
高二学探诊选修3-1的静电场检测卷子中的问题质量分别是M和2M的A,B两个点电荷,在不计重力,只在 2020-06-22 …
若方程X地平方加(M加2)X加M加5等于0只有正根,则M饿取值范围是多少 2020-07-04 …
10.为提高信息在传输中的抗干扰能力,通常在原信息中按一定规则加入相关数据组成传输信息.设定原信息 2020-07-10 …
实际利率公式(1加R÷M)的M次方减1等于实际利率R是名义利率M是计算复利次数对于这个公式小妹想问 2020-07-26 …
质量为M的气球以加速度a匀加速上升突然一只质量为m的小鸟飞到气球上并停留在气球上若气球仍能向上加.. 2020-12-09 …