Verilog hdl 宏定义编译报错

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

Verilog hdl 宏定义编译报错时序仿真,有延迟如图所示结果。



本文转自 lillian_trip 51CTO博客,原文链接:http://blog.51cto.com/xiaoqiaoya/1959606,如需转载请自行联系原作者

上一篇:云服务器初体验


下一篇:Java集合类源码分析汇总