2017-08-03 103 views
-1

我写这样的代码:我不明白什么是我iverilog语法错误

module alu(input[7:0] a,input[7:0] b,input [2:0] op,output reg [7:0] y); 
[email protected](a or b or op) begin 
case(op) 
    3'b000: y = a + b; 
    3'b001: y = a - b; 
    3'b010: y = a * b; 
    3'b011: y = a/b; 
    3'b100: y = a & b; 
    3'b101: y = a | b; 
    3'b110: y = ~a; 
    3'b111: y = a^b; 
endcase 
$display("base 10 : %dns : op=%d b=%d y=%d" , $stime, op, a, b, y); 
$display("base 2 : %dns : op=%b a=%b y=%b" , $stime, op, a, b, y); 
end 
endmodule 

module main; 
reg [7:0] a,b; 
wire [7:0] y; 
reg [2:0] op; 

alu alu1(a, b, op, y); 
initial begin 
a = 8'h07; 
b = 8'h03; 
op = 3'b000; 
$dumpfile("alu.vcd"); 
$dumpvars; 
end 

always #50 begin 
op = op + 1; 
end 
initial #1000 $finish; 

endmodule 

和伊卡洛斯给我的答案作为图像,enter image description here , 我不明白是什么正在进行。

也许这本身就是一个简单的问题,但我真的需要知道如何解决它,谢谢大家,如果你看到我的问题。

+1

请参阅[mcve],并将文字发布为文字,而不是文字图片(特别是没有JPG格式的截图,WTF)。 – melpomene

回答

4
$display("base 10 : %dns : op=%d b=%d y=%d" , $stime, op, a, b, y); 
         ^

有一种奇怪的Unicode字符(U + 3000表意SPACE)在该字符串中的第二个冒号后面,右上面的^标记我已经放置在第二行。

用普通空格字符替换它。

相关问题