1、今天使用quartus 9.1 编译文本文件使用宏定义时编译器报错,不使用则正确。原因不明。
如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
//`define add 3'd0; //`define minus 3'd1; //`define band 3'd2; //`define bor 3'd3; //`define bnot 3'd4;注释掉这些宏定义 ,则没有问题了。 module alu(out,opcode,a,b); output[7:0] out; reg[7:0] out; input [2:0] opcode; input[7:0]a,b; always@(opcode or a or b) begin case (opcode)
3 'd0: out=a+b;//这里直接使用,而不是用宏定义。原:' add:out=a+b;报错。改为add:....未定义明确的报错。
3'd1: out=a-b; 3'd2: out=a&b; 3'd3: out=a|b; 3'd4: out=~a; default : out=8'hx;
endcase end endmodule |
本文转自 lillian_trip 51CTO博客,原文链接:http://blog.51cto.com/xiaoqiaoya/1959606,如需转载请自行联系原作者