|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
module Verilog2(a,b,c);
input wire [(DATA_WIDTH-1):0] a,b;
output wire [(DATA_WIDTH-1):0] c;
parameter DATA_WIDTH = 12;
wire [(DATA_WIDTH-1):0] x1;
wire [(DATA_WIDTH-1):0] x2;
reg [(DATA_WIDTH-1):0]cmp2max;
assign x1 = a;
assign x2 = b;
always @*
begin
if (x1[(DATA_WIDTH-1)] || x2[(DATA_WIDTH-1)])//both are negative or positive
begin
if (x1[(DATA_WIDTH-1)])
cmp2max = x2;
else
cmp2max = x1;
end
else
begin
if (x1[(DATA_WIDTH-2):0] > x2[(DATA_WIDTH-2):0])
cmp2max = x1;
else
cmp2max = x2;
end
end
assign c =cmp2max;
endmodule
程序是实现两个二进制数的比较,当正数的时候和负数的时候,可是输出的结果总是x2,不知道怎么回事! |
|