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,如需转载请自行联系原作者

相关文章
|
1月前
|
编译器 C语言
【C语言】宏定义详解
在C语言中,宏定义是一种强大的预处理器功能,用于在编译之前对代码进行替换和条件编译。宏定义通过预处理器指令进行定义和使用,能够使代码更加灵活和可维护。本文将对C语言中的宏定义进行全面的讲解,包括各种相关的预处理器指令及其用法。
100 7
|
7月前
|
监控 算法 编译器
初识 Verilog HDL , 什么是verilog HDL?
这是一篇关于Verilog HDL的学习笔记摘要。Verilog是一种硬件描述语言,用于数字系统的多层抽象设计,包括行为、数据流和结构。设计流程包括功能设计、Verilog描述、软件模拟、逻辑综合和硬件实现。模块是Verilog的基本单元,代表逻辑实体,通过并行运行和分层连接实现复杂系统。模块包含端口列表和定义,通过模块调用(实例化)实现子模块连接。Verilog的参数声明和预处理指令(如`define、`include和`timescale)增加了代码的可读性和灵活性。笔记指出Verilog与C语言有相似之处,易于学习。
|
8月前
|
C++
Verilog 函数和任务
Verilog 函数和任务
|
8月前
|
编译器 C语言
【C语言】什么是宏定义?(#define详解)
【C语言】什么是宏定义?(#define详解)
151 0
|
编译器 C语言
C语言宏定义与条件编译
C语言宏定义与条件编译
127 0
|
IDE 编译器 开发工具
[笔记]vs2015 编写汇编masm32之使用MASM32库
[笔记]vs2015 编写汇编masm32之使用MASM32库
106 0
|
C语言
C语言宏定义的提示之法
C语言宏定义的提示之法
81 0
|
算法 异构计算
Verilog HDL函数与任务的使用
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。
125 0
Verilog HDL函数与任务的使用
|
自然语言处理 算法 异构计算
Verilog HDL基本语法规则
本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。
262 0
Verilog HDL基本语法规则
spinal HDL - 06 - 例化VHDL and Verilog IP
spinal HDL - 06 - 例化VHDL and Verilog IP
305 0
spinal HDL - 06 - 例化VHDL and Verilog IP