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

wKiom1mhgCGS_oRJAABmJK-kUYs845.png时序仿真,有延迟如图所示结果。



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

相关文章
|
2月前
|
编译器 Linux C语言
C/C++ 常见函数调用约定(__stdcall,__cdecl,__fastcall等):介绍常见函数调用约定的基本概念、用途和作用
C/C++ 常见函数调用约定(__stdcall,__cdecl,__fastcall等):介绍常见函数调用约定的基本概念、用途和作用
24 0
|
1月前
|
C++
Verilog 函数和任务
Verilog 函数和任务
|
2月前
|
编译器 C语言
【C语言】什么是宏定义?(#define详解)
【C语言】什么是宏定义?(#define详解)
28 0
|
4月前
|
C语言
详解C语言可变参数列表(stdarg头文件及其定义的宏)
详解C语言可变参数列表(stdarg头文件及其定义的宏)
50 0
|
8月前
|
C语言
简单的C语言宏定义结合全局变量的方法实现单片机串口实现透传模式
简单的C语言宏定义结合全局变量的方法实现单片机串口实现透传模式
61 0
|
9月前
|
存储 编译器 Linux
5.5 汇编语言:函数调用约定
函数是任何一门高级语言中必须要存在的,使用函数式编程可以让程序可读性更高,充分发挥了模块化设计思想的精髓,今天我将带大家一起来探索函数的实现机理,探索编译器到底是如何对函数这个关键字进行实现的,并使用汇编语言模拟实现函数编程中的参数传递调用规范等。 说到函数我们必须要提起调用约定这个名词,而调用约定离不开栈的支持,栈在内存中是一块特殊的存储空间,遵循先进后出原则,使用push与pop指令对栈空间执行数据压入和弹出操作。栈结构在内存中占用一段连续存储空间,通过esp与ebp这两个栈指针寄存器来保存当前栈起始地址与结束地址,每4个字节保存一个数据。
198 0
|
9月前
|
算法
如何将算法翻译成RTL(三):Verilog中的Signed本质及用法
如何将算法翻译成RTL(三):Verilog中的Signed本质及用法
96 0
|
9月前
|
安全 C语言
STM32GPIO输入 和C语言
STM32GPIO输入 和C语言
51 0
|
12月前
|
C语言
c语言分层理解(#define定义宏)
c语言已经完结,有兴趣的可以收藏一下我的c语言专栏,感谢各位大佬支持! 1.宏是什么? #define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义 宏(define macro)。
122 0
|
算法 异构计算
Verilog HDL函数与任务的使用
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。
85 0
Verilog HDL函数与任务的使用