verilog中条件编译命令`ifdef、`else、`endif用法。
一般情况下,verilog?hdl源程序中所有的行都参加编译。但是有时候希望对其中的一部份内容只有在条件满足的时候才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。
有时,希望当满足条件时对一组语句进行编译,当条件不满足时则对另外一组语句进行编译。
条件编译命令的几种形式:
1)`ifdef宏名(标识符。
程序段1 else
程序段2 endif
它的作用是当宏名已经被定义过(此处需要采用`define命令定义),则对程序段1进行编译,程序段2将被忽略;否则编译程序段2,程序段1将被忽落。其中`else部分可以没有,即:
2)`ifdef宏名(标识符)
程序段1`endif
这里的“宏名”是一个verilog hdl的标识符,“程序段”可以是verilog hdl语句组,也可以是命令行。这些命令可以出现在源程序的任何地方。
注意:被忽略掉不进行编译的程序段部分也要符合verilog hdl程序的语言规则。
通常在verilog hdl程序中用到`ifdef、`else、`endif编译命令的情况有以下几种:
1)选择一个模板的不同代表部分。
2)选择不同的时许或结构信息。
3)对不同的eda工具,选择不同的激励。
最常用的情况是:verilog hdl**中的一部分可能适用于某个编译环境,但不适用于另一个环境,如果设计者不想为两个环境创建两个不同版本的verilog设计,还有一种方法就是所谓的条件编译,即设计者在**中指定其中某一部分只有在设置了特定的标志后,这一段**才能被编译,即设计者在**中指定其中某一部分只有在设置了特定的标识后,这一段**才能编译。
设计者也可能希望在程序的运行中,只有当设置了某个标志后,才能执行verilog设计的某些部分,这就是所谓的条件执行。
条件编译可以用编译指令`ifdef、`else、`elsif和`endif实现。
ifdef和`ifndef指令可以出现在设计的任何地方。设计者可以有条件地编译语句、模块、语句块、声明和其他编译指令。`else指令时可选的。
一个`else指令最多可以匹配一个`ifdef或者`ifndef。一个`ifdef或者`ifndef可以匹配任意数量的`elsif命令。`ifdef或`ifndef总是用相应的`endif来结束。
verilog文件中,条件编译标志可以用`define语句设置。如果没有设置条件编译标志,那么verilog编译器会简单地跳过该部分。`ifdef语句中不允许使用布尔表带式,例如使用test &&add_b2来表示编译条件是不允许的。
verilog语法
第三章 verilog hdl的基本语法。前言。verilog hdl是一种用于数字逻辑电路设计的语言。用verilog hdl描述的电路设计就是该电路的verilog hdl模型。verilog hdl既是一种行为描述的语言也是一种结构描述的语言。这也就是说,既可以用电路的功能描述也可以用元器件和...
verilog语法总结
整理 张步阳。1.如果没有明确说明,则端口都是wire线网型的,且输入端口只能是wire线网型的。型数据通常以assign关键字指定的组合逻辑信号。wire只能被assign连续赋值,reg 只能在initial和always中赋值。input端口只能定义成wire型。是寄存器数据类型的关键字。寄存...
verilog语法提纲
reg 7 0 mema 255 0 这个例子定义了一个名为mema的存储器,该存储器有256个8位的存储器。该存储器的地址范围是0到255.4.运算符及表达式 1 算术运算符。2 赋值运算符 3 关系运算符 4 逻辑运算符 5 条件运算符 6 位运算符。7 移位运算符 8 拼接运算符 9 其它。说...