|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
在用verilog写一个booth-kogge stone的32位乘法器用到了aldec active HDL student edition里面我写了这样一段代码
module calc(i, code, n, o);
input [31:0] i;
input [2:0] code;
input n;
output [63:0] o;
wire [31:0] mid;
reg [63:0] med;
wire [80:0] med2;
assign mid = ~i + 1'b1;
always @(code)
begin
case(code)
3'b000: assign med = 64'b0;
3'b001: assign med ={{(32){i[31]}},{i[31:0]}};
3'b010: assign med ={{(32){i[31]}},{i[31:0]}};
3'b011: assign med ={{(31){i[31]}},{i[31:0]},1'b0};
3'b100: assign med ={{(31){mid[31]}},{mid[31:0]},1'b0};
3'b101: assign med ={{(32){mid[31]}},{mid[31:0]}};
3'b110: assign med ={{(32){mid[31]}},{mid[31:0]}};
3'b111: assign med = 64'b0;
default;
endcase
end
assign med2 = med << n;
assign o = med2[63:0];
endmodule
用来实现radix-4的booth算法,单独compile也通过了....
但是compile all的时候报错,错在第一行显示
# Error: VCP2000 calc.v : (1, 7): Syntax error. Unexpected token: module[_MODULE]. Expected tokens: ';' , '#' , ''' , '(' , '{' ... .
完全不明白这是什么错,因为顶层程序还没有写,照理来说和其他程序根本没有关系 |
|